diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/tasn_typ.c')
| -rw-r--r-- | src/lib/libcrypto/asn1/tasn_typ.c | 106 |
1 files changed, 101 insertions, 5 deletions
diff --git a/src/lib/libcrypto/asn1/tasn_typ.c b/src/lib/libcrypto/asn1/tasn_typ.c index 2f44b4229b..6e4650c089 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.7 2015/02/09 15:05:59 jsing Exp $ */ | 1 | /* $OpenBSD: tasn_typ.c,v 1.8 2015/02/10 04:01:26 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 | */ |
| @@ -474,18 +474,114 @@ IMPLEMENT_ASN1_TYPE(ASN1_ANY) | |||
| 474 | /* Just swallow an ASN1_SEQUENCE in an ASN1_STRING */ | 474 | /* Just swallow an ASN1_SEQUENCE in an ASN1_STRING */ |
| 475 | IMPLEMENT_ASN1_TYPE(ASN1_SEQUENCE) | 475 | IMPLEMENT_ASN1_TYPE(ASN1_SEQUENCE) |
| 476 | 476 | ||
| 477 | IMPLEMENT_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) | 477 | |
| 478 | ASN1_TYPE * | ||
| 479 | d2i_ASN1_TYPE(ASN1_TYPE **a, const unsigned char **in, long len) | ||
| 480 | { | ||
| 481 | return (ASN1_TYPE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 482 | &ASN1_ANY_it); | ||
| 483 | } | ||
| 484 | |||
| 485 | int | ||
| 486 | i2d_ASN1_TYPE(ASN1_TYPE *a, unsigned char **out) | ||
| 487 | { | ||
| 488 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_ANY_it); | ||
| 489 | } | ||
| 490 | |||
| 491 | ASN1_TYPE * | ||
| 492 | ASN1_TYPE_new(void) | ||
| 493 | { | ||
| 494 | return (ASN1_TYPE *)ASN1_item_new(&ASN1_ANY_it); | ||
| 495 | } | ||
| 496 | |||
| 497 | void | ||
| 498 | ASN1_TYPE_free(ASN1_TYPE *a) | ||
| 499 | { | ||
| 500 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_ANY_it); | ||
| 501 | } | ||
| 478 | 502 | ||
| 479 | /* Multistring types */ | 503 | /* Multistring types */ |
| 480 | 504 | ||
| 481 | IMPLEMENT_ASN1_MSTRING(ASN1_PRINTABLE, B_ASN1_PRINTABLE) | 505 | IMPLEMENT_ASN1_MSTRING(ASN1_PRINTABLE, B_ASN1_PRINTABLE) |
| 482 | IMPLEMENT_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) | 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 | |||
| 514 | int | ||
| 515 | i2d_ASN1_PRINTABLE(ASN1_STRING *a, unsigned char **out) | ||
| 516 | { | ||
| 517 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_PRINTABLE_it); | ||
| 518 | } | ||
| 519 | |||
| 520 | ASN1_STRING * | ||
| 521 | ASN1_PRINTABLE_new(void) | ||
| 522 | { | ||
| 523 | return (ASN1_STRING *)ASN1_item_new(&ASN1_PRINTABLE_it); | ||
| 524 | } | ||
| 525 | |||
| 526 | void | ||
| 527 | ASN1_PRINTABLE_free(ASN1_STRING *a) | ||
| 528 | { | ||
| 529 | ASN1_item_free((ASN1_VALUE *)a, &ASN1_PRINTABLE_it); | ||
| 530 | } | ||
| 483 | 531 | ||
| 484 | IMPLEMENT_ASN1_MSTRING(DISPLAYTEXT, B_ASN1_DISPLAYTEXT) | 532 | IMPLEMENT_ASN1_MSTRING(DISPLAYTEXT, B_ASN1_DISPLAYTEXT) |
| 485 | IMPLEMENT_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) | 533 | |
| 534 | ASN1_STRING * | ||
| 535 | d2i_DISPLAYTEXT(ASN1_STRING **a, const unsigned char **in, long len) | ||
| 536 | { | ||
| 537 | return (ASN1_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 538 | &DISPLAYTEXT_it); | ||
| 539 | } | ||
| 540 | |||
| 541 | int | ||
| 542 | i2d_DISPLAYTEXT(ASN1_STRING *a, unsigned char **out) | ||
| 543 | { | ||
| 544 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &DISPLAYTEXT_it); | ||
| 545 | } | ||
| 546 | |||
| 547 | ASN1_STRING * | ||
| 548 | DISPLAYTEXT_new(void) | ||
| 549 | { | ||
| 550 | return (ASN1_STRING *)ASN1_item_new(&DISPLAYTEXT_it); | ||
| 551 | } | ||
| 552 | |||
| 553 | void | ||
| 554 | DISPLAYTEXT_free(ASN1_STRING *a) | ||
| 555 | { | ||
| 556 | ASN1_item_free((ASN1_VALUE *)a, &DISPLAYTEXT_it); | ||
| 557 | } | ||
| 486 | 558 | ||
| 487 | IMPLEMENT_ASN1_MSTRING(DIRECTORYSTRING, B_ASN1_DIRECTORYSTRING) | 559 | IMPLEMENT_ASN1_MSTRING(DIRECTORYSTRING, B_ASN1_DIRECTORYSTRING) |
| 488 | IMPLEMENT_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) | 560 | |
| 561 | ASN1_STRING * | ||
| 562 | d2i_DIRECTORYSTRING(ASN1_STRING **a, const unsigned char **in, long len) | ||
| 563 | { | ||
| 564 | return (ASN1_STRING *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 565 | &DIRECTORYSTRING_it); | ||
| 566 | } | ||
| 567 | |||
| 568 | int | ||
| 569 | i2d_DIRECTORYSTRING(ASN1_STRING *a, unsigned char **out) | ||
| 570 | { | ||
| 571 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIRECTORYSTRING_it); | ||
| 572 | } | ||
| 573 | |||
| 574 | ASN1_STRING * | ||
| 575 | DIRECTORYSTRING_new(void) | ||
| 576 | { | ||
| 577 | return (ASN1_STRING *)ASN1_item_new(&DIRECTORYSTRING_it); | ||
| 578 | } | ||
| 579 | |||
| 580 | void | ||
| 581 | DIRECTORYSTRING_free(ASN1_STRING *a) | ||
| 582 | { | ||
| 583 | ASN1_item_free((ASN1_VALUE *)a, &DIRECTORYSTRING_it); | ||
| 584 | } | ||
| 489 | 585 | ||
| 490 | /* Three separate BOOLEAN type: normal, DEFAULT TRUE and DEFAULT FALSE */ | 586 | /* Three separate BOOLEAN type: normal, DEFAULT TRUE and DEFAULT FALSE */ |
| 491 | IMPLEMENT_ASN1_TYPE_ex(ASN1_BOOLEAN, ASN1_BOOLEAN, -1) | 587 | IMPLEMENT_ASN1_TYPE_ex(ASN1_BOOLEAN, ASN1_BOOLEAN, -1) |
