summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/pkcs7/pk7_doit.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/lib/libcrypto/pkcs7/pk7_doit.c b/src/lib/libcrypto/pkcs7/pk7_doit.c
index b87dc22543..8f788a3c5d 100644
--- a/src/lib/libcrypto/pkcs7/pk7_doit.c
+++ b/src/lib/libcrypto/pkcs7/pk7_doit.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: pk7_doit.c,v 1.65 2026/04/25 10:50:50 tb Exp $ */ 1/* $OpenBSD: pk7_doit.c,v 1.66 2026/04/25 10:53:13 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 *
@@ -681,14 +681,14 @@ do_pkcs7_signed_attrib(PKCS7_SIGNER_INFO *si, EVP_MD_CTX *mctx)
681int 681int
682PKCS7_dataFinal(PKCS7 *p7, BIO *bio) 682PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
683{ 683{
684 int ret = 0;
685 int i, j;
686 BIO *btmp; 684 BIO *btmp;
687 PKCS7_SIGNER_INFO *si; 685 PKCS7_SIGNER_INFO *si;
688 EVP_MD_CTX *mdc, ctx_tmp; 686 EVP_MD_CTX *mdc, ctx_tmp;
689 STACK_OF(X509_ATTRIBUTE) *sk; 687 STACK_OF(X509_ATTRIBUTE) *sk;
690 STACK_OF(PKCS7_SIGNER_INFO) *si_sk = NULL; 688 STACK_OF(PKCS7_SIGNER_INFO) *si_sk = NULL;
691 ASN1_OCTET_STRING *os = NULL; 689 ASN1_OCTET_STRING *os = NULL;
690 int i, nid;
691 int ret = 0;
692 692
693 if (p7 == NULL) { 693 if (p7 == NULL) {
694 PKCS7error(PKCS7_R_INVALID_NULL_POINTER); 694 PKCS7error(PKCS7_R_INVALID_NULL_POINTER);
@@ -701,10 +701,9 @@ PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
701 } 701 }
702 702
703 EVP_MD_CTX_legacy_clear(&ctx_tmp); 703 EVP_MD_CTX_legacy_clear(&ctx_tmp);
704 i = OBJ_obj2nid(p7->type);
705 p7->state = PKCS7_S_HEADER; 704 p7->state = PKCS7_S_HEADER;
706 705
707 switch (i) { 706 switch (nid = OBJ_obj2nid(p7->type)) {
708 case NID_pkcs7_data: 707 case NID_pkcs7_data:
709 os = p7->d.data; 708 os = p7->d.data;
710 break; 709 break;
@@ -774,9 +773,8 @@ PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
774 if (si->pkey == NULL) 773 if (si->pkey == NULL)
775 continue; 774 continue;
776 775
777 j = OBJ_obj2nid(si->digest_alg->algorithm); 776 nid = OBJ_obj2nid(si->digest_alg->algorithm);
778 777 if ((btmp = PKCS7_find_digest(&mdc, bio, nid)) == NULL)
779 if ((btmp = PKCS7_find_digest(&mdc, bio, j)) == NULL)
780 goto err; 778 goto err;
781 779
782 /* We now have the EVP_MD_CTX, lets do the 780 /* We now have the EVP_MD_CTX, lets do the
@@ -808,7 +806,7 @@ PKCS7_dataFinal(PKCS7 *p7, BIO *bio)
808 ASN1_STRING_set0(si->enc_digest, abuf, abuflen); 806 ASN1_STRING_set0(si->enc_digest, abuf, abuflen);
809 } 807 }
810 } 808 }
811 } else if (i == NID_pkcs7_digest) { 809 } else if (nid == NID_pkcs7_digest) {
812 unsigned char md_data[EVP_MAX_MD_SIZE]; 810 unsigned char md_data[EVP_MAX_MD_SIZE];
813 unsigned int md_len; 811 unsigned int md_len;
814 812