diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2013-11-12 14:24:34 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2013-11-27 11:41:43 +0100 |
commit | 54684ed8aefe08e3d8fa49ab21211064c5f7f0f5 (patch) | |
tree | fd4fdd2c9049489a4d1cb7b30a5fb3f800c9f0cb /lib/gnutls_datum.h | |
parent | ad35a04fe47a97c41c51d2271b01f24be13217b1 (diff) | |
download | gnutls-54684ed8aefe08e3d8fa49ab21211064c5f7f0f5.tar.gz |
Added zeroization of keys in several parts within gnutls.
Diffstat (limited to 'lib/gnutls_datum.h')
-rw-r--r-- | lib/gnutls_datum.h | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/lib/gnutls_datum.h b/lib/gnutls_datum.h index 9397408047..91293e6516 100644 --- a/lib/gnutls_datum.h +++ b/lib/gnutls_datum.h @@ -29,6 +29,31 @@ int _gnutls_set_datum(gnutls_datum_t * dat, const void *data, int _gnutls_datum_append(gnutls_datum_t * dat, const void *data, size_t data_size); -void _gnutls_free_datum(gnutls_datum_t * dat); + +inline static +void _gnutls_free_datum(gnutls_datum_t * dat) +{ + if (dat->data != NULL) + gnutls_free(dat->data); + + dat->data = NULL; + dat->size = 0; +} + +#ifdef ENABLE_FIPS140 +inline static +void _gnutls_zfree_datum(gnutls_datum_t * dat) +{ + if (dat->data != NULL) { + memset(dat->data, 0, dat->size); + gnutls_free(dat->data); + } + + dat->data = NULL; + dat->size = 0; +} +#else +# define _gnutls_zfree_datum _gnutls_free_datum +#endif #endif |