shared: add macros for initializing NMSecretPtr

This commit is contained in:
Thomas Haller 2019-02-11 13:04:11 +01:00
parent 2fa7a7c20b
commit 99ae5322c9

View file

@ -75,6 +75,19 @@ typedef struct {
};
} NMSecretPtr;
static inline void
nm_secret_ptr_bzero (NMSecretPtr *secret)
{
if (secret) {
if (secret->len > 0) {
if (secret->ptr)
nm_explicit_bzero (secret->ptr, secret->len);
}
}
}
#define nm_auto_bzero_secret_ptr nm_auto(nm_secret_ptr_bzero)
static inline void
nm_secret_ptr_clear (NMSecretPtr *secret)
{
@ -90,12 +103,24 @@ nm_secret_ptr_clear (NMSecretPtr *secret)
#define nm_auto_clear_secret_ptr nm_auto(nm_secret_ptr_clear)
#define NM_SECRET_PTR_INIT() \
((const NMSecretPtr) { \
.len = 0, \
.ptr = NULL, \
})
#define NM_SECRET_PTR_STATIC(_len) \
((const NMSecretPtr) { \
.len = _len, \
.ptr = ((guint8 [_len]) { }), \
})
#define NM_SECRET_PTR_ARRAY(_arr) \
((const NMSecretPtr) { \
.len = G_N_ELEMENTS (_arr) * sizeof ((_arr)[0]), \
.ptr = &((_arr)[0]), \
})
static inline void
nm_secret_ptr_clear_static (const NMSecretPtr *secret)
{