diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/tasn_typ.c')
-rw-r--r-- | src/lib/libcrypto/asn1/tasn_typ.c | 739 |
1 files changed, 0 insertions, 739 deletions
diff --git a/src/lib/libcrypto/asn1/tasn_typ.c b/src/lib/libcrypto/asn1/tasn_typ.c deleted file mode 100644 index 0f7fcb0e03..0000000000 --- a/src/lib/libcrypto/asn1/tasn_typ.c +++ /dev/null | |||
@@ -1,739 +0,0 @@ | |||
1 | /* $OpenBSD: tasn_typ.c,v 1.20 2024/07/08 16:24:22 beck Exp $ */ | ||
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | ||
3 | * project 2000. | ||
4 | */ | ||
5 | /* ==================================================================== | ||
6 | * Copyright (c) 2000 The OpenSSL Project. All rights reserved. | ||
7 | * | ||
8 | * Redistribution and use in source and binary forms, with or without | ||
9 | * modification, are permitted provided that the following conditions | ||
10 | * are met: | ||
11 | * | ||
12 | * 1. Redistributions of source code must retain the above copyright | ||
13 | * notice, this list of conditions and the following disclaimer. | ||
14 | * | ||
15 | * 2. Redistributions in binary form must reproduce the above copyright | ||
16 | * notice, this list of conditions and the following disclaimer in | ||
17 | * the documentation and/or other materials provided with the | ||
18 | * distribution. | ||
19 | * | ||
20 | * 3. All advertising materials mentioning features or use of this | ||
21 | * software must display the following acknowledgment: | ||
22 | * "This product includes software developed by the OpenSSL Project | ||
23 | * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" | ||
24 | * | ||
25 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
26 | * endorse or promote products derived from this software without | ||
27 | * prior written permission. For written permission, please contact | ||
28 | * licensing@OpenSSL.org. | ||
29 | * | ||
30 | * 5. Products derived from this software may not be called "OpenSSL" | ||
31 | * nor may "OpenSSL" appear in their names without prior written | ||
32 | * permission of the OpenSSL Project. | ||
33 | * | ||
34 | * 6. Redistributions of any form whatsoever must retain the following | ||
35 | * acknowledgment: | ||
36 | * "This product includes software developed by the OpenSSL Project | ||
37 | * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" | ||
38 | * | ||
39 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
40 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
41 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
42 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
43 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
44 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
45 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
46 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
47 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
48 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
49 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
50 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
51 | * ==================================================================== | ||
52 | * | ||
53 | * This product includes cryptographic software written by Eric Young | ||
54 | * (eay@cryptsoft.com). This product includes software written by Tim | ||
55 | * Hudson (tjh@cryptsoft.com). | ||
56 | * | ||
57 | */ | ||
58 | #include <stdio.h> | ||
59 | #include <openssl/asn1.h> | ||
60 | #include <openssl/asn1t.h> | ||
61 | |||
62 | /* Declarations for string types */ | ||
63 | |||
64 | const ASN1_ITEM ASN1_NULL_it = { | ||
65 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
66 | .utype = V_ASN1_NULL, | ||
67 | .sname = "ASN1_NULL", | ||
68 | }; | ||
69 | LCRYPTO_ALIAS(ASN1_NULL_it); | ||
70 | |||
71 | ASN1_NULL * | ||
72 | d2i_ASN1_NULL(ASN1_NULL **a, const unsigned char **in, long len) | ||
73 | { | ||
74 | return (ASN1_NULL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
75 | &ASN1_NULL_it); | ||
76 | } | ||
77 | LCRYPTO_ALIAS(d2i_ASN1_NULL); | ||
78 | |||
79 | int | ||
80 | i2d_ASN1_NULL(ASN1_NULL *a, unsigned char **out) | ||
81 | { | ||
82 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_NULL_it); | ||
83 | } | ||
84 | LCRYPTO_ALIAS(i2d_ASN1_NULL); | ||
85 | |||
86 | ASN1_NULL * | ||
87 | ASN1_NULL_new(void) | ||
88 | { | ||
89 | return (ASN1_NULL *)ASN1_item_new(&ASN1_NULL_it); | ||
90 | } | ||
91 | LCRYPTO_ALIAS(ASN1_NULL_new); | ||
92 | |||
93 | void | ||
94 | ASN1_NULL_free(ASN1_NULL *a) | ||
95 | { | ||
96 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_NULL_it); | ||
97 | } | ||
98 | LCRYPTO_ALIAS(ASN1_NULL_free); | ||
99 | |||
100 | |||
101 | const ASN1_ITEM ASN1_UTF8STRING_it = { | ||
102 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
103 | .utype = V_ASN1_UTF8STRING, | ||
104 | .sname = "ASN1_UTF8STRING", | ||
105 | }; | ||
106 | LCRYPTO_ALIAS(ASN1_UTF8STRING_it); | ||
107 | |||
108 | ASN1_UTF8STRING * | ||
109 | d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a, const unsigned char **in, long len) | ||
110 | { | ||
111 | return (ASN1_UTF8STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
112 | &ASN1_UTF8STRING_it); | ||
113 | } | ||
114 | LCRYPTO_ALIAS(d2i_ASN1_UTF8STRING); | ||
115 | |||
116 | int | ||
117 | i2d_ASN1_UTF8STRING(ASN1_UTF8STRING *a, unsigned char **out) | ||
118 | { | ||
119 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_UTF8STRING_it); | ||
120 | } | ||
121 | LCRYPTO_ALIAS(i2d_ASN1_UTF8STRING); | ||
122 | |||
123 | ASN1_UTF8STRING * | ||
124 | ASN1_UTF8STRING_new(void) | ||
125 | { | ||
126 | return (ASN1_UTF8STRING *)ASN1_item_new(&ASN1_UTF8STRING_it); | ||
127 | } | ||
128 | LCRYPTO_ALIAS(ASN1_UTF8STRING_new); | ||
129 | |||
130 | void | ||
131 | ASN1_UTF8STRING_free(ASN1_UTF8STRING *a) | ||
132 | { | ||
133 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTF8STRING_it); | ||
134 | } | ||
135 | LCRYPTO_ALIAS(ASN1_UTF8STRING_free); | ||
136 | |||
137 | |||
138 | const ASN1_ITEM ASN1_PRINTABLESTRING_it = { | ||
139 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
140 | .utype = V_ASN1_PRINTABLESTRING, | ||
141 | .sname = "ASN1_PRINTABLESTRING", | ||
142 | }; | ||
143 | LCRYPTO_ALIAS(ASN1_PRINTABLESTRING_it); | ||
144 | |||
145 | ASN1_PRINTABLESTRING * | ||
146 | d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a, const unsigned char **in, | ||
147 | long len) | ||
148 | { | ||
149 | return (ASN1_PRINTABLESTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
150 | &ASN1_PRINTABLESTRING_it); | ||
151 | } | ||
152 | LCRYPTO_ALIAS(d2i_ASN1_PRINTABLESTRING); | ||
153 | |||
154 | int | ||
155 | i2d_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING *a, unsigned char **out) | ||
156 | { | ||
157 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_PRINTABLESTRING_it); | ||
158 | } | ||
159 | LCRYPTO_ALIAS(i2d_ASN1_PRINTABLESTRING); | ||
160 | |||
161 | ASN1_PRINTABLESTRING * | ||
162 | ASN1_PRINTABLESTRING_new(void) | ||
163 | { | ||
164 | return (ASN1_PRINTABLESTRING *)ASN1_item_new(&ASN1_PRINTABLESTRING_it); | ||
165 | } | ||
166 | LCRYPTO_ALIAS(ASN1_PRINTABLESTRING_new); | ||
167 | |||
168 | void | ||
169 | ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a) | ||
170 | { | ||
171 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_PRINTABLESTRING_it); | ||
172 | } | ||
173 | LCRYPTO_ALIAS(ASN1_PRINTABLESTRING_free); | ||
174 | |||
175 | |||
176 | const ASN1_ITEM ASN1_T61STRING_it = { | ||
177 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
178 | .utype = V_ASN1_T61STRING, | ||
179 | .sname = "ASN1_T61STRING", | ||
180 | }; | ||
181 | LCRYPTO_ALIAS(ASN1_T61STRING_it); | ||
182 | |||
183 | ASN1_T61STRING * | ||
184 | d2i_ASN1_T61STRING(ASN1_T61STRING **a, const unsigned char **in, long len) | ||
185 | { | ||
186 | return (ASN1_T61STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
187 | &ASN1_T61STRING_it); | ||
188 | } | ||
189 | LCRYPTO_ALIAS(d2i_ASN1_T61STRING); | ||
190 | |||
191 | int | ||
192 | i2d_ASN1_T61STRING(ASN1_T61STRING *a, unsigned char **out) | ||
193 | { | ||
194 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_T61STRING_it); | ||
195 | } | ||
196 | LCRYPTO_ALIAS(i2d_ASN1_T61STRING); | ||
197 | |||
198 | ASN1_T61STRING * | ||
199 | ASN1_T61STRING_new(void) | ||
200 | { | ||
201 | return (ASN1_T61STRING *)ASN1_item_new(&ASN1_T61STRING_it); | ||
202 | } | ||
203 | LCRYPTO_ALIAS(ASN1_T61STRING_new); | ||
204 | |||
205 | void | ||
206 | ASN1_T61STRING_free(ASN1_T61STRING *a) | ||
207 | { | ||
208 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_T61STRING_it); | ||
209 | } | ||
210 | LCRYPTO_ALIAS(ASN1_T61STRING_free); | ||
211 | |||
212 | |||
213 | const ASN1_ITEM ASN1_IA5STRING_it = { | ||
214 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
215 | .utype = V_ASN1_IA5STRING, | ||
216 | .sname = "ASN1_IA5STRING", | ||
217 | }; | ||
218 | LCRYPTO_ALIAS(ASN1_IA5STRING_it); | ||
219 | |||
220 | ASN1_IA5STRING * | ||
221 | d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, const unsigned char **in, long len) | ||
222 | { | ||
223 | return (ASN1_IA5STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
224 | &ASN1_IA5STRING_it); | ||
225 | } | ||
226 | LCRYPTO_ALIAS(d2i_ASN1_IA5STRING); | ||
227 | |||
228 | int | ||
229 | i2d_ASN1_IA5STRING(ASN1_IA5STRING *a, unsigned char **out) | ||
230 | { | ||
231 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_IA5STRING_it); | ||
232 | } | ||
233 | LCRYPTO_ALIAS(i2d_ASN1_IA5STRING); | ||
234 | |||
235 | ASN1_IA5STRING * | ||
236 | ASN1_IA5STRING_new(void) | ||
237 | { | ||
238 | return (ASN1_IA5STRING *)ASN1_item_new(&ASN1_IA5STRING_it); | ||
239 | } | ||
240 | LCRYPTO_ALIAS(ASN1_IA5STRING_new); | ||
241 | |||
242 | void | ||
243 | ASN1_IA5STRING_free(ASN1_IA5STRING *a) | ||
244 | { | ||
245 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_IA5STRING_it); | ||
246 | } | ||
247 | LCRYPTO_ALIAS(ASN1_IA5STRING_free); | ||
248 | |||
249 | |||
250 | const ASN1_ITEM ASN1_GENERALSTRING_it = { | ||
251 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
252 | .utype = V_ASN1_GENERALSTRING, | ||
253 | .sname = "ASN1_GENERALSTRING", | ||
254 | }; | ||
255 | LCRYPTO_ALIAS(ASN1_GENERALSTRING_it); | ||
256 | |||
257 | ASN1_GENERALSTRING * | ||
258 | d2i_ASN1_GENERALSTRING(ASN1_GENERALSTRING **a, const unsigned char **in, | ||
259 | long len) | ||
260 | { | ||
261 | return (ASN1_GENERALSTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
262 | &ASN1_GENERALSTRING_it); | ||
263 | } | ||
264 | LCRYPTO_ALIAS(d2i_ASN1_GENERALSTRING); | ||
265 | |||
266 | int | ||
267 | i2d_ASN1_GENERALSTRING(ASN1_GENERALSTRING *a, unsigned char **out) | ||
268 | { | ||
269 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_GENERALSTRING_it); | ||
270 | } | ||
271 | LCRYPTO_ALIAS(i2d_ASN1_GENERALSTRING); | ||
272 | |||
273 | ASN1_GENERALSTRING * | ||
274 | ASN1_GENERALSTRING_new(void) | ||
275 | { | ||
276 | return (ASN1_GENERALSTRING *)ASN1_item_new(&ASN1_GENERALSTRING_it); | ||
277 | } | ||
278 | LCRYPTO_ALIAS(ASN1_GENERALSTRING_new); | ||
279 | |||
280 | void | ||
281 | ASN1_GENERALSTRING_free(ASN1_GENERALSTRING *a) | ||
282 | { | ||
283 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALSTRING_it); | ||
284 | } | ||
285 | LCRYPTO_ALIAS(ASN1_GENERALSTRING_free); | ||
286 | |||
287 | |||
288 | const ASN1_ITEM ASN1_UTCTIME_it = { | ||
289 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
290 | .utype = V_ASN1_UTCTIME, | ||
291 | .sname = "ASN1_UTCTIME", | ||
292 | }; | ||
293 | LCRYPTO_ALIAS(ASN1_UTCTIME_it); | ||
294 | |||
295 | ASN1_UTCTIME * | ||
296 | d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, const unsigned char **in, long len) | ||
297 | { | ||
298 | return (ASN1_UTCTIME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
299 | &ASN1_UTCTIME_it); | ||
300 | } | ||
301 | LCRYPTO_ALIAS(d2i_ASN1_UTCTIME); | ||
302 | |||
303 | int | ||
304 | i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **out) | ||
305 | { | ||
306 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_UTCTIME_it); | ||
307 | } | ||
308 | LCRYPTO_ALIAS(i2d_ASN1_UTCTIME); | ||
309 | |||
310 | ASN1_UTCTIME * | ||
311 | ASN1_UTCTIME_new(void) | ||
312 | { | ||
313 | return (ASN1_UTCTIME *)ASN1_item_new(&ASN1_UTCTIME_it); | ||
314 | } | ||
315 | LCRYPTO_ALIAS(ASN1_UTCTIME_new); | ||
316 | |||
317 | void | ||
318 | ASN1_UTCTIME_free(ASN1_UTCTIME *a) | ||
319 | { | ||
320 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTCTIME_it); | ||
321 | } | ||
322 | LCRYPTO_ALIAS(ASN1_UTCTIME_free); | ||
323 | |||
324 | |||
325 | const ASN1_ITEM ASN1_GENERALIZEDTIME_it = { | ||
326 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
327 | .utype = V_ASN1_GENERALIZEDTIME, | ||
328 | .sname = "ASN1_GENERALIZEDTIME", | ||
329 | }; | ||
330 | LCRYPTO_ALIAS(ASN1_GENERALIZEDTIME_it); | ||
331 | |||
332 | ASN1_GENERALIZEDTIME * | ||
333 | d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, const unsigned char **in, | ||
334 | long len) | ||
335 | { | ||
336 | return (ASN1_GENERALIZEDTIME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
337 | &ASN1_GENERALIZEDTIME_it); | ||
338 | } | ||
339 | LCRYPTO_ALIAS(d2i_ASN1_GENERALIZEDTIME); | ||
340 | |||
341 | int | ||
342 | i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a, unsigned char **out) | ||
343 | { | ||
344 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_GENERALIZEDTIME_it); | ||
345 | } | ||
346 | LCRYPTO_ALIAS(i2d_ASN1_GENERALIZEDTIME); | ||
347 | |||
348 | ASN1_GENERALIZEDTIME * | ||
349 | ASN1_GENERALIZEDTIME_new(void) | ||
350 | { | ||
351 | return (ASN1_GENERALIZEDTIME *)ASN1_item_new(&ASN1_GENERALIZEDTIME_it); | ||
352 | } | ||
353 | LCRYPTO_ALIAS(ASN1_GENERALIZEDTIME_new); | ||
354 | |||
355 | void | ||
356 | ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *a) | ||
357 | { | ||
358 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALIZEDTIME_it); | ||
359 | } | ||
360 | LCRYPTO_ALIAS(ASN1_GENERALIZEDTIME_free); | ||
361 | |||
362 | |||
363 | const ASN1_ITEM ASN1_VISIBLESTRING_it = { | ||
364 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
365 | .utype = V_ASN1_VISIBLESTRING, | ||
366 | .sname = "ASN1_VISIBLESTRING", | ||
367 | }; | ||
368 | LCRYPTO_ALIAS(ASN1_VISIBLESTRING_it); | ||
369 | |||
370 | ASN1_VISIBLESTRING * | ||
371 | d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a, const unsigned char **in, | ||
372 | long len) | ||
373 | { | ||
374 | return (ASN1_VISIBLESTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
375 | &ASN1_VISIBLESTRING_it); | ||
376 | } | ||
377 | LCRYPTO_ALIAS(d2i_ASN1_VISIBLESTRING); | ||
378 | |||
379 | int | ||
380 | i2d_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING *a, unsigned char **out) | ||
381 | { | ||
382 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_VISIBLESTRING_it); | ||
383 | } | ||
384 | LCRYPTO_ALIAS(i2d_ASN1_VISIBLESTRING); | ||
385 | |||
386 | ASN1_VISIBLESTRING * | ||
387 | ASN1_VISIBLESTRING_new(void) | ||
388 | { | ||
389 | return (ASN1_VISIBLESTRING *)ASN1_item_new(&ASN1_VISIBLESTRING_it); | ||
390 | } | ||
391 | LCRYPTO_ALIAS(ASN1_VISIBLESTRING_new); | ||
392 | |||
393 | void | ||
394 | ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *a) | ||
395 | { | ||
396 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_VISIBLESTRING_it); | ||
397 | } | ||
398 | LCRYPTO_ALIAS(ASN1_VISIBLESTRING_free); | ||
399 | |||
400 | |||
401 | const ASN1_ITEM ASN1_UNIVERSALSTRING_it = { | ||
402 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
403 | .utype = V_ASN1_UNIVERSALSTRING, | ||
404 | .sname = "ASN1_UNIVERSALSTRING", | ||
405 | }; | ||
406 | LCRYPTO_ALIAS(ASN1_UNIVERSALSTRING_it); | ||
407 | |||
408 | ASN1_UNIVERSALSTRING * | ||
409 | d2i_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING **a, const unsigned char **in, | ||
410 | long len) | ||
411 | { | ||
412 | return (ASN1_UNIVERSALSTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
413 | &ASN1_UNIVERSALSTRING_it); | ||
414 | } | ||
415 | LCRYPTO_ALIAS(d2i_ASN1_UNIVERSALSTRING); | ||
416 | |||
417 | int | ||
418 | i2d_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING *a, unsigned char **out) | ||
419 | { | ||
420 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_UNIVERSALSTRING_it); | ||
421 | } | ||
422 | LCRYPTO_ALIAS(i2d_ASN1_UNIVERSALSTRING); | ||
423 | |||
424 | ASN1_UNIVERSALSTRING * | ||
425 | ASN1_UNIVERSALSTRING_new(void) | ||
426 | { | ||
427 | return (ASN1_UNIVERSALSTRING *)ASN1_item_new(&ASN1_UNIVERSALSTRING_it); | ||
428 | } | ||
429 | LCRYPTO_ALIAS(ASN1_UNIVERSALSTRING_new); | ||
430 | |||
431 | void | ||
432 | ASN1_UNIVERSALSTRING_free(ASN1_UNIVERSALSTRING *a) | ||
433 | { | ||
434 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UNIVERSALSTRING_it); | ||
435 | } | ||
436 | LCRYPTO_ALIAS(ASN1_UNIVERSALSTRING_free); | ||
437 | |||
438 | |||
439 | const ASN1_ITEM ASN1_BMPSTRING_it = { | ||
440 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
441 | .utype = V_ASN1_BMPSTRING, | ||
442 | .sname = "ASN1_BMPSTRING", | ||
443 | }; | ||
444 | LCRYPTO_ALIAS(ASN1_BMPSTRING_it); | ||
445 | |||
446 | ASN1_BMPSTRING * | ||
447 | d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, const unsigned char **in, long len) | ||
448 | { | ||
449 | return (ASN1_BMPSTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
450 | &ASN1_BMPSTRING_it); | ||
451 | } | ||
452 | LCRYPTO_ALIAS(d2i_ASN1_BMPSTRING); | ||
453 | |||
454 | int | ||
455 | i2d_ASN1_BMPSTRING(ASN1_BMPSTRING *a, unsigned char **out) | ||
456 | { | ||
457 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_BMPSTRING_it); | ||
458 | } | ||
459 | LCRYPTO_ALIAS(i2d_ASN1_BMPSTRING); | ||
460 | |||
461 | ASN1_BMPSTRING * | ||
462 | ASN1_BMPSTRING_new(void) | ||
463 | { | ||
464 | return (ASN1_BMPSTRING *)ASN1_item_new(&ASN1_BMPSTRING_it); | ||
465 | } | ||
466 | LCRYPTO_ALIAS(ASN1_BMPSTRING_new); | ||
467 | |||
468 | void | ||
469 | ASN1_BMPSTRING_free(ASN1_BMPSTRING *a) | ||
470 | { | ||
471 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_BMPSTRING_it); | ||
472 | } | ||
473 | LCRYPTO_ALIAS(ASN1_BMPSTRING_free); | ||
474 | |||
475 | const ASN1_ITEM ASN1_ANY_it = { | ||
476 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
477 | .utype = V_ASN1_ANY, | ||
478 | .sname = "ASN1_ANY", | ||
479 | }; | ||
480 | LCRYPTO_ALIAS(ASN1_ANY_it); | ||
481 | |||
482 | |||
483 | /* Just swallow an ASN1_SEQUENCE in an ASN1_STRING */ | ||
484 | |||
485 | const ASN1_ITEM ASN1_SEQUENCE_it = { | ||
486 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
487 | .utype = V_ASN1_SEQUENCE, | ||
488 | .sname = "ASN1_SEQUENCE", | ||
489 | }; | ||
490 | LCRYPTO_ALIAS(ASN1_SEQUENCE_it); | ||
491 | |||
492 | |||
493 | /* Multistring types */ | ||
494 | |||
495 | |||
496 | const ASN1_ITEM ASN1_PRINTABLE_it = { | ||
497 | .itype = ASN1_ITYPE_MSTRING, | ||
498 | .utype = B_ASN1_PRINTABLE, | ||
499 | .templates = NULL, | ||
500 | .tcount = 0, | ||
501 | .funcs = NULL, | ||
502 | .size = sizeof(ASN1_STRING), | ||
503 | .sname = "ASN1_PRINTABLE", | ||
504 | }; | ||
505 | LCRYPTO_ALIAS(ASN1_PRINTABLE_it); | ||
506 | |||
507 | ASN1_STRING * | ||
508 | d2i_ASN1_PRINTABLE(ASN1_STRING **a, const unsigned char **in, long len) | ||
509 | { | ||
510 | return (ASN1_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
511 | &ASN1_PRINTABLE_it); | ||
512 | } | ||
513 | LCRYPTO_ALIAS(d2i_ASN1_PRINTABLE); | ||
514 | |||
515 | int | ||
516 | i2d_ASN1_PRINTABLE(ASN1_STRING *a, unsigned char **out) | ||
517 | { | ||
518 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_PRINTABLE_it); | ||
519 | } | ||
520 | LCRYPTO_ALIAS(i2d_ASN1_PRINTABLE); | ||
521 | |||
522 | ASN1_STRING * | ||
523 | ASN1_PRINTABLE_new(void) | ||
524 | { | ||
525 | return (ASN1_STRING *)ASN1_item_new(&ASN1_PRINTABLE_it); | ||
526 | } | ||
527 | LCRYPTO_ALIAS(ASN1_PRINTABLE_new); | ||
528 | |||
529 | void | ||
530 | ASN1_PRINTABLE_free(ASN1_STRING *a) | ||
531 | { | ||
532 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_PRINTABLE_it); | ||
533 | } | ||
534 | LCRYPTO_ALIAS(ASN1_PRINTABLE_free); | ||
535 | |||
536 | |||
537 | const ASN1_ITEM DISPLAYTEXT_it = { | ||
538 | .itype = ASN1_ITYPE_MSTRING, | ||
539 | .utype = B_ASN1_DISPLAYTEXT, | ||
540 | .templates = NULL, | ||
541 | .tcount = 0, | ||
542 | .funcs = NULL, | ||
543 | .size = sizeof(ASN1_STRING), | ||
544 | .sname = "DISPLAYTEXT", | ||
545 | }; | ||
546 | LCRYPTO_ALIAS(DISPLAYTEXT_it); | ||
547 | |||
548 | ASN1_STRING * | ||
549 | d2i_DISPLAYTEXT(ASN1_STRING **a, const unsigned char **in, long len) | ||
550 | { | ||
551 | return (ASN1_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
552 | &DISPLAYTEXT_it); | ||
553 | } | ||
554 | LCRYPTO_ALIAS(d2i_DISPLAYTEXT); | ||
555 | |||
556 | int | ||
557 | i2d_DISPLAYTEXT(ASN1_STRING *a, unsigned char **out) | ||
558 | { | ||
559 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &DISPLAYTEXT_it); | ||
560 | } | ||
561 | LCRYPTO_ALIAS(i2d_DISPLAYTEXT); | ||
562 | |||
563 | ASN1_STRING * | ||
564 | DISPLAYTEXT_new(void) | ||
565 | { | ||
566 | return (ASN1_STRING *)ASN1_item_new(&DISPLAYTEXT_it); | ||
567 | } | ||
568 | LCRYPTO_ALIAS(DISPLAYTEXT_new); | ||
569 | |||
570 | void | ||
571 | DISPLAYTEXT_free(ASN1_STRING *a) | ||
572 | { | ||
573 | ASN1_item_free((ASN1_VALUE *)a, &DISPLAYTEXT_it); | ||
574 | } | ||
575 | LCRYPTO_ALIAS(DISPLAYTEXT_free); | ||
576 | |||
577 | |||
578 | const ASN1_ITEM DIRECTORYSTRING_it = { | ||
579 | .itype = ASN1_ITYPE_MSTRING, | ||
580 | .utype = B_ASN1_DIRECTORYSTRING, | ||
581 | .templates = NULL, | ||
582 | .tcount = 0, | ||
583 | .funcs = NULL, | ||
584 | .size = sizeof(ASN1_STRING), | ||
585 | .sname = "DIRECTORYSTRING", | ||
586 | }; | ||
587 | LCRYPTO_ALIAS(DIRECTORYSTRING_it); | ||
588 | |||
589 | ASN1_STRING * | ||
590 | d2i_DIRECTORYSTRING(ASN1_STRING **a, const unsigned char **in, long len) | ||
591 | { | ||
592 | return (ASN1_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
593 | &DIRECTORYSTRING_it); | ||
594 | } | ||
595 | LCRYPTO_ALIAS(d2i_DIRECTORYSTRING); | ||
596 | |||
597 | int | ||
598 | i2d_DIRECTORYSTRING(ASN1_STRING *a, unsigned char **out) | ||
599 | { | ||
600 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIRECTORYSTRING_it); | ||
601 | } | ||
602 | LCRYPTO_ALIAS(i2d_DIRECTORYSTRING); | ||
603 | |||
604 | ASN1_STRING * | ||
605 | DIRECTORYSTRING_new(void) | ||
606 | { | ||
607 | return (ASN1_STRING *)ASN1_item_new(&DIRECTORYSTRING_it); | ||
608 | } | ||
609 | LCRYPTO_ALIAS(DIRECTORYSTRING_new); | ||
610 | |||
611 | void | ||
612 | DIRECTORYSTRING_free(ASN1_STRING *a) | ||
613 | { | ||
614 | ASN1_item_free((ASN1_VALUE *)a, &DIRECTORYSTRING_it); | ||
615 | } | ||
616 | LCRYPTO_ALIAS(DIRECTORYSTRING_free); | ||
617 | |||
618 | /* Three separate BOOLEAN type: normal, DEFAULT TRUE and DEFAULT FALSE */ | ||
619 | |||
620 | const ASN1_ITEM ASN1_BOOLEAN_it = { | ||
621 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
622 | .utype = V_ASN1_BOOLEAN, | ||
623 | .size = -1, | ||
624 | .sname = "ASN1_BOOLEAN", | ||
625 | }; | ||
626 | |||
627 | int | ||
628 | i2d_ASN1_BOOLEAN(int a, unsigned char **out) | ||
629 | { | ||
630 | return ASN1_item_ex_i2d((ASN1_VALUE **)&a, out, | ||
631 | &ASN1_BOOLEAN_it, -1, 0); | ||
632 | } | ||
633 | |||
634 | int | ||
635 | d2i_ASN1_BOOLEAN(int *a, const unsigned char **in, long len) | ||
636 | { | ||
637 | ASN1_BOOLEAN abool; | ||
638 | |||
639 | if (ASN1_item_ex_d2i((ASN1_VALUE **)&abool, in, len, &ASN1_BOOLEAN_it, | ||
640 | -1, 0, 0, NULL) <= 0) | ||
641 | return -1; | ||
642 | |||
643 | if (a != NULL) | ||
644 | *a = abool; | ||
645 | |||
646 | return abool; | ||
647 | } | ||
648 | |||
649 | const ASN1_ITEM ASN1_TBOOLEAN_it = { | ||
650 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
651 | .utype = V_ASN1_BOOLEAN, | ||
652 | .size = 1, | ||
653 | .sname = "ASN1_TBOOLEAN", | ||
654 | }; | ||
655 | |||
656 | const ASN1_ITEM ASN1_FBOOLEAN_it = { | ||
657 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
658 | .utype = V_ASN1_BOOLEAN, | ||
659 | .size = 0, | ||
660 | .sname = "ASN1_FBOOLEAN", | ||
661 | }; | ||
662 | |||
663 | /* Special, OCTET STRING with indefinite length constructed support */ | ||
664 | |||
665 | const ASN1_ITEM ASN1_OCTET_STRING_NDEF_it = { | ||
666 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
667 | .utype = V_ASN1_OCTET_STRING, | ||
668 | .size = ASN1_TFLG_NDEF, | ||
669 | .sname = "ASN1_OCTET_STRING_NDEF", | ||
670 | }; | ||
671 | |||
672 | static const ASN1_TEMPLATE ASN1_SEQUENCE_ANY_item_tt = { | ||
673 | .flags = ASN1_TFLG_SEQUENCE_OF, | ||
674 | .tag = 0, | ||
675 | .offset = 0, | ||
676 | .field_name = "ASN1_SEQUENCE_ANY", | ||
677 | .item = &ASN1_ANY_it, | ||
678 | }; | ||
679 | |||
680 | const ASN1_ITEM ASN1_SEQUENCE_ANY_it = { | ||
681 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
682 | .utype = -1, | ||
683 | .templates = &ASN1_SEQUENCE_ANY_item_tt, | ||
684 | .tcount = 0, | ||
685 | .funcs = NULL, | ||
686 | .size = 0, | ||
687 | .sname = "ASN1_SEQUENCE_ANY", | ||
688 | }; | ||
689 | LCRYPTO_ALIAS(ASN1_SEQUENCE_ANY_it); | ||
690 | |||
691 | static const ASN1_TEMPLATE ASN1_SET_ANY_item_tt = { | ||
692 | .flags = ASN1_TFLG_SET_OF, | ||
693 | .tag = 0, | ||
694 | .offset = 0, | ||
695 | .field_name = "ASN1_SET_ANY", | ||
696 | .item = &ASN1_ANY_it, | ||
697 | }; | ||
698 | |||
699 | const ASN1_ITEM ASN1_SET_ANY_it = { | ||
700 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
701 | .utype = -1, | ||
702 | .templates = &ASN1_SET_ANY_item_tt, | ||
703 | .tcount = 0, | ||
704 | .funcs = NULL, | ||
705 | .size = 0, | ||
706 | .sname = "ASN1_SET_ANY", | ||
707 | }; | ||
708 | LCRYPTO_ALIAS(ASN1_SET_ANY_it); | ||
709 | |||
710 | |||
711 | ASN1_SEQUENCE_ANY * | ||
712 | d2i_ASN1_SEQUENCE_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len) | ||
713 | { | ||
714 | return (ASN1_SEQUENCE_ANY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
715 | &ASN1_SEQUENCE_ANY_it); | ||
716 | } | ||
717 | LCRYPTO_ALIAS(d2i_ASN1_SEQUENCE_ANY); | ||
718 | |||
719 | int | ||
720 | i2d_ASN1_SEQUENCE_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out) | ||
721 | { | ||
722 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_SEQUENCE_ANY_it); | ||
723 | } | ||
724 | LCRYPTO_ALIAS(i2d_ASN1_SEQUENCE_ANY); | ||
725 | |||
726 | ASN1_SEQUENCE_ANY * | ||
727 | d2i_ASN1_SET_ANY(ASN1_SEQUENCE_ANY **a, const unsigned char **in, long len) | ||
728 | { | ||
729 | return (ASN1_SEQUENCE_ANY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
730 | &ASN1_SET_ANY_it); | ||
731 | } | ||
732 | LCRYPTO_ALIAS(d2i_ASN1_SET_ANY); | ||
733 | |||
734 | int | ||
735 | i2d_ASN1_SET_ANY(const ASN1_SEQUENCE_ANY *a, unsigned char **out) | ||
736 | { | ||
737 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_SET_ANY_it); | ||
738 | } | ||
739 | LCRYPTO_ALIAS(i2d_ASN1_SET_ANY); | ||