diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/pkcs7/pk7_attr.c | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/lib/libcrypto/pkcs7/pk7_attr.c b/src/lib/libcrypto/pkcs7/pk7_attr.c index ceaba9138d..8b6fbf9d23 100644 --- a/src/lib/libcrypto/pkcs7/pk7_attr.c +++ b/src/lib/libcrypto/pkcs7/pk7_attr.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pk7_attr.c,v 1.20 2025/07/31 02:10:55 tb Exp $ */ | 1 | /* $OpenBSD: pk7_attr.c,v 1.21 2025/07/31 02:21:01 tb Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project 2001. | 3 | * project 2001. |
4 | */ | 4 | */ |
@@ -203,19 +203,25 @@ LCRYPTO_ALIAS(PKCS7_add0_attrib_signing_time); | |||
203 | 203 | ||
204 | int | 204 | int |
205 | PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, const unsigned char *md, | 205 | PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, const unsigned char *md, |
206 | int mdlen) | 206 | int md_len) |
207 | { | 207 | { |
208 | ASN1_OCTET_STRING *os; | 208 | ASN1_OCTET_STRING *os; |
209 | int ret = 0; | ||
209 | 210 | ||
210 | os = ASN1_OCTET_STRING_new(); | 211 | if ((os = ASN1_OCTET_STRING_new()) == NULL) |
211 | if (!os) | 212 | goto err; |
212 | return 0; | 213 | if (!ASN1_STRING_set(os, md, md_len)) |
213 | if (!ASN1_STRING_set(os, md, mdlen) || | 214 | goto err; |
214 | !PKCS7_add_signed_attribute(si, NID_pkcs9_messageDigest, | 215 | if (!PKCS7_add_signed_attribute(si, NID_pkcs9_messageDigest, |
215 | V_ASN1_OCTET_STRING, os)) { | 216 | V_ASN1_OCTET_STRING, os)) |
216 | ASN1_OCTET_STRING_free(os); | 217 | goto err; |
217 | return 0; | 218 | os = NULL; |
218 | } | 219 | |
219 | return 1; | 220 | ret = 1; |
221 | |||
222 | err: | ||
223 | ASN1_OCTET_STRING_free(os); | ||
224 | |||
225 | return ret; | ||
220 | } | 226 | } |
221 | LCRYPTO_ALIAS(PKCS7_add1_attrib_digest); | 227 | LCRYPTO_ALIAS(PKCS7_add1_attrib_digest); |