提交 90ef39f4 编写于 作者: R Richard Levitte

EVP: Fix the returned value for ASN1_PKEY_CTRL_DEFAULT_MD_NID

Trust the returned value from EVP_PKEY_get_default_digest_name()!  It
mimics exactly the values that EVP_PKEY_get_default_digest_nid() is
supposed to return, and that value should simply be passed unchanged.
Callers depend on it.
Reviewed-by: NMatt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12586)
上级 a7922e20
...@@ -1202,19 +1202,18 @@ static int legacy_asn1_ctrl_to_param(EVP_PKEY *pkey, int op, ...@@ -1202,19 +1202,18 @@ static int legacy_asn1_ctrl_to_param(EVP_PKEY *pkey, int op,
case ASN1_PKEY_CTRL_DEFAULT_MD_NID: case ASN1_PKEY_CTRL_DEFAULT_MD_NID:
{ {
char mdname[80] = ""; char mdname[80] = "";
int nid;
int rv = EVP_PKEY_get_default_digest_name(pkey, mdname, int rv = EVP_PKEY_get_default_digest_name(pkey, mdname,
sizeof(mdname)); sizeof(mdname));
if (rv <= 0) if (rv > 0) {
return rv; int nid;
nid = OBJ_sn2nid(mdname);
if (nid == NID_undef) nid = OBJ_sn2nid(mdname);
nid = OBJ_ln2nid(mdname); if (nid == NID_undef)
if (nid == NID_undef) nid = OBJ_ln2nid(mdname);
return 0; *(int *)arg2 = nid;
*(int *)arg2 = nid; }
return 1; return rv;
} }
default: default:
return -2; return -2;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册