mirror of
https://github.com/openssl/openssl.git
synced 2025-01-18 13:44:20 +08:00
EVP: Adapt EVP_PKEY_missing_parameters() for provider keys
Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11158)
This commit is contained in:
parent
ccceeb4800
commit
157ded39ee
@ -214,3 +214,12 @@ void *evp_keymgmt_util_fromdata(EVP_PKEY *target, EVP_KEYMGMT *keymgmt,
|
||||
|
||||
return keydata;
|
||||
}
|
||||
|
||||
int evp_keymgmt_util_has(EVP_PKEY *pk, int selection)
|
||||
{
|
||||
/* Check if key is even assigned */
|
||||
if (pk->keymgmt == NULL)
|
||||
return 0;
|
||||
|
||||
return evp_keymgmt_has(pk->keymgmt, pk->keydata, selection);
|
||||
}
|
||||
|
@ -114,8 +114,13 @@ int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from)
|
||||
|
||||
int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey)
|
||||
{
|
||||
if (pkey != NULL && pkey->ameth && pkey->ameth->param_missing)
|
||||
return pkey->ameth->param_missing(pkey);
|
||||
if (pkey != NULL) {
|
||||
if (pkey->keymgmt != NULL)
|
||||
return !evp_keymgmt_util_has((EVP_PKEY *)pkey,
|
||||
OSSL_KEYMGMT_SELECT_ALL_PARAMETERS);
|
||||
else if (pkey->ameth != NULL && pkey->ameth->param_missing != NULL)
|
||||
return pkey->ameth->param_missing(pkey);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -619,6 +619,7 @@ int evp_keymgmt_util_cache_keydata(EVP_PKEY *pk, size_t index,
|
||||
void evp_keymgmt_util_cache_keyinfo(EVP_PKEY *pk);
|
||||
void *evp_keymgmt_util_fromdata(EVP_PKEY *target, EVP_KEYMGMT *keymgmt,
|
||||
int selection, const OSSL_PARAM params[]);
|
||||
int evp_keymgmt_util_has(EVP_PKEY *pk, int selection);
|
||||
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user