aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/plugins
diff options
context:
space:
mode:
authorAndreas Steffen <andreas@strongswan.org>2009-09-13 21:41:51 +0200
committerAndreas Steffen <andreas@strongswan.org>2009-09-13 21:41:51 +0200
commit210d287368be96d7af60d99dba50b0b4d3a909d0 (patch)
tree0cb5319bf3a06bad766878a0a22bca8458787066 /src/libstrongswan/plugins
parentba274c23432f13c6b48fe054bbd0fc7a52bc1935 (diff)
downloadstrongswan-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.c51
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);