Sanity check on elliptic curve keys: check that the group is known
diff --git a/programs/fuzz/fuzz_privkey.c b/programs/fuzz/fuzz_privkey.c
index 178d17b..8f1295e 100644
--- a/programs/fuzz/fuzz_privkey.c
+++ b/programs/fuzz/fuzz_privkey.c
@@ -46,12 +46,15 @@
#if defined(MBEDTLS_ECP_C)
if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_ECKEY )
{
- mbedtls_ecp_keypair *ecp;
+ mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( pk );
+ mbedtls_ecp_group_id grp_id = ecp->grp.id;
+ const mbedtls_ecp_curve_info *curve_info =
+ mbedtls_ecp_curve_info_from_grp_id( grp_id );
- ecp = mbedtls_pk_ec( pk );
- if (ecp) {
- ret = 0;
- }
+ /* If the curve is not supported, the key should not have been
+ * accepted. */
+ if( curve_info == NULL )
+ abort( );
}
else
#endif