diff --git a/wolfcrypt/src/ecc.c b/wolfcrypt/src/ecc.c index 0e4dac739..b632492c7 100644 --- a/wolfcrypt/src/ecc.c +++ b/wolfcrypt/src/ecc.c @@ -10865,7 +10865,7 @@ static int wc_ecc_import_raw_private(ecc_key* key, const char* qx, #endif #if defined(WOLFSSL_ATECC508A) || defined(WOLFSSL_ATECC608A) || \ - defined(WOLFSSL_SILABS_SE_ACCEL) || defined(WOLFSSL_CRYPTOCELL) + defined(WOLFSSL_CRYPTOCELL) word32 keySz = 0; #endif @@ -11116,7 +11116,7 @@ static int wc_ecc_import_raw_private(ecc_key* key, const char* qx, } #elif defined(WOLFSSL_SILABS_SE_ACCEL) if (err == MP_OKAY) { - err = silabs_ecc_import(key, keySz, 1, (d != NULL)); + err = silabs_ecc_import(key, key->dp->size, 1, (d != NULL)); } #endif diff --git a/wolfcrypt/src/port/silabs/silabs_ecc.c b/wolfcrypt/src/port/silabs/silabs_ecc.c index 669e2dd4e..829024e09 100644 --- a/wolfcrypt/src/port/silabs/silabs_ecc.c +++ b/wolfcrypt/src/port/silabs/silabs_ecc.c @@ -206,7 +206,7 @@ int silabs_ecc_import(ecc_key* key, word32 keysize, int pub, int priv) word32 used; key->key.type = silabs_map_key_type(key->dp->id); - if (key->key.type == SILABS_UNSUPPORTED_KEY_TYPE) + if (key->key.type == SILABS_UNSUPPORTED_KEY_TYPE || keysize == 0) return WC_HW_E; key->key.size = keysize;