summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1
diff options
context:
space:
mode:
authorjsing <>2015-02-10 04:01:26 +0000
committerjsing <>2015-02-10 04:01:26 +0000
commit0e4218e3e293b3085109f78bed8948a0bf9f1511 (patch)
tree86b03f16387ab89c274a564f80963cad767070f8 /src/lib/libcrypto/asn1
parentef9e1f7eec0659c49a61db86c7a58ea19e13d6b1 (diff)
downloadopenbsd-0e4218e3e293b3085109f78bed8948a0bf9f1511.tar.gz
openbsd-0e4218e3e293b3085109f78bed8948a0bf9f1511.tar.bz2
openbsd-0e4218e3e293b3085109f78bed8948a0bf9f1511.zip
Expand the IMPLEMENT_ASN1_FUNCTIONS_{const,fname,name} macros so that the
code is visible and functions can be readily located. Change has been scripted and the generated assembly only differs by changes to line numbers. Discussed with beck@ miod@ tedu@
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)