summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/tasn_typ.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/asn1/tasn_typ.c')
-rw-r--r--src/lib/libcrypto/asn1/tasn_typ.c392
1 files changed, 376 insertions, 16 deletions
diff --git a/src/lib/libcrypto/asn1/tasn_typ.c b/src/lib/libcrypto/asn1/tasn_typ.c
index 04d9c84180..2f44b4229b 100644
--- a/src/lib/libcrypto/asn1/tasn_typ.c
+++ b/src/lib/libcrypto/asn1/tasn_typ.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tasn_typ.c,v 1.6 2014/06/12 15:49:27 deraadt Exp $ */ 1/* $OpenBSD: tasn_typ.c,v 1.7 2015/02/09 15:05:59 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 2000. 3 * project 2000.
4 */ 4 */
@@ -63,51 +63,411 @@
63 63
64 64
65IMPLEMENT_ASN1_TYPE(ASN1_INTEGER) 65IMPLEMENT_ASN1_TYPE(ASN1_INTEGER)
66IMPLEMENT_ASN1_FUNCTIONS(ASN1_INTEGER) 66
67ASN1_INTEGER *
68d2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **in, long len)
69{
70 return (ASN1_INTEGER *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
71 &ASN1_INTEGER_it);
72}
73
74int
75i2d_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **out)
76{
77 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_INTEGER_it);
78}
79
80ASN1_INTEGER *
81ASN1_INTEGER_new(void)
82{
83 return (ASN1_INTEGER *)ASN1_item_new(&ASN1_INTEGER_it);
84}
85
86void
87ASN1_INTEGER_free(ASN1_INTEGER *a)
88{
89 ASN1_item_free((ASN1_VALUE *)a, &ASN1_INTEGER_it);
90}
67 91
68IMPLEMENT_ASN1_TYPE(ASN1_ENUMERATED) 92IMPLEMENT_ASN1_TYPE(ASN1_ENUMERATED)
69IMPLEMENT_ASN1_FUNCTIONS(ASN1_ENUMERATED) 93
94ASN1_ENUMERATED *
95d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, const unsigned char **in, long len)
96{
97 return (ASN1_ENUMERATED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
98 &ASN1_ENUMERATED_it);
99}
100
101int
102i2d_ASN1_ENUMERATED(ASN1_ENUMERATED *a, unsigned char **out)
103{
104 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_ENUMERATED_it);
105}
106
107ASN1_ENUMERATED *
108ASN1_ENUMERATED_new(void)
109{
110 return (ASN1_ENUMERATED *)ASN1_item_new(&ASN1_ENUMERATED_it);
111}
112
113void
114ASN1_ENUMERATED_free(ASN1_ENUMERATED *a)
115{
116 ASN1_item_free((ASN1_VALUE *)a, &ASN1_ENUMERATED_it);
117}
70 118
71IMPLEMENT_ASN1_TYPE(ASN1_BIT_STRING) 119IMPLEMENT_ASN1_TYPE(ASN1_BIT_STRING)
72IMPLEMENT_ASN1_FUNCTIONS(ASN1_BIT_STRING) 120
121ASN1_BIT_STRING *
122d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len)
123{
124 return (ASN1_BIT_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
125 &ASN1_BIT_STRING_it);
126}
127
128int
129i2d_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **out)
130{
131 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_BIT_STRING_it);
132}
133
134ASN1_BIT_STRING *
135ASN1_BIT_STRING_new(void)
136{
137 return (ASN1_BIT_STRING *)ASN1_item_new(&ASN1_BIT_STRING_it);
138}
139
140void
141ASN1_BIT_STRING_free(ASN1_BIT_STRING *a)
142{
143 ASN1_item_free((ASN1_VALUE *)a, &ASN1_BIT_STRING_it);
144}
73 145
74IMPLEMENT_ASN1_TYPE(ASN1_OCTET_STRING) 146IMPLEMENT_ASN1_TYPE(ASN1_OCTET_STRING)
75IMPLEMENT_ASN1_FUNCTIONS(ASN1_OCTET_STRING) 147
148ASN1_OCTET_STRING *
149d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a, const unsigned char **in, long len)
150{
151 return (ASN1_OCTET_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
152 &ASN1_OCTET_STRING_it);
153}
154
155int
156i2d_ASN1_OCTET_STRING(ASN1_OCTET_STRING *a, unsigned char **out)
157{
158 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_OCTET_STRING_it);
159}
160
161ASN1_OCTET_STRING *
162ASN1_OCTET_STRING_new(void)
163{
164 return (ASN1_OCTET_STRING *)ASN1_item_new(&ASN1_OCTET_STRING_it);
165}
166
167void
168ASN1_OCTET_STRING_free(ASN1_OCTET_STRING *a)
169{
170 ASN1_item_free((ASN1_VALUE *)a, &ASN1_OCTET_STRING_it);
171}
76 172
77IMPLEMENT_ASN1_TYPE(ASN1_NULL) 173IMPLEMENT_ASN1_TYPE(ASN1_NULL)
78IMPLEMENT_ASN1_FUNCTIONS(ASN1_NULL) 174
175ASN1_NULL *
176d2i_ASN1_NULL(ASN1_NULL **a, const unsigned char **in, long len)
177{
178 return (ASN1_NULL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
179 &ASN1_NULL_it);
180}
181
182int
183i2d_ASN1_NULL(ASN1_NULL *a, unsigned char **out)
184{
185 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_NULL_it);
186}
187
188ASN1_NULL *
189ASN1_NULL_new(void)
190{
191 return (ASN1_NULL *)ASN1_item_new(&ASN1_NULL_it);
192}
193
194void
195ASN1_NULL_free(ASN1_NULL *a)
196{
197 ASN1_item_free((ASN1_VALUE *)a, &ASN1_NULL_it);
198}
79 199
80IMPLEMENT_ASN1_TYPE(ASN1_OBJECT) 200IMPLEMENT_ASN1_TYPE(ASN1_OBJECT)
81 201
82IMPLEMENT_ASN1_TYPE(ASN1_UTF8STRING) 202IMPLEMENT_ASN1_TYPE(ASN1_UTF8STRING)
83IMPLEMENT_ASN1_FUNCTIONS(ASN1_UTF8STRING) 203
204ASN1_UTF8STRING *
205d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a, const unsigned char **in, long len)
206{
207 return (ASN1_UTF8STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
208 &ASN1_UTF8STRING_it);
209}
210
211int
212i2d_ASN1_UTF8STRING(ASN1_UTF8STRING *a, unsigned char **out)
213{
214 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_UTF8STRING_it);
215}
216
217ASN1_UTF8STRING *
218ASN1_UTF8STRING_new(void)
219{
220 return (ASN1_UTF8STRING *)ASN1_item_new(&ASN1_UTF8STRING_it);
221}
222
223void
224ASN1_UTF8STRING_free(ASN1_UTF8STRING *a)
225{
226 ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTF8STRING_it);
227}
84 228
85IMPLEMENT_ASN1_TYPE(ASN1_PRINTABLESTRING) 229IMPLEMENT_ASN1_TYPE(ASN1_PRINTABLESTRING)
86IMPLEMENT_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) 230
231ASN1_PRINTABLESTRING *
232d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a, const unsigned char **in, long len)
233{
234 return (ASN1_PRINTABLESTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
235 &ASN1_PRINTABLESTRING_it);
236}
237
238int
239i2d_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING *a, unsigned char **out)
240{
241 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_PRINTABLESTRING_it);
242}
243
244ASN1_PRINTABLESTRING *
245ASN1_PRINTABLESTRING_new(void)
246{
247 return (ASN1_PRINTABLESTRING *)ASN1_item_new(&ASN1_PRINTABLESTRING_it);
248}
249
250void
251ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a)
252{
253 ASN1_item_free((ASN1_VALUE *)a, &ASN1_PRINTABLESTRING_it);
254}
87 255
88IMPLEMENT_ASN1_TYPE(ASN1_T61STRING) 256IMPLEMENT_ASN1_TYPE(ASN1_T61STRING)
89IMPLEMENT_ASN1_FUNCTIONS(ASN1_T61STRING) 257
258ASN1_T61STRING *
259d2i_ASN1_T61STRING(ASN1_T61STRING **a, const unsigned char **in, long len)
260{
261 return (ASN1_T61STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
262 &ASN1_T61STRING_it);
263}
264
265int
266i2d_ASN1_T61STRING(ASN1_T61STRING *a, unsigned char **out)
267{
268 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_T61STRING_it);
269}
270
271ASN1_T61STRING *
272ASN1_T61STRING_new(void)
273{
274 return (ASN1_T61STRING *)ASN1_item_new(&ASN1_T61STRING_it);
275}
276
277void
278ASN1_T61STRING_free(ASN1_T61STRING *a)
279{
280 ASN1_item_free((ASN1_VALUE *)a, &ASN1_T61STRING_it);
281}
90 282
91IMPLEMENT_ASN1_TYPE(ASN1_IA5STRING) 283IMPLEMENT_ASN1_TYPE(ASN1_IA5STRING)
92IMPLEMENT_ASN1_FUNCTIONS(ASN1_IA5STRING) 284
285ASN1_IA5STRING *
286d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, const unsigned char **in, long len)
287{
288 return (ASN1_IA5STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
289 &ASN1_IA5STRING_it);
290}
291
292int
293i2d_ASN1_IA5STRING(ASN1_IA5STRING *a, unsigned char **out)
294{
295 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_IA5STRING_it);
296}
297
298ASN1_IA5STRING *
299ASN1_IA5STRING_new(void)
300{
301 return (ASN1_IA5STRING *)ASN1_item_new(&ASN1_IA5STRING_it);
302}
303
304void
305ASN1_IA5STRING_free(ASN1_IA5STRING *a)
306{
307 ASN1_item_free((ASN1_VALUE *)a, &ASN1_IA5STRING_it);
308}
93 309
94IMPLEMENT_ASN1_TYPE(ASN1_GENERALSTRING) 310IMPLEMENT_ASN1_TYPE(ASN1_GENERALSTRING)
95IMPLEMENT_ASN1_FUNCTIONS(ASN1_GENERALSTRING) 311
312ASN1_GENERALSTRING *
313d2i_ASN1_GENERALSTRING(ASN1_GENERALSTRING **a, const unsigned char **in, long len)
314{
315 return (ASN1_GENERALSTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
316 &ASN1_GENERALSTRING_it);
317}
318
319int
320i2d_ASN1_GENERALSTRING(ASN1_GENERALSTRING *a, unsigned char **out)
321{
322 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_GENERALSTRING_it);
323}
324
325ASN1_GENERALSTRING *
326ASN1_GENERALSTRING_new(void)
327{
328 return (ASN1_GENERALSTRING *)ASN1_item_new(&ASN1_GENERALSTRING_it);
329}
330
331void
332ASN1_GENERALSTRING_free(ASN1_GENERALSTRING *a)
333{
334 ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALSTRING_it);
335}
96 336
97IMPLEMENT_ASN1_TYPE(ASN1_UTCTIME) 337IMPLEMENT_ASN1_TYPE(ASN1_UTCTIME)
98IMPLEMENT_ASN1_FUNCTIONS(ASN1_UTCTIME) 338
339ASN1_UTCTIME *
340d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, const unsigned char **in, long len)
341{
342 return (ASN1_UTCTIME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
343 &ASN1_UTCTIME_it);
344}
345
346int
347i2d_ASN1_UTCTIME(ASN1_UTCTIME *a, unsigned char **out)
348{
349 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_UTCTIME_it);
350}
351
352ASN1_UTCTIME *
353ASN1_UTCTIME_new(void)
354{
355 return (ASN1_UTCTIME *)ASN1_item_new(&ASN1_UTCTIME_it);
356}
357
358void
359ASN1_UTCTIME_free(ASN1_UTCTIME *a)
360{
361 ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTCTIME_it);
362}
99 363
100IMPLEMENT_ASN1_TYPE(ASN1_GENERALIZEDTIME) 364IMPLEMENT_ASN1_TYPE(ASN1_GENERALIZEDTIME)
101IMPLEMENT_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) 365
366ASN1_GENERALIZEDTIME *
367d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, const unsigned char **in, long len)
368{
369 return (ASN1_GENERALIZEDTIME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
370 &ASN1_GENERALIZEDTIME_it);
371}
372
373int
374i2d_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME *a, unsigned char **out)
375{
376 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_GENERALIZEDTIME_it);
377}
378
379ASN1_GENERALIZEDTIME *
380ASN1_GENERALIZEDTIME_new(void)
381{
382 return (ASN1_GENERALIZEDTIME *)ASN1_item_new(&ASN1_GENERALIZEDTIME_it);
383}
384
385void
386ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *a)
387{
388 ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALIZEDTIME_it);
389}
102 390
103IMPLEMENT_ASN1_TYPE(ASN1_VISIBLESTRING) 391IMPLEMENT_ASN1_TYPE(ASN1_VISIBLESTRING)
104IMPLEMENT_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) 392
393ASN1_VISIBLESTRING *
394d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a, const unsigned char **in, long len)
395{
396 return (ASN1_VISIBLESTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
397 &ASN1_VISIBLESTRING_it);
398}
399
400int
401i2d_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING *a, unsigned char **out)
402{
403 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_VISIBLESTRING_it);
404}
405
406ASN1_VISIBLESTRING *
407ASN1_VISIBLESTRING_new(void)
408{
409 return (ASN1_VISIBLESTRING *)ASN1_item_new(&ASN1_VISIBLESTRING_it);
410}
411
412void
413ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *a)
414{
415 ASN1_item_free((ASN1_VALUE *)a, &ASN1_VISIBLESTRING_it);
416}
105 417
106IMPLEMENT_ASN1_TYPE(ASN1_UNIVERSALSTRING) 418IMPLEMENT_ASN1_TYPE(ASN1_UNIVERSALSTRING)
107IMPLEMENT_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) 419
420ASN1_UNIVERSALSTRING *
421d2i_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING **a, const unsigned char **in, long len)
422{
423 return (ASN1_UNIVERSALSTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
424 &ASN1_UNIVERSALSTRING_it);
425}
426
427int
428i2d_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING *a, unsigned char **out)
429{
430 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_UNIVERSALSTRING_it);
431}
432
433ASN1_UNIVERSALSTRING *
434ASN1_UNIVERSALSTRING_new(void)
435{
436 return (ASN1_UNIVERSALSTRING *)ASN1_item_new(&ASN1_UNIVERSALSTRING_it);
437}
438
439void
440ASN1_UNIVERSALSTRING_free(ASN1_UNIVERSALSTRING *a)
441{
442 ASN1_item_free((ASN1_VALUE *)a, &ASN1_UNIVERSALSTRING_it);
443}
108 444
109IMPLEMENT_ASN1_TYPE(ASN1_BMPSTRING) 445IMPLEMENT_ASN1_TYPE(ASN1_BMPSTRING)
110IMPLEMENT_ASN1_FUNCTIONS(ASN1_BMPSTRING) 446
447ASN1_BMPSTRING *
448d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, const unsigned char **in, long len)
449{
450 return (ASN1_BMPSTRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
451 &ASN1_BMPSTRING_it);
452}
453
454int
455i2d_ASN1_BMPSTRING(ASN1_BMPSTRING *a, unsigned char **out)
456{
457 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_BMPSTRING_it);
458}
459
460ASN1_BMPSTRING *
461ASN1_BMPSTRING_new(void)
462{
463 return (ASN1_BMPSTRING *)ASN1_item_new(&ASN1_BMPSTRING_it);
464}
465
466void
467ASN1_BMPSTRING_free(ASN1_BMPSTRING *a)
468{
469 ASN1_item_free((ASN1_VALUE *)a, &ASN1_BMPSTRING_it);
470}
111 471
112IMPLEMENT_ASN1_TYPE(ASN1_ANY) 472IMPLEMENT_ASN1_TYPE(ASN1_ANY)
113 473