diff options
author | jsing <> | 2015-02-10 09:39:13 +0000 |
---|---|---|
committer | jsing <> | 2015-02-10 09:39:13 +0000 |
commit | bedef42af36243e74221aa77e809718c15fae035 (patch) | |
tree | dd8707b7c17a43ec050097242f7ff3c8803cc7f6 | |
parent | 703b21ab4c794e7b44460fa1cee2b085dee30874 (diff) | |
download | openbsd-bedef42af36243e74221aa77e809718c15fae035.tar.gz openbsd-bedef42af36243e74221aa77e809718c15fae035.tar.bz2 openbsd-bedef42af36243e74221aa77e809718c15fae035.zip |
Expand IMPLEMENT_ASN1_TYPE macros - no change to generated assembly.
-rw-r--r-- | src/lib/libcrypto/asn1/tasn_typ.c | 244 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/asn1/tasn_typ.c | 244 |
2 files changed, 442 insertions, 46 deletions
diff --git a/src/lib/libcrypto/asn1/tasn_typ.c b/src/lib/libcrypto/asn1/tasn_typ.c index 094b041a80..0e2aac1788 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.9 2015/02/10 05:12:23 jsing Exp $ */ | 1 | /* $OpenBSD: tasn_typ.c,v 1.10 2015/02/10 09:39:13 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 | */ |
@@ -62,7 +62,16 @@ | |||
62 | /* Declarations for string types */ | 62 | /* Declarations for string types */ |
63 | 63 | ||
64 | 64 | ||
65 | IMPLEMENT_ASN1_TYPE(ASN1_INTEGER) | 65 | |
66 | const ASN1_ITEM ASN1_INTEGER_it = { | ||
67 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
68 | .utype = V_ASN1_INTEGER, | ||
69 | .templates = NULL, | ||
70 | .tcount = 0, | ||
71 | .funcs = NULL, | ||
72 | .size = 0, | ||
73 | .sname = "ASN1_INTEGER", | ||
74 | }; | ||
66 | 75 | ||
67 | ASN1_INTEGER * | 76 | ASN1_INTEGER * |
68 | d2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **in, long len) | 77 | d2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **in, long len) |
@@ -89,7 +98,16 @@ ASN1_INTEGER_free(ASN1_INTEGER *a) | |||
89 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_INTEGER_it); | 98 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_INTEGER_it); |
90 | } | 99 | } |
91 | 100 | ||
92 | IMPLEMENT_ASN1_TYPE(ASN1_ENUMERATED) | 101 | |
102 | const ASN1_ITEM ASN1_ENUMERATED_it = { | ||
103 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
104 | .utype = V_ASN1_ENUMERATED, | ||
105 | .templates = NULL, | ||
106 | .tcount = 0, | ||
107 | .funcs = NULL, | ||
108 | .size = 0, | ||
109 | .sname = "ASN1_ENUMERATED", | ||
110 | }; | ||
93 | 111 | ||
94 | ASN1_ENUMERATED * | 112 | ASN1_ENUMERATED * |
95 | d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, const unsigned char **in, long len) | 113 | d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, const unsigned char **in, long len) |
@@ -116,7 +134,16 @@ ASN1_ENUMERATED_free(ASN1_ENUMERATED *a) | |||
116 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_ENUMERATED_it); | 134 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_ENUMERATED_it); |
117 | } | 135 | } |
118 | 136 | ||
119 | IMPLEMENT_ASN1_TYPE(ASN1_BIT_STRING) | 137 | |
138 | const ASN1_ITEM ASN1_BIT_STRING_it = { | ||
139 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
140 | .utype = V_ASN1_BIT_STRING, | ||
141 | .templates = NULL, | ||
142 | .tcount = 0, | ||
143 | .funcs = NULL, | ||
144 | .size = 0, | ||
145 | .sname = "ASN1_BIT_STRING", | ||
146 | }; | ||
120 | 147 | ||
121 | ASN1_BIT_STRING * | 148 | ASN1_BIT_STRING * |
122 | d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len) | 149 | d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len) |
@@ -143,7 +170,16 @@ ASN1_BIT_STRING_free(ASN1_BIT_STRING *a) | |||
143 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_BIT_STRING_it); | 170 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_BIT_STRING_it); |
144 | } | 171 | } |
145 | 172 | ||
146 | IMPLEMENT_ASN1_TYPE(ASN1_OCTET_STRING) | 173 | |
174 | const ASN1_ITEM ASN1_OCTET_STRING_it = { | ||
175 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
176 | .utype = V_ASN1_OCTET_STRING, | ||
177 | .templates = NULL, | ||
178 | .tcount = 0, | ||
179 | .funcs = NULL, | ||
180 | .size = 0, | ||
181 | .sname = "ASN1_OCTET_STRING", | ||
182 | }; | ||
147 | 183 | ||
148 | ASN1_OCTET_STRING * | 184 | ASN1_OCTET_STRING * |
149 | d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a, const unsigned char **in, long len) | 185 | d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a, const unsigned char **in, long len) |
@@ -170,7 +206,16 @@ ASN1_OCTET_STRING_free(ASN1_OCTET_STRING *a) | |||
170 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_OCTET_STRING_it); | 206 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_OCTET_STRING_it); |
171 | } | 207 | } |
172 | 208 | ||
173 | IMPLEMENT_ASN1_TYPE(ASN1_NULL) | 209 | |
210 | const ASN1_ITEM ASN1_NULL_it = { | ||
211 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
212 | .utype = V_ASN1_NULL, | ||
213 | .templates = NULL, | ||
214 | .tcount = 0, | ||
215 | .funcs = NULL, | ||
216 | .size = 0, | ||
217 | .sname = "ASN1_NULL", | ||
218 | }; | ||
174 | 219 | ||
175 | ASN1_NULL * | 220 | ASN1_NULL * |
176 | d2i_ASN1_NULL(ASN1_NULL **a, const unsigned char **in, long len) | 221 | d2i_ASN1_NULL(ASN1_NULL **a, const unsigned char **in, long len) |
@@ -197,9 +242,27 @@ ASN1_NULL_free(ASN1_NULL *a) | |||
197 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_NULL_it); | 242 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_NULL_it); |
198 | } | 243 | } |
199 | 244 | ||
200 | IMPLEMENT_ASN1_TYPE(ASN1_OBJECT) | ||
201 | 245 | ||
202 | IMPLEMENT_ASN1_TYPE(ASN1_UTF8STRING) | 246 | const ASN1_ITEM ASN1_OBJECT_it = { |
247 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
248 | .utype = V_ASN1_OBJECT, | ||
249 | .templates = NULL, | ||
250 | .tcount = 0, | ||
251 | .funcs = NULL, | ||
252 | .size = 0, | ||
253 | .sname = "ASN1_OBJECT", | ||
254 | }; | ||
255 | |||
256 | |||
257 | const ASN1_ITEM ASN1_UTF8STRING_it = { | ||
258 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
259 | .utype = V_ASN1_UTF8STRING, | ||
260 | .templates = NULL, | ||
261 | .tcount = 0, | ||
262 | .funcs = NULL, | ||
263 | .size = 0, | ||
264 | .sname = "ASN1_UTF8STRING", | ||
265 | }; | ||
203 | 266 | ||
204 | ASN1_UTF8STRING * | 267 | ASN1_UTF8STRING * |
205 | d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a, const unsigned char **in, long len) | 268 | d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a, const unsigned char **in, long len) |
@@ -226,7 +289,16 @@ ASN1_UTF8STRING_free(ASN1_UTF8STRING *a) | |||
226 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTF8STRING_it); | 289 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTF8STRING_it); |
227 | } | 290 | } |
228 | 291 | ||
229 | IMPLEMENT_ASN1_TYPE(ASN1_PRINTABLESTRING) | 292 | |
293 | const ASN1_ITEM ASN1_PRINTABLESTRING_it = { | ||
294 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
295 | .utype = V_ASN1_PRINTABLESTRING, | ||
296 | .templates = NULL, | ||
297 | .tcount = 0, | ||
298 | .funcs = NULL, | ||
299 | .size = 0, | ||
300 | .sname = "ASN1_PRINTABLESTRING", | ||
301 | }; | ||
230 | 302 | ||
231 | ASN1_PRINTABLESTRING * | 303 | ASN1_PRINTABLESTRING * |
232 | d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a, const unsigned char **in, long len) | 304 | d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a, const unsigned char **in, long len) |
@@ -253,7 +325,16 @@ ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a) | |||
253 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_PRINTABLESTRING_it); | 325 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_PRINTABLESTRING_it); |
254 | } | 326 | } |
255 | 327 | ||
256 | IMPLEMENT_ASN1_TYPE(ASN1_T61STRING) | 328 | |
329 | const ASN1_ITEM ASN1_T61STRING_it = { | ||
330 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
331 | .utype = V_ASN1_T61STRING, | ||
332 | .templates = NULL, | ||
333 | .tcount = 0, | ||
334 | .funcs = NULL, | ||
335 | .size = 0, | ||
336 | .sname = "ASN1_T61STRING", | ||
337 | }; | ||
257 | 338 | ||
258 | ASN1_T61STRING * | 339 | ASN1_T61STRING * |
259 | d2i_ASN1_T61STRING(ASN1_T61STRING **a, const unsigned char **in, long len) | 340 | d2i_ASN1_T61STRING(ASN1_T61STRING **a, const unsigned char **in, long len) |
@@ -280,7 +361,16 @@ ASN1_T61STRING_free(ASN1_T61STRING *a) | |||
280 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_T61STRING_it); | 361 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_T61STRING_it); |
281 | } | 362 | } |
282 | 363 | ||
283 | IMPLEMENT_ASN1_TYPE(ASN1_IA5STRING) | 364 | |
365 | const ASN1_ITEM ASN1_IA5STRING_it = { | ||
366 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
367 | .utype = V_ASN1_IA5STRING, | ||
368 | .templates = NULL, | ||
369 | .tcount = 0, | ||
370 | .funcs = NULL, | ||
371 | .size = 0, | ||
372 | .sname = "ASN1_IA5STRING", | ||
373 | }; | ||
284 | 374 | ||
285 | ASN1_IA5STRING * | 375 | ASN1_IA5STRING * |
286 | d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, const unsigned char **in, long len) | 376 | d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, const unsigned char **in, long len) |
@@ -307,7 +397,16 @@ ASN1_IA5STRING_free(ASN1_IA5STRING *a) | |||
307 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_IA5STRING_it); | 397 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_IA5STRING_it); |
308 | } | 398 | } |
309 | 399 | ||
310 | IMPLEMENT_ASN1_TYPE(ASN1_GENERALSTRING) | 400 | |
401 | const ASN1_ITEM ASN1_GENERALSTRING_it = { | ||
402 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
403 | .utype = V_ASN1_GENERALSTRING, | ||
404 | .templates = NULL, | ||
405 | .tcount = 0, | ||
406 | .funcs = NULL, | ||
407 | .size = 0, | ||
408 | .sname = "ASN1_GENERALSTRING", | ||
409 | }; | ||
311 | 410 | ||
312 | ASN1_GENERALSTRING * | 411 | ASN1_GENERALSTRING * |
313 | d2i_ASN1_GENERALSTRING(ASN1_GENERALSTRING **a, const unsigned char **in, long len) | 412 | d2i_ASN1_GENERALSTRING(ASN1_GENERALSTRING **a, const unsigned char **in, long len) |
@@ -334,7 +433,16 @@ ASN1_GENERALSTRING_free(ASN1_GENERALSTRING *a) | |||
334 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALSTRING_it); | 433 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALSTRING_it); |
335 | } | 434 | } |
336 | 435 | ||
337 | IMPLEMENT_ASN1_TYPE(ASN1_UTCTIME) | 436 | |
437 | const ASN1_ITEM ASN1_UTCTIME_it = { | ||
438 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
439 | .utype = V_ASN1_UTCTIME, | ||
440 | .templates = NULL, | ||
441 | .tcount = 0, | ||
442 | .funcs = NULL, | ||
443 | .size = 0, | ||
444 | .sname = "ASN1_UTCTIME", | ||
445 | }; | ||
338 | 446 | ||
339 | ASN1_UTCTIME * | 447 | ASN1_UTCTIME * |
340 | d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, const unsigned char **in, long len) | 448 | d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, const unsigned char **in, long len) |
@@ -361,7 +469,16 @@ ASN1_UTCTIME_free(ASN1_UTCTIME *a) | |||
361 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTCTIME_it); | 469 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTCTIME_it); |
362 | } | 470 | } |
363 | 471 | ||
364 | IMPLEMENT_ASN1_TYPE(ASN1_GENERALIZEDTIME) | 472 | |
473 | const ASN1_ITEM ASN1_GENERALIZEDTIME_it = { | ||
474 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
475 | .utype = V_ASN1_GENERALIZEDTIME, | ||
476 | .templates = NULL, | ||
477 | .tcount = 0, | ||
478 | .funcs = NULL, | ||
479 | .size = 0, | ||
480 | .sname = "ASN1_GENERALIZEDTIME", | ||
481 | }; | ||
365 | 482 | ||
366 | ASN1_GENERALIZEDTIME * | 483 | ASN1_GENERALIZEDTIME * |
367 | d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, const unsigned char **in, long len) | 484 | d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, const unsigned char **in, long len) |
@@ -388,7 +505,16 @@ ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *a) | |||
388 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALIZEDTIME_it); | 505 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALIZEDTIME_it); |
389 | } | 506 | } |
390 | 507 | ||
391 | IMPLEMENT_ASN1_TYPE(ASN1_VISIBLESTRING) | 508 | |
509 | const ASN1_ITEM ASN1_VISIBLESTRING_it = { | ||
510 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
511 | .utype = V_ASN1_VISIBLESTRING, | ||
512 | .templates = NULL, | ||
513 | .tcount = 0, | ||
514 | .funcs = NULL, | ||
515 | .size = 0, | ||
516 | .sname = "ASN1_VISIBLESTRING", | ||
517 | }; | ||
392 | 518 | ||
393 | ASN1_VISIBLESTRING * | 519 | ASN1_VISIBLESTRING * |
394 | d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a, const unsigned char **in, long len) | 520 | d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a, const unsigned char **in, long len) |
@@ -415,7 +541,16 @@ ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *a) | |||
415 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_VISIBLESTRING_it); | 541 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_VISIBLESTRING_it); |
416 | } | 542 | } |
417 | 543 | ||
418 | IMPLEMENT_ASN1_TYPE(ASN1_UNIVERSALSTRING) | 544 | |
545 | const ASN1_ITEM ASN1_UNIVERSALSTRING_it = { | ||
546 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
547 | .utype = V_ASN1_UNIVERSALSTRING, | ||
548 | .templates = NULL, | ||
549 | .tcount = 0, | ||
550 | .funcs = NULL, | ||
551 | .size = 0, | ||
552 | .sname = "ASN1_UNIVERSALSTRING", | ||
553 | }; | ||
419 | 554 | ||
420 | ASN1_UNIVERSALSTRING * | 555 | ASN1_UNIVERSALSTRING * |
421 | d2i_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING **a, const unsigned char **in, long len) | 556 | d2i_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING **a, const unsigned char **in, long len) |
@@ -442,7 +577,16 @@ ASN1_UNIVERSALSTRING_free(ASN1_UNIVERSALSTRING *a) | |||
442 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UNIVERSALSTRING_it); | 577 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UNIVERSALSTRING_it); |
443 | } | 578 | } |
444 | 579 | ||
445 | IMPLEMENT_ASN1_TYPE(ASN1_BMPSTRING) | 580 | |
581 | const ASN1_ITEM ASN1_BMPSTRING_it = { | ||
582 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
583 | .utype = V_ASN1_BMPSTRING, | ||
584 | .templates = NULL, | ||
585 | .tcount = 0, | ||
586 | .funcs = NULL, | ||
587 | .size = 0, | ||
588 | .sname = "ASN1_BMPSTRING", | ||
589 | }; | ||
446 | 590 | ||
447 | ASN1_BMPSTRING * | 591 | ASN1_BMPSTRING * |
448 | d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, const unsigned char **in, long len) | 592 | d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, const unsigned char **in, long len) |
@@ -469,10 +613,28 @@ ASN1_BMPSTRING_free(ASN1_BMPSTRING *a) | |||
469 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_BMPSTRING_it); | 613 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_BMPSTRING_it); |
470 | } | 614 | } |
471 | 615 | ||
472 | IMPLEMENT_ASN1_TYPE(ASN1_ANY) | 616 | |
617 | const ASN1_ITEM ASN1_ANY_it = { | ||
618 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
619 | .utype = V_ASN1_ANY, | ||
620 | .templates = NULL, | ||
621 | .tcount = 0, | ||
622 | .funcs = NULL, | ||
623 | .size = 0, | ||
624 | .sname = "ASN1_ANY", | ||
625 | }; | ||
473 | 626 | ||
474 | /* Just swallow an ASN1_SEQUENCE in an ASN1_STRING */ | 627 | /* Just swallow an ASN1_SEQUENCE in an ASN1_STRING */ |
475 | IMPLEMENT_ASN1_TYPE(ASN1_SEQUENCE) | 628 | |
629 | const ASN1_ITEM ASN1_SEQUENCE_it = { | ||
630 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
631 | .utype = V_ASN1_SEQUENCE, | ||
632 | .templates = NULL, | ||
633 | .tcount = 0, | ||
634 | .funcs = NULL, | ||
635 | .size = 0, | ||
636 | .sname = "ASN1_SEQUENCE", | ||
637 | }; | ||
476 | 638 | ||
477 | 639 | ||
478 | ASN1_TYPE * | 640 | ASN1_TYPE * |
@@ -584,13 +746,49 @@ DIRECTORYSTRING_free(ASN1_STRING *a) | |||
584 | } | 746 | } |
585 | 747 | ||
586 | /* Three separate BOOLEAN type: normal, DEFAULT TRUE and DEFAULT FALSE */ | 748 | /* Three separate BOOLEAN type: normal, DEFAULT TRUE and DEFAULT FALSE */ |
587 | IMPLEMENT_ASN1_TYPE_ex(ASN1_BOOLEAN, ASN1_BOOLEAN, -1) | 749 | |
588 | IMPLEMENT_ASN1_TYPE_ex(ASN1_TBOOLEAN, ASN1_BOOLEAN, 1) | 750 | const ASN1_ITEM ASN1_BOOLEAN_it = { |
589 | IMPLEMENT_ASN1_TYPE_ex(ASN1_FBOOLEAN, ASN1_BOOLEAN, 0) | 751 | .itype = ASN1_ITYPE_PRIMITIVE, |
752 | .utype = V_ASN1_BOOLEAN, | ||
753 | .templates = NULL, | ||
754 | .tcount = 0, | ||
755 | .funcs = NULL, | ||
756 | .size = -1, | ||
757 | .sname = "ASN1_BOOLEAN", | ||
758 | }; | ||
759 | |||
760 | const ASN1_ITEM ASN1_TBOOLEAN_it = { | ||
761 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
762 | .utype = V_ASN1_BOOLEAN, | ||
763 | .templates = NULL, | ||
764 | .tcount = 0, | ||
765 | .funcs = NULL, | ||
766 | .size = 1, | ||
767 | .sname = "ASN1_TBOOLEAN", | ||
768 | }; | ||
769 | |||
770 | const ASN1_ITEM ASN1_FBOOLEAN_it = { | ||
771 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
772 | .utype = V_ASN1_BOOLEAN, | ||
773 | .templates = NULL, | ||
774 | .tcount = 0, | ||
775 | .funcs = NULL, | ||
776 | .size = 0, | ||
777 | .sname = "ASN1_FBOOLEAN", | ||
778 | }; | ||
590 | 779 | ||
591 | /* Special, OCTET STRING with indefinite length constructed support */ | 780 | /* Special, OCTET STRING with indefinite length constructed support */ |
592 | 781 | ||
593 | IMPLEMENT_ASN1_TYPE_ex(ASN1_OCTET_STRING_NDEF, ASN1_OCTET_STRING, ASN1_TFLG_NDEF) | 782 | |
783 | const ASN1_ITEM ASN1_OCTET_STRING_NDEF_it = { | ||
784 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
785 | .utype = V_ASN1_OCTET_STRING, | ||
786 | .templates = NULL, | ||
787 | .tcount = 0, | ||
788 | .funcs = NULL, | ||
789 | .size = ASN1_TFLG_NDEF, | ||
790 | .sname = "ASN1_OCTET_STRING_NDEF", | ||
791 | }; | ||
594 | 792 | ||
595 | ASN1_ITEM_TEMPLATE(ASN1_SEQUENCE_ANY) = | 793 | ASN1_ITEM_TEMPLATE(ASN1_SEQUENCE_ANY) = |
596 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, ASN1_SEQUENCE_ANY, ASN1_ANY) | 794 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, ASN1_SEQUENCE_ANY, ASN1_ANY) |
diff --git a/src/lib/libssl/src/crypto/asn1/tasn_typ.c b/src/lib/libssl/src/crypto/asn1/tasn_typ.c index 094b041a80..0e2aac1788 100644 --- a/src/lib/libssl/src/crypto/asn1/tasn_typ.c +++ b/src/lib/libssl/src/crypto/asn1/tasn_typ.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: tasn_typ.c,v 1.9 2015/02/10 05:12:23 jsing Exp $ */ | 1 | /* $OpenBSD: tasn_typ.c,v 1.10 2015/02/10 09:39:13 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 | */ |
@@ -62,7 +62,16 @@ | |||
62 | /* Declarations for string types */ | 62 | /* Declarations for string types */ |
63 | 63 | ||
64 | 64 | ||
65 | IMPLEMENT_ASN1_TYPE(ASN1_INTEGER) | 65 | |
66 | const ASN1_ITEM ASN1_INTEGER_it = { | ||
67 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
68 | .utype = V_ASN1_INTEGER, | ||
69 | .templates = NULL, | ||
70 | .tcount = 0, | ||
71 | .funcs = NULL, | ||
72 | .size = 0, | ||
73 | .sname = "ASN1_INTEGER", | ||
74 | }; | ||
66 | 75 | ||
67 | ASN1_INTEGER * | 76 | ASN1_INTEGER * |
68 | d2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **in, long len) | 77 | d2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **in, long len) |
@@ -89,7 +98,16 @@ ASN1_INTEGER_free(ASN1_INTEGER *a) | |||
89 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_INTEGER_it); | 98 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_INTEGER_it); |
90 | } | 99 | } |
91 | 100 | ||
92 | IMPLEMENT_ASN1_TYPE(ASN1_ENUMERATED) | 101 | |
102 | const ASN1_ITEM ASN1_ENUMERATED_it = { | ||
103 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
104 | .utype = V_ASN1_ENUMERATED, | ||
105 | .templates = NULL, | ||
106 | .tcount = 0, | ||
107 | .funcs = NULL, | ||
108 | .size = 0, | ||
109 | .sname = "ASN1_ENUMERATED", | ||
110 | }; | ||
93 | 111 | ||
94 | ASN1_ENUMERATED * | 112 | ASN1_ENUMERATED * |
95 | d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, const unsigned char **in, long len) | 113 | d2i_ASN1_ENUMERATED(ASN1_ENUMERATED **a, const unsigned char **in, long len) |
@@ -116,7 +134,16 @@ ASN1_ENUMERATED_free(ASN1_ENUMERATED *a) | |||
116 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_ENUMERATED_it); | 134 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_ENUMERATED_it); |
117 | } | 135 | } |
118 | 136 | ||
119 | IMPLEMENT_ASN1_TYPE(ASN1_BIT_STRING) | 137 | |
138 | const ASN1_ITEM ASN1_BIT_STRING_it = { | ||
139 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
140 | .utype = V_ASN1_BIT_STRING, | ||
141 | .templates = NULL, | ||
142 | .tcount = 0, | ||
143 | .funcs = NULL, | ||
144 | .size = 0, | ||
145 | .sname = "ASN1_BIT_STRING", | ||
146 | }; | ||
120 | 147 | ||
121 | ASN1_BIT_STRING * | 148 | ASN1_BIT_STRING * |
122 | d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len) | 149 | d2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **in, long len) |
@@ -143,7 +170,16 @@ ASN1_BIT_STRING_free(ASN1_BIT_STRING *a) | |||
143 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_BIT_STRING_it); | 170 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_BIT_STRING_it); |
144 | } | 171 | } |
145 | 172 | ||
146 | IMPLEMENT_ASN1_TYPE(ASN1_OCTET_STRING) | 173 | |
174 | const ASN1_ITEM ASN1_OCTET_STRING_it = { | ||
175 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
176 | .utype = V_ASN1_OCTET_STRING, | ||
177 | .templates = NULL, | ||
178 | .tcount = 0, | ||
179 | .funcs = NULL, | ||
180 | .size = 0, | ||
181 | .sname = "ASN1_OCTET_STRING", | ||
182 | }; | ||
147 | 183 | ||
148 | ASN1_OCTET_STRING * | 184 | ASN1_OCTET_STRING * |
149 | d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a, const unsigned char **in, long len) | 185 | d2i_ASN1_OCTET_STRING(ASN1_OCTET_STRING **a, const unsigned char **in, long len) |
@@ -170,7 +206,16 @@ ASN1_OCTET_STRING_free(ASN1_OCTET_STRING *a) | |||
170 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_OCTET_STRING_it); | 206 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_OCTET_STRING_it); |
171 | } | 207 | } |
172 | 208 | ||
173 | IMPLEMENT_ASN1_TYPE(ASN1_NULL) | 209 | |
210 | const ASN1_ITEM ASN1_NULL_it = { | ||
211 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
212 | .utype = V_ASN1_NULL, | ||
213 | .templates = NULL, | ||
214 | .tcount = 0, | ||
215 | .funcs = NULL, | ||
216 | .size = 0, | ||
217 | .sname = "ASN1_NULL", | ||
218 | }; | ||
174 | 219 | ||
175 | ASN1_NULL * | 220 | ASN1_NULL * |
176 | d2i_ASN1_NULL(ASN1_NULL **a, const unsigned char **in, long len) | 221 | d2i_ASN1_NULL(ASN1_NULL **a, const unsigned char **in, long len) |
@@ -197,9 +242,27 @@ ASN1_NULL_free(ASN1_NULL *a) | |||
197 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_NULL_it); | 242 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_NULL_it); |
198 | } | 243 | } |
199 | 244 | ||
200 | IMPLEMENT_ASN1_TYPE(ASN1_OBJECT) | ||
201 | 245 | ||
202 | IMPLEMENT_ASN1_TYPE(ASN1_UTF8STRING) | 246 | const ASN1_ITEM ASN1_OBJECT_it = { |
247 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
248 | .utype = V_ASN1_OBJECT, | ||
249 | .templates = NULL, | ||
250 | .tcount = 0, | ||
251 | .funcs = NULL, | ||
252 | .size = 0, | ||
253 | .sname = "ASN1_OBJECT", | ||
254 | }; | ||
255 | |||
256 | |||
257 | const ASN1_ITEM ASN1_UTF8STRING_it = { | ||
258 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
259 | .utype = V_ASN1_UTF8STRING, | ||
260 | .templates = NULL, | ||
261 | .tcount = 0, | ||
262 | .funcs = NULL, | ||
263 | .size = 0, | ||
264 | .sname = "ASN1_UTF8STRING", | ||
265 | }; | ||
203 | 266 | ||
204 | ASN1_UTF8STRING * | 267 | ASN1_UTF8STRING * |
205 | d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a, const unsigned char **in, long len) | 268 | d2i_ASN1_UTF8STRING(ASN1_UTF8STRING **a, const unsigned char **in, long len) |
@@ -226,7 +289,16 @@ ASN1_UTF8STRING_free(ASN1_UTF8STRING *a) | |||
226 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTF8STRING_it); | 289 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTF8STRING_it); |
227 | } | 290 | } |
228 | 291 | ||
229 | IMPLEMENT_ASN1_TYPE(ASN1_PRINTABLESTRING) | 292 | |
293 | const ASN1_ITEM ASN1_PRINTABLESTRING_it = { | ||
294 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
295 | .utype = V_ASN1_PRINTABLESTRING, | ||
296 | .templates = NULL, | ||
297 | .tcount = 0, | ||
298 | .funcs = NULL, | ||
299 | .size = 0, | ||
300 | .sname = "ASN1_PRINTABLESTRING", | ||
301 | }; | ||
230 | 302 | ||
231 | ASN1_PRINTABLESTRING * | 303 | ASN1_PRINTABLESTRING * |
232 | d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a, const unsigned char **in, long len) | 304 | d2i_ASN1_PRINTABLESTRING(ASN1_PRINTABLESTRING **a, const unsigned char **in, long len) |
@@ -253,7 +325,16 @@ ASN1_PRINTABLESTRING_free(ASN1_PRINTABLESTRING *a) | |||
253 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_PRINTABLESTRING_it); | 325 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_PRINTABLESTRING_it); |
254 | } | 326 | } |
255 | 327 | ||
256 | IMPLEMENT_ASN1_TYPE(ASN1_T61STRING) | 328 | |
329 | const ASN1_ITEM ASN1_T61STRING_it = { | ||
330 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
331 | .utype = V_ASN1_T61STRING, | ||
332 | .templates = NULL, | ||
333 | .tcount = 0, | ||
334 | .funcs = NULL, | ||
335 | .size = 0, | ||
336 | .sname = "ASN1_T61STRING", | ||
337 | }; | ||
257 | 338 | ||
258 | ASN1_T61STRING * | 339 | ASN1_T61STRING * |
259 | d2i_ASN1_T61STRING(ASN1_T61STRING **a, const unsigned char **in, long len) | 340 | d2i_ASN1_T61STRING(ASN1_T61STRING **a, const unsigned char **in, long len) |
@@ -280,7 +361,16 @@ ASN1_T61STRING_free(ASN1_T61STRING *a) | |||
280 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_T61STRING_it); | 361 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_T61STRING_it); |
281 | } | 362 | } |
282 | 363 | ||
283 | IMPLEMENT_ASN1_TYPE(ASN1_IA5STRING) | 364 | |
365 | const ASN1_ITEM ASN1_IA5STRING_it = { | ||
366 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
367 | .utype = V_ASN1_IA5STRING, | ||
368 | .templates = NULL, | ||
369 | .tcount = 0, | ||
370 | .funcs = NULL, | ||
371 | .size = 0, | ||
372 | .sname = "ASN1_IA5STRING", | ||
373 | }; | ||
284 | 374 | ||
285 | ASN1_IA5STRING * | 375 | ASN1_IA5STRING * |
286 | d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, const unsigned char **in, long len) | 376 | d2i_ASN1_IA5STRING(ASN1_IA5STRING **a, const unsigned char **in, long len) |
@@ -307,7 +397,16 @@ ASN1_IA5STRING_free(ASN1_IA5STRING *a) | |||
307 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_IA5STRING_it); | 397 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_IA5STRING_it); |
308 | } | 398 | } |
309 | 399 | ||
310 | IMPLEMENT_ASN1_TYPE(ASN1_GENERALSTRING) | 400 | |
401 | const ASN1_ITEM ASN1_GENERALSTRING_it = { | ||
402 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
403 | .utype = V_ASN1_GENERALSTRING, | ||
404 | .templates = NULL, | ||
405 | .tcount = 0, | ||
406 | .funcs = NULL, | ||
407 | .size = 0, | ||
408 | .sname = "ASN1_GENERALSTRING", | ||
409 | }; | ||
311 | 410 | ||
312 | ASN1_GENERALSTRING * | 411 | ASN1_GENERALSTRING * |
313 | d2i_ASN1_GENERALSTRING(ASN1_GENERALSTRING **a, const unsigned char **in, long len) | 412 | d2i_ASN1_GENERALSTRING(ASN1_GENERALSTRING **a, const unsigned char **in, long len) |
@@ -334,7 +433,16 @@ ASN1_GENERALSTRING_free(ASN1_GENERALSTRING *a) | |||
334 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALSTRING_it); | 433 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALSTRING_it); |
335 | } | 434 | } |
336 | 435 | ||
337 | IMPLEMENT_ASN1_TYPE(ASN1_UTCTIME) | 436 | |
437 | const ASN1_ITEM ASN1_UTCTIME_it = { | ||
438 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
439 | .utype = V_ASN1_UTCTIME, | ||
440 | .templates = NULL, | ||
441 | .tcount = 0, | ||
442 | .funcs = NULL, | ||
443 | .size = 0, | ||
444 | .sname = "ASN1_UTCTIME", | ||
445 | }; | ||
338 | 446 | ||
339 | ASN1_UTCTIME * | 447 | ASN1_UTCTIME * |
340 | d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, const unsigned char **in, long len) | 448 | d2i_ASN1_UTCTIME(ASN1_UTCTIME **a, const unsigned char **in, long len) |
@@ -361,7 +469,16 @@ ASN1_UTCTIME_free(ASN1_UTCTIME *a) | |||
361 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTCTIME_it); | 469 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UTCTIME_it); |
362 | } | 470 | } |
363 | 471 | ||
364 | IMPLEMENT_ASN1_TYPE(ASN1_GENERALIZEDTIME) | 472 | |
473 | const ASN1_ITEM ASN1_GENERALIZEDTIME_it = { | ||
474 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
475 | .utype = V_ASN1_GENERALIZEDTIME, | ||
476 | .templates = NULL, | ||
477 | .tcount = 0, | ||
478 | .funcs = NULL, | ||
479 | .size = 0, | ||
480 | .sname = "ASN1_GENERALIZEDTIME", | ||
481 | }; | ||
365 | 482 | ||
366 | ASN1_GENERALIZEDTIME * | 483 | ASN1_GENERALIZEDTIME * |
367 | d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, const unsigned char **in, long len) | 484 | d2i_ASN1_GENERALIZEDTIME(ASN1_GENERALIZEDTIME **a, const unsigned char **in, long len) |
@@ -388,7 +505,16 @@ ASN1_GENERALIZEDTIME_free(ASN1_GENERALIZEDTIME *a) | |||
388 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALIZEDTIME_it); | 505 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_GENERALIZEDTIME_it); |
389 | } | 506 | } |
390 | 507 | ||
391 | IMPLEMENT_ASN1_TYPE(ASN1_VISIBLESTRING) | 508 | |
509 | const ASN1_ITEM ASN1_VISIBLESTRING_it = { | ||
510 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
511 | .utype = V_ASN1_VISIBLESTRING, | ||
512 | .templates = NULL, | ||
513 | .tcount = 0, | ||
514 | .funcs = NULL, | ||
515 | .size = 0, | ||
516 | .sname = "ASN1_VISIBLESTRING", | ||
517 | }; | ||
392 | 518 | ||
393 | ASN1_VISIBLESTRING * | 519 | ASN1_VISIBLESTRING * |
394 | d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a, const unsigned char **in, long len) | 520 | d2i_ASN1_VISIBLESTRING(ASN1_VISIBLESTRING **a, const unsigned char **in, long len) |
@@ -415,7 +541,16 @@ ASN1_VISIBLESTRING_free(ASN1_VISIBLESTRING *a) | |||
415 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_VISIBLESTRING_it); | 541 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_VISIBLESTRING_it); |
416 | } | 542 | } |
417 | 543 | ||
418 | IMPLEMENT_ASN1_TYPE(ASN1_UNIVERSALSTRING) | 544 | |
545 | const ASN1_ITEM ASN1_UNIVERSALSTRING_it = { | ||
546 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
547 | .utype = V_ASN1_UNIVERSALSTRING, | ||
548 | .templates = NULL, | ||
549 | .tcount = 0, | ||
550 | .funcs = NULL, | ||
551 | .size = 0, | ||
552 | .sname = "ASN1_UNIVERSALSTRING", | ||
553 | }; | ||
419 | 554 | ||
420 | ASN1_UNIVERSALSTRING * | 555 | ASN1_UNIVERSALSTRING * |
421 | d2i_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING **a, const unsigned char **in, long len) | 556 | d2i_ASN1_UNIVERSALSTRING(ASN1_UNIVERSALSTRING **a, const unsigned char **in, long len) |
@@ -442,7 +577,16 @@ ASN1_UNIVERSALSTRING_free(ASN1_UNIVERSALSTRING *a) | |||
442 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UNIVERSALSTRING_it); | 577 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_UNIVERSALSTRING_it); |
443 | } | 578 | } |
444 | 579 | ||
445 | IMPLEMENT_ASN1_TYPE(ASN1_BMPSTRING) | 580 | |
581 | const ASN1_ITEM ASN1_BMPSTRING_it = { | ||
582 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
583 | .utype = V_ASN1_BMPSTRING, | ||
584 | .templates = NULL, | ||
585 | .tcount = 0, | ||
586 | .funcs = NULL, | ||
587 | .size = 0, | ||
588 | .sname = "ASN1_BMPSTRING", | ||
589 | }; | ||
446 | 590 | ||
447 | ASN1_BMPSTRING * | 591 | ASN1_BMPSTRING * |
448 | d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, const unsigned char **in, long len) | 592 | d2i_ASN1_BMPSTRING(ASN1_BMPSTRING **a, const unsigned char **in, long len) |
@@ -469,10 +613,28 @@ ASN1_BMPSTRING_free(ASN1_BMPSTRING *a) | |||
469 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_BMPSTRING_it); | 613 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_BMPSTRING_it); |
470 | } | 614 | } |
471 | 615 | ||
472 | IMPLEMENT_ASN1_TYPE(ASN1_ANY) | 616 | |
617 | const ASN1_ITEM ASN1_ANY_it = { | ||
618 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
619 | .utype = V_ASN1_ANY, | ||
620 | .templates = NULL, | ||
621 | .tcount = 0, | ||
622 | .funcs = NULL, | ||
623 | .size = 0, | ||
624 | .sname = "ASN1_ANY", | ||
625 | }; | ||
473 | 626 | ||
474 | /* Just swallow an ASN1_SEQUENCE in an ASN1_STRING */ | 627 | /* Just swallow an ASN1_SEQUENCE in an ASN1_STRING */ |
475 | IMPLEMENT_ASN1_TYPE(ASN1_SEQUENCE) | 628 | |
629 | const ASN1_ITEM ASN1_SEQUENCE_it = { | ||
630 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
631 | .utype = V_ASN1_SEQUENCE, | ||
632 | .templates = NULL, | ||
633 | .tcount = 0, | ||
634 | .funcs = NULL, | ||
635 | .size = 0, | ||
636 | .sname = "ASN1_SEQUENCE", | ||
637 | }; | ||
476 | 638 | ||
477 | 639 | ||
478 | ASN1_TYPE * | 640 | ASN1_TYPE * |
@@ -584,13 +746,49 @@ DIRECTORYSTRING_free(ASN1_STRING *a) | |||
584 | } | 746 | } |
585 | 747 | ||
586 | /* Three separate BOOLEAN type: normal, DEFAULT TRUE and DEFAULT FALSE */ | 748 | /* Three separate BOOLEAN type: normal, DEFAULT TRUE and DEFAULT FALSE */ |
587 | IMPLEMENT_ASN1_TYPE_ex(ASN1_BOOLEAN, ASN1_BOOLEAN, -1) | 749 | |
588 | IMPLEMENT_ASN1_TYPE_ex(ASN1_TBOOLEAN, ASN1_BOOLEAN, 1) | 750 | const ASN1_ITEM ASN1_BOOLEAN_it = { |
589 | IMPLEMENT_ASN1_TYPE_ex(ASN1_FBOOLEAN, ASN1_BOOLEAN, 0) | 751 | .itype = ASN1_ITYPE_PRIMITIVE, |
752 | .utype = V_ASN1_BOOLEAN, | ||
753 | .templates = NULL, | ||
754 | .tcount = 0, | ||
755 | .funcs = NULL, | ||
756 | .size = -1, | ||
757 | .sname = "ASN1_BOOLEAN", | ||
758 | }; | ||
759 | |||
760 | const ASN1_ITEM ASN1_TBOOLEAN_it = { | ||
761 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
762 | .utype = V_ASN1_BOOLEAN, | ||
763 | .templates = NULL, | ||
764 | .tcount = 0, | ||
765 | .funcs = NULL, | ||
766 | .size = 1, | ||
767 | .sname = "ASN1_TBOOLEAN", | ||
768 | }; | ||
769 | |||
770 | const ASN1_ITEM ASN1_FBOOLEAN_it = { | ||
771 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
772 | .utype = V_ASN1_BOOLEAN, | ||
773 | .templates = NULL, | ||
774 | .tcount = 0, | ||
775 | .funcs = NULL, | ||
776 | .size = 0, | ||
777 | .sname = "ASN1_FBOOLEAN", | ||
778 | }; | ||
590 | 779 | ||
591 | /* Special, OCTET STRING with indefinite length constructed support */ | 780 | /* Special, OCTET STRING with indefinite length constructed support */ |
592 | 781 | ||
593 | IMPLEMENT_ASN1_TYPE_ex(ASN1_OCTET_STRING_NDEF, ASN1_OCTET_STRING, ASN1_TFLG_NDEF) | 782 | |
783 | const ASN1_ITEM ASN1_OCTET_STRING_NDEF_it = { | ||
784 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
785 | .utype = V_ASN1_OCTET_STRING, | ||
786 | .templates = NULL, | ||
787 | .tcount = 0, | ||
788 | .funcs = NULL, | ||
789 | .size = ASN1_TFLG_NDEF, | ||
790 | .sname = "ASN1_OCTET_STRING_NDEF", | ||
791 | }; | ||
594 | 792 | ||
595 | ASN1_ITEM_TEMPLATE(ASN1_SEQUENCE_ANY) = | 793 | ASN1_ITEM_TEMPLATE(ASN1_SEQUENCE_ANY) = |
596 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, ASN1_SEQUENCE_ANY, ASN1_ANY) | 794 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, ASN1_SEQUENCE_ANY, ASN1_ANY) |