Parse private key in uecc format
Parse the private key from cert in uecc format.
Accept only P-256 curve.
diff --git a/library/oid.c b/library/oid.c
index 3119c57..dd73cf0 100644
--- a/library/oid.c
+++ b/library/oid.c
@@ -467,6 +467,12 @@
FN_OID_GET_ATTR1(mbedtls_oid_get_pk_alg, oid_pk_alg_t, pk_alg, mbedtls_pk_type_t, pk_alg)
FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_pk_alg, oid_pk_alg_t, oid_pk_alg, mbedtls_pk_type_t, pk_alg)
+#if defined(MBEDTLS_USE_TINYCRYPT)
+typedef struct {
+ mbedtls_oid_descriptor_t descriptor;
+ mbedtls_uecc_group_id grp_id;
+} oid_ecp_grp_t;
+#else
#if defined(MBEDTLS_ECP_C)
/*
* For namedCurve (RFC 5480)
@@ -475,7 +481,26 @@
mbedtls_oid_descriptor_t descriptor;
mbedtls_ecp_group_id grp_id;
} oid_ecp_grp_t;
+#endif
+#endif
+#if defined(MBEDTLS_USE_TINYCRYPT)
+static const oid_ecp_grp_t oid_ecp_grp[] =
+{
+ {
+ { ADD_LEN( MBEDTLS_OID_EC_GRP_SECP256R1 ), "secp256r1", "secp256r1" },
+ MBEDTLS_UECC_DP_SECP256R1,
+ },
+ {
+ { NULL, 0, NULL, NULL },
+ MBEDTLS_UECC_DP_NONE,
+ },
+};
+FN_OID_TYPED_FROM_ASN1(oid_ecp_grp_t, grp_id, oid_ecp_grp)
+FN_OID_GET_ATTR1(mbedtls_oid_get_ec_grp, oid_ecp_grp_t, grp_id, mbedtls_uecc_group_id, grp_id)
+FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_ec_grp, oid_ecp_grp_t, oid_ecp_grp, mbedtls_uecc_group_id, grp_id)
+#else
+#if defined(MBEDTLS_ECP_C)
static const oid_ecp_grp_t oid_ecp_grp[] =
{
#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
@@ -554,6 +579,7 @@
FN_OID_GET_ATTR1(mbedtls_oid_get_ec_grp, oid_ecp_grp_t, grp_id, mbedtls_ecp_group_id, grp_id)
FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_ec_grp, oid_ecp_grp_t, oid_ecp_grp, mbedtls_ecp_group_id, grp_id)
#endif /* MBEDTLS_ECP_C */
+#endif
#if defined(MBEDTLS_CIPHER_C)
/*