This commit is contained in:
Tianjia Zhang 2025-07-31 06:50:47 +01:00 committed by GitHub
commit 0d6cb5d069
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 2 deletions

View File

@ -1024,12 +1024,19 @@ DH *EVP_PKEY_get1_DH(EVP_PKEY *pkey)
int EVP_PKEY_get_id(const EVP_PKEY *pkey) int EVP_PKEY_get_id(const EVP_PKEY *pkey)
{ {
if (pkey->type == EVP_PKEY_KEYMGMT) {
const char *name = EVP_KEYMGMT_get0_name(pkey->keymgmt);
int type = evp_pkey_name2type(name);
if (type != NID_undef)
return type;
}
return pkey->type; return pkey->type;
} }
int EVP_PKEY_get_base_id(const EVP_PKEY *pkey) int EVP_PKEY_get_base_id(const EVP_PKEY *pkey)
{ {
return EVP_PKEY_type(pkey->type); return EVP_PKEY_type(EVP_PKEY_get_id(pkey));
} }
/* /*

View File

@ -375,7 +375,9 @@ int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey,
V_ASN1_NULL, NULL)) V_ASN1_NULL, NULL))
return 0; return 0;
if (EVP_PKEY_is_a(pkey, "EC") || EVP_PKEY_is_a(pkey, "DSA")) if (EVP_PKEY_is_a(pkey, "EC")
|| EVP_PKEY_is_a(pkey, "DSA")
|| EVP_PKEY_is_a(pkey, "SM2"))
return pkcs7_ecdsa_or_dsa_sign_verify_setup(p7i, 0); return pkcs7_ecdsa_or_dsa_sign_verify_setup(p7i, 0);
if (EVP_PKEY_is_a(pkey, "RSA")) if (EVP_PKEY_is_a(pkey, "RSA"))
return pkcs7_rsa_sign_verify_setup(p7i, 0); return pkcs7_rsa_sign_verify_setup(p7i, 0);