From 155e5822a73dc19b41d4922813f7c840b093bbe6 Mon Sep 17 00:00:00 2001 From: Daniel Pouzzner Date: Mon, 29 Jun 2026 19:06:13 -0500 Subject: [PATCH] wolfssl/wolfcrypt/settings.h: move ML-KEM/ML-DSA/SLH-DSA inhibition of DEBUG_VECTOR_REGISTER_ACCESS_FUZZING from the WOLFSSL_LINUXKM section to top level (the exceptions are generally applicable, and needed for user-mode SVR fuzzing). also add a DEBUG_FORCE_VECTOR_REGISTER_ACCESS_FUZZING flag. --- .wolfssl_known_macro_extras | 1 + wolfssl/wolfcrypt/settings.h | 20 +++++++++----------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/.wolfssl_known_macro_extras b/.wolfssl_known_macro_extras index f1e8684b39..e3b3392fec 100644 --- a/.wolfssl_known_macro_extras +++ b/.wolfssl_known_macro_extras @@ -214,6 +214,7 @@ CURVED448_SMALL CUSTOM_ENTROPY_TIMEHIRES CY_USING_HAL DCP_USE_DCACHE +DEBUG_FORCE_VECTOR_REGISTER_ACCESS_FUZZING DILITHIUM_MUL_11_SLOW DILITHIUM_MUL_44_SLOW DILITHIUM_MUL_QINV_SLOW diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index 8beccaa3db..e3a3b884a4 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -4040,17 +4040,6 @@ #define WOLFSSL_AARCH64_PRIVILEGE_MODE #endif - /* SHA-3 low level state can't alternate freely between C and intelasm. */ - #ifdef _WC_BUILDING_WC_MLKEM_POLY_C - #undef DEBUG_VECTOR_REGISTER_ACCESS_FUZZING - #endif - #ifdef _WC_BUILDING_WC_MLDSA_C - #undef DEBUG_VECTOR_REGISTER_ACCESS_FUZZING - #endif - #ifdef _WC_BUILDING_WC_SLHDSA_C - #undef DEBUG_VECTOR_REGISTER_ACCESS_FUZZING - #endif - #ifndef WC_SIPHASH_NO_ASM /* siphash asm produces wrong results in kernel mode. */ #define WC_SIPHASH_NO_ASM @@ -4235,6 +4224,15 @@ #endif #endif +/* SHA-3 low level state can't alternate freely between C and intelasm. */ +#if (defined(_WC_BUILDING_WC_MLKEM_POLY_C) || \ + defined(_WC_BUILDING_WC_MLDSA_C) || \ + defined(_WC_BUILDING_WC_SLHDSA_C)) && \ + defined(DEBUG_VECTOR_REGISTER_ACCESS_FUZZING) && \ + !defined(DEBUG_FORCE_VECTOR_REGISTER_ACCESS_FUZZING) + #undef DEBUG_VECTOR_REGISTER_ACCESS_FUZZING +#endif + /* Make sure setting OPENSSL_ALL also sets OPENSSL_EXTRA. */ #if defined(OPENSSL_ALL) && !defined(OPENSSL_EXTRA) #define OPENSSL_EXTRA