EVP: add internal evp_keymgmt_util_get_deflt_digest_name() and use it
authorRichard Levitte <levitte@openssl.org>
Mon, 20 Apr 2020 07:14:59 +0000 (09:14 +0200)
committerMatt Caswell <matt@openssl.org>
Thu, 23 Apr 2020 09:44:37 +0000 (10:44 +0100)
commit3b924da0f0e88edf60c561703ea40f63e418c45d
treede0706f1e710a759741d3b7d9c347e8c2ccc0aaa
parent916b1f83d094fe2e0f7dea1e24f4eac3287a4157
EVP: add internal evp_keymgmt_util_get_deflt_digest_name() and use it

evp_keymgmt_util_get_deflt_digest_name() is a refactor of the provider
side key part of EVP_PKEY_get_default_digest_name(), that takes
EVP_KEYMGMT and provider keydata pointers instead of an EVP_PKEY
pointer.

We also ensure that it uses SN_undef as the default name if the
provider implementation gave us an empty string, since this is what
EVP_PKEY_get_default_digest_name() responds when getting the digest
name via a EVP_PKEY_ASN1_METHOD ctrl call that returns NID_undef.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/11576)
crypto/evp/keymgmt_lib.c
crypto/evp/p_lib.c
doc/man3/EVP_PKEY_get_default_digest_nid.pod
include/crypto/evp.h