/* * Local mlkem-native configuration for the ML-KEM hardware comparison test. * * The target bare-metal toolchain does not expose one of mlkem-native's * built-in secure zeroization backends once assembly is disabled, so provide a * small volatile-byte zeroizer here. */ #ifndef SW_MLKEM_CONFIG_H #define SW_MLKEM_CONFIG_H #include "mlkem_native_config.h" #define MLK_CONFIG_CUSTOM_ZEROIZE #define MLK_CONFIG_CUSTOM_ALLOC_FREE #if !defined(__ASSEMBLER__) #include #include #include "src/sys.h" #include "sw_mlkem_alloc.h" #define MLK_CUSTOM_ALLOC(v, T, N) \ T *(v) = (T *)sw_mlkem_alloc(sizeof(T) * (N)) #define MLK_CUSTOM_FREE(v, T, N) \ sw_mlkem_free((void *)(v), sizeof(T) * (N)) static MLK_INLINE void mlk_zeroize(void *ptr, size_t len) { volatile uint8_t *p = (volatile uint8_t *)ptr; while (len-- != 0u) *p++ = 0u; } #endif #endif