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))
116 const char *
const ppsz_values[
KEY_MAX],
117 const uint8_t* p_secret, ssize_t i_secret_len,
133 const char *
const ppsz_values[
KEY_MAX],
149 const char *
const ppsz_values[
KEY_MAX]);
245 const char *psz_option_username,
246 const char *psz_option_password,
247 const char *psz_dialog_title,
248 const char *psz_dialog_fmt, ...)
VLC_FORMAT(6, 7);
249#define vlc_credential_get(a, b, c, d, e, f, ...) \
250 vlc_credential_get(a, VLC_OBJECT(b), c, d, e, f, ##__VA_ARGS__)
264#define vlc_credential_store(a, b) \
265 vlc_credential_store(a, VLC_OBJECT(b))
273#define VLC_KEYSTORE_NAME "libVLC"
277 const uint8_t *p_secret,
size_t i_secret_len)
279 p_entry->
p_secret = (uint8_t*) malloc(i_secret_len);
282 memcpy(p_entry->
p_secret, p_secret, i_secret_len);
290 for (
unsigned int j = 0; j <
KEY_MAX; ++j)
309 const uint8_t *p_secret,
310 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:193
#define vlc_credential_get(a, b, c, d, e, f,...)
Definition vlc_keystore.h:250
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:265
#define VLC_EGENERIC
Unspecified error.
Definition vlc_common.h:480
#define VLC_SUCCESS
No error.
Definition vlc_common.h:478
static void vlc_keystore_release_entry(vlc_keystore_entry *p_entry)
Definition vlc_keystore.h:289
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:277
struct vlc_keystore_sys vlc_keystore_sys
Definition vlc_keystore.h:300
#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:103
Internal module descriptor.
Definition modules.h:76
Definition vlc_keystore.h:168
const char * psz_authtype
http authtype to search, can be overridden after a call to vlc_credential_get()
Definition vlc_keystore.h:176
unsigned int i_entries_count
Definition vlc_keystore.h:193
char * psz_var_password
Definition vlc_keystore.h:197
char * psz_var_username
Definition vlc_keystore.h:196
bool b_store
Definition vlc_keystore.h:202
vlc_keystore_entry * p_entries
Definition vlc_keystore.h:192
enum vlc_credential::@237 i_get_order
char * psz_dialog_username
Definition vlc_keystore.h:199
char * psz_split_domain
Definition vlc_keystore.h:195
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:173
bool b_from_keystore
Definition vlc_keystore.h:201
char * psz_dialog_password
Definition vlc_keystore.h:200
const char * psz_username
valid only if vlc_credential_get() returned true
Definition vlc_keystore.h:178
@ GET_FROM_KEYSTORE
Definition vlc_keystore.h:187
@ GET_FROM_MEMORY_KEYSTORE
Definition vlc_keystore.h:186
@ GET_FROM_URL
Definition vlc_keystore.h:184
@ GET_FROM_DIALOG
Definition vlc_keystore.h:188
@ GET_FROM_OPTION
Definition vlc_keystore.h:185
vlc_keystore * p_keystore
Definition vlc_keystore.h:191
const vlc_url_t * p_url
url to store or to search
Definition vlc_keystore.h:170
const char * psz_password
valid only if vlc_credential_get() returned true
Definition vlc_keystore.h:180
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:302
unsigned int(* pf_remove)(vlc_keystore *p_keystore, const char *const ppsz_values[KEY_MAX])
See vlc_keystore_remove()
Definition vlc_keystore.h:318
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:308
struct vlc_object_t obj
Definition vlc_keystore.h:303
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:313
module_t * p_module
Definition vlc_keystore.h:304
vlc_keystore_sys * p_sys
Definition vlc_keystore.h:305
VLC object common members.
Definition vlc_objects.h:53
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:92