diff --git a/pico-keys-sdk b/pico-keys-sdk index 92b8c64..9cb83e3 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit 92b8c644d85c73ceb0571da167e048cdbd608a71 +Subproject commit 9cb83e3abc3321b57f5d1d7ee3af565a9ee33fd5 diff --git a/src/fido/cbor_vendor.c b/src/fido/cbor_vendor.c index f25450f..c5856f3 100644 --- a/src/fido/cbor_vendor.c +++ b/src/fido/cbor_vendor.c @@ -217,7 +217,7 @@ static int cbor_vendor_generic(uint8_t cmd, const uint8_t *data, size_t len) { mbedtls_ecdsa_free(&ekey); CBOR_ERROR(CTAP2_ERR_PROCESSING); } - ret = mbedtls_ecp_mul(&ekey.grp, &ekey.Q, &ekey.d, &ekey.grp.G, random_fill_iterator, NULL); + ret = mbedtls_ecp_keypair_calc_public(&ekey, random_fill_iterator, NULL); if (ret != 0) { mbedtls_ecdsa_free(&ekey); CBOR_ERROR(CTAP2_ERR_PROCESSING); diff --git a/src/fido/fido.c b/src/fido/fido.c index 78b28a9..0b000d0 100644 --- a/src/fido/fido.c +++ b/src/fido/fido.c @@ -349,12 +349,7 @@ int derive_key(const uint8_t *app_id, bool new_key, uint8_t *key_handle, int cur if (r != 0) { return r; } -#ifdef MBEDTLS_EDDSA_C - if (curve == MBEDTLS_ECP_DP_ED25519) { - return mbedtls_ecp_point_edwards(&key->grp, &key->Q, &key->d, random_fill_iterator, NULL); - } -#endif - return mbedtls_ecp_mul(&key->grp, &key->Q, &key->d, &key->grp.G, random_fill_iterator, NULL); + return mbedtls_ecp_keypair_calc_public(key, random_fill_iterator, NULL); } mbedtls_platform_zeroize(outk, sizeof(outk)); return r; @@ -426,7 +421,7 @@ int scan_files_fido(void) { mbedtls_ecdsa_free(&key); return ret; } - ret = mbedtls_ecp_mul(&key.grp, &key.Q, &key.d, &key.grp.G, random_fill_iterator, NULL); + ret = mbedtls_ecp_keypair_calc_public(&key, random_fill_iterator, NULL); if (ret != 0) { mbedtls_ecdsa_free(&key); return ret;