diff options
author | Andreas Steffen <andreas@strongswan.org> | 2009-09-13 21:41:51 +0200 |
---|---|---|
committer | Andreas Steffen <andreas@strongswan.org> | 2009-09-13 21:41:51 +0200 |
commit | 210d287368be96d7af60d99dba50b0b4d3a909d0 (patch) | |
tree | 0cb5319bf3a06bad766878a0a22bca8458787066 /src/libstrongswan/plugins | |
parent | ba274c23432f13c6b48fe054bbd0fc7a52bc1935 (diff) | |
download | strongswan-210d287368be96d7af60d99dba50b0b4d3a909d0.tar.bz2 strongswan-210d287368be96d7af60d99dba50b0b4d3a909d0.tar.xz |
extended hasher_signature_algorithm_to_oid() function
Diffstat (limited to 'src/libstrongswan/plugins')
-rw-r--r-- | src/libstrongswan/plugins/x509/x509_cert.c | 51 |
1 files changed, 4 insertions, 47 deletions
diff --git a/src/libstrongswan/plugins/x509/x509_cert.c b/src/libstrongswan/plugins/x509/x509_cert.c index 108d7b29f..58ee3c061 100644 --- a/src/libstrongswan/plugins/x509/x509_cert.c +++ b/src/libstrongswan/plugins/x509/x509_cert.c @@ -1220,54 +1220,11 @@ static bool generate(private_x509_cert_t *cert, certificate_t *sign_cert, } /* select signature scheme */ - switch (sign_key->get_type(sign_key)) + cert->algorithm = hasher_signature_algorithm_to_oid(digest_alg, + sign_key->get_type(sign_key)); + if (cert->algorithm == OID_UNKNOWN) { - case KEY_RSA: - switch (digest_alg) - { - case HASH_MD5: - cert->algorithm = OID_MD5_WITH_RSA; - break; - case HASH_SHA1: - cert->algorithm = OID_SHA1_WITH_RSA; - break; - case HASH_SHA224: - cert->algorithm = OID_SHA224_WITH_RSA; - break; - case HASH_SHA256: - cert->algorithm = OID_SHA256_WITH_RSA; - break; - case HASH_SHA384: - cert->algorithm = OID_SHA384_WITH_RSA; - break; - case HASH_SHA512: - cert->algorithm = OID_SHA512_WITH_RSA; - break; - default: - return FALSE; - } - break; - case KEY_ECDSA: - switch (digest_alg) - { - case HASH_SHA1: - cert->algorithm = OID_ECDSA_WITH_SHA1; - break; - case HASH_SHA256: - cert->algorithm = OID_ECDSA_WITH_SHA256; - break; - case HASH_SHA384: - cert->algorithm = OID_ECDSA_WITH_SHA384; - break; - case HASH_SHA512: - cert->algorithm = OID_ECDSA_WITH_SHA512; - break; - default: - return FALSE; - } - break; - default: - return FALSE; + return FALSE; } scheme = signature_scheme_from_oid(cert->algorithm); |