Fix test_wc_ecc_import_raw to handle ECC_INF_E or MP_VAL on point failures. SP math returns MP_VAL in sp_256_ecc_is_point_4.

This commit is contained in:
David Garske
2022-12-08 08:59:00 -08:00
parent 85dc7a61c5
commit 52c6710783

View File

@@ -25479,9 +25479,11 @@ static int test_wc_ecc_import_raw(void)
ret = wc_ecc_init(&key);
/* Test good import */
if (ret == 0) {
ret = wc_ecc_import_raw(&key, qx, qy, d, curveName);
}
/* Test bad args. */
if (ret == 0) {
ret = wc_ecc_import_raw(NULL, qx, qy, d, curveName);
@@ -25510,14 +25512,23 @@ static int test_wc_ecc_import_raw(void)
wc_ecc_free(&key);
#endif
ret = wc_ecc_import_raw(&key, "0", qy, d, curveName);
/* Note: SP math "is point" failure returns MP_VAL */
if (ret == ECC_INF_E || ret == MP_VAL) {
ret = BAD_FUNC_ARG; /* This is expected by other tests */
}
}
if (ret == BAD_FUNC_ARG) {
#if !defined(USE_FAST_MATH) && !defined(WOLFSSL_SP_MATH)
wc_ecc_free(&key);
#endif
ret = wc_ecc_import_raw(&key, qx, "0", d, curveName);
/* Note: SP math "is point" failure returns MP_VAL */
if (ret == ECC_INF_E || ret == MP_VAL) {
ret = BAD_FUNC_ARG; /* This is expected by other tests */
}
}
#endif
if (ret == BAD_FUNC_ARG) {
ret = 0;
}