M487: Fix ECP P + P operation

Engine doesn't support P + Q when P and Q are the same. Workaround by 2*P
pull/15289/head
Chun-Chieh Li 2022-05-24 17:35:30 +08:00
parent 3adb735d3e
commit b402c97136
1 changed files with 5 additions and 0 deletions

View File

@ -502,6 +502,11 @@ NU_STATIC int internal_run_eccop(const mbedtls_ecp_group *grp,
return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
}
/* NOTE: Engine doesn't support P + Q when P and Q are the same. Workaround by 2*P */
if (mbedtls_ecp_point_cmp(P, Q) == 0) {
return internal_run_eccop(grp, R, NULL, P, NULL, NULL, ECCOP_POINT_DOUBLE);
}
int ret;
bool ecc_done;