summaryrefslogtreecommitdiff
path: root/lib/gnutls_datum.h
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2013-11-12 14:24:34 +0100
committerNikos Mavrogiannopoulos <nmav@redhat.com>2013-11-27 11:41:43 +0100
commit54684ed8aefe08e3d8fa49ab21211064c5f7f0f5 (patch)
treefd4fdd2c9049489a4d1cb7b30a5fb3f800c9f0cb /lib/gnutls_datum.h
parentad35a04fe47a97c41c51d2271b01f24be13217b1 (diff)
downloadgnutls-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.h27
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