summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/pkcs7/pk7_asn1.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/pkcs7/pk7_asn1.c')
-rw-r--r--src/lib/libcrypto/pkcs7/pk7_asn1.c82
1 files changed, 81 insertions, 1 deletions
diff --git a/src/lib/libcrypto/pkcs7/pk7_asn1.c b/src/lib/libcrypto/pkcs7/pk7_asn1.c
index 66659051a6..b0c4ee8016 100644
--- a/src/lib/libcrypto/pkcs7/pk7_asn1.c
+++ b/src/lib/libcrypto/pkcs7/pk7_asn1.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: pk7_asn1.c,v 1.13 2022/01/14 08:16:13 tb Exp $ */ 1/* $OpenBSD: pk7_asn1.c,v 1.14 2022/11/12 12:11:14 beck 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 2000. 3 * project 2000.
4 */ 4 */
@@ -221,36 +221,42 @@ d2i_PKCS7(PKCS7 **a, const unsigned char **in, long len)
221 return (PKCS7 *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 221 return (PKCS7 *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
222 &PKCS7_it); 222 &PKCS7_it);
223} 223}
224LCRYPTO_ALIAS(d2i_PKCS7)
224 225
225int 226int
226i2d_PKCS7(PKCS7 *a, unsigned char **out) 227i2d_PKCS7(PKCS7 *a, unsigned char **out)
227{ 228{
228 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_it); 229 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_it);
229} 230}
231LCRYPTO_ALIAS(i2d_PKCS7)
230 232
231PKCS7 * 233PKCS7 *
232PKCS7_new(void) 234PKCS7_new(void)
233{ 235{
234 return (PKCS7 *)ASN1_item_new(&PKCS7_it); 236 return (PKCS7 *)ASN1_item_new(&PKCS7_it);
235} 237}
238LCRYPTO_ALIAS(PKCS7_new)
236 239
237void 240void
238PKCS7_free(PKCS7 *a) 241PKCS7_free(PKCS7 *a)
239{ 242{
240 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_it); 243 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_it);
241} 244}
245LCRYPTO_ALIAS(PKCS7_free)
242 246
243int 247int
244i2d_PKCS7_NDEF(PKCS7 *a, unsigned char **out) 248i2d_PKCS7_NDEF(PKCS7 *a, unsigned char **out)
245{ 249{
246 return ASN1_item_ndef_i2d((ASN1_VALUE *)a, out, &PKCS7_it); 250 return ASN1_item_ndef_i2d((ASN1_VALUE *)a, out, &PKCS7_it);
247} 251}
252LCRYPTO_ALIAS(i2d_PKCS7_NDEF)
248 253
249PKCS7 * 254PKCS7 *
250PKCS7_dup(PKCS7 *x) 255PKCS7_dup(PKCS7 *x)
251{ 256{
252 return ASN1_item_dup(&PKCS7_it, x); 257 return ASN1_item_dup(&PKCS7_it, x);
253} 258}
259LCRYPTO_ALIAS(PKCS7_dup)
254 260
255static const ASN1_TEMPLATE PKCS7_SIGNED_seq_tt[] = { 261static const ASN1_TEMPLATE PKCS7_SIGNED_seq_tt[] = {
256 { 262 {
@@ -314,24 +320,28 @@ d2i_PKCS7_SIGNED(PKCS7_SIGNED **a, const unsigned char **in, long len)
314 return (PKCS7_SIGNED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 320 return (PKCS7_SIGNED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
315 &PKCS7_SIGNED_it); 321 &PKCS7_SIGNED_it);
316} 322}
323LCRYPTO_ALIAS(d2i_PKCS7_SIGNED)
317 324
318int 325int
319i2d_PKCS7_SIGNED(PKCS7_SIGNED *a, unsigned char **out) 326i2d_PKCS7_SIGNED(PKCS7_SIGNED *a, unsigned char **out)
320{ 327{
321 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_SIGNED_it); 328 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_SIGNED_it);
322} 329}
330LCRYPTO_ALIAS(i2d_PKCS7_SIGNED)
323 331
324PKCS7_SIGNED * 332PKCS7_SIGNED *
325PKCS7_SIGNED_new(void) 333PKCS7_SIGNED_new(void)
326{ 334{
327 return (PKCS7_SIGNED *)ASN1_item_new(&PKCS7_SIGNED_it); 335 return (PKCS7_SIGNED *)ASN1_item_new(&PKCS7_SIGNED_it);
328} 336}
337LCRYPTO_ALIAS(PKCS7_SIGNED_new)
329 338
330void 339void
331PKCS7_SIGNED_free(PKCS7_SIGNED *a) 340PKCS7_SIGNED_free(PKCS7_SIGNED *a)
332{ 341{
333 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_SIGNED_it); 342 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_SIGNED_it);
334} 343}
344LCRYPTO_ALIAS(PKCS7_SIGNED_free)
335 345
336/* Minor tweak to operation: free up EVP_PKEY */ 346/* Minor tweak to operation: free up EVP_PKEY */
337static int 347static int
@@ -426,24 +436,28 @@ d2i_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO **a, const unsigned char **in, long len)
426 return (PKCS7_SIGNER_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 436 return (PKCS7_SIGNER_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
427 &PKCS7_SIGNER_INFO_it); 437 &PKCS7_SIGNER_INFO_it);
428} 438}
439LCRYPTO_ALIAS(d2i_PKCS7_SIGNER_INFO)
429 440
430int 441int
431i2d_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO *a, unsigned char **out) 442i2d_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO *a, unsigned char **out)
432{ 443{
433 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_SIGNER_INFO_it); 444 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_SIGNER_INFO_it);
434} 445}
446LCRYPTO_ALIAS(i2d_PKCS7_SIGNER_INFO)
435 447
436PKCS7_SIGNER_INFO * 448PKCS7_SIGNER_INFO *
437PKCS7_SIGNER_INFO_new(void) 449PKCS7_SIGNER_INFO_new(void)
438{ 450{
439 return (PKCS7_SIGNER_INFO *)ASN1_item_new(&PKCS7_SIGNER_INFO_it); 451 return (PKCS7_SIGNER_INFO *)ASN1_item_new(&PKCS7_SIGNER_INFO_it);
440} 452}
453LCRYPTO_ALIAS(PKCS7_SIGNER_INFO_new)
441 454
442void 455void
443PKCS7_SIGNER_INFO_free(PKCS7_SIGNER_INFO *a) 456PKCS7_SIGNER_INFO_free(PKCS7_SIGNER_INFO *a)
444{ 457{
445 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_SIGNER_INFO_it); 458 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_SIGNER_INFO_it);
446} 459}
460LCRYPTO_ALIAS(PKCS7_SIGNER_INFO_free)
447 461
448static const ASN1_TEMPLATE PKCS7_ISSUER_AND_SERIAL_seq_tt[] = { 462static const ASN1_TEMPLATE PKCS7_ISSUER_AND_SERIAL_seq_tt[] = {
449 { 463 {
@@ -479,24 +493,28 @@ d2i_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL **a, const unsigned char **i
479 return (PKCS7_ISSUER_AND_SERIAL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 493 return (PKCS7_ISSUER_AND_SERIAL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
480 &PKCS7_ISSUER_AND_SERIAL_it); 494 &PKCS7_ISSUER_AND_SERIAL_it);
481} 495}
496LCRYPTO_ALIAS(d2i_PKCS7_ISSUER_AND_SERIAL)
482 497
483int 498int
484i2d_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL *a, unsigned char **out) 499i2d_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL *a, unsigned char **out)
485{ 500{
486 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_ISSUER_AND_SERIAL_it); 501 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_ISSUER_AND_SERIAL_it);
487} 502}
503LCRYPTO_ALIAS(i2d_PKCS7_ISSUER_AND_SERIAL)
488 504
489PKCS7_ISSUER_AND_SERIAL * 505PKCS7_ISSUER_AND_SERIAL *
490PKCS7_ISSUER_AND_SERIAL_new(void) 506PKCS7_ISSUER_AND_SERIAL_new(void)
491{ 507{
492 return (PKCS7_ISSUER_AND_SERIAL *)ASN1_item_new(&PKCS7_ISSUER_AND_SERIAL_it); 508 return (PKCS7_ISSUER_AND_SERIAL *)ASN1_item_new(&PKCS7_ISSUER_AND_SERIAL_it);
493} 509}
510LCRYPTO_ALIAS(PKCS7_ISSUER_AND_SERIAL_new)
494 511
495void 512void
496PKCS7_ISSUER_AND_SERIAL_free(PKCS7_ISSUER_AND_SERIAL *a) 513PKCS7_ISSUER_AND_SERIAL_free(PKCS7_ISSUER_AND_SERIAL *a)
497{ 514{
498 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_ISSUER_AND_SERIAL_it); 515 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_ISSUER_AND_SERIAL_it);
499} 516}
517LCRYPTO_ALIAS(PKCS7_ISSUER_AND_SERIAL_free)
500 518
501static const ASN1_TEMPLATE PKCS7_ENVELOPE_seq_tt[] = { 519static const ASN1_TEMPLATE PKCS7_ENVELOPE_seq_tt[] = {
502 { 520 {
@@ -539,24 +557,28 @@ d2i_PKCS7_ENVELOPE(PKCS7_ENVELOPE **a, const unsigned char **in, long len)
539 return (PKCS7_ENVELOPE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 557 return (PKCS7_ENVELOPE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
540 &PKCS7_ENVELOPE_it); 558 &PKCS7_ENVELOPE_it);
541} 559}
560LCRYPTO_ALIAS(d2i_PKCS7_ENVELOPE)
542 561
543int 562int
544i2d_PKCS7_ENVELOPE(PKCS7_ENVELOPE *a, unsigned char **out) 563i2d_PKCS7_ENVELOPE(PKCS7_ENVELOPE *a, unsigned char **out)
545{ 564{
546 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_ENVELOPE_it); 565 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_ENVELOPE_it);
547} 566}
567LCRYPTO_ALIAS(i2d_PKCS7_ENVELOPE)
548 568
549PKCS7_ENVELOPE * 569PKCS7_ENVELOPE *
550PKCS7_ENVELOPE_new(void) 570PKCS7_ENVELOPE_new(void)
551{ 571{
552 return (PKCS7_ENVELOPE *)ASN1_item_new(&PKCS7_ENVELOPE_it); 572 return (PKCS7_ENVELOPE *)ASN1_item_new(&PKCS7_ENVELOPE_it);
553} 573}
574LCRYPTO_ALIAS(PKCS7_ENVELOPE_new)
554 575
555void 576void
556PKCS7_ENVELOPE_free(PKCS7_ENVELOPE *a) 577PKCS7_ENVELOPE_free(PKCS7_ENVELOPE *a)
557{ 578{
558 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_ENVELOPE_it); 579 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_ENVELOPE_it);
559} 580}
581LCRYPTO_ALIAS(PKCS7_ENVELOPE_free)
560 582
561/* Minor tweak to operation: free up X509 */ 583/* Minor tweak to operation: free up X509 */
562static int 584static int
@@ -625,24 +647,28 @@ d2i_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO **a, const unsigned char **in, long len)
625 return (PKCS7_RECIP_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 647 return (PKCS7_RECIP_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
626 &PKCS7_RECIP_INFO_it); 648 &PKCS7_RECIP_INFO_it);
627} 649}
650LCRYPTO_ALIAS(d2i_PKCS7_RECIP_INFO)
628 651
629int 652int
630i2d_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO *a, unsigned char **out) 653i2d_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO *a, unsigned char **out)
631{ 654{
632 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_RECIP_INFO_it); 655 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_RECIP_INFO_it);
633} 656}
657LCRYPTO_ALIAS(i2d_PKCS7_RECIP_INFO)
634 658
635PKCS7_RECIP_INFO * 659PKCS7_RECIP_INFO *
636PKCS7_RECIP_INFO_new(void) 660PKCS7_RECIP_INFO_new(void)
637{ 661{
638 return (PKCS7_RECIP_INFO *)ASN1_item_new(&PKCS7_RECIP_INFO_it); 662 return (PKCS7_RECIP_INFO *)ASN1_item_new(&PKCS7_RECIP_INFO_it);
639} 663}
664LCRYPTO_ALIAS(PKCS7_RECIP_INFO_new)
640 665
641void 666void
642PKCS7_RECIP_INFO_free(PKCS7_RECIP_INFO *a) 667PKCS7_RECIP_INFO_free(PKCS7_RECIP_INFO *a)
643{ 668{
644 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_RECIP_INFO_it); 669 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_RECIP_INFO_it);
645} 670}
671LCRYPTO_ALIAS(PKCS7_RECIP_INFO_free)
646 672
647static const ASN1_TEMPLATE PKCS7_ENC_CONTENT_seq_tt[] = { 673static const ASN1_TEMPLATE PKCS7_ENC_CONTENT_seq_tt[] = {
648 { 674 {
@@ -685,24 +711,28 @@ d2i_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT **a, const unsigned char **in, long len)
685 return (PKCS7_ENC_CONTENT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 711 return (PKCS7_ENC_CONTENT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
686 &PKCS7_ENC_CONTENT_it); 712 &PKCS7_ENC_CONTENT_it);
687} 713}
714LCRYPTO_ALIAS(d2i_PKCS7_ENC_CONTENT)
688 715
689int 716int
690i2d_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT *a, unsigned char **out) 717i2d_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT *a, unsigned char **out)
691{ 718{
692 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_ENC_CONTENT_it); 719 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_ENC_CONTENT_it);
693} 720}
721LCRYPTO_ALIAS(i2d_PKCS7_ENC_CONTENT)
694 722
695PKCS7_ENC_CONTENT * 723PKCS7_ENC_CONTENT *
696PKCS7_ENC_CONTENT_new(void) 724PKCS7_ENC_CONTENT_new(void)
697{ 725{
698 return (PKCS7_ENC_CONTENT *)ASN1_item_new(&PKCS7_ENC_CONTENT_it); 726 return (PKCS7_ENC_CONTENT *)ASN1_item_new(&PKCS7_ENC_CONTENT_it);
699} 727}
728LCRYPTO_ALIAS(PKCS7_ENC_CONTENT_new)
700 729
701void 730void
702PKCS7_ENC_CONTENT_free(PKCS7_ENC_CONTENT *a) 731PKCS7_ENC_CONTENT_free(PKCS7_ENC_CONTENT *a)
703{ 732{
704 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_ENC_CONTENT_it); 733 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_ENC_CONTENT_it);
705} 734}
735LCRYPTO_ALIAS(PKCS7_ENC_CONTENT_free)
706 736
707static const ASN1_TEMPLATE PKCS7_SIGN_ENVELOPE_seq_tt[] = { 737static const ASN1_TEMPLATE PKCS7_SIGN_ENVELOPE_seq_tt[] = {
708 { 738 {
@@ -773,24 +803,28 @@ d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a, const unsigned char **in, long
773 return (PKCS7_SIGN_ENVELOPE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 803 return (PKCS7_SIGN_ENVELOPE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
774 &PKCS7_SIGN_ENVELOPE_it); 804 &PKCS7_SIGN_ENVELOPE_it);
775} 805}
806LCRYPTO_ALIAS(d2i_PKCS7_SIGN_ENVELOPE)
776 807
777int 808int
778i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **out) 809i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **out)
779{ 810{
780 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_SIGN_ENVELOPE_it); 811 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_SIGN_ENVELOPE_it);
781} 812}
813LCRYPTO_ALIAS(i2d_PKCS7_SIGN_ENVELOPE)
782 814
783PKCS7_SIGN_ENVELOPE * 815PKCS7_SIGN_ENVELOPE *
784PKCS7_SIGN_ENVELOPE_new(void) 816PKCS7_SIGN_ENVELOPE_new(void)
785{ 817{
786 return (PKCS7_SIGN_ENVELOPE *)ASN1_item_new(&PKCS7_SIGN_ENVELOPE_it); 818 return (PKCS7_SIGN_ENVELOPE *)ASN1_item_new(&PKCS7_SIGN_ENVELOPE_it);
787} 819}
820LCRYPTO_ALIAS(PKCS7_SIGN_ENVELOPE_new)
788 821
789void 822void
790PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a) 823PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a)
791{ 824{
792 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_SIGN_ENVELOPE_it); 825 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_SIGN_ENVELOPE_it);
793} 826}
827LCRYPTO_ALIAS(PKCS7_SIGN_ENVELOPE_free)
794 828
795static const ASN1_TEMPLATE PKCS7_ENCRYPT_seq_tt[] = { 829static const ASN1_TEMPLATE PKCS7_ENCRYPT_seq_tt[] = {
796 { 830 {
@@ -826,24 +860,28 @@ d2i_PKCS7_ENCRYPT(PKCS7_ENCRYPT **a, const unsigned char **in, long len)
826 return (PKCS7_ENCRYPT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 860 return (PKCS7_ENCRYPT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
827 &PKCS7_ENCRYPT_it); 861 &PKCS7_ENCRYPT_it);
828} 862}
863LCRYPTO_ALIAS(d2i_PKCS7_ENCRYPT)
829 864
830int 865int
831i2d_PKCS7_ENCRYPT(PKCS7_ENCRYPT *a, unsigned char **out) 866i2d_PKCS7_ENCRYPT(PKCS7_ENCRYPT *a, unsigned char **out)
832{ 867{
833 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_ENCRYPT_it); 868 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_ENCRYPT_it);
834} 869}
870LCRYPTO_ALIAS(i2d_PKCS7_ENCRYPT)
835 871
836PKCS7_ENCRYPT * 872PKCS7_ENCRYPT *
837PKCS7_ENCRYPT_new(void) 873PKCS7_ENCRYPT_new(void)
838{ 874{
839 return (PKCS7_ENCRYPT *)ASN1_item_new(&PKCS7_ENCRYPT_it); 875 return (PKCS7_ENCRYPT *)ASN1_item_new(&PKCS7_ENCRYPT_it);
840} 876}
877LCRYPTO_ALIAS(PKCS7_ENCRYPT_new)
841 878
842void 879void
843PKCS7_ENCRYPT_free(PKCS7_ENCRYPT *a) 880PKCS7_ENCRYPT_free(PKCS7_ENCRYPT *a)
844{ 881{
845 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_ENCRYPT_it); 882 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_ENCRYPT_it);
846} 883}
884LCRYPTO_ALIAS(PKCS7_ENCRYPT_free)
847 885
848static const ASN1_TEMPLATE PKCS7_DIGEST_seq_tt[] = { 886static const ASN1_TEMPLATE PKCS7_DIGEST_seq_tt[] = {
849 { 887 {
@@ -893,24 +931,28 @@ d2i_PKCS7_DIGEST(PKCS7_DIGEST **a, const unsigned char **in, long len)
893 return (PKCS7_DIGEST *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, 931 return (PKCS7_DIGEST *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
894 &PKCS7_DIGEST_it); 932 &PKCS7_DIGEST_it);
895} 933}
934LCRYPTO_ALIAS(d2i_PKCS7_DIGEST)
896 935
897int 936int
898i2d_PKCS7_DIGEST(PKCS7_DIGEST *a, unsigned char **out) 937i2d_PKCS7_DIGEST(PKCS7_DIGEST *a, unsigned char **out)
899{ 938{
900 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_DIGEST_it); 939 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_DIGEST_it);
901} 940}
941LCRYPTO_ALIAS(i2d_PKCS7_DIGEST)
902 942
903PKCS7_DIGEST * 943PKCS7_DIGEST *
904PKCS7_DIGEST_new(void) 944PKCS7_DIGEST_new(void)
905{ 945{
906 return (PKCS7_DIGEST *)ASN1_item_new(&PKCS7_DIGEST_it); 946 return (PKCS7_DIGEST *)ASN1_item_new(&PKCS7_DIGEST_it);
907} 947}
948LCRYPTO_ALIAS(PKCS7_DIGEST_new)
908 949
909void 950void
910PKCS7_DIGEST_free(PKCS7_DIGEST *a) 951PKCS7_DIGEST_free(PKCS7_DIGEST *a)
911{ 952{
912 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_DIGEST_it); 953 ASN1_item_free((ASN1_VALUE *)a, &PKCS7_DIGEST_it);
913} 954}
955LCRYPTO_ALIAS(PKCS7_DIGEST_free)
914 956
915/* Specials for authenticated attributes */ 957/* Specials for authenticated attributes */
916 958
@@ -965,3 +1007,41 @@ PKCS7_print_ctx(BIO *out, PKCS7 *x, int indent, const ASN1_PCTX *pctx)
965 return ASN1_item_print(out, (ASN1_VALUE *)x, indent, 1007 return ASN1_item_print(out, (ASN1_VALUE *)x, indent,
966 &PKCS7_it, pctx); 1008 &PKCS7_it, pctx);
967} 1009}
1010LCRYPTO_ALIAS(PKCS7_print_ctx)
1011
1012PKCS7 *
1013d2i_PKCS7_bio(BIO *bp, PKCS7 **p7)
1014{
1015 return ASN1_item_d2i_bio(&PKCS7_it, bp, p7);
1016}
1017LCRYPTO_ALIAS(d2i_PKCS7_bio)
1018
1019int
1020i2d_PKCS7_bio(BIO *bp, PKCS7 *p7)
1021{
1022 return ASN1_item_i2d_bio(&PKCS7_it, bp, p7);
1023}
1024LCRYPTO_ALIAS(i2d_PKCS7_bio)
1025
1026PKCS7 *
1027d2i_PKCS7_fp(FILE *fp, PKCS7 **p7)
1028{
1029 return ASN1_item_d2i_fp(&PKCS7_it, fp, p7);
1030}
1031LCRYPTO_ALIAS(d2i_PKCS7_fp)
1032
1033int
1034i2d_PKCS7_fp(FILE *fp, PKCS7 *p7)
1035{
1036 return ASN1_item_i2d_fp(&PKCS7_it, fp, p7);
1037}
1038LCRYPTO_ALIAS(i2d_PKCS7_fp)
1039
1040int
1041PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,
1042 const EVP_MD *type, unsigned char *md, unsigned int *len)
1043{
1044 return(ASN1_item_digest(&PKCS7_ISSUER_AND_SERIAL_it, type,
1045 (char *)data, md, len));
1046}
1047LCRYPTO_ALIAS(PKCS7_ISSUER_AND_SERIAL_digest)