summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509v3/v3_genn.c
diff options
context:
space:
mode:
authorjsing <>2015-02-09 16:03:11 +0000
committerjsing <>2015-02-09 16:03:11 +0000
commitc67b08b466720c73bce5f5a0ee6d8ccf43683ae6 (patch)
tree450aac9231a21230a1a136407055b6264089d1b8 /src/lib/libcrypto/x509v3/v3_genn.c
parent16f790d01f7a6fc6c94e2a033a67b80c8ec5291c (diff)
downloadopenbsd-c67b08b466720c73bce5f5a0ee6d8ccf43683ae6.tar.gz
openbsd-c67b08b466720c73bce5f5a0ee6d8ccf43683ae6.tar.bz2
openbsd-c67b08b466720c73bce5f5a0ee6d8ccf43683ae6.zip
Expand the IMPLEMENT_ASN1_FUNCTIONS macro 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/x509v3/v3_genn.c')
-rw-r--r--src/lib/libcrypto/x509v3/v3_genn.c106
1 files changed, 101 insertions, 5 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_genn.c b/src/lib/libcrypto/x509v3/v3_genn.c
index 716f4a7b99..25d7f447d2 100644
--- a/src/lib/libcrypto/x509v3/v3_genn.c
+++ b/src/lib/libcrypto/x509v3/v3_genn.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_genn.c,v 1.9 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: v3_genn.c,v 1.10 2015/02/09 16:03:11 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 1999. 3 * project 1999.
4 */ 4 */
@@ -69,14 +69,62 @@ ASN1_SEQUENCE(OTHERNAME) = {
69 ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0) 69 ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0)
70} ASN1_SEQUENCE_END(OTHERNAME) 70} ASN1_SEQUENCE_END(OTHERNAME)
71 71
72IMPLEMENT_ASN1_FUNCTIONS(OTHERNAME) 72
73OTHERNAME *
74d2i_OTHERNAME(OTHERNAME **a, const unsigned char **in, long len)
75{
76 return (OTHERNAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
77 &OTHERNAME_it);
78}
79
80int
81i2d_OTHERNAME(OTHERNAME *a, unsigned char **out)
82{
83 return ASN1_item_i2d((ASN1_VALUE *)a, out, &OTHERNAME_it);
84}
85
86OTHERNAME *
87OTHERNAME_new(void)
88{
89 return (OTHERNAME *)ASN1_item_new(&OTHERNAME_it);
90}
91
92void
93OTHERNAME_free(OTHERNAME *a)
94{
95 ASN1_item_free((ASN1_VALUE *)a, &OTHERNAME_it);
96}
73 97
74ASN1_SEQUENCE(EDIPARTYNAME) = { 98ASN1_SEQUENCE(EDIPARTYNAME) = {
75 ASN1_IMP_OPT(EDIPARTYNAME, nameAssigner, DIRECTORYSTRING, 0), 99 ASN1_IMP_OPT(EDIPARTYNAME, nameAssigner, DIRECTORYSTRING, 0),
76 ASN1_IMP_OPT(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1) 100 ASN1_IMP_OPT(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1)
77} ASN1_SEQUENCE_END(EDIPARTYNAME) 101} ASN1_SEQUENCE_END(EDIPARTYNAME)
78 102
79IMPLEMENT_ASN1_FUNCTIONS(EDIPARTYNAME) 103
104EDIPARTYNAME *
105d2i_EDIPARTYNAME(EDIPARTYNAME **a, const unsigned char **in, long len)
106{
107 return (EDIPARTYNAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
108 &EDIPARTYNAME_it);
109}
110
111int
112i2d_EDIPARTYNAME(EDIPARTYNAME *a, unsigned char **out)
113{
114 return ASN1_item_i2d((ASN1_VALUE *)a, out, &EDIPARTYNAME_it);
115}
116
117EDIPARTYNAME *
118EDIPARTYNAME_new(void)
119{
120 return (EDIPARTYNAME *)ASN1_item_new(&EDIPARTYNAME_it);
121}
122
123void
124EDIPARTYNAME_free(EDIPARTYNAME *a)
125{
126 ASN1_item_free((ASN1_VALUE *)a, &EDIPARTYNAME_it);
127}
80 128
81ASN1_CHOICE(GENERAL_NAME) = { 129ASN1_CHOICE(GENERAL_NAME) = {
82 ASN1_IMP(GENERAL_NAME, d.otherName, OTHERNAME, GEN_OTHERNAME), 130 ASN1_IMP(GENERAL_NAME, d.otherName, OTHERNAME, GEN_OTHERNAME),
@@ -92,13 +140,61 @@ ASN1_CHOICE(GENERAL_NAME) = {
92 ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID) 140 ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID)
93} ASN1_CHOICE_END(GENERAL_NAME) 141} ASN1_CHOICE_END(GENERAL_NAME)
94 142
95IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAME) 143
144GENERAL_NAME *
145d2i_GENERAL_NAME(GENERAL_NAME **a, const unsigned char **in, long len)
146{
147 return (GENERAL_NAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
148 &GENERAL_NAME_it);
149}
150
151int
152i2d_GENERAL_NAME(GENERAL_NAME *a, unsigned char **out)
153{
154 return ASN1_item_i2d((ASN1_VALUE *)a, out, &GENERAL_NAME_it);
155}
156
157GENERAL_NAME *
158GENERAL_NAME_new(void)
159{
160 return (GENERAL_NAME *)ASN1_item_new(&GENERAL_NAME_it);
161}
162
163void
164GENERAL_NAME_free(GENERAL_NAME *a)
165{
166 ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAME_it);
167}
96 168
97ASN1_ITEM_TEMPLATE(GENERAL_NAMES) = 169ASN1_ITEM_TEMPLATE(GENERAL_NAMES) =
98 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, GENERAL_NAME) 170 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, GENERAL_NAME)
99ASN1_ITEM_TEMPLATE_END(GENERAL_NAMES) 171ASN1_ITEM_TEMPLATE_END(GENERAL_NAMES)
100 172
101IMPLEMENT_ASN1_FUNCTIONS(GENERAL_NAMES) 173
174GENERAL_NAMES *
175d2i_GENERAL_NAMES(GENERAL_NAMES **a, const unsigned char **in, long len)
176{
177 return (GENERAL_NAMES *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
178 &GENERAL_NAMES_it);
179}
180
181int
182i2d_GENERAL_NAMES(GENERAL_NAMES *a, unsigned char **out)
183{
184 return ASN1_item_i2d((ASN1_VALUE *)a, out, &GENERAL_NAMES_it);
185}
186
187GENERAL_NAMES *
188GENERAL_NAMES_new(void)
189{
190 return (GENERAL_NAMES *)ASN1_item_new(&GENERAL_NAMES_it);
191}
192
193void
194GENERAL_NAMES_free(GENERAL_NAMES *a)
195{
196 ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAMES_it);
197}
102 198
103GENERAL_NAME * 199GENERAL_NAME *
104GENERAL_NAME_dup(GENERAL_NAME *a) 200GENERAL_NAME_dup(GENERAL_NAME *a)