22# define VLC_KEYSTORE_H
61#define VLC_KEYSTORE_VALUES_INIT(ppsz_values) memset(ppsz_values, 0, sizeof(const char *) * KEY_MAX)
91#define vlc_keystore_create(x) vlc_keystore_create(VLC_OBJECT(x))
115 const char *
const ppsz_values[
KEY_MAX],
116 const uint8_t* p_secret, ssize_t i_secret_len,
131 const char *
const ppsz_values[
KEY_MAX],
146 const char *
const ppsz_values[
KEY_MAX]);
240 const char *psz_option_username,
241 const char *psz_option_password,
242 const char *psz_dialog_title,
243 const char *psz_dialog_fmt, ...)
VLC_FORMAT(6, 7);
244#define vlc_credential_get(a, b, c, d, e, f, ...) \
245 vlc_credential_get(a, VLC_OBJECT(b), c, d, e, f, ##__VA_ARGS__)
259#define vlc_credential_store(a, b) \
260 vlc_credential_store(a, VLC_OBJECT(b))
268#define VLC_KEYSTORE_NAME "libVLC"
272 const uint8_t *p_secret,
size_t i_secret_len)
274 p_entry->
p_secret = (uint8_t*) malloc(i_secret_len);
277 memcpy(p_entry->
p_secret, p_secret, i_secret_len);
285 for (
unsigned int j = 0; j <
KEY_MAX; ++j)
304 const uint8_t *p_secret,
305 size_t i_secret_len,
const char *
psz_label);
#define VLC_USED
Definition: fourcc_gen.c:32
#define VLC_API
Definition: fourcc_gen.c:31
#define VLC_FORMAT(x, y)
String format function annotation.
Definition: vlc_common.h:204
#define vlc_credential_get(a, b, c, d, e, f,...)
Definition: vlc_keystore.h:245
void vlc_credential_clean(vlc_credential *p_credential)
Clean a credential struct.
Definition: keystore.c:360
void vlc_credential_init(vlc_credential *p_credential, const vlc_url_t *p_url)
Init a credential struct.
Definition: keystore.c:350
#define vlc_credential_store(a, b)
Definition: vlc_keystore.h:260
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:505
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:503
static void vlc_keystore_release_entry(vlc_keystore_entry *p_entry)
Definition: vlc_keystore.h:284
static int vlc_keystore_entry_set_secret(vlc_keystore_entry *p_entry, const uint8_t *p_secret, size_t i_secret_len)
Definition: vlc_keystore.h:272
struct vlc_keystore_sys vlc_keystore_sys
Definition: vlc_keystore.h:295
#define vlc_keystore_create(x)
Definition: vlc_keystore.h:92
void vlc_keystore_release(vlc_keystore *p_keystore)
Release a keystore object.
Definition: keystore.c:71
unsigned int vlc_keystore_find(vlc_keystore *p_keystore, const char *const ppsz_values[KEY_MAX], vlc_keystore_entry **pp_entries)
Find all entries that match a set of key/values.
Definition: keystore.c:110
unsigned int vlc_keystore_remove(vlc_keystore *p_keystore, const char *const ppsz_values[KEY_MAX])
Remove all entries that match a set of key/values.
Definition: keystore.c:119
vlc_keystore_key
List of keys that can be stored via the keystore API.
Definition: vlc_keystore.h:52
void vlc_keystore_release_entries(vlc_keystore_entry *p_entries, unsigned int i_count)
Release the list of entries returned by vlc_keystore_find()
Definition: keystore.c:127
int vlc_keystore_store(vlc_keystore *p_keystore, const char *const ppsz_values[KEY_MAX], const uint8_t *p_secret, ssize_t i_secret_len, const char *psz_label)
Store a secret associated with a set of key/values.
Definition: keystore.c:80
@ KEY_PROTOCOL
Definition: vlc_keystore.h:53
@ KEY_PATH
Definition: vlc_keystore.h:56
@ KEY_USER
Definition: vlc_keystore.h:54
@ KEY_SERVER
Definition: vlc_keystore.h:55
@ KEY_REALM
Definition: vlc_keystore.h:58
@ KEY_MAX
Definition: vlc_keystore.h:60
@ KEY_AUTHTYPE
Definition: vlc_keystore.h:59
@ KEY_PORT
Definition: vlc_keystore.h:57
Definition: vlc_objects.h:91
Internal module descriptor.
Definition: modules.h:76
Definition: vlc_keystore.h:165
const char * psz_authtype
http authtype to search, can be overridden after a call to vlc_credential_get()
Definition: vlc_keystore.h:173
unsigned int i_entries_count
Definition: vlc_keystore.h:190
char * psz_var_password
Definition: vlc_keystore.h:194
char * psz_var_username
Definition: vlc_keystore.h:193
bool b_store
Definition: vlc_keystore.h:199
vlc_keystore_entry * p_entries
Definition: vlc_keystore.h:189
char * psz_dialog_username
Definition: vlc_keystore.h:196
char * psz_split_domain
Definition: vlc_keystore.h:192
@ GET_FROM_KEYSTORE
Definition: vlc_keystore.h:184
@ GET_FROM_MEMORY_KEYSTORE
Definition: vlc_keystore.h:183
@ GET_FROM_URL
Definition: vlc_keystore.h:181
@ GET_FROM_DIALOG
Definition: vlc_keystore.h:185
@ GET_FROM_OPTION
Definition: vlc_keystore.h:182
const char * psz_realm
http realm or smb domain to search, can be overridden after a call to vlc_credential_get()
Definition: vlc_keystore.h:170
bool b_from_keystore
Definition: vlc_keystore.h:198
char * psz_dialog_password
Definition: vlc_keystore.h:197
const char * psz_username
valid only if vlc_credential_get() returned true
Definition: vlc_keystore.h:175
enum vlc_credential::@239 i_get_order
vlc_keystore * p_keystore
Definition: vlc_keystore.h:188
const vlc_url_t * p_url
url to store or to search
Definition: vlc_keystore.h:167
const char * psz_password
valid only if vlc_credential_get() returned true
Definition: vlc_keystore.h:177
Keystore entry returned by vlc_keystore_find()
Definition: vlc_keystore.h:68
uint8_t * p_secret
Secret password.
Definition: vlc_keystore.h:72
char * ppsz_values[KEY_MAX]
Set of key/values.
Definition: vlc_keystore.h:70
size_t i_secret_len
Length of the secret.
Definition: vlc_keystore.h:74
Definition: vlc_keystore.h:297
unsigned int(* pf_remove)(vlc_keystore *p_keystore, const char *const ppsz_values[KEY_MAX])
See vlc_keystore_remove()
Definition: vlc_keystore.h:313
int(* pf_store)(vlc_keystore *p_keystore, const char *const ppsz_values[KEY_MAX], const uint8_t *p_secret, size_t i_secret_len, const char *psz_label)
See vlc_keystore_store()
Definition: vlc_keystore.h:303
struct vlc_object_t obj
Definition: vlc_keystore.h:298
unsigned int(* pf_find)(vlc_keystore *p_keystore, const char *const ppsz_values[KEY_MAX], vlc_keystore_entry **pp_entries)
See vlc_keystore_find()
Definition: vlc_keystore.h:308
module_t * p_module
Definition: vlc_keystore.h:299
vlc_keystore_sys * p_sys
Definition: vlc_keystore.h:300
VLC object common members.
Definition: vlc_objects.h:45
Definition: vlc_url.h:146
This file is a collection of common definitions and types.
void libvlc_InternalKeystoreClean(libvlc_int_t *p_libvlc)
Definition: keystore.c:145
int libvlc_InternalKeystoreInit(libvlc_int_t *p_libvlc)
Definition: keystore.c:135
char psz_label[13]
Definition: vout_intf.c:89