|
XenevaOS
|
#include "common.h"#include "mbedtls/platform_util.h"#include "mbedtls/platform.h"#include "mbedtls/threading.h"#include <stddef.h>#include <string.h>
Macros | |
| #define | _POSIX_C_SOURCE 200112L |
| #define | _GNU_SOURCE |
| #define | __STDC_WANT_LIB_EXT1__ 1 /* Ask for the C11 gmtime_s() and memset_s() if available */ |
Functions | |
| void | mbedtls_platform_zeroize (void *buf, size_t len) |
| Securely zeroize a buffer. | |
| void | mbedtls_zeroize_and_free (void *buf, size_t len) |
| Securely zeroize a buffer then free it. | |
| #define __STDC_WANT_LIB_EXT1__ 1 /* Ask for the C11 gmtime_s() and memset_s() if available */ |
| #define _GNU_SOURCE |
| #define _POSIX_C_SOURCE 200112L |
| void mbedtls_platform_zeroize | ( | void * | buf, |
| size_t | len | ||
| ) |
Securely zeroize a buffer.
The function is meant to wipe the data contained in a buffer so
that it can no longer be recovered even if the program memory
is later compromised. Call this function on sensitive data
stored on the stack before returning from a function, and on
sensitive data stored on the heap before freeing the heap
object.
It is extremely difficult to guarantee that calls to
mbedtls_platform_zeroize() are not removed by aggressive
compiler optimizations in a portable way. For this reason, Mbed
TLS provides the configuration option
MBEDTLS_PLATFORM_ZEROIZE_ALT, which allows users to configure
mbedtls_platform_zeroize() to use a suitable implementation for
their platform and needs
| buf | Buffer to be zeroized |
| len | Length of the buffer in bytes |
| void mbedtls_zeroize_and_free | ( | void * | buf, |
| size_t | len | ||
| ) |
Securely zeroize a buffer then free it.
Similar to making consecutive calls to
\c mbedtls_platform_zeroize() and \c mbedtls_free(), but has
code size savings, and potential for optimisation in the future.
Guaranteed to be a no-op if \p buf is \c NULL and \p len is 0.
| buf | Buffer to be zeroized then freed. |
| len | Length of the buffer in bytes |