#endif
}
+void OQS_MEM_aligned_secure_free(void *ptr, size_t len) {
+ OQS_MEM_cleanse(ptr, len);
+ OQS_MEM_aligned_free(ptr);
+}
+
OQS_API void *OQS_MEM_malloc(size_t size) {
#if defined(OQS_USE_OPENSSL)
return OSSL_FUNC(CRYPTO_malloc)(size, OPENSSL_FILE, OPENSSL_LINE);
}
static void SHA3_sha3_256_inc_ctx_release(OQS_SHA3_sha3_256_inc_ctx *state) {
- OQS_MEM_aligned_free(state->ctx);
+ OQS_MEM_aligned_secure_free(state->ctx, KECCAK_CTX_BYTES);
}
static void SHA3_sha3_256_inc_ctx_clone(OQS_SHA3_sha3_256_inc_ctx *dest, const OQS_SHA3_sha3_256_inc_ctx *src) {
}
static void SHA3_sha3_384_inc_ctx_release(OQS_SHA3_sha3_384_inc_ctx *state) {
- OQS_MEM_aligned_free(state->ctx);
+ OQS_MEM_aligned_secure_free(state->ctx, KECCAK_CTX_BYTES);
}
static void SHA3_sha3_384_inc_ctx_clone(OQS_SHA3_sha3_384_inc_ctx *dest, const OQS_SHA3_sha3_384_inc_ctx *src) {
}
static void SHA3_sha3_512_inc_ctx_release(OQS_SHA3_sha3_512_inc_ctx *state) {
- OQS_MEM_aligned_free(state->ctx);
+ OQS_MEM_aligned_secure_free(state->ctx, KECCAK_CTX_BYTES);
}
static void SHA3_sha3_512_inc_ctx_clone(OQS_SHA3_sha3_512_inc_ctx *dest, const OQS_SHA3_sha3_512_inc_ctx *src) {
}
static void SHA3_shake128_inc_ctx_release(OQS_SHA3_shake128_inc_ctx *state) {
- OQS_MEM_aligned_free(state->ctx);
+ OQS_MEM_aligned_secure_free(state->ctx, KECCAK_CTX_BYTES);
}
static void SHA3_shake128_inc_ctx_reset(OQS_SHA3_shake128_inc_ctx *state) {
}
static void SHA3_shake256_inc_ctx_release(OQS_SHA3_shake256_inc_ctx *state) {
- OQS_MEM_aligned_free(state->ctx);
+ OQS_MEM_aligned_secure_free(state->ctx, KECCAK_CTX_BYTES);
}
static void SHA3_shake256_inc_ctx_clone(OQS_SHA3_shake256_inc_ctx *dest, const OQS_SHA3_shake256_inc_ctx *src) {
}
static void SHA3_shake128_x4_inc_ctx_release(OQS_SHA3_shake128_x4_inc_ctx *state) {
- OQS_MEM_aligned_free(state->ctx);
+ OQS_MEM_aligned_secure_free(state->ctx, KECCAK_X4_CTX_BYTES);
}
static void SHA3_shake128_x4_inc_ctx_reset(OQS_SHA3_shake128_x4_inc_ctx *state) {
}
static void SHA3_shake256_x4_inc_ctx_release(OQS_SHA3_shake256_x4_inc_ctx *state) {
- OQS_MEM_aligned_free(state->ctx);
+ OQS_MEM_aligned_secure_free(state->ctx, KECCAK_X4_CTX_BYTES);
}
static void SHA3_shake256_x4_inc_ctx_reset(OQS_SHA3_shake256_x4_inc_ctx *state) {