diff options
Diffstat (limited to 'src/lib/libcrypto/asn1')
| -rw-r--r-- | src/lib/libcrypto/asn1/n_pkey.c | 54 | ||||
| -rw-r--r-- | src/lib/libcrypto/asn1/tasn_typ.c | 106 |
2 files changed, 152 insertions, 8 deletions
diff --git a/src/lib/libcrypto/asn1/n_pkey.c b/src/lib/libcrypto/asn1/n_pkey.c index 42431b6e24..198ca97c09 100644 --- a/src/lib/libcrypto/asn1/n_pkey.c +++ b/src/lib/libcrypto/asn1/n_pkey.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: n_pkey.c,v 1.22 2014/07/12 22:26:01 miod Exp $ */ | 1 | /* $OpenBSD: n_pkey.c,v 1.23 2015/02/10 04:01:26 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -94,7 +94,31 @@ ASN1_BROKEN_SEQUENCE(NETSCAPE_ENCRYPTED_PKEY) = { | |||
| 94 | 94 | ||
| 95 | DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY) | 95 | DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY) |
| 96 | DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY, NETSCAPE_ENCRYPTED_PKEY) | 96 | DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY, NETSCAPE_ENCRYPTED_PKEY) |
| 97 | IMPLEMENT_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY) | 97 | |
| 98 | NETSCAPE_ENCRYPTED_PKEY * | ||
| 99 | d2i_NETSCAPE_ENCRYPTED_PKEY(NETSCAPE_ENCRYPTED_PKEY **a, const unsigned char **in, long len) | ||
| 100 | { | ||
| 101 | return (NETSCAPE_ENCRYPTED_PKEY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 102 | &NETSCAPE_ENCRYPTED_PKEY_it); | ||
| 103 | } | ||
| 104 | |||
| 105 | int | ||
| 106 | i2d_NETSCAPE_ENCRYPTED_PKEY(const NETSCAPE_ENCRYPTED_PKEY *a, unsigned char **out) | ||
| 107 | { | ||
| 108 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_ENCRYPTED_PKEY_it); | ||
| 109 | } | ||
| 110 | |||
| 111 | NETSCAPE_ENCRYPTED_PKEY * | ||
| 112 | NETSCAPE_ENCRYPTED_PKEY_new(void) | ||
| 113 | { | ||
| 114 | return (NETSCAPE_ENCRYPTED_PKEY *)ASN1_item_new(&NETSCAPE_ENCRYPTED_PKEY_it); | ||
| 115 | } | ||
| 116 | |||
| 117 | void | ||
| 118 | NETSCAPE_ENCRYPTED_PKEY_free(NETSCAPE_ENCRYPTED_PKEY *a) | ||
| 119 | { | ||
| 120 | ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_ENCRYPTED_PKEY_it); | ||
| 121 | } | ||
| 98 | 122 | ||
| 99 | ASN1_SEQUENCE(NETSCAPE_PKEY) = { | 123 | ASN1_SEQUENCE(NETSCAPE_PKEY) = { |
| 100 | ASN1_SIMPLE(NETSCAPE_PKEY, version, LONG), | 124 | ASN1_SIMPLE(NETSCAPE_PKEY, version, LONG), |
| @@ -104,7 +128,31 @@ ASN1_SEQUENCE(NETSCAPE_PKEY) = { | |||
| 104 | 128 | ||
| 105 | DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_PKEY) | 129 | DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_PKEY) |
| 106 | DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY, NETSCAPE_PKEY) | 130 | DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY, NETSCAPE_PKEY) |
| 107 | IMPLEMENT_ASN1_FUNCTIONS_const(NETSCAPE_PKEY) | 131 | |
| 132 | NETSCAPE_PKEY * | ||
| 133 | d2i_NETSCAPE_PKEY(NETSCAPE_PKEY **a, const unsigned char **in, long len) | ||
| 134 | { | ||
| 135 | return (NETSCAPE_PKEY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
| 136 | &NETSCAPE_PKEY_it); | ||
| 137 | } | ||
| 138 | |||
| 139 | int | ||
| 140 | i2d_NETSCAPE_PKEY(const NETSCAPE_PKEY *a, unsigned char **out) | ||
| 141 | { | ||
| 142 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_PKEY_it); | ||
| 143 | } | ||
| 144 | |||
| 145 | NETSCAPE_PKEY * | ||
| 146 | NETSCAPE_PKEY_new(void) | ||
| 147 | { | ||
| 148 | return (NETSCAPE_PKEY *)ASN1_item_new(&NETSCAPE_PKEY_it); | ||
| 149 | } | ||
| 150 | |||
| 151 | void | ||
| 152 | NETSCAPE_PKEY_free(NETSCAPE_PKEY *a) | ||
| 153 | { | ||
| 154 | ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_PKEY_it); | ||
| 155 | } | ||
| 108 | 156 | ||
| 109 | static RSA *d2i_RSA_NET_2(RSA **a, ASN1_OCTET_STRING *os, | 157 | static RSA *d2i_RSA_NET_2(RSA **a, ASN1_OCTET_STRING *os, |
| 110 | int (*cb)(char *buf, int len, const char *prompt, int verify), int sgckey); | 158 | int (*cb)(char *buf, int len, const char *prompt, int verify), int sgckey); |
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) |
