diff options
author | Tobias Brunner <tobias@strongswan.org> | 2015-02-23 16:56:31 +0100 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2015-03-04 13:54:08 +0100 |
commit | 0f29f5ed02f7e503e9d1a869a2f15aa24e3185be (patch) | |
tree | 41006a6abe87a42435702b8c414210b3729b60cf /src/libstrongswan/credentials/keys/public_key.c | |
parent | f6329cae9c1cadbd6d7b3a82ba5db73c18158fb6 (diff) | |
download | strongswan-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.c | 34 |
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; +} |