forked from wolfSSL/wolfssl
Merge pull request #3799 from SparkiDev/sp_gcd_protect
SP int: fix guard around sp_gcm and sp_lcm
This commit is contained in:
@ -13230,8 +13230,7 @@ int sp_prime_is_prime_ex(sp_int* a, int t, int* result, WC_RNG* rng)
|
||||
}
|
||||
#endif /* WOLFSSL_SP_MATH_ALL || WOLFSSL_HAVE_SP_DH */
|
||||
|
||||
#if (defined(WOLFSSL_SP_MATH_ALL) && !defined(WOLFSSL_RSA_VERIFY_ONLY)) || \
|
||||
defined(WOLFSSL_HAVE_SP_DH) || (defined(HAVE_ECC) && defined(FP_ECC))
|
||||
#if defined(WOLFSSL_SP_MATH_ALL) && !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
|
||||
|
||||
/* Calculates the Greatest Common Denominator (GCD) of a and b into r.
|
||||
*
|
||||
@ -13337,10 +13336,9 @@ int sp_gcd(sp_int* a, sp_int* b, sp_int* r)
|
||||
return err;
|
||||
}
|
||||
|
||||
#endif /* (WOLFSSL_SP_MATH_ALL && !WOLFSSL_SP_RSA_VERIFY_ONLY) ||
|
||||
* WOLFSSL_HAVE_SP_DH || (HAVE_ECC && FP_ECC) */
|
||||
#endif /* WOLFSSL_SP_MATH_ALL && !NO_RSA && WOLFSSL_KEY_GEN */
|
||||
|
||||
#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
|
||||
#if defined(WOLFSSL_SP_MATH_ALL) && !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
|
||||
|
||||
/* Calculates the Lowest Common Multiple (LCM) of a and b and stores in r.
|
||||
*
|
||||
@ -13393,7 +13391,7 @@ int sp_lcm(sp_int* a, sp_int* b, sp_int* r)
|
||||
return err;
|
||||
}
|
||||
|
||||
#endif /* !NO_RSA && WOLFSSL_KEY_GEN */
|
||||
#endif /* WOLFSSL_SP_MATH_ALL && !NO_RSA && WOLFSSL_KEY_GEN */
|
||||
|
||||
/* Returns the run time settings.
|
||||
*
|
||||
|
@ -31714,8 +31714,7 @@ static int mp_test_param(mp_int* a, mp_int* b, mp_int* r, WC_RNG* rng)
|
||||
return -12827;
|
||||
#endif
|
||||
|
||||
#if defined(WOLFSSL_SP_MATH_ALL) || defined(WOLFSSL_HAVE_SP_DH) || \
|
||||
(defined(HAVE_ECC) && defined(FP_ECC))
|
||||
#if defined(WOLFSSL_SP_MATH_ALL) && !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
|
||||
ret = mp_gcd(NULL, NULL, NULL);
|
||||
if (ret != MP_VAL)
|
||||
return -12828;
|
||||
@ -31822,7 +31821,7 @@ static int mp_test_param(mp_int* a, mp_int* b, mp_int* r, WC_RNG* rng)
|
||||
return -12858;
|
||||
#endif
|
||||
|
||||
#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
|
||||
#if defined(WOLFSSL_SP_MATH_ALL) && !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
|
||||
ret = mp_lcm(NULL, NULL, NULL);
|
||||
if (ret != MP_VAL)
|
||||
return -12859;
|
||||
@ -32651,23 +32650,20 @@ static int mp_test_prime(mp_int* a, WC_RNG* rng)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(WOLFSSL_SP_MATH_ALL) || defined(WOLFSSL_SP_MATH) || \
|
||||
defined(WOLFSSL_KEY_GEN)
|
||||
#if defined(WOLFSSL_KEY_GEN) && (!defined(WOLFSSL_SP_MATH_ALL) || \
|
||||
!defined(NO_RSA))
|
||||
static int mp_test_lcm_gcd(mp_int* a, mp_int* b, mp_int* r, mp_int* exp,
|
||||
WC_RNG* rng)
|
||||
{
|
||||
int ret;
|
||||
#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
|
||||
int i;
|
||||
WOLFSSL_SMALL_STACK_STATIC const int kat[][3] = {
|
||||
{ 1, 1, 1 }, { 2, 1, 2 }, { 1, 2, 2 }, { 2, 4, 4 }, { 4, 2, 4 },
|
||||
{ 12, 56, 168 }, { 56, 12, 168 }
|
||||
};
|
||||
#endif
|
||||
|
||||
(void)exp;
|
||||
|
||||
#if !defined(NO_RSA) && defined(WOLFSSL_KEY_GEN)
|
||||
mp_set(a, 0);
|
||||
mp_set(b, 1);
|
||||
ret = mp_lcm(a, a, r);
|
||||
@ -32690,7 +32686,6 @@ static int mp_test_lcm_gcd(mp_int* a, mp_int* b, mp_int* r, mp_int* exp,
|
||||
if (mp_cmp(r, exp) != MP_EQ)
|
||||
return -13094;
|
||||
}
|
||||
#endif
|
||||
|
||||
(void)rng;
|
||||
#if defined(WOLFSSL_KEY_GEN) && (!defined(NO_DH) || !defined(NO_DSA)) && \
|
||||
@ -33387,8 +33382,8 @@ WOLFSSL_TEST_SUBROUTINE int mp_test(void)
|
||||
if ((ret = mp_test_prime(&a, &rng)) != 0)
|
||||
return ret;
|
||||
#endif
|
||||
#if defined(WOLFSSL_SP_MATH_ALL) || (defined(WOLFSSL_SP_MATH) && \
|
||||
defined(WOLFSSL_HAVE_SP_DH)) || defined(WOLFSSL_KEY_GEN)
|
||||
#if defined(WOLFSSL_KEY_GEN) && (!defined(WOLFSSL_SP_MATH_ALL) || \
|
||||
!defined(NO_RSA))
|
||||
if ((ret = mp_test_lcm_gcd(&a, &b, &r1, &r2, &rng)) != 0)
|
||||
return ret;
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user