From a035b045a43395ab93fe42fe1fbee295fbbe5d75 Mon Sep 17 00:00:00 2001 From: Kareem Date: Thu, 12 Jun 2025 13:06:15 -0700 Subject: [PATCH] Only run SRP tests with at least 3072 bits. The SRP buffers are 192 bytes, so they need a minimum of 3072 bits. If the bit size is too low, wc_SrpGetVerifier will return MP_VAL as the buffers won't fit. --- wolfcrypt/test/test.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index 2aa67a4c0..28ab43e4d 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -2217,7 +2217,8 @@ options: [-s max_relative_stack_bytes] [-m max_relative_heap_memory_bytes]\n\ TEST_PASS("DSA test passed!\n"); #endif -#ifdef WOLFCRYPT_HAVE_SRP +#if defined(WOLFCRYPT_HAVE_SRP) && ((defined(FP_MAX_BITS) && (FP_MAX_BITS >= 3072)) \ + || (defined(SP_INT_BITS) && (SP_INT_BITS >= 3072))) if ( (ret = srp_test()) != 0) TEST_FAIL("SRP test failed!\n", ret); else @@ -24151,8 +24152,8 @@ out: #endif /* !NO_DSA */ -#ifdef WOLFCRYPT_HAVE_SRP - +#if defined(WOLFCRYPT_HAVE_SRP) && ((defined(FP_MAX_BITS) && (FP_MAX_BITS >= 3072)) \ + || (defined(SP_INT_BITS) && (SP_INT_BITS >= 3072))) static wc_test_ret_t generate_random_salt(byte *buf, word32 size) { wc_test_ret_t ret = WC_TEST_RET_ENC_NC; @@ -24340,7 +24341,9 @@ WOLFSSL_TEST_SUBROUTINE wc_test_ret_t srp_test(void) return ret; } -#endif /* WOLFCRYPT_HAVE_SRP */ +#endif +/* WOLFCRYPT_HAVE_SRP && ((FP_MAX_BITS && (FP_MAX_BITS >= 3072)) + || (SP_INT_BITS && (SP_INT_BITS >= 3072))) */ #if defined(OPENSSL_EXTRA) && !defined(WOLFCRYPT_ONLY)