mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 02:37:28 +02:00
Merge pull request #2289 from SparkiDev/sp_prime_fix
When checking primes call only available SP ModExp functions
This commit is contained in:
@ -4443,11 +4443,20 @@ static int mp_prime_miller_rabin (mp_int * a, mp_int * b, int *result)
|
|||||||
goto LBL_R;
|
goto LBL_R;
|
||||||
}
|
}
|
||||||
#if defined(WOLFSSL_HAVE_SP_RSA) || defined(WOLFSSL_HAVE_SP_DH)
|
#if defined(WOLFSSL_HAVE_SP_RSA) || defined(WOLFSSL_HAVE_SP_DH)
|
||||||
|
#ifndef WOLFSSL_SP_NO_2048
|
||||||
if (mp_count_bits(a) == 1024)
|
if (mp_count_bits(a) == 1024)
|
||||||
err = sp_ModExp_1024(b, &r, a, &y);
|
err = sp_ModExp_1024(b, &r, a, &y);
|
||||||
else if (mp_count_bits(a) == 2048)
|
else if (mp_count_bits(a) == 2048)
|
||||||
err = sp_ModExp_2048(b, &r, a, &y);
|
err = sp_ModExp_2048(b, &r, a, &y);
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
|
#ifndef WOLFSSL_SP_NO_3072
|
||||||
|
if (mp_count_bits(a) == 1536)
|
||||||
|
err = sp_ModExp_1536(b, &r, a, &y);
|
||||||
|
else if (mp_count_bits(a) == 3072)
|
||||||
|
err = sp_ModExp_3072(b, &r, a, &y);
|
||||||
|
else
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
err = mp_exptmod (b, &r, a, &y);
|
err = mp_exptmod (b, &r, a, &y);
|
||||||
if (err != MP_OKAY)
|
if (err != MP_OKAY)
|
||||||
|
@ -3553,11 +3553,20 @@ static int fp_prime_miller_rabin_ex(fp_int * a, fp_int * b, int *result,
|
|||||||
fp_zero(y);
|
fp_zero(y);
|
||||||
#if (defined(WOLFSSL_HAVE_SP_RSA) && !defined(WOLFSSL_RSA_PUBLIC_ONLY)) || \
|
#if (defined(WOLFSSL_HAVE_SP_RSA) && !defined(WOLFSSL_RSA_PUBLIC_ONLY)) || \
|
||||||
defined(WOLFSSL_HAVE_SP_DH)
|
defined(WOLFSSL_HAVE_SP_DH)
|
||||||
|
#ifndef WOLFSSL_SP_NO_2048
|
||||||
if (fp_count_bits(a) == 1024)
|
if (fp_count_bits(a) == 1024)
|
||||||
sp_ModExp_1024(b, r, a, y);
|
sp_ModExp_1024(b, r, a, y);
|
||||||
else if (fp_count_bits(a) == 2048)
|
else if (fp_count_bits(a) == 2048)
|
||||||
sp_ModExp_2048(b, r, a, y);
|
sp_ModExp_2048(b, r, a, y);
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
|
#ifndef WOLFSSL_SP_NO_3072
|
||||||
|
if (fp_count_bits(a) == 1536)
|
||||||
|
sp_ModExp_1536(b, r, a, y);
|
||||||
|
else if (fp_count_bits(a) == 3072)
|
||||||
|
sp_ModExp_3072(b, r, a, y);
|
||||||
|
else
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
fp_exptmod(b, r, a, y);
|
fp_exptmod(b, r, a, y);
|
||||||
|
|
||||||
|
@ -40,7 +40,9 @@
|
|||||||
typedef struct WOLFSSL_BIGNUM {
|
typedef struct WOLFSSL_BIGNUM {
|
||||||
int neg; /* openssh deference */
|
int neg; /* openssh deference */
|
||||||
void *internal; /* our big num */
|
void *internal; /* our big num */
|
||||||
#if defined(USE_FAST_MATH) && !defined(HAVE_WOLF_BIGINT)
|
#ifdef WOLFSSL_SP_MATH
|
||||||
|
sp_int fp;
|
||||||
|
#elif defined(USE_FAST_MATH) && !defined(HAVE_WOLF_BIGINT)
|
||||||
fp_int fp;
|
fp_int fp;
|
||||||
#endif
|
#endif
|
||||||
} WOLFSSL_BIGNUM;
|
} WOLFSSL_BIGNUM;
|
||||||
|
Reference in New Issue
Block a user