diff options
Diffstat (limited to 'src/lib/libcrypto/pkcs12/p12_asn.c')
-rw-r--r-- | src/lib/libcrypto/pkcs12/p12_asn.c | 106 |
1 files changed, 101 insertions, 5 deletions
diff --git a/src/lib/libcrypto/pkcs12/p12_asn.c b/src/lib/libcrypto/pkcs12/p12_asn.c index 5b3285ebe2..8e6ee29cb7 100644 --- a/src/lib/libcrypto/pkcs12/p12_asn.c +++ b/src/lib/libcrypto/pkcs12/p12_asn.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: p12_asn.c,v 1.6 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: p12_asn.c,v 1.7 2015/02/09 16:04:46 jsing 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 1999. | 3 | * project 1999. |
4 | */ | 4 | */ |
@@ -69,7 +69,31 @@ ASN1_SEQUENCE(PKCS12) = { | |||
69 | ASN1_OPT(PKCS12, mac, PKCS12_MAC_DATA) | 69 | ASN1_OPT(PKCS12, mac, PKCS12_MAC_DATA) |
70 | } ASN1_SEQUENCE_END(PKCS12) | 70 | } ASN1_SEQUENCE_END(PKCS12) |
71 | 71 | ||
72 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12) | 72 | |
73 | PKCS12 * | ||
74 | d2i_PKCS12(PKCS12 **a, const unsigned char **in, long len) | ||
75 | { | ||
76 | return (PKCS12 *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
77 | &PKCS12_it); | ||
78 | } | ||
79 | |||
80 | int | ||
81 | i2d_PKCS12(PKCS12 *a, unsigned char **out) | ||
82 | { | ||
83 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_it); | ||
84 | } | ||
85 | |||
86 | PKCS12 * | ||
87 | PKCS12_new(void) | ||
88 | { | ||
89 | return (PKCS12 *)ASN1_item_new(&PKCS12_it); | ||
90 | } | ||
91 | |||
92 | void | ||
93 | PKCS12_free(PKCS12 *a) | ||
94 | { | ||
95 | ASN1_item_free((ASN1_VALUE *)a, &PKCS12_it); | ||
96 | } | ||
73 | 97 | ||
74 | ASN1_SEQUENCE(PKCS12_MAC_DATA) = { | 98 | ASN1_SEQUENCE(PKCS12_MAC_DATA) = { |
75 | ASN1_SIMPLE(PKCS12_MAC_DATA, dinfo, X509_SIG), | 99 | ASN1_SIMPLE(PKCS12_MAC_DATA, dinfo, X509_SIG), |
@@ -77,7 +101,31 @@ ASN1_SEQUENCE(PKCS12_MAC_DATA) = { | |||
77 | ASN1_OPT(PKCS12_MAC_DATA, iter, ASN1_INTEGER) | 101 | ASN1_OPT(PKCS12_MAC_DATA, iter, ASN1_INTEGER) |
78 | } ASN1_SEQUENCE_END(PKCS12_MAC_DATA) | 102 | } ASN1_SEQUENCE_END(PKCS12_MAC_DATA) |
79 | 103 | ||
80 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12_MAC_DATA) | 104 | |
105 | PKCS12_MAC_DATA * | ||
106 | d2i_PKCS12_MAC_DATA(PKCS12_MAC_DATA **a, const unsigned char **in, long len) | ||
107 | { | ||
108 | return (PKCS12_MAC_DATA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
109 | &PKCS12_MAC_DATA_it); | ||
110 | } | ||
111 | |||
112 | int | ||
113 | i2d_PKCS12_MAC_DATA(PKCS12_MAC_DATA *a, unsigned char **out) | ||
114 | { | ||
115 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_MAC_DATA_it); | ||
116 | } | ||
117 | |||
118 | PKCS12_MAC_DATA * | ||
119 | PKCS12_MAC_DATA_new(void) | ||
120 | { | ||
121 | return (PKCS12_MAC_DATA *)ASN1_item_new(&PKCS12_MAC_DATA_it); | ||
122 | } | ||
123 | |||
124 | void | ||
125 | PKCS12_MAC_DATA_free(PKCS12_MAC_DATA *a) | ||
126 | { | ||
127 | ASN1_item_free((ASN1_VALUE *)a, &PKCS12_MAC_DATA_it); | ||
128 | } | ||
81 | 129 | ||
82 | ASN1_ADB_TEMPLATE(bag_default) = | 130 | ASN1_ADB_TEMPLATE(bag_default) = |
83 | ASN1_EXP(PKCS12_BAGS, value.other, ASN1_ANY, 0); | 131 | ASN1_EXP(PKCS12_BAGS, value.other, ASN1_ANY, 0); |
@@ -96,7 +144,31 @@ ASN1_SEQUENCE(PKCS12_BAGS) = { | |||
96 | ASN1_ADB_OBJECT(PKCS12_BAGS), | 144 | ASN1_ADB_OBJECT(PKCS12_BAGS), |
97 | } ASN1_SEQUENCE_END(PKCS12_BAGS) | 145 | } ASN1_SEQUENCE_END(PKCS12_BAGS) |
98 | 146 | ||
99 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12_BAGS) | 147 | |
148 | PKCS12_BAGS * | ||
149 | d2i_PKCS12_BAGS(PKCS12_BAGS **a, const unsigned char **in, long len) | ||
150 | { | ||
151 | return (PKCS12_BAGS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
152 | &PKCS12_BAGS_it); | ||
153 | } | ||
154 | |||
155 | int | ||
156 | i2d_PKCS12_BAGS(PKCS12_BAGS *a, unsigned char **out) | ||
157 | { | ||
158 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_BAGS_it); | ||
159 | } | ||
160 | |||
161 | PKCS12_BAGS * | ||
162 | PKCS12_BAGS_new(void) | ||
163 | { | ||
164 | return (PKCS12_BAGS *)ASN1_item_new(&PKCS12_BAGS_it); | ||
165 | } | ||
166 | |||
167 | void | ||
168 | PKCS12_BAGS_free(PKCS12_BAGS *a) | ||
169 | { | ||
170 | ASN1_item_free((ASN1_VALUE *)a, &PKCS12_BAGS_it); | ||
171 | } | ||
100 | 172 | ||
101 | ASN1_ADB_TEMPLATE(safebag_default) = | 173 | ASN1_ADB_TEMPLATE(safebag_default) = |
102 | ASN1_EXP(PKCS12_SAFEBAG, value.other, ASN1_ANY, 0); | 174 | ASN1_EXP(PKCS12_SAFEBAG, value.other, ASN1_ANY, 0); |
@@ -122,7 +194,31 @@ ASN1_SEQUENCE(PKCS12_SAFEBAG) = { | |||
122 | ASN1_SET_OF_OPT(PKCS12_SAFEBAG, attrib, X509_ATTRIBUTE) | 194 | ASN1_SET_OF_OPT(PKCS12_SAFEBAG, attrib, X509_ATTRIBUTE) |
123 | } ASN1_SEQUENCE_END(PKCS12_SAFEBAG) | 195 | } ASN1_SEQUENCE_END(PKCS12_SAFEBAG) |
124 | 196 | ||
125 | IMPLEMENT_ASN1_FUNCTIONS(PKCS12_SAFEBAG) | 197 | |
198 | PKCS12_SAFEBAG * | ||
199 | d2i_PKCS12_SAFEBAG(PKCS12_SAFEBAG **a, const unsigned char **in, long len) | ||
200 | { | ||
201 | return (PKCS12_SAFEBAG *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
202 | &PKCS12_SAFEBAG_it); | ||
203 | } | ||
204 | |||
205 | int | ||
206 | i2d_PKCS12_SAFEBAG(PKCS12_SAFEBAG *a, unsigned char **out) | ||
207 | { | ||
208 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_SAFEBAG_it); | ||
209 | } | ||
210 | |||
211 | PKCS12_SAFEBAG * | ||
212 | PKCS12_SAFEBAG_new(void) | ||
213 | { | ||
214 | return (PKCS12_SAFEBAG *)ASN1_item_new(&PKCS12_SAFEBAG_it); | ||
215 | } | ||
216 | |||
217 | void | ||
218 | PKCS12_SAFEBAG_free(PKCS12_SAFEBAG *a) | ||
219 | { | ||
220 | ASN1_item_free((ASN1_VALUE *)a, &PKCS12_SAFEBAG_it); | ||
221 | } | ||
126 | 222 | ||
127 | /* SEQUENCE OF SafeBag */ | 223 | /* SEQUENCE OF SafeBag */ |
128 | ASN1_ITEM_TEMPLATE(PKCS12_SAFEBAGS) = | 224 | ASN1_ITEM_TEMPLATE(PKCS12_SAFEBAGS) = |