From f1209367d952c2e34b5e31801e7dc6a96df62c5c Mon Sep 17 00:00:00 2001 From: David Garske Date: Mon, 26 Jul 2021 09:54:23 -0700 Subject: [PATCH] Peer review fix for undef. Cleanup `wc_ecc_check_key` return code. --- wolfcrypt/src/ecc.c | 32 +++++++++++++++++--------------- wolfssl/wolfcrypt/types.h | 1 - 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/wolfcrypt/src/ecc.c b/wolfcrypt/src/ecc.c index 18e96e5ec..b12e06891 100644 --- a/wolfcrypt/src/ecc.c +++ b/wolfcrypt/src/ecc.c @@ -8186,20 +8186,21 @@ int wc_ecc_get_generator(ecc_point* ecp, int curve_idx) /* perform sanity checks on ecc key validity, 0 on success */ int wc_ecc_check_key(ecc_key* key) { -#ifndef WOLFSSL_SP_MATH int err = MP_OKAY; +#ifndef WOLFSSL_SP_MATH #if !defined(WOLFSSL_ATECC508A) && !defined(WOLFSSL_ATECC608A) && \ - !defined(WOLFSSL_CRYPTOCELL) + !defined(WOLFSSL_CRYPTOCELL) && !defined(WOLFSSL_SILABS_SE_ACCEL) mp_int* b = NULL; -#ifdef USE_ECC_B_PARAM - DECLARE_CURVE_SPECS(curve, 4); -#else -#ifndef WOLFSSL_SMALL_STACK - mp_int b_lcl; -#endif - DECLARE_CURVE_SPECS(curve, 3); -#endif /* USE_ECC_B_PARAM */ -#endif /* WOLFSSL_ATECC508A */ + #ifdef USE_ECC_B_PARAM + DECLARE_CURVE_SPECS(curve, 4); + #else + #ifndef WOLFSSL_SMALL_STACK + mp_int b_lcl; + #endif + DECLARE_CURVE_SPECS(curve, 3); + #endif /* USE_ECC_B_PARAM */ +#endif /* !WOLFSSL_ATECC508A && !WOLFSSL_ATECC608A && + !WOLFSSL_CRYPTOCELL && !WOLFSSL_SILABS_SE_ACCEL */ #endif /* !WOLFSSL_SP_MATH */ if (key == NULL) @@ -8230,8 +8231,9 @@ int wc_ecc_check_key(ecc_key* key) #if defined(WOLFSSL_ATECC508A) || defined(WOLFSSL_ATECC608A) || \ defined(WOLFSSL_CRYPTOCELL) || defined(WOLFSSL_SILABS_SE_ACCEL) - err = 0; /* consider key check success on ATECC508/608A and CryptoCell */ - (void)err; + /* consider key check success on HW crypto + * ex: ATECC508/608A, CryptoCell and Silabs */ + err = MP_OKAY; #else #ifdef USE_ECC_B_PARAM @@ -8340,10 +8342,10 @@ int wc_ecc_check_key(ecc_key* key) FREE_CURVE_SPECS(); #endif /* WOLFSSL_ATECC508A */ - return err; #else - return WC_KEY_SIZE_E; + err = WC_KEY_SIZE_E; #endif /* !WOLFSSL_SP_MATH */ + return err; } #ifdef HAVE_ECC_KEY_IMPORT diff --git a/wolfssl/wolfcrypt/types.h b/wolfssl/wolfcrypt/types.h index 9a18a2704..bd15c9f9f 100644 --- a/wolfssl/wolfcrypt/types.h +++ b/wolfssl/wolfcrypt/types.h @@ -304,7 +304,6 @@ decouple library dependencies with standard string, memory and so on. #endif /* FALL_THROUGH */ #if !defined(FALL_THROUGH) || defined(__XC32) /* use stub for fall through by default or for Microchip compiler */ - #undef FALL_THROUGH #define FALL_THROUGH #endif