diff options
author | beck <> | 1999-09-29 04:37:45 +0000 |
---|---|---|
committer | beck <> | 1999-09-29 04:37:45 +0000 |
commit | de8f24ea083384bb66b32ec105dc4743c5663cdf (patch) | |
tree | 1412176ae62a3cab2cf2b0b92150fcbceaac6092 /src/lib/libcrypto/asn1/p7_s_e.c | |
parent | cb929d29896bcb87c2a97417fbd03e50078fc178 (diff) | |
download | openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.gz openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.bz2 openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.zip |
OpenSSL 0.9.4 merge
Diffstat (limited to 'src/lib/libcrypto/asn1/p7_s_e.c')
-rw-r--r-- | src/lib/libcrypto/asn1/p7_s_e.c | 81 |
1 files changed, 40 insertions, 41 deletions
diff --git a/src/lib/libcrypto/asn1/p7_s_e.c b/src/lib/libcrypto/asn1/p7_s_e.c index d344211456..90946695c9 100644 --- a/src/lib/libcrypto/asn1/p7_s_e.c +++ b/src/lib/libcrypto/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 | /* | 64 | int 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 | |||
69 | int i2d_PKCS7_SIGN_ENVELOPE(a,pp) | ||
70 | PKCS7_SIGN_ENVELOPE *a; | ||
71 | unsigned 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 | ||
96 | PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(a,pp,length) | 93 | PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a, |
97 | PKCS7_SIGN_ENVELOPE **a; | 94 | unsigned char **pp, long length) |
98 | unsigned char **pp; | ||
99 | long 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 | ||
117 | PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new() | 116 | PKCS7_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 | ||
133 | void PKCS7_SIGN_ENVELOPE_free(a) | 133 | void PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a) |
134 | PKCS7_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 | ||