diff options
Diffstat (limited to 'src/lib/libcrypto/cms/cms_ess.c')
-rw-r--r-- | src/lib/libcrypto/cms/cms_ess.c | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/src/lib/libcrypto/cms/cms_ess.c b/src/lib/libcrypto/cms/cms_ess.c index abfd170bb4..5f0ab4995b 100644 --- a/src/lib/libcrypto/cms/cms_ess.c +++ b/src/lib/libcrypto/cms/cms_ess.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: cms_ess.c,v 1.14 2019/08/10 18:15:52 jsing Exp $ */ | 1 | /* $OpenBSD: cms_ess.c,v 1.15 2019/08/11 10:15:30 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 3 | * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
4 | * project. | 4 | * project. |
@@ -61,7 +61,31 @@ | |||
61 | #include <openssl/cms.h> | 61 | #include <openssl/cms.h> |
62 | #include "cms_lcl.h" | 62 | #include "cms_lcl.h" |
63 | 63 | ||
64 | IMPLEMENT_ASN1_FUNCTIONS(CMS_ReceiptRequest) | 64 | |
65 | CMS_ReceiptRequest * | ||
66 | d2i_CMS_ReceiptRequest(CMS_ReceiptRequest **a, const unsigned char **in, long len) | ||
67 | { | ||
68 | return (CMS_ReceiptRequest *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
69 | &CMS_ReceiptRequest_it); | ||
70 | } | ||
71 | |||
72 | int | ||
73 | i2d_CMS_ReceiptRequest(CMS_ReceiptRequest *a, unsigned char **out) | ||
74 | { | ||
75 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &CMS_ReceiptRequest_it); | ||
76 | } | ||
77 | |||
78 | CMS_ReceiptRequest * | ||
79 | CMS_ReceiptRequest_new(void) | ||
80 | { | ||
81 | return (CMS_ReceiptRequest *)ASN1_item_new(&CMS_ReceiptRequest_it); | ||
82 | } | ||
83 | |||
84 | void | ||
85 | CMS_ReceiptRequest_free(CMS_ReceiptRequest *a) | ||
86 | { | ||
87 | ASN1_item_free((ASN1_VALUE *)a, &CMS_ReceiptRequest_it); | ||
88 | } | ||
65 | 89 | ||
66 | /* ESS services: for now just Signed Receipt related */ | 90 | /* ESS services: for now just Signed Receipt related */ |
67 | 91 | ||
@@ -78,7 +102,7 @@ CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr) | |||
78 | if (!str) | 102 | if (!str) |
79 | return 0; | 103 | return 0; |
80 | 104 | ||
81 | rr = ASN1_item_unpack(str, ASN1_ITEM_rptr(CMS_ReceiptRequest)); | 105 | rr = ASN1_item_unpack(str, &CMS_ReceiptRequest_it); |
82 | if (!rr) | 106 | if (!rr) |
83 | return -1; | 107 | return -1; |
84 | if (prr) | 108 | if (prr) |
@@ -185,7 +209,7 @@ cms_msgSigDigest(CMS_SignerInfo *si, unsigned char *dig, unsigned int *diglen) | |||
185 | md = EVP_get_digestbyobj(si->digestAlgorithm->algorithm); | 209 | md = EVP_get_digestbyobj(si->digestAlgorithm->algorithm); |
186 | if (md == NULL) | 210 | if (md == NULL) |
187 | return 0; | 211 | return 0; |
188 | if (!ASN1_item_digest(ASN1_ITEM_rptr(CMS_Attributes_Verify), md, | 212 | if (!ASN1_item_digest(&CMS_Attributes_Verify_it, md, |
189 | si->signedAttrs, dig, diglen)) | 213 | si->signedAttrs, dig, diglen)) |
190 | return 0; | 214 | return 0; |
191 | 215 | ||
@@ -252,7 +276,7 @@ cms_Receipt_verify(CMS_ContentInfo *cms, CMS_ContentInfo *req_cms) | |||
252 | goto err; | 276 | goto err; |
253 | } | 277 | } |
254 | 278 | ||
255 | rct = ASN1_item_unpack(*pcont, ASN1_ITEM_rptr(CMS_Receipt)); | 279 | rct = ASN1_item_unpack(*pcont, &CMS_Receipt_it); |
256 | 280 | ||
257 | if (!rct) { | 281 | if (!rct) { |
258 | CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_RECEIPT_DECODE_ERROR); | 282 | CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_RECEIPT_DECODE_ERROR); |
@@ -373,7 +397,7 @@ cms_encode_Receipt(CMS_SignerInfo *si) | |||
373 | rct.signedContentIdentifier = rr->signedContentIdentifier; | 397 | rct.signedContentIdentifier = rr->signedContentIdentifier; |
374 | rct.originatorSignatureValue = si->signature; | 398 | rct.originatorSignatureValue = si->signature; |
375 | 399 | ||
376 | os = ASN1_item_pack(&rct, ASN1_ITEM_rptr(CMS_Receipt), NULL); | 400 | os = ASN1_item_pack(&rct, &CMS_Receipt_it, NULL); |
377 | 401 | ||
378 | err: | 402 | err: |
379 | CMS_ReceiptRequest_free(rr); | 403 | CMS_ReceiptRequest_free(rr); |