diff options
author | Matt Johnston <matt@ucc.asn.au> | 2016-03-17 23:21:33 +0800 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2016-03-17 23:21:33 +0800 |
commit | 420151dbd9e9737fcb7df46529b5fa63a10b8efa (patch) | |
tree | 47e6ec4fc3bfcd6923c7669a50d5e25ed6d96644 /dbhelpers.c | |
parent | 156b28c771f9a2b18bd3ddde6d6b3c193999c904 (diff) |
move m_burn and function attributes to dbhelpers
use m_burn for libtomcrypt zeromem() too
Diffstat (limited to 'dbhelpers.c')
-rw-r--r-- | dbhelpers.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/dbhelpers.c b/dbhelpers.c new file mode 100644 index 0000000..f7461d9 --- /dev/null +++ b/dbhelpers.c @@ -0,0 +1,25 @@ +#include "dbhelpers.h" +#include "includes.h" + +/* Erase data */ +void m_burn(void *data, unsigned int len) { + +#if defined(HAVE_MEMSET_S) + memset_s(data, len, 0x0, len); +#elif defined(HAVE_EXPLICIT_BZERO) + explicit_bzero(data, len); +#else +/* Based on the method in David Wheeler's + * "Secure Programming for Linux and Unix HOWTO". May not be safe + * against link-time optimisation. */ + volatile char *p = data; + + if (data == NULL) + return; + while (len--) { + *p++ = 0x0; + } +#endif +} + + |