summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/asn1_item.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/asn1/asn1_item.c')
-rw-r--r--src/lib/libcrypto/asn1/asn1_item.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/lib/libcrypto/asn1/asn1_item.c b/src/lib/libcrypto/asn1/asn1_item.c
index 7dad8e0df1..108f272b8c 100644
--- a/src/lib/libcrypto/asn1/asn1_item.c
+++ b/src/lib/libcrypto/asn1/asn1_item.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: asn1_item.c,v 1.3 2021/12/25 13:17:48 jsing Exp $ */ 1/* $OpenBSD: asn1_item.c,v 1.4 2022/01/14 08:38:05 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -265,15 +265,12 @@ ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2,
265 rv = 2; 265 rv = 2;
266 266
267 if (rv == 2) { 267 if (rv == 2) {
268 if (type->flags & EVP_MD_FLAG_PKEY_METHOD_SIGNATURE) { 268 if (!pkey->ameth ||
269 if (!pkey->ameth || 269 !OBJ_find_sigid_by_algs(&signid, EVP_MD_nid(type),
270 !OBJ_find_sigid_by_algs(&signid, 270 pkey->ameth->pkey_id)) {
271 EVP_MD_nid(type), pkey->ameth->pkey_id)) { 271 ASN1error(ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED);
272 ASN1error(ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED); 272 return 0;
273 return 0; 273 }
274 }
275 } else
276 signid = type->pkey_type;
277 274
278 if (pkey->ameth->pkey_flags & ASN1_PKEY_SIGPARAM_NULL) 275 if (pkey->ameth->pkey_flags & ASN1_PKEY_SIGPARAM_NULL)
279 paramtype = V_ASN1_NULL; 276 paramtype = V_ASN1_NULL;