summaryrefslogtreecommitdiff
path: root/src/lib/libssl/src/crypto/asn1/p7_s_e.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/src/crypto/asn1/p7_s_e.c')
-rw-r--r--src/lib/libssl/src/crypto/asn1/p7_s_e.c81
1 files changed, 40 insertions, 41 deletions
diff --git a/src/lib/libssl/src/crypto/asn1/p7_s_e.c b/src/lib/libssl/src/crypto/asn1/p7_s_e.c
index d344211456..90946695c9 100644
--- a/src/lib/libssl/src/crypto/asn1/p7_s_e.c
+++ b/src/lib/libssl/src/crypto/asn1/p7_s_e.c
@@ -58,89 +58,88 @@
58 58
59#include <stdio.h> 59#include <stdio.h>
60#include "cryptlib.h" 60#include "cryptlib.h"
61#include "asn1_mac.h" 61#include <openssl/asn1_mac.h>
62#include "x509.h" 62#include <openssl/x509.h>
63 63
64/* 64int i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **pp)
65 * ASN1err(ASN1_F_PKCS7_SIGN_ENVELOPE_NEW,ASN1_R_LENGTH_MISMATCH);
66 * ASN1err(ASN1_F_D2I_PKCS7_SIGN_ENVELOPE,ASN1_R_LENGTH_MISMATCH);
67 */
68
69int i2d_PKCS7_SIGN_ENVELOPE(a,pp)
70PKCS7_SIGN_ENVELOPE *a;
71unsigned char **pp;
72 { 65 {
73 M_ASN1_I2D_vars(a); 66 M_ASN1_I2D_vars(a);
74 67
75 M_ASN1_I2D_len(a->version,i2d_ASN1_INTEGER); 68 M_ASN1_I2D_len(a->version,i2d_ASN1_INTEGER);
76 M_ASN1_I2D_len_SET(a->recipientinfo,i2d_PKCS7_RECIP_INFO); 69 M_ASN1_I2D_len_SET_type(PKCS7_RECIP_INFO,a->recipientinfo,
77 M_ASN1_I2D_len_SET(a->md_algs,i2d_X509_ALGOR); 70 i2d_PKCS7_RECIP_INFO);
71 M_ASN1_I2D_len_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
78 M_ASN1_I2D_len(a->enc_data,i2d_PKCS7_ENC_CONTENT); 72 M_ASN1_I2D_len(a->enc_data,i2d_PKCS7_ENC_CONTENT);
79 M_ASN1_I2D_len_IMP_set_opt(a->cert,i2d_X509,0); 73 M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
80 M_ASN1_I2D_len_IMP_set_opt(a->crl,i2d_X509_CRL,1); 74 M_ASN1_I2D_len_IMP_SET_opt_type(X509_CRL,a->crl,i2d_X509_CRL,1);
81 M_ASN1_I2D_len_SET(a->signer_info,i2d_PKCS7_SIGNER_INFO); 75 M_ASN1_I2D_len_SET_type(PKCS7_SIGNER_INFO,a->signer_info,
76 i2d_PKCS7_SIGNER_INFO);
82 77
83 M_ASN1_I2D_seq_total(); 78 M_ASN1_I2D_seq_total();
84 79
85 M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER); 80 M_ASN1_I2D_put(a->version,i2d_ASN1_INTEGER);
86 M_ASN1_I2D_put_SET(a->recipientinfo,i2d_PKCS7_RECIP_INFO); 81 M_ASN1_I2D_put_SET_type(PKCS7_RECIP_INFO,a->recipientinfo,
87 M_ASN1_I2D_put_SET(a->md_algs,i2d_X509_ALGOR); 82 i2d_PKCS7_RECIP_INFO);
83 M_ASN1_I2D_put_SET_type(X509_ALGOR,a->md_algs,i2d_X509_ALGOR);
88 M_ASN1_I2D_put(a->enc_data,i2d_PKCS7_ENC_CONTENT); 84 M_ASN1_I2D_put(a->enc_data,i2d_PKCS7_ENC_CONTENT);
89 M_ASN1_I2D_put_IMP_set_opt(a->cert,i2d_X509,0); 85 M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(X509,a->cert,i2d_X509,0);
90 M_ASN1_I2D_put_IMP_set_opt(a->crl,i2d_X509_CRL,1); 86 M_ASN1_I2D_put_IMP_SET_opt_type(X509_CRL,a->crl,i2d_X509_CRL,1);
91 M_ASN1_I2D_put_SET(a->signer_info,i2d_PKCS7_SIGNER_INFO); 87 M_ASN1_I2D_put_SET_type(PKCS7_SIGNER_INFO,a->signer_info,
88 i2d_PKCS7_SIGNER_INFO);
92 89
93 M_ASN1_I2D_finish(); 90 M_ASN1_I2D_finish();
94 } 91 }
95 92
96PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(a,pp,length) 93PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a,
97PKCS7_SIGN_ENVELOPE **a; 94 unsigned char **pp, long length)
98unsigned char **pp;
99long length;
100 { 95 {
101 M_ASN1_D2I_vars(a,PKCS7_SIGN_ENVELOPE *,PKCS7_SIGN_ENVELOPE_new); 96 M_ASN1_D2I_vars(a,PKCS7_SIGN_ENVELOPE *,PKCS7_SIGN_ENVELOPE_new);
102 97
103 M_ASN1_D2I_Init(); 98 M_ASN1_D2I_Init();
104 M_ASN1_D2I_start_sequence(); 99 M_ASN1_D2I_start_sequence();
105 M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER); 100 M_ASN1_D2I_get(ret->version,d2i_ASN1_INTEGER);
106 M_ASN1_D2I_get_set(ret->recipientinfo,d2i_PKCS7_RECIP_INFO); 101 M_ASN1_D2I_get_set_type(PKCS7_RECIP_INFO,ret->recipientinfo,
107 M_ASN1_D2I_get_set(ret->md_algs,d2i_X509_ALGOR); 102 d2i_PKCS7_RECIP_INFO,PKCS7_RECIP_INFO_free);
103 M_ASN1_D2I_get_set_type(X509_ALGOR,ret->md_algs,d2i_X509_ALGOR,
104 X509_ALGOR_free);
108 M_ASN1_D2I_get(ret->enc_data,d2i_PKCS7_ENC_CONTENT); 105 M_ASN1_D2I_get(ret->enc_data,d2i_PKCS7_ENC_CONTENT);
109 M_ASN1_D2I_get_IMP_set_opt(ret->cert,d2i_X509,0); 106 M_ASN1_D2I_get_IMP_set_opt_type(X509,ret->cert,d2i_X509,X509_free,0);
110 M_ASN1_D2I_get_IMP_set_opt(ret->crl,d2i_X509_CRL,1); 107 M_ASN1_D2I_get_IMP_set_opt_type(X509_CRL,ret->crl,d2i_X509_CRL,
111 M_ASN1_D2I_get_set(ret->signer_info,d2i_PKCS7_SIGNER_INFO); 108 X509_CRL_free,1);
109 M_ASN1_D2I_get_set_type(PKCS7_SIGNER_INFO,ret->signer_info,
110 d2i_PKCS7_SIGNER_INFO,PKCS7_SIGNER_INFO_free);
112 111
113 M_ASN1_D2I_Finish(a,PKCS7_SIGN_ENVELOPE_free, 112 M_ASN1_D2I_Finish(a,PKCS7_SIGN_ENVELOPE_free,
114 ASN1_F_D2I_PKCS7_SIGN_ENVELOPE); 113 ASN1_F_D2I_PKCS7_SIGN_ENVELOPE);
115 } 114 }
116 115
117PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new() 116PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new(void)
118 { 117 {
119 PKCS7_SIGN_ENVELOPE *ret=NULL; 118 PKCS7_SIGN_ENVELOPE *ret=NULL;
119 ASN1_CTX c;
120 120
121 M_ASN1_New_Malloc(ret,PKCS7_SIGN_ENVELOPE); 121 M_ASN1_New_Malloc(ret,PKCS7_SIGN_ENVELOPE);
122 M_ASN1_New(ret->version,ASN1_INTEGER_new); 122 M_ASN1_New(ret->version,ASN1_INTEGER_new);
123 M_ASN1_New(ret->recipientinfo,sk_new_null); 123 M_ASN1_New(ret->recipientinfo,sk_PKCS7_RECIP_INFO_new_null);
124 M_ASN1_New(ret->md_algs,sk_new_null); 124 M_ASN1_New(ret->md_algs,sk_X509_ALGOR_new_null);
125 M_ASN1_New(ret->enc_data,PKCS7_ENC_CONTENT_new); 125 M_ASN1_New(ret->enc_data,PKCS7_ENC_CONTENT_new);
126 ret->cert=NULL; 126 ret->cert=NULL;
127 ret->crl=NULL; 127 ret->crl=NULL;
128 M_ASN1_New(ret->signer_info,sk_new_null); 128 M_ASN1_New(ret->signer_info,sk_PKCS7_SIGNER_INFO_new_null);
129 return(ret); 129 return(ret);
130 M_ASN1_New_Error(ASN1_F_PKCS7_SIGN_ENVELOPE_NEW); 130 M_ASN1_New_Error(ASN1_F_PKCS7_SIGN_ENVELOPE_NEW);
131 } 131 }
132 132
133void PKCS7_SIGN_ENVELOPE_free(a) 133void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a)
134PKCS7_SIGN_ENVELOPE *a;
135 { 134 {
136 if (a == NULL) return; 135 if (a == NULL) return;
137 ASN1_INTEGER_free(a->version); 136 ASN1_INTEGER_free(a->version);
138 sk_pop_free(a->recipientinfo,PKCS7_RECIP_INFO_free); 137 sk_PKCS7_RECIP_INFO_pop_free(a->recipientinfo,PKCS7_RECIP_INFO_free);
139 sk_pop_free(a->md_algs,X509_ALGOR_free); 138 sk_X509_ALGOR_pop_free(a->md_algs,X509_ALGOR_free);
140 PKCS7_ENC_CONTENT_free(a->enc_data); 139 PKCS7_ENC_CONTENT_free(a->enc_data);
141 sk_pop_free(a->cert,X509_free); 140 sk_X509_pop_free(a->cert,X509_free);
142 sk_pop_free(a->crl,X509_CRL_free); 141 sk_X509_CRL_pop_free(a->crl,X509_CRL_free);
143 sk_pop_free(a->signer_info,PKCS7_SIGNER_INFO_free); 142 sk_PKCS7_SIGNER_INFO_pop_free(a->signer_info,PKCS7_SIGNER_INFO_free);
144 Free((char *)a); 143 Free(a);
145 } 144 }
146 145