diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/asn1_item.c')
-rw-r--r-- | src/lib/libcrypto/asn1/asn1_item.c | 17 |
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; |