Expand oid_get_sig_alg() for ECDSA-based algs
diff --git a/include/polarssl/oid.h b/include/polarssl/oid.h
index a39055b..0c3dab2 100644
--- a/include/polarssl/oid.h
+++ b/include/polarssl/oid.h
@@ -276,6 +276,36 @@
* iso(1) identified-organization(3) certicom(132) curve(0) 35 } */
#define OID_EC_GRP_SECP521R1 OID_CERTICOM "\x00\x23"
+/*
+ * ECDSA signature identifers, from RFC 5480
+ */
+#define OID_ANSI_X9_62_SIG OID_ANSI_X9_62 "\x04" /* signatures(4) */
+#define OID_ANSI_X9_62_SIG_SHA2 OID_ANSI_X9_62_SIG "\x03" /* ecdsa-with-SHA2(3) */
+
+/* ecdsa-with-SHA1 OBJECT IDENTIFIER ::= {
+ * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) 1 } */
+#define OID_ECDSA_SHA1 OID_ANSI_X9_62_SIG "\x01"
+
+/* ecdsa-with-SHA224 OBJECT IDENTIFIER ::= {
+ * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
+ * ecdsa-with-SHA2(3) 1 } */
+#define OID_ECDSA_SHA224 OID_ANSI_X9_62_SIG_SHA2 "\x01"
+
+/* ecdsa-with-SHA256 OBJECT IDENTIFIER ::= {
+ * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
+ * ecdsa-with-SHA2(3) 2 } */
+#define OID_ECDSA_SHA256 OID_ANSI_X9_62_SIG_SHA2 "\x02"
+
+/* ecdsa-with-SHA384 OBJECT IDENTIFIER ::= {
+ * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
+ * ecdsa-with-SHA2(3) 3 } */
+#define OID_ECDSA_SHA384 OID_ANSI_X9_62_SIG_SHA2 "\x03"
+
+/* ecdsa-with-SHA512 OBJECT IDENTIFIER ::= {
+ * iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4)
+ * ecdsa-with-SHA2(3) 4 } */
+#define OID_ECDSA_SHA512 OID_ANSI_X9_62_SIG_SHA2 "\x04"
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/include/polarssl/pk.h b/include/polarssl/pk.h
index 4e52a75..29aec30 100644
--- a/include/polarssl/pk.h
+++ b/include/polarssl/pk.h
@@ -52,6 +52,9 @@
POLARSSL_PK_ECKEY,
POLARSSL_PK_ECKEY_DH,
#endif
+#if defined(POLARSSL_ECDSA_C)
+ POLARSSL_PK_ECDSA,
+#endif
} pk_type_t;
/**
diff --git a/library/oid.c b/library/oid.c
index 449b3e1..366720e 100644
--- a/library/oid.c
+++ b/library/oid.c
@@ -299,6 +299,26 @@
POLARSSL_MD_SHA1, POLARSSL_PK_RSA,
},
{
+ { OID_ECDSA_SHA1, "ecdsa-with-SHA1", "ECDSA with SHA1" },
+ POLARSSL_MD_SHA1, POLARSSL_PK_ECDSA,
+ },
+ {
+ { OID_ECDSA_SHA224, "ecdsa-with-SHA224", "ECDSA with SHA224" },
+ POLARSSL_MD_SHA224, POLARSSL_PK_ECDSA,
+ },
+ {
+ { OID_ECDSA_SHA256, "ecdsa-with-SHA256", "ECDSA with SHA256" },
+ POLARSSL_MD_SHA256, POLARSSL_PK_ECDSA,
+ },
+ {
+ { OID_ECDSA_SHA384, "ecdsa-with-SHA384", "ECDSA with SHA384" },
+ POLARSSL_MD_SHA384, POLARSSL_PK_ECDSA,
+ },
+ {
+ { OID_ECDSA_SHA512, "ecdsa-with-SHA512", "ECDSA with SHA512" },
+ POLARSSL_MD_SHA512, POLARSSL_PK_ECDSA,
+ },
+ {
{ NULL, NULL, NULL },
0, 0,
},