Merge pull request #3727 from JacobBarthelmeh/Prime

check prime is prime with ecc compressed keys
pull/3703/head
Sean Parkinson 2021-02-11 09:22:40 +10:00 committed by GitHub
commit 7efaf14fce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 22 additions and 0 deletions

View File

@ -6934,6 +6934,17 @@ int wc_ecc_import_point_der_ex(byte* in, word32 inLen, const int curve_idx,
(ECC_CURVE_FIELD_PRIME | ECC_CURVE_FIELD_AF | (ECC_CURVE_FIELD_PRIME | ECC_CURVE_FIELD_AF |
ECC_CURVE_FIELD_BF)); ECC_CURVE_FIELD_BF));
#if defined(WOLFSSL_CUSTOM_CURVES) && \
defined(WOLFSSL_VALIDATE_ECC_IMPORT)
/* validate prime is prime for custom curves */
if (err == MP_OKAY && curve_idx == ECC_CUSTOM_IDX) {
int isPrime = MP_NO;
err = mp_prime_is_prime(curve->prime, 8, &isPrime);
if (err == MP_OKAY && isPrime == MP_NO)
err = MP_VAL;
}
#endif
/* compute x^3 */ /* compute x^3 */
if (err == MP_OKAY) if (err == MP_OKAY)
err = mp_sqr(point->x, &t1); err = mp_sqr(point->x, &t1);
@ -7831,6 +7842,17 @@ int wc_ecc_import_x963_ex(const byte* in, word32 inLen, ecc_key* key,
(ECC_CURVE_FIELD_PRIME | ECC_CURVE_FIELD_AF | (ECC_CURVE_FIELD_PRIME | ECC_CURVE_FIELD_AF |
ECC_CURVE_FIELD_BF)); ECC_CURVE_FIELD_BF));
#if defined(WOLFSSL_CUSTOM_CURVES) && \
defined(WOLFSSL_VALIDATE_ECC_IMPORT)
/* validate prime is prime for custom curves */
if (err == MP_OKAY && key->idx == ECC_CUSTOM_IDX) {
int isPrime = MP_NO;
err = mp_prime_is_prime(curve->prime, 8, &isPrime);
if (err == MP_OKAY && isPrime == MP_NO)
err = MP_VAL;
}
#endif
/* compute x^3 */ /* compute x^3 */
if (err == MP_OKAY) if (err == MP_OKAY)
err = mp_sqr(key->pubkey.x, &t1); err = mp_sqr(key->pubkey.x, &t1);