From: Jan Vcelak Date: Sat, 5 Dec 2015 23:46:39 +0000 (+0100) Subject: pkcs11: fix passing of incorrect variable in privkey_get_pubkey X-Git-Tag: gnutls_3_5_0~503 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4d55cc14a63dcdf454de2a3d33719ca96ec63507;p=thirdparty%2Fgnutls.git pkcs11: fix passing of incorrect variable in privkey_get_pubkey The code worked for RSA because the content of the variables matched. But it doesn't match for ECC. CKM_RSA_PKCS_KEY_PAIR_GEN (0x0) == CKK_RSA (0x0) CKM_ECDSA_KEY_PAIR_GEN (0x1040) != CKK_ECDSA (0x3) Signed-off-by: Jan Vcelak --- diff --git a/lib/pkcs11_privkey.c b/lib/pkcs11_privkey.c index 2b4179b75e..1785bbfc55 100644 --- a/lib/pkcs11_privkey.c +++ b/lib/pkcs11_privkey.c @@ -1022,7 +1022,7 @@ _pkcs11_privkey_get_pubkey (gnutls_pkcs11_privkey_t pkey, gnutls_pubkey_t *pub, obj->pk_algorithm = gnutls_pkcs11_privkey_get_pk_algorithm(pkey, 0); obj->type = GNUTLS_PKCS11_OBJ_PUBKEY; mech.mechanism = pk_to_genmech(obj->pk_algorithm, &key_type); - ret = pkcs11_read_pubkey(pkey->sinfo.module, pkey->sinfo.pks, pkey->ref, mech.mechanism, obj->pubkey); + ret = pkcs11_read_pubkey(pkey->sinfo.module, pkey->sinfo.pks, pkey->ref, key_type, obj->pubkey); if (ret < 0) { gnutls_assert(); goto cleanup;