Fixes for running wolfCrypt test/benchmark with SECP256R1 disabled. Improved detection of ECC key generation size.

This commit is contained in:
David Garske
2020-07-28 11:43:48 -07:00
parent 13eab0aeab
commit 9160a126e4
2 changed files with 30 additions and 10 deletions

View File

@@ -5195,9 +5195,17 @@ void bench_ntruKeyGen(void)
#ifdef HAVE_ECC
/* Default to testing P-256 */
/* Detect ECC key size to use */
#ifndef BENCH_ECC_SIZE
#define BENCH_ECC_SIZE 32
#ifndef NO_ECC256
#define BENCH_ECC_SIZE 32
#elif defined(HAVE_ECC384)
#define BENCH_ECC_SIZE 48
#elif defined(HAVE_ECC224)
#define BENCH_ECC_SIZE 28
#else
#error No ECC keygen size defined for benchmark
#endif
#endif
static int bench_ecc_size = BENCH_ECC_SIZE;

View File

@@ -344,7 +344,7 @@ int scrypt_test(void);
int ecc_encrypt_test(void);
#endif
#if defined(USE_CERT_BUFFERS_256) && !defined(WOLFSSL_ATECC508A) && \
!defined(WOLFSSL_ATECC608A)
!defined(WOLFSSL_ATECC608A) && !defined(NO_ECC256)
/* skip for ATECC508/608A, cannot import private key buffers */
int ecc_test_buffers(void);
#endif
@@ -1016,7 +1016,7 @@ initDefaultName();
test_pass("ECC Enc test passed!\n");
#endif
#if defined(USE_CERT_BUFFERS_256) && !defined(WOLFSSL_ATECC508A) && \
!defined(WOLFSSL_ATECC608A)
!defined(WOLFSSL_ATECC608A) && !defined(NO_ECC256)
/* skip for ATECC508/608A, cannot import private key buffers */
if ( (ret = ecc_test_buffers()) != 0)
return err_sys("ECC buffer test failed!\n", ret);
@@ -17768,9 +17768,17 @@ int x963kdf_test(void)
#ifdef HAVE_ECC
/* size to use for ECC key gen tests */
#ifndef ECC_KEYGEN_SIZE
/* size to use for ECC key gen tests */
#define ECC_KEYGEN_SIZE 32
#ifndef NO_ECC256
#define ECC_KEYGEN_SIZE 32
#elif defined(HAVE_ECC384)
#define ECC_KEYGEN_SIZE 48
#elif defined(HAVE_ECC224)
#define ECC_KEYGEN_SIZE 28
#else
#error No ECC keygen size defined for test
#endif
#endif
#ifdef BENCH_EMBEDDED
#define ECC_SHARED_SIZE 128
@@ -18288,6 +18296,7 @@ static int ecc_test_make_pub(WC_RNG* rng)
wc_ecc_init_ex(&key, HEAP_HINT, devId);
#ifndef NO_ECC256
#ifdef USE_CERT_BUFFERS_256
XMEMCPY(tmp, ecc_key_der_256, (size_t)sizeof_ecc_key_der_256);
tmpSz = (size_t)sizeof_ecc_key_der_256;
@@ -18367,13 +18376,16 @@ static int ecc_test_make_pub(WC_RNG* rng)
ERROR_OUT(-9627, done);
}
#endif /* HAVE_ECC_KEY_EXPORT */
#if defined(WOLFSSL_CRYPTOCELL)
/* create a new key since building private key from public key is unsupported */
#endif /* !NO_ECC256 */
/* create a new key since above test for loading key is not supported */
#if defined(WOLFSSL_CRYPTOCELL) || defined(NO_ECC256)
ret = wc_ecc_make_key(rng, ECC_KEYGEN_SIZE, &key);
if (ret != 0) {
ERROR_OUT(-9628, done);
}
#endif
#ifdef HAVE_ECC_SIGN
tmpSz = sizeof(tmp);
ret = 0;
@@ -20812,7 +20824,7 @@ done:
#endif /* HAVE_ECC_ENCRYPT */
#if defined(USE_CERT_BUFFERS_256) && !defined(WOLFSSL_ATECC508A) && \
!defined(WOLFSSL_ATECC608A)
!defined(WOLFSSL_ATECC608A) && !defined(NO_ECC256)
int ecc_test_buffers(void) {
size_t bytes;
ecc_key cliKey;
@@ -20924,7 +20936,7 @@ int ecc_test_buffers(void) {
return 0;
}
#endif /* USE_CERT_BUFFERS_256 */
#endif /* USE_CERT_BUFFERS_256 && !WOLFSSL_ATECCX08A && !NO_ECC256 */
#endif /* HAVE_ECC */