From 79abae8c3d438aad33c7d54f10eb37a5f82b2f39 Mon Sep 17 00:00:00 2001 From: jordan Date: Wed, 3 Apr 2024 12:16:03 -0500 Subject: [PATCH 1/3] Only require WOLFSSL_W64_WRAPPER if WOLFSSL_XMSS_MAX_HEIGHT greater than 32. --- wolfssl/wolfcrypt/settings.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index bc544c70b..89c1a76fc 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -3312,7 +3312,8 @@ extern void uITRON4_free(void *p) ; /* (D)TLS v1.3 requires 64-bit number wrappers as does XMSS and LMS. */ #if defined(WOLFSSL_TLS13) || defined(WOLFSSL_DTLS_DROP_STATS) || \ - defined(WOLFSSL_WC_XMSS) || defined(WOLFSSL_WC_LMS) + (defined(WOLFSSL_WC_XMSS) && (!defined(WOLFSSL_XMSS_MAX_HEIGHT) || \ + WOLFSSL_XMSS_MAX_HEIGHT > 32)) || defined(WOLFSSL_WC_LMS) #undef WOLFSSL_W64_WRAPPER #define WOLFSSL_W64_WRAPPER #endif From 0c22f1f048dd58dcd5cfc1e2d11e8612c1ecdc0b Mon Sep 17 00:00:00 2001 From: jordan Date: Wed, 3 Apr 2024 14:52:05 -0500 Subject: [PATCH 2/3] wc_xmss_impl requires misc.c functions. --- wolfssl/wolfcrypt/settings.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index 89c1a76fc..56cab6486 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -3318,6 +3318,12 @@ extern void uITRON4_free(void *p) ; #define WOLFSSL_W64_WRAPPER #endif +/* wc_xmss_impl requires these misc.c functions. */ +#ifdef WOLFSSL_WC_XMSS + #undef WOLFSSL_NO_INT_ENCODE + #undef WOLFSSL_NO_INT_DECODE +#endif + /* DTLS v1.3 requires AES ECB if using AES */ #if defined(WOLFSSL_DTLS13) && !defined(NO_AES) && \ !defined(WOLFSSL_AES_DIRECT) From 6ae99485a1e94f2f595b809c4ea331593d0037fc Mon Sep 17 00:00:00 2001 From: jordan Date: Fri, 12 Apr 2024 10:51:55 -0500 Subject: [PATCH 3/3] Additional changes to support wolfboot wc_lms. --- wolfssl/wolfcrypt/settings.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index 56cab6486..5a6c7da6b 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -3313,13 +3313,14 @@ extern void uITRON4_free(void *p) ; /* (D)TLS v1.3 requires 64-bit number wrappers as does XMSS and LMS. */ #if defined(WOLFSSL_TLS13) || defined(WOLFSSL_DTLS_DROP_STATS) || \ (defined(WOLFSSL_WC_XMSS) && (!defined(WOLFSSL_XMSS_MAX_HEIGHT) || \ - WOLFSSL_XMSS_MAX_HEIGHT > 32)) || defined(WOLFSSL_WC_LMS) + WOLFSSL_XMSS_MAX_HEIGHT > 32)) || (defined(WOLFSSL_WC_LMS) && \ + !defined(WOLFSSL_LMS_VERIFY_ONLY)) #undef WOLFSSL_W64_WRAPPER #define WOLFSSL_W64_WRAPPER #endif -/* wc_xmss_impl requires these misc.c functions. */ -#ifdef WOLFSSL_WC_XMSS +/* wc_xmss and wc_lms require these misc.c functions. */ +#if defined(WOLFSSL_WC_XMSS) || defined(WOLFSSL_WC_LMS) #undef WOLFSSL_NO_INT_ENCODE #undef WOLFSSL_NO_INT_DECODE #endif