summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/cms/cms_ess.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/cms/cms_ess.c')
-rw-r--r--src/lib/libcrypto/cms/cms_ess.c41
1 files changed, 20 insertions, 21 deletions
diff --git a/src/lib/libcrypto/cms/cms_ess.c b/src/lib/libcrypto/cms/cms_ess.c
index 5f0ab4995b..1d3f092ae8 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.15 2019/08/11 10:15:30 jsing Exp $ */ 1/* $OpenBSD: cms_ess.c,v 1.16 2019/08/11 10:38:27 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.
@@ -145,7 +145,7 @@ CMS_ReceiptRequest_create0(unsigned char *id, int idlen, int allorfirst,
145 return rr; 145 return rr;
146 146
147 merr: 147 merr:
148 CMSerr(CMS_F_CMS_RECEIPTREQUEST_CREATE0, ERR_R_MALLOC_FAILURE); 148 CMSerror(ERR_R_MALLOC_FAILURE);
149 149
150 err: 150 err:
151 CMS_ReceiptRequest_free(rr); 151 CMS_ReceiptRequest_free(rr);
@@ -170,7 +170,7 @@ CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr)
170 170
171 merr: 171 merr:
172 if (!r) 172 if (!r)
173 CMSerr(CMS_F_CMS_ADD1_RECEIPTREQUEST, ERR_R_MALLOC_FAILURE); 173 CMSerror(ERR_R_MALLOC_FAILURE);
174 174
175 OPENSSL_free(rrder); 175 OPENSSL_free(rrder);
176 176
@@ -225,12 +225,12 @@ cms_msgSigDigest_add1(CMS_SignerInfo *dest, CMS_SignerInfo *src)
225 unsigned int diglen; 225 unsigned int diglen;
226 226
227 if (!cms_msgSigDigest(src, dig, &diglen)) { 227 if (!cms_msgSigDigest(src, dig, &diglen)) {
228 CMSerr(CMS_F_CMS_MSGSIGDIGEST_ADD1, CMS_R_MSGSIGDIGEST_ERROR); 228 CMSerror(CMS_R_MSGSIGDIGEST_ERROR);
229 return 0; 229 return 0;
230 } 230 }
231 if (!CMS_signed_add1_attr_by_NID(dest, NID_id_smime_aa_msgSigDigest, 231 if (!CMS_signed_add1_attr_by_NID(dest, NID_id_smime_aa_msgSigDigest,
232 V_ASN1_OCTET_STRING, dig, diglen)) { 232 V_ASN1_OCTET_STRING, dig, diglen)) {
233 CMSerr(CMS_F_CMS_MSGSIGDIGEST_ADD1, ERR_R_MALLOC_FAILURE); 233 CMSerror(ERR_R_MALLOC_FAILURE);
234 return 0; 234 return 0;
235 } 235 }
236 236
@@ -259,27 +259,27 @@ cms_Receipt_verify(CMS_ContentInfo *cms, CMS_ContentInfo *req_cms)
259 goto err; 259 goto err;
260 260
261 if (sk_CMS_SignerInfo_num(sis) != 1) { 261 if (sk_CMS_SignerInfo_num(sis) != 1) {
262 CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NEED_ONE_SIGNER); 262 CMSerror(CMS_R_NEED_ONE_SIGNER);
263 goto err; 263 goto err;
264 } 264 }
265 265
266 /* Check receipt content type */ 266 /* Check receipt content type */
267 if (OBJ_obj2nid(CMS_get0_eContentType(cms)) != NID_id_smime_ct_receipt) { 267 if (OBJ_obj2nid(CMS_get0_eContentType(cms)) != NID_id_smime_ct_receipt) {
268 CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NOT_A_SIGNED_RECEIPT); 268 CMSerror(CMS_R_NOT_A_SIGNED_RECEIPT);
269 goto err; 269 goto err;
270 } 270 }
271 271
272 /* Extract and decode receipt content */ 272 /* Extract and decode receipt content */
273 pcont = CMS_get0_content(cms); 273 pcont = CMS_get0_content(cms);
274 if (!pcont || !*pcont) { 274 if (!pcont || !*pcont) {
275 CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NO_CONTENT); 275 CMSerror(CMS_R_NO_CONTENT);
276 goto err; 276 goto err;
277 } 277 }
278 278
279 rct = ASN1_item_unpack(*pcont, &CMS_Receipt_it); 279 rct = ASN1_item_unpack(*pcont, &CMS_Receipt_it);
280 280
281 if (!rct) { 281 if (!rct) {
282 CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_RECEIPT_DECODE_ERROR); 282 CMSerror(CMS_R_RECEIPT_DECODE_ERROR);
283 goto err; 283 goto err;
284 } 284 }
285 285
@@ -292,7 +292,7 @@ cms_Receipt_verify(CMS_ContentInfo *cms, CMS_ContentInfo *req_cms)
292 } 292 }
293 293
294 if (i == sk_CMS_SignerInfo_num(osis)) { 294 if (i == sk_CMS_SignerInfo_num(osis)) {
295 CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NO_MATCHING_SIGNATURE); 295 CMSerror(CMS_R_NO_MATCHING_SIGNATURE);
296 goto err; 296 goto err;
297 } 297 }
298 298
@@ -304,23 +304,22 @@ cms_Receipt_verify(CMS_ContentInfo *cms, CMS_ContentInfo *req_cms)
304 OBJ_nid2obj(NID_id_smime_aa_msgSigDigest), -3, V_ASN1_OCTET_STRING); 304 OBJ_nid2obj(NID_id_smime_aa_msgSigDigest), -3, V_ASN1_OCTET_STRING);
305 305
306 if (!msig) { 306 if (!msig) {
307 CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NO_MSGSIGDIGEST); 307 CMSerror(CMS_R_NO_MSGSIGDIGEST);
308 goto err; 308 goto err;
309 } 309 }
310 310
311 if (!cms_msgSigDigest(osi, dig, &diglen)) { 311 if (!cms_msgSigDigest(osi, dig, &diglen)) {
312 CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_MSGSIGDIGEST_ERROR); 312 CMSerror(CMS_R_MSGSIGDIGEST_ERROR);
313 goto err; 313 goto err;
314 } 314 }
315 315
316 if (diglen != (unsigned int)msig->length) { 316 if (diglen != (unsigned int)msig->length) {
317 CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_MSGSIGDIGEST_WRONG_LENGTH); 317 CMSerror(CMS_R_MSGSIGDIGEST_WRONG_LENGTH);
318 goto err; 318 goto err;
319 } 319 }
320 320
321 if (memcmp(dig, msig->data, diglen)) { 321 if (memcmp(dig, msig->data, diglen)) {
322 CMSerr(CMS_F_CMS_RECEIPT_VERIFY, 322 CMSerror(CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE);
323 CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE);
324 goto err; 323 goto err;
325 } 324 }
326 325
@@ -329,27 +328,27 @@ cms_Receipt_verify(CMS_ContentInfo *cms, CMS_ContentInfo *req_cms)
329 octype = CMS_signed_get0_data_by_OBJ(osi, 328 octype = CMS_signed_get0_data_by_OBJ(osi,
330 OBJ_nid2obj(NID_pkcs9_contentType), -3, V_ASN1_OBJECT); 329 OBJ_nid2obj(NID_pkcs9_contentType), -3, V_ASN1_OBJECT);
331 if (!octype) { 330 if (!octype) {
332 CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NO_CONTENT_TYPE); 331 CMSerror(CMS_R_NO_CONTENT_TYPE);
333 goto err; 332 goto err;
334 } 333 }
335 334
336 /* Compare details in receipt request */ 335 /* Compare details in receipt request */
337 336
338 if (OBJ_cmp(octype, rct->contentType)) { 337 if (OBJ_cmp(octype, rct->contentType)) {
339 CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_CONTENT_TYPE_MISMATCH); 338 CMSerror(CMS_R_CONTENT_TYPE_MISMATCH);
340 goto err; 339 goto err;
341 } 340 }
342 341
343 /* Get original receipt request details */ 342 /* Get original receipt request details */
344 343
345 if (CMS_get1_ReceiptRequest(osi, &rr) <= 0) { 344 if (CMS_get1_ReceiptRequest(osi, &rr) <= 0) {
346 CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_NO_RECEIPT_REQUEST); 345 CMSerror(CMS_R_NO_RECEIPT_REQUEST);
347 goto err; 346 goto err;
348 } 347 }
349 348
350 if (ASN1_STRING_cmp(rr->signedContentIdentifier, 349 if (ASN1_STRING_cmp(rr->signedContentIdentifier,
351 rct->signedContentIdentifier)) { 350 rct->signedContentIdentifier)) {
352 CMSerr(CMS_F_CMS_RECEIPT_VERIFY, CMS_R_CONTENTIDENTIFIER_MISMATCH); 351 CMSerror(CMS_R_CONTENTIDENTIFIER_MISMATCH);
353 goto err; 352 goto err;
354 } 353 }
355 354
@@ -379,7 +378,7 @@ cms_encode_Receipt(CMS_SignerInfo *si)
379 /* Get original receipt request details */ 378 /* Get original receipt request details */
380 379
381 if (CMS_get1_ReceiptRequest(si, &rr) <= 0) { 380 if (CMS_get1_ReceiptRequest(si, &rr) <= 0) {
382 CMSerr(CMS_F_CMS_ENCODE_RECEIPT, CMS_R_NO_RECEIPT_REQUEST); 381 CMSerror(CMS_R_NO_RECEIPT_REQUEST);
383 goto err; 382 goto err;
384 } 383 }
385 384
@@ -388,7 +387,7 @@ cms_encode_Receipt(CMS_SignerInfo *si)
388 ctype = CMS_signed_get0_data_by_OBJ(si, 387 ctype = CMS_signed_get0_data_by_OBJ(si,
389 OBJ_nid2obj(NID_pkcs9_contentType), -3, V_ASN1_OBJECT); 388 OBJ_nid2obj(NID_pkcs9_contentType), -3, V_ASN1_OBJECT);
390 if (!ctype) { 389 if (!ctype) {
391 CMSerr(CMS_F_CMS_ENCODE_RECEIPT, CMS_R_NO_CONTENT_TYPE); 390 CMSerror(CMS_R_NO_CONTENT_TYPE);
392 goto err; 391 goto err;
393 } 392 }
394 393