diff --git a/.wolfssl_known_macro_extras b/.wolfssl_known_macro_extras index 6c06931b990..a6ec217fd40 100644 --- a/.wolfssl_known_macro_extras +++ b/.wolfssl_known_macro_extras @@ -638,7 +638,6 @@ WC_DILITHIUM_FIXED_ARRAY WC_DISABLE_RADIX_ZERO_PAD WC_FLAG_DONT_USE_AESNI WC_FORCE_LINUXKM_FORTIFY_SOURCE -WC_LMS_FULL_HASH WC_NO_ASYNC_SLEEP WC_NO_RNG_SIMPLE WC_NO_STATIC_ASSERT @@ -658,7 +657,6 @@ WC_SSIZE_TYPE WC_STRICT_SIG WC_USE_PIE_FENCEPOSTS_FOR_FIPS WC_WANT_FLAG_DONT_USE_VECTOR_OPS -WC_XMSS_FULL_HASH WIFIESPAT WIFI_101 WIFI_AVAILABLE diff --git a/wolfssl/wolfcrypt/wc_lms.h b/wolfssl/wolfcrypt/wc_lms.h index 8726a7b4cb5..914ffa13712 100644 --- a/wolfssl/wolfcrypt/wc_lms.h +++ b/wolfssl/wolfcrypt/wc_lms.h @@ -95,6 +95,12 @@ #include #include +/* When raw hash access APIs are disabled or unavailable (WOLFSSL_NO_HASH_RAW), + * fall back to using the full hash API calls. */ +#if defined(WOLFSSL_NO_HASH_RAW) && !defined(WC_LMS_FULL_HASH) + #define WC_LMS_FULL_HASH +#endif + #ifdef WOLFSSL_LMS_MAX_LEVELS /* Maximum number of levels of trees supported by implementation. */ #define LMS_MAX_LEVELS WOLFSSL_LMS_MAX_LEVELS diff --git a/wolfssl/wolfcrypt/wc_xmss.h b/wolfssl/wolfcrypt/wc_xmss.h index db7ba441676..200cd4322ef 100644 --- a/wolfssl/wolfcrypt/wc_xmss.h +++ b/wolfssl/wolfcrypt/wc_xmss.h @@ -34,6 +34,12 @@ #include #include +/* When raw hash access APIs are disabled or unavailable (WOLFSSL_NO_HASH_RAW), + * fall back to using the full hash API calls. */ +#if defined(WOLFSSL_NO_HASH_RAW) && !defined(WC_XMSS_FULL_HASH) + #define WC_XMSS_FULL_HASH +#endif + #if !defined(WOLFSSL_WC_XMSS) #error "This code is incompatible with external implementation of XMSS." #endif