summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/asn1')
-rw-r--r--src/lib/libcrypto/asn1/n_pkey.c54
-rw-r--r--src/lib/libcrypto/asn1/tasn_typ.c106
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
95DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY) 95DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY)
96DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY, NETSCAPE_ENCRYPTED_PKEY) 96DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY, NETSCAPE_ENCRYPTED_PKEY)
97IMPLEMENT_ASN1_FUNCTIONS_const(NETSCAPE_ENCRYPTED_PKEY) 97
98NETSCAPE_ENCRYPTED_PKEY *
99d2i_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
105int
106i2d_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
111NETSCAPE_ENCRYPTED_PKEY *
112NETSCAPE_ENCRYPTED_PKEY_new(void)
113{
114 return (NETSCAPE_ENCRYPTED_PKEY *)ASN1_item_new(&NETSCAPE_ENCRYPTED_PKEY_it);
115}
116
117void
118NETSCAPE_ENCRYPTED_PKEY_free(NETSCAPE_ENCRYPTED_PKEY *a)
119{
120 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_ENCRYPTED_PKEY_it);
121}
98 122
99ASN1_SEQUENCE(NETSCAPE_PKEY) = { 123ASN1_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
105DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_PKEY) 129DECLARE_ASN1_FUNCTIONS_const(NETSCAPE_PKEY)
106DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY, NETSCAPE_PKEY) 130DECLARE_ASN1_ENCODE_FUNCTIONS_const(NETSCAPE_PKEY, NETSCAPE_PKEY)
107IMPLEMENT_ASN1_FUNCTIONS_const(NETSCAPE_PKEY) 131
132NETSCAPE_PKEY *
133d2i_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
139int
140i2d_NETSCAPE_PKEY(const NETSCAPE_PKEY *a, unsigned char **out)
141{
142 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NETSCAPE_PKEY_it);
143}
144
145NETSCAPE_PKEY *
146NETSCAPE_PKEY_new(void)
147{
148 return (NETSCAPE_PKEY *)ASN1_item_new(&NETSCAPE_PKEY_it);
149}
150
151void
152NETSCAPE_PKEY_free(NETSCAPE_PKEY *a)
153{
154 ASN1_item_free((ASN1_VALUE *)a, &NETSCAPE_PKEY_it);
155}
108 156
109static RSA *d2i_RSA_NET_2(RSA **a, ASN1_OCTET_STRING *os, 157static 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 */
475IMPLEMENT_ASN1_TYPE(ASN1_SEQUENCE) 475IMPLEMENT_ASN1_TYPE(ASN1_SEQUENCE)
476 476
477IMPLEMENT_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) 477
478ASN1_TYPE *
479d2i_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
485int
486i2d_ASN1_TYPE(ASN1_TYPE *a, unsigned char **out)
487{
488 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_ANY_it);
489}
490
491ASN1_TYPE *
492ASN1_TYPE_new(void)
493{
494 return (ASN1_TYPE *)ASN1_item_new(&ASN1_ANY_it);
495}
496
497void
498ASN1_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
481IMPLEMENT_ASN1_MSTRING(ASN1_PRINTABLE, B_ASN1_PRINTABLE) 505IMPLEMENT_ASN1_MSTRING(ASN1_PRINTABLE, B_ASN1_PRINTABLE)
482IMPLEMENT_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) 506
507ASN1_STRING *
508d2i_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
514int
515i2d_ASN1_PRINTABLE(ASN1_STRING *a, unsigned char **out)
516{
517 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASN1_PRINTABLE_it);
518}
519
520ASN1_STRING *
521ASN1_PRINTABLE_new(void)
522{
523 return (ASN1_STRING *)ASN1_item_new(&ASN1_PRINTABLE_it);
524}
525
526void
527ASN1_PRINTABLE_free(ASN1_STRING *a)
528{
529 ASN1_item_free((ASN1_VALUE *)a, &ASN1_PRINTABLE_it);
530}
483 531
484IMPLEMENT_ASN1_MSTRING(DISPLAYTEXT, B_ASN1_DISPLAYTEXT) 532IMPLEMENT_ASN1_MSTRING(DISPLAYTEXT, B_ASN1_DISPLAYTEXT)
485IMPLEMENT_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) 533
534ASN1_STRING *
535d2i_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
541int
542i2d_DISPLAYTEXT(ASN1_STRING *a, unsigned char **out)
543{
544 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DISPLAYTEXT_it);
545}
546
547ASN1_STRING *
548DISPLAYTEXT_new(void)
549{
550 return (ASN1_STRING *)ASN1_item_new(&DISPLAYTEXT_it);
551}
552
553void
554DISPLAYTEXT_free(ASN1_STRING *a)
555{
556 ASN1_item_free((ASN1_VALUE *)a, &DISPLAYTEXT_it);
557}
486 558
487IMPLEMENT_ASN1_MSTRING(DIRECTORYSTRING, B_ASN1_DIRECTORYSTRING) 559IMPLEMENT_ASN1_MSTRING(DIRECTORYSTRING, B_ASN1_DIRECTORYSTRING)
488IMPLEMENT_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) 560
561ASN1_STRING *
562d2i_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
568int
569i2d_DIRECTORYSTRING(ASN1_STRING *a, unsigned char **out)
570{
571 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIRECTORYSTRING_it);
572}
573
574ASN1_STRING *
575DIRECTORYSTRING_new(void)
576{
577 return (ASN1_STRING *)ASN1_item_new(&DIRECTORYSTRING_it);
578}
579
580void
581DIRECTORYSTRING_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 */
491IMPLEMENT_ASN1_TYPE_ex(ASN1_BOOLEAN, ASN1_BOOLEAN, -1) 587IMPLEMENT_ASN1_TYPE_ex(ASN1_BOOLEAN, ASN1_BOOLEAN, -1)