From: Tobias Brunner Date: Wed, 2 Nov 2011 18:24:57 +0000 (+0100) Subject: pkcs11: Register ECDSA feature. X-Git-Tag: 4.6.0~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58d0a8d49bcf1fce3fb77bd2050c01ae896ad94a;p=thirdparty%2Fstrongswan.git pkcs11: Register ECDSA feature. --- diff --git a/src/libstrongswan/plugins/pkcs11/pkcs11_plugin.c b/src/libstrongswan/plugins/pkcs11/pkcs11_plugin.c index 554e07ff69..fc085e6ae7 100644 --- a/src/libstrongswan/plugins/pkcs11/pkcs11_plugin.c +++ b/src/libstrongswan/plugins/pkcs11/pkcs11_plugin.c @@ -219,6 +219,11 @@ METHOD(plugin_t, get_features, int, PLUGIN_PROVIDE(DH, ECP_384_BIT), PLUGIN_PROVIDE(DH, ECP_521_BIT), }; + static plugin_feature_t f_ecdsa[] = { + /* *_connect is already registered for KEY_ANY */ + PLUGIN_REGISTER(PUBKEY, pkcs11_public_key_load, TRUE), + PLUGIN_PROVIDE(PUBKEY, KEY_ECDSA), + }; static plugin_feature_t f_manager[] = { PLUGIN_CALLBACK((plugin_feature_callback_t)handle_certs, NULL), PLUGIN_PROVIDE(CUSTOM, "pkcs11-certs"), @@ -226,7 +231,7 @@ METHOD(plugin_t, get_features, int, }; static plugin_feature_t f[countof(f_hash) + countof(f_dh) + countof(f_rng) + countof(f_key) + countof(f_ecdh) + - countof(f_manager)] = {}; + countof(f_ecdsa) + countof(f_manager)] = {}; static int count = 0; if (!count) @@ -254,6 +259,10 @@ METHOD(plugin_t, get_features, int, add_features(f, f_ecdh, countof(f_ecdh), &count); } } + if (use_ecc) + { + add_features(f, f_ecdsa, countof(f_ecdsa), &count); + } } *features = f; return count;