RFE: gnutls_datum_wipe() (similar to private _gnutls_free_key_datum())
RFE: gnutls_datum_wipe()
(similar to private _gnutls_free_key_datum()
)
GnuTLS does not expose _gnutls_free_key_datum()
.
Please consider creating public interfaces for wiping gnutls_datum_t
, such as the following:
void
gnutls_datum_wipe (gnutls_datum_t * const d)
{
if (NULL == d) return;
if (d->data) {
if (d->size)
gnutls_memset(d->data, 0, d->size);
gnutls_free(d->data);
d->data = NULL;
}
d->size = 0;
}
gnutls_datum_t *
gnutls__datum_alloc (void)
{
gnutls_datum_t *d = gnutls_malloc(sizeof(gnutls_datum_t));
if (d) {
d->data = NULL;
d->size = 0;
}
return d;
}
void
gnutls_datum_free (gnutls_datum_t * const d)
{
if (NULL == d) return;
gnutls_free(d->data);
gnutls_free(d);
}
void
gnutls_datum_wipe_free (gnutls_datum_t * const d)
{
if (NULL == d) return;
gnutls_datum_wipe(d);
gnutls_free(d);
}
Edited by Glenn Strauss