1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-02-16 17:42:02 +00:00

use memzero from libsodium

This commit is contained in:
Pavol Rusnak 2019-01-23 19:39:17 +01:00
parent d1c52401e4
commit e829823f1e
No known key found for this signature in database
GPG Key ID: 91F3B339B9A02A3D
2 changed files with 22 additions and 3 deletions

View File

@ -1,6 +1,25 @@
#include <string.h>
#include <strings.h>
void memzero(void *s, size_t n)
// taken from https://github.com/jedisct1/libsodium/blob/1647f0d53ae0e370378a9195477e3df0a792408f/src/libsodium/sodium/utils.c#L102-L130
void memzero(void *const pnt, const size_t len)
{
memset(s, 0, n);
#ifdef _WIN32
SecureZeroMemory(pnt, len);
#elif defined(HAVE_MEMSET_S)
memset_s(pnt, (rsize_t) len, 0, (rsize_t) len);
#elif defined(HAVE_EXPLICIT_BZERO)
explicit_bzero(pnt, len);
#elif defined(HAVE_EXPLICIT_MEMSET)
explicit_memset(pnt, 0, len);
#else
volatile unsigned char *volatile pnt_ =
(volatile unsigned char *volatile) pnt;
size_t i = (size_t) 0U;
while (i < len) {
pnt_[i++] = 0U;
}
#endif
}

View File

@ -3,6 +3,6 @@
#include <stddef.h>
void memzero(void *s, size_t n);
void memzero(void * const pnt, const size_t len);
#endif