From 96fe356dd8658e5433a1d15606546e62a024bae2 Mon Sep 17 00:00:00 2001 From: Sean Parkinson Date: Wed, 13 Jul 2022 09:26:34 +1000 Subject: [PATCH] SP math Enable ForceZero for SP math and all RSA. Disable use of 128-bit type in SP unless WOLFSSL_UINT128_T_DEFINED is defined. --- wolfcrypt/src/sp_int.c | 2 +- wolfssl/wolfcrypt/settings.h | 3 +-- wolfssl/wolfcrypt/sp_int.h | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/wolfcrypt/src/sp_int.c b/wolfcrypt/src/sp_int.c index 8fb3ca04a..1f025abfa 100644 --- a/wolfcrypt/src/sp_int.c +++ b/wolfcrypt/src/sp_int.c @@ -4538,7 +4538,7 @@ void sp_clear(sp_int* a) } } -#if !defined(WOLFSSL_RSA_PUBLIC_ONLY) || !defined(NO_DH) || defined(HAVE_ECC) +#if !defined(NO_RSA) || !defined(NO_DH) || defined(HAVE_ECC) || !defined(NO_DSA) /* Ensure the data in the multi-precision number is zeroed. * * Use when security sensitive data needs to be wiped. diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index 47ba4a3e6..69b898cf7 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -2573,8 +2573,7 @@ extern void uITRON4_free(void *p) ; #if defined(WOLFCRYPT_ONLY) && defined(NO_AES) && !defined(WOLFSSL_SHA384) && \ !defined(WOLFSSL_SHA512) && defined(WC_NO_RNG) && \ - (defined(WOLFSSL_SP_MATH) || defined(WOLFSSL_SP_MATH_ALL)) && \ - defined(WOLFSSL_RSA_PUBLIC_ONLY) + !defined(WOLFSSL_SP_MATH) && !defined(WOLFSSL_SP_MATH_ALL) #undef WOLFSSL_NO_FORCE_ZERO #define WOLFSSL_NO_FORCE_ZERO #endif diff --git a/wolfssl/wolfcrypt/sp_int.h b/wolfssl/wolfcrypt/sp_int.h index 4b0eeb47d..b61336a42 100644 --- a/wolfssl/wolfcrypt/sp_int.h +++ b/wolfssl/wolfcrypt/sp_int.h @@ -268,7 +268,7 @@ extern "C" { typedef sp_uint64 sp_int_digit; typedef sp_int64 sp_sint_digit; #if (defined(WOLFSSL_SP_MATH) || defined(WOLFSSL_SP_MATH_ALL)) && \ - !defined(_WIN64) + !defined(_WIN64) && defined(WOLFSSL_UINT128_T_DEFINED) typedef sp_uint128 sp_int_word; typedef sp_int128 sp_int_sword; #endif