aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/credentials/keys/public_key.c
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2015-02-23 16:56:31 +0100
committerTobias Brunner <tobias@strongswan.org>2015-03-04 13:54:08 +0100
commit0f29f5ed02f7e503e9d1a869a2f15aa24e3185be (patch)
tree41006a6abe87a42435702b8c414210b3729b60cf /src/libstrongswan/credentials/keys/public_key.c
parentf6329cae9c1cadbd6d7b3a82ba5db73c18158fb6 (diff)
downloadstrongswan-0f29f5ed02f7e503e9d1a869a2f15aa24e3185be.tar.bz2
strongswan-0f29f5ed02f7e503e9d1a869a2f15aa24e3185be.tar.xz
public-key: Add helper to determine key type from signature scheme
Diffstat (limited to 'src/libstrongswan/credentials/keys/public_key.c')
-rw-r--r--src/libstrongswan/credentials/keys/public_key.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/libstrongswan/credentials/keys/public_key.c b/src/libstrongswan/credentials/keys/public_key.c
index c342ac128..54ab15bae 100644
--- a/src/libstrongswan/credentials/keys/public_key.c
+++ b/src/libstrongswan/credentials/keys/public_key.c
@@ -1,4 +1,5 @@
/*
+ * Copyright (C) 2015 Tobias Brunner
* Copyright (C) 2007 Martin Willi
* Copyright (C) 2014 Andreas Steffen
* HSR Hochschule fuer Technik Rapperswil
@@ -147,3 +148,36 @@ signature_scheme_t signature_scheme_from_oid(int oid)
}
}
+/*
+ * Defined in header.
+ */
+key_type_t key_type_from_signature_scheme(signature_scheme_t scheme)
+{
+ switch (scheme)
+ {
+ case SIGN_UNKNOWN:
+ break;
+ case SIGN_RSA_EMSA_PKCS1_NULL:
+ case SIGN_RSA_EMSA_PKCS1_MD5:
+ case SIGN_RSA_EMSA_PKCS1_SHA1:
+ case SIGN_RSA_EMSA_PKCS1_SHA224:
+ case SIGN_RSA_EMSA_PKCS1_SHA256:
+ case SIGN_RSA_EMSA_PKCS1_SHA384:
+ case SIGN_RSA_EMSA_PKCS1_SHA512:
+ return KEY_RSA;
+ case SIGN_ECDSA_WITH_SHA1_DER:
+ case SIGN_ECDSA_WITH_SHA256_DER:
+ case SIGN_ECDSA_WITH_SHA384_DER:
+ case SIGN_ECDSA_WITH_SHA512_DER:
+ case SIGN_ECDSA_WITH_NULL:
+ case SIGN_ECDSA_256:
+ case SIGN_ECDSA_384:
+ case SIGN_ECDSA_521:
+ return KEY_ECDSA;
+ case SIGN_BLISS_WITH_SHA256:
+ case SIGN_BLISS_WITH_SHA384:
+ case SIGN_BLISS_WITH_SHA512:
+ return KEY_BLISS;
+ }
+ return KEY_ANY;
+}