aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/credentials/keys
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2009-08-27 17:36:17 +0200
committerMartin Willi <martin@strongswan.org>2009-08-27 17:37:42 +0200
commit472cb4ce77295feebc6deff49d863ea1917576cb (patch)
tree177a006d5652b3eee048500d83ba2526041886e7 /src/libstrongswan/credentials/keys
parent78aa4ebd6296d8447914cdd0b9e53cc1f4343806 (diff)
downloadstrongswan-472cb4ce77295feebc6deff49d863ea1917576cb.tar.bz2
strongswan-472cb4ce77295feebc6deff49d863ea1917576cb.tar.xz
distinguish between RFC 4754 (concatenated) and RFC 3279 (DER encoded) ECDSA signatures
Diffstat (limited to 'src/libstrongswan/credentials/keys')
-rw-r--r--src/libstrongswan/credentials/keys/public_key.c13
-rw-r--r--src/libstrongswan/credentials/keys/public_key.h15
2 files changed, 18 insertions, 10 deletions
diff --git a/src/libstrongswan/credentials/keys/public_key.c b/src/libstrongswan/credentials/keys/public_key.c
index 4abaf4010..8958a3576 100644
--- a/src/libstrongswan/credentials/keys/public_key.c
+++ b/src/libstrongswan/credentials/keys/public_key.c
@@ -32,8 +32,11 @@ ENUM(signature_scheme_names, SIGN_UNKNOWN, SIGN_ECDSA_521,
"RSA_EMSA_PKCS1_SHA256",
"RSA_EMSA_PKCS1_SHA384",
"RSA_EMSA_PKCS1_SHA512",
+ "ECDSA_WITH_SHA1_DER",
+ "ECDSA_WITH_SHA256_DER",
+ "ECDSA_WITH_SHA384_DER",
+ "ECDSA_WITH_SHA512_DER",
"ECDSA_WITH_NULL",
- "ECDSA_WITH_SHA1",
"ECDSA-256",
"ECDSA-384",
"ECDSA-521",
@@ -90,13 +93,13 @@ signature_scheme_t signature_scheme_from_oid(int oid)
return SIGN_RSA_EMSA_PKCS1_SHA512;
case OID_ECDSA_WITH_SHA1:
case OID_EC_PUBLICKEY:
- return SIGN_ECDSA_WITH_SHA1;
+ return SIGN_ECDSA_WITH_SHA1_DER;
case OID_ECDSA_WITH_SHA256:
- return SIGN_ECDSA_256;
+ return SIGN_ECDSA_WITH_SHA256_DER;
case OID_ECDSA_WITH_SHA384:
- return SIGN_ECDSA_384;
+ return SIGN_ECDSA_WITH_SHA384_DER;
case OID_ECDSA_WITH_SHA512:
- return SIGN_ECDSA_521;
+ return SIGN_ECDSA_WITH_SHA512_DER;
default:
return SIGN_UNKNOWN;
}
diff --git a/src/libstrongswan/credentials/keys/public_key.h b/src/libstrongswan/credentials/keys/public_key.h
index 294a9568a..984c8c02f 100644
--- a/src/libstrongswan/credentials/keys/public_key.h
+++ b/src/libstrongswan/credentials/keys/public_key.h
@@ -54,8 +54,7 @@ extern enum_name_t *key_type_names;
*
* EMSA-PKCS1 signatures are defined in PKCS#1 standard.
* A prepended ASN.1 encoded digestInfo field contains the
- * OID of the used hash algorithm. The ASN.1 type of the PKCS#7
- * variants is OCTET_STRING instead of the default BIT_STRING.
+ * OID of the used hash algorithm.
*/
enum signature_scheme_t {
/** Unknown signature scheme */
@@ -74,10 +73,16 @@ enum signature_scheme_t {
SIGN_RSA_EMSA_PKCS1_SHA384,
/** EMSA-PKCS1_v1.5 signature as in PKCS#1 using RSA and SHA-512 */
SIGN_RSA_EMSA_PKCS1_SHA512,
- /** ECDSA over precomputed digest */
+ /** ECDSA with SHA-1 using DER encoding as in RFC 3279 */
+ SIGN_ECDSA_WITH_SHA1_DER,
+ /** ECDSA with SHA-256 using DER encoding as in RFC 3279 */
+ SIGN_ECDSA_WITH_SHA256_DER,
+ /** ECDSA with SHA-384 using DER encoding as in RFC 3279 */
+ SIGN_ECDSA_WITH_SHA384_DER,
+ /** ECDSA with SHA-1 using DER encoding as in RFC 3279 */
+ SIGN_ECDSA_WITH_SHA512_DER,
+ /** ECDSA over precomputed digest, signature as in RFC 4754 */
SIGN_ECDSA_WITH_NULL,
- /** ECDSA with SHA-1 */
- SIGN_ECDSA_WITH_SHA1,
/** ECDSA on the P-256 curve with SHA-256 as in RFC 4754 */
SIGN_ECDSA_256,
/** ECDSA on the P-384 curve with SHA-384 as in RFC 4754 */