summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2015-02-09 16:03:11 +0000
committerjsing <>2015-02-09 16:03:11 +0000
commitc67b08b466720c73bce5f5a0ee6d8ccf43683ae6 (patch)
tree450aac9231a21230a1a136407055b6264089d1b8
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@
-rw-r--r--src/lib/libcrypto/x509v3/v3_addr.c106
-rw-r--r--src/lib/libcrypto/x509v3/v3_akeya.c28
-rw-r--r--src/lib/libcrypto/x509v3/v3_asid.c106
-rw-r--r--src/lib/libcrypto/x509v3/v3_bcons.c28
-rw-r--r--src/lib/libcrypto/x509v3/v3_cpols.c132
-rw-r--r--src/lib/libcrypto/x509v3/v3_crld.c106
-rw-r--r--src/lib/libcrypto/x509v3/v3_extku.c28
-rw-r--r--src/lib/libcrypto/x509v3/v3_genn.c106
-rw-r--r--src/lib/libcrypto/x509v3/v3_info.c54
-rw-r--r--src/lib/libcrypto/x509v3/v3_pcia.c54
-rw-r--r--src/lib/libcrypto/x509v3/v3_pku.c28
-rw-r--r--src/lib/libcrypto/x509v3/v3_sxnet.c54
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_addr.c106
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_akeya.c28
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_asid.c106
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_bcons.c28
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_cpols.c132
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_crld.c106
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_extku.c28
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_genn.c106
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_info.c54
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_pcia.c54
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_pku.c28
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_sxnet.c54
24 files changed, 1574 insertions, 86 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_addr.c b/src/lib/libcrypto/x509v3/v3_addr.c
index 40efb1b9ac..4073aeeaa6 100644
--- a/src/lib/libcrypto/x509v3/v3_addr.c
+++ b/src/lib/libcrypto/x509v3/v3_addr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_addr.c,v 1.14 2014/11/18 03:28:05 tedu Exp $ */ 1/* $OpenBSD: v3_addr.c,v 1.15 2015/02/09 16:03:11 jsing Exp $ */
2/* 2/*
3 * Contributed to the OpenSSL Project by the American Registry for 3 * Contributed to the OpenSSL Project by the American Registry for
4 * Internet Numbers ("ARIN"). 4 * Internet Numbers ("ARIN").
@@ -102,10 +102,106 @@ ASN1_ITEM_TEMPLATE(IPAddrBlocks) =
102 IPAddrBlocks, IPAddressFamily) 102 IPAddrBlocks, IPAddressFamily)
103ASN1_ITEM_TEMPLATE_END(IPAddrBlocks) 103ASN1_ITEM_TEMPLATE_END(IPAddrBlocks)
104 104
105IMPLEMENT_ASN1_FUNCTIONS(IPAddressRange) 105
106IMPLEMENT_ASN1_FUNCTIONS(IPAddressOrRange) 106IPAddressRange *
107IMPLEMENT_ASN1_FUNCTIONS(IPAddressChoice) 107d2i_IPAddressRange(IPAddressRange **a, const unsigned char **in, long len)
108IMPLEMENT_ASN1_FUNCTIONS(IPAddressFamily) 108{
109 return (IPAddressRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
110 &IPAddressRange_it);
111}
112
113int
114i2d_IPAddressRange(IPAddressRange *a, unsigned char **out)
115{
116 return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressRange_it);
117}
118
119IPAddressRange *
120IPAddressRange_new(void)
121{
122 return (IPAddressRange *)ASN1_item_new(&IPAddressRange_it);
123}
124
125void
126IPAddressRange_free(IPAddressRange *a)
127{
128 ASN1_item_free((ASN1_VALUE *)a, &IPAddressRange_it);
129}
130
131IPAddressOrRange *
132d2i_IPAddressOrRange(IPAddressOrRange **a, const unsigned char **in, long len)
133{
134 return (IPAddressOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
135 &IPAddressOrRange_it);
136}
137
138int
139i2d_IPAddressOrRange(IPAddressOrRange *a, unsigned char **out)
140{
141 return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressOrRange_it);
142}
143
144IPAddressOrRange *
145IPAddressOrRange_new(void)
146{
147 return (IPAddressOrRange *)ASN1_item_new(&IPAddressOrRange_it);
148}
149
150void
151IPAddressOrRange_free(IPAddressOrRange *a)
152{
153 ASN1_item_free((ASN1_VALUE *)a, &IPAddressOrRange_it);
154}
155
156IPAddressChoice *
157d2i_IPAddressChoice(IPAddressChoice **a, const unsigned char **in, long len)
158{
159 return (IPAddressChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
160 &IPAddressChoice_it);
161}
162
163int
164i2d_IPAddressChoice(IPAddressChoice *a, unsigned char **out)
165{
166 return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressChoice_it);
167}
168
169IPAddressChoice *
170IPAddressChoice_new(void)
171{
172 return (IPAddressChoice *)ASN1_item_new(&IPAddressChoice_it);
173}
174
175void
176IPAddressChoice_free(IPAddressChoice *a)
177{
178 ASN1_item_free((ASN1_VALUE *)a, &IPAddressChoice_it);
179}
180
181IPAddressFamily *
182d2i_IPAddressFamily(IPAddressFamily **a, const unsigned char **in, long len)
183{
184 return (IPAddressFamily *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
185 &IPAddressFamily_it);
186}
187
188int
189i2d_IPAddressFamily(IPAddressFamily *a, unsigned char **out)
190{
191 return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressFamily_it);
192}
193
194IPAddressFamily *
195IPAddressFamily_new(void)
196{
197 return (IPAddressFamily *)ASN1_item_new(&IPAddressFamily_it);
198}
199
200void
201IPAddressFamily_free(IPAddressFamily *a)
202{
203 ASN1_item_free((ASN1_VALUE *)a, &IPAddressFamily_it);
204}
109 205
110/* 206/*
111 * How much buffer space do we need for a raw address? 207 * How much buffer space do we need for a raw address?
diff --git a/src/lib/libcrypto/x509v3/v3_akeya.c b/src/lib/libcrypto/x509v3/v3_akeya.c
index 247c9f48a9..1848c0911e 100644
--- a/src/lib/libcrypto/x509v3/v3_akeya.c
+++ b/src/lib/libcrypto/x509v3/v3_akeya.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_akeya.c,v 1.5 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: v3_akeya.c,v 1.6 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,4 +69,28 @@ ASN1_SEQUENCE(AUTHORITY_KEYID) = {
69 ASN1_IMP_OPT(AUTHORITY_KEYID, serial, ASN1_INTEGER, 2) 69 ASN1_IMP_OPT(AUTHORITY_KEYID, serial, ASN1_INTEGER, 2)
70} ASN1_SEQUENCE_END(AUTHORITY_KEYID) 70} ASN1_SEQUENCE_END(AUTHORITY_KEYID)
71 71
72IMPLEMENT_ASN1_FUNCTIONS(AUTHORITY_KEYID) 72
73AUTHORITY_KEYID *
74d2i_AUTHORITY_KEYID(AUTHORITY_KEYID **a, const unsigned char **in, long len)
75{
76 return (AUTHORITY_KEYID *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
77 &AUTHORITY_KEYID_it);
78}
79
80int
81i2d_AUTHORITY_KEYID(AUTHORITY_KEYID *a, unsigned char **out)
82{
83 return ASN1_item_i2d((ASN1_VALUE *)a, out, &AUTHORITY_KEYID_it);
84}
85
86AUTHORITY_KEYID *
87AUTHORITY_KEYID_new(void)
88{
89 return (AUTHORITY_KEYID *)ASN1_item_new(&AUTHORITY_KEYID_it);
90}
91
92void
93AUTHORITY_KEYID_free(AUTHORITY_KEYID *a)
94{
95 ASN1_item_free((ASN1_VALUE *)a, &AUTHORITY_KEYID_it);
96}
diff --git a/src/lib/libcrypto/x509v3/v3_asid.c b/src/lib/libcrypto/x509v3/v3_asid.c
index 680eed31ec..10f82c573d 100644
--- a/src/lib/libcrypto/x509v3/v3_asid.c
+++ b/src/lib/libcrypto/x509v3/v3_asid.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_asid.c,v 1.11 2014/07/13 16:03:10 beck Exp $ */ 1/* $OpenBSD: v3_asid.c,v 1.12 2015/02/09 16:03:11 jsing Exp $ */
2/* 2/*
3 * Contributed to the OpenSSL Project by the American Registry for 3 * Contributed to the OpenSSL Project by the American Registry for
4 * Internet Numbers ("ARIN"). 4 * Internet Numbers ("ARIN").
@@ -98,10 +98,106 @@ ASN1_SEQUENCE(ASIdentifiers) = {
98 ASN1_EXP_OPT(ASIdentifiers, rdi, ASIdentifierChoice, 1) 98 ASN1_EXP_OPT(ASIdentifiers, rdi, ASIdentifierChoice, 1)
99} ASN1_SEQUENCE_END(ASIdentifiers) 99} ASN1_SEQUENCE_END(ASIdentifiers)
100 100
101IMPLEMENT_ASN1_FUNCTIONS(ASRange) 101
102IMPLEMENT_ASN1_FUNCTIONS(ASIdOrRange) 102ASRange *
103IMPLEMENT_ASN1_FUNCTIONS(ASIdentifierChoice) 103d2i_ASRange(ASRange **a, const unsigned char **in, long len)
104IMPLEMENT_ASN1_FUNCTIONS(ASIdentifiers) 104{
105 return (ASRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
106 &ASRange_it);
107}
108
109int
110i2d_ASRange(ASRange *a, unsigned char **out)
111{
112 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASRange_it);
113}
114
115ASRange *
116ASRange_new(void)
117{
118 return (ASRange *)ASN1_item_new(&ASRange_it);
119}
120
121void
122ASRange_free(ASRange *a)
123{
124 ASN1_item_free((ASN1_VALUE *)a, &ASRange_it);
125}
126
127ASIdOrRange *
128d2i_ASIdOrRange(ASIdOrRange **a, const unsigned char **in, long len)
129{
130 return (ASIdOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
131 &ASIdOrRange_it);
132}
133
134int
135i2d_ASIdOrRange(ASIdOrRange *a, unsigned char **out)
136{
137 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASIdOrRange_it);
138}
139
140ASIdOrRange *
141ASIdOrRange_new(void)
142{
143 return (ASIdOrRange *)ASN1_item_new(&ASIdOrRange_it);
144}
145
146void
147ASIdOrRange_free(ASIdOrRange *a)
148{
149 ASN1_item_free((ASN1_VALUE *)a, &ASIdOrRange_it);
150}
151
152ASIdentifierChoice *
153d2i_ASIdentifierChoice(ASIdentifierChoice **a, const unsigned char **in, long len)
154{
155 return (ASIdentifierChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
156 &ASIdentifierChoice_it);
157}
158
159int
160i2d_ASIdentifierChoice(ASIdentifierChoice *a, unsigned char **out)
161{
162 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASIdentifierChoice_it);
163}
164
165ASIdentifierChoice *
166ASIdentifierChoice_new(void)
167{
168 return (ASIdentifierChoice *)ASN1_item_new(&ASIdentifierChoice_it);
169}
170
171void
172ASIdentifierChoice_free(ASIdentifierChoice *a)
173{
174 ASN1_item_free((ASN1_VALUE *)a, &ASIdentifierChoice_it);
175}
176
177ASIdentifiers *
178d2i_ASIdentifiers(ASIdentifiers **a, const unsigned char **in, long len)
179{
180 return (ASIdentifiers *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
181 &ASIdentifiers_it);
182}
183
184int
185i2d_ASIdentifiers(ASIdentifiers *a, unsigned char **out)
186{
187 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASIdentifiers_it);
188}
189
190ASIdentifiers *
191ASIdentifiers_new(void)
192{
193 return (ASIdentifiers *)ASN1_item_new(&ASIdentifiers_it);
194}
195
196void
197ASIdentifiers_free(ASIdentifiers *a)
198{
199 ASN1_item_free((ASN1_VALUE *)a, &ASIdentifiers_it);
200}
105 201
106/* 202/*
107 * i2r method for an ASIdentifierChoice. 203 * i2r method for an ASIdentifierChoice.
diff --git a/src/lib/libcrypto/x509v3/v3_bcons.c b/src/lib/libcrypto/x509v3/v3_bcons.c
index 8e2632d379..fb3f6c7619 100644
--- a/src/lib/libcrypto/x509v3/v3_bcons.c
+++ b/src/lib/libcrypto/x509v3/v3_bcons.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_bcons.c,v 1.10 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: v3_bcons.c,v 1.11 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 */
@@ -86,7 +86,31 @@ ASN1_SEQUENCE(BASIC_CONSTRAINTS) = {
86 ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER) 86 ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER)
87} ASN1_SEQUENCE_END(BASIC_CONSTRAINTS) 87} ASN1_SEQUENCE_END(BASIC_CONSTRAINTS)
88 88
89IMPLEMENT_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) 89
90BASIC_CONSTRAINTS *
91d2i_BASIC_CONSTRAINTS(BASIC_CONSTRAINTS **a, const unsigned char **in, long len)
92{
93 return (BASIC_CONSTRAINTS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
94 &BASIC_CONSTRAINTS_it);
95}
96
97int
98i2d_BASIC_CONSTRAINTS(BASIC_CONSTRAINTS *a, unsigned char **out)
99{
100 return ASN1_item_i2d((ASN1_VALUE *)a, out, &BASIC_CONSTRAINTS_it);
101}
102
103BASIC_CONSTRAINTS *
104BASIC_CONSTRAINTS_new(void)
105{
106 return (BASIC_CONSTRAINTS *)ASN1_item_new(&BASIC_CONSTRAINTS_it);
107}
108
109void
110BASIC_CONSTRAINTS_free(BASIC_CONSTRAINTS *a)
111{
112 ASN1_item_free((ASN1_VALUE *)a, &BASIC_CONSTRAINTS_it);
113}
90 114
91 115
92static STACK_OF(CONF_VALUE) * 116static STACK_OF(CONF_VALUE) *
diff --git a/src/lib/libcrypto/x509v3/v3_cpols.c b/src/lib/libcrypto/x509v3/v3_cpols.c
index d683db697e..6ceb93d372 100644
--- a/src/lib/libcrypto/x509v3/v3_cpols.c
+++ b/src/lib/libcrypto/x509v3/v3_cpols.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_cpols.c,v 1.16 2014/10/05 18:27:33 miod Exp $ */ 1/* $OpenBSD: v3_cpols.c,v 1.17 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 */
@@ -97,14 +97,62 @@ ASN1_ITEM_TEMPLATE(CERTIFICATEPOLICIES) =
97 POLICYINFO) 97 POLICYINFO)
98ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES) 98ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES)
99 99
100IMPLEMENT_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) 100
101CERTIFICATEPOLICIES *
102d2i_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES **a, const unsigned char **in, long len)
103{
104 return (CERTIFICATEPOLICIES *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
105 &CERTIFICATEPOLICIES_it);
106}
107
108int
109i2d_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES *a, unsigned char **out)
110{
111 return ASN1_item_i2d((ASN1_VALUE *)a, out, &CERTIFICATEPOLICIES_it);
112}
113
114CERTIFICATEPOLICIES *
115CERTIFICATEPOLICIES_new(void)
116{
117 return (CERTIFICATEPOLICIES *)ASN1_item_new(&CERTIFICATEPOLICIES_it);
118}
119
120void
121CERTIFICATEPOLICIES_free(CERTIFICATEPOLICIES *a)
122{
123 ASN1_item_free((ASN1_VALUE *)a, &CERTIFICATEPOLICIES_it);
124}
101 125
102ASN1_SEQUENCE(POLICYINFO) = { 126ASN1_SEQUENCE(POLICYINFO) = {
103 ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT), 127 ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT),
104 ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO) 128 ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO)
105} ASN1_SEQUENCE_END(POLICYINFO) 129} ASN1_SEQUENCE_END(POLICYINFO)
106 130
107IMPLEMENT_ASN1_FUNCTIONS(POLICYINFO) 131
132POLICYINFO *
133d2i_POLICYINFO(POLICYINFO **a, const unsigned char **in, long len)
134{
135 return (POLICYINFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
136 &POLICYINFO_it);
137}
138
139int
140i2d_POLICYINFO(POLICYINFO *a, unsigned char **out)
141{
142 return ASN1_item_i2d((ASN1_VALUE *)a, out, &POLICYINFO_it);
143}
144
145POLICYINFO *
146POLICYINFO_new(void)
147{
148 return (POLICYINFO *)ASN1_item_new(&POLICYINFO_it);
149}
150
151void
152POLICYINFO_free(POLICYINFO *a)
153{
154 ASN1_item_free((ASN1_VALUE *)a, &POLICYINFO_it);
155}
108 156
109ASN1_ADB_TEMPLATE(policydefault) = 157ASN1_ADB_TEMPLATE(policydefault) =
110 ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY); 158 ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY);
@@ -119,21 +167,93 @@ ASN1_SEQUENCE(POLICYQUALINFO) = {
119 ASN1_ADB_OBJECT(POLICYQUALINFO) 167 ASN1_ADB_OBJECT(POLICYQUALINFO)
120} ASN1_SEQUENCE_END(POLICYQUALINFO) 168} ASN1_SEQUENCE_END(POLICYQUALINFO)
121 169
122IMPLEMENT_ASN1_FUNCTIONS(POLICYQUALINFO) 170
171POLICYQUALINFO *
172d2i_POLICYQUALINFO(POLICYQUALINFO **a, const unsigned char **in, long len)
173{
174 return (POLICYQUALINFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
175 &POLICYQUALINFO_it);
176}
177
178int
179i2d_POLICYQUALINFO(POLICYQUALINFO *a, unsigned char **out)
180{
181 return ASN1_item_i2d((ASN1_VALUE *)a, out, &POLICYQUALINFO_it);
182}
183
184POLICYQUALINFO *
185POLICYQUALINFO_new(void)
186{
187 return (POLICYQUALINFO *)ASN1_item_new(&POLICYQUALINFO_it);
188}
189
190void
191POLICYQUALINFO_free(POLICYQUALINFO *a)
192{
193 ASN1_item_free((ASN1_VALUE *)a, &POLICYQUALINFO_it);
194}
123 195
124ASN1_SEQUENCE(USERNOTICE) = { 196ASN1_SEQUENCE(USERNOTICE) = {
125 ASN1_OPT(USERNOTICE, noticeref, NOTICEREF), 197 ASN1_OPT(USERNOTICE, noticeref, NOTICEREF),
126 ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT) 198 ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT)
127} ASN1_SEQUENCE_END(USERNOTICE) 199} ASN1_SEQUENCE_END(USERNOTICE)
128 200
129IMPLEMENT_ASN1_FUNCTIONS(USERNOTICE) 201
202USERNOTICE *
203d2i_USERNOTICE(USERNOTICE **a, const unsigned char **in, long len)
204{
205 return (USERNOTICE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
206 &USERNOTICE_it);
207}
208
209int
210i2d_USERNOTICE(USERNOTICE *a, unsigned char **out)
211{
212 return ASN1_item_i2d((ASN1_VALUE *)a, out, &USERNOTICE_it);
213}
214
215USERNOTICE *
216USERNOTICE_new(void)
217{
218 return (USERNOTICE *)ASN1_item_new(&USERNOTICE_it);
219}
220
221void
222USERNOTICE_free(USERNOTICE *a)
223{
224 ASN1_item_free((ASN1_VALUE *)a, &USERNOTICE_it);
225}
130 226
131ASN1_SEQUENCE(NOTICEREF) = { 227ASN1_SEQUENCE(NOTICEREF) = {
132 ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT), 228 ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT),
133 ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER) 229 ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER)
134} ASN1_SEQUENCE_END(NOTICEREF) 230} ASN1_SEQUENCE_END(NOTICEREF)
135 231
136IMPLEMENT_ASN1_FUNCTIONS(NOTICEREF) 232
233NOTICEREF *
234d2i_NOTICEREF(NOTICEREF **a, const unsigned char **in, long len)
235{
236 return (NOTICEREF *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
237 &NOTICEREF_it);
238}
239
240int
241i2d_NOTICEREF(NOTICEREF *a, unsigned char **out)
242{
243 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NOTICEREF_it);
244}
245
246NOTICEREF *
247NOTICEREF_new(void)
248{
249 return (NOTICEREF *)ASN1_item_new(&NOTICEREF_it);
250}
251
252void
253NOTICEREF_free(NOTICEREF *a)
254{
255 ASN1_item_free((ASN1_VALUE *)a, &NOTICEREF_it);
256}
137 257
138static 258static
139STACK_OF(POLICYINFO) *r2i_certpol(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, 259STACK_OF(POLICYINFO) *r2i_certpol(X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
diff --git a/src/lib/libcrypto/x509v3/v3_crld.c b/src/lib/libcrypto/x509v3/v3_crld.c
index 9586401da6..2201b61264 100644
--- a/src/lib/libcrypto/x509v3/v3_crld.c
+++ b/src/lib/libcrypto/x509v3/v3_crld.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_crld.c,v 1.13 2014/10/05 18:27:58 miod Exp $ */ 1/* $OpenBSD: v3_crld.c,v 1.14 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 */
@@ -383,7 +383,31 @@ ASN1_CHOICE_cb(DIST_POINT_NAME, dpn_cb) = {
383} ASN1_CHOICE_END_cb(DIST_POINT_NAME, DIST_POINT_NAME, type) 383} ASN1_CHOICE_END_cb(DIST_POINT_NAME, DIST_POINT_NAME, type)
384 384
385 385
386IMPLEMENT_ASN1_FUNCTIONS(DIST_POINT_NAME) 386
387DIST_POINT_NAME *
388d2i_DIST_POINT_NAME(DIST_POINT_NAME **a, const unsigned char **in, long len)
389{
390 return (DIST_POINT_NAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
391 &DIST_POINT_NAME_it);
392}
393
394int
395i2d_DIST_POINT_NAME(DIST_POINT_NAME *a, unsigned char **out)
396{
397 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIST_POINT_NAME_it);
398}
399
400DIST_POINT_NAME *
401DIST_POINT_NAME_new(void)
402{
403 return (DIST_POINT_NAME *)ASN1_item_new(&DIST_POINT_NAME_it);
404}
405
406void
407DIST_POINT_NAME_free(DIST_POINT_NAME *a)
408{
409 ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_NAME_it);
410}
387 411
388ASN1_SEQUENCE(DIST_POINT) = { 412ASN1_SEQUENCE(DIST_POINT) = {
389 ASN1_EXP_OPT(DIST_POINT, distpoint, DIST_POINT_NAME, 0), 413 ASN1_EXP_OPT(DIST_POINT, distpoint, DIST_POINT_NAME, 0),
@@ -391,14 +415,62 @@ ASN1_SEQUENCE(DIST_POINT) = {
391 ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2) 415 ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2)
392} ASN1_SEQUENCE_END(DIST_POINT) 416} ASN1_SEQUENCE_END(DIST_POINT)
393 417
394IMPLEMENT_ASN1_FUNCTIONS(DIST_POINT) 418
419DIST_POINT *
420d2i_DIST_POINT(DIST_POINT **a, const unsigned char **in, long len)
421{
422 return (DIST_POINT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
423 &DIST_POINT_it);
424}
425
426int
427i2d_DIST_POINT(DIST_POINT *a, unsigned char **out)
428{
429 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIST_POINT_it);
430}
431
432DIST_POINT *
433DIST_POINT_new(void)
434{
435 return (DIST_POINT *)ASN1_item_new(&DIST_POINT_it);
436}
437
438void
439DIST_POINT_free(DIST_POINT *a)
440{
441 ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_it);
442}
395 443
396ASN1_ITEM_TEMPLATE(CRL_DIST_POINTS) = 444ASN1_ITEM_TEMPLATE(CRL_DIST_POINTS) =
397 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, CRLDistributionPoints, 445 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, CRLDistributionPoints,
398 DIST_POINT) 446 DIST_POINT)
399ASN1_ITEM_TEMPLATE_END(CRL_DIST_POINTS) 447ASN1_ITEM_TEMPLATE_END(CRL_DIST_POINTS)
400 448
401IMPLEMENT_ASN1_FUNCTIONS(CRL_DIST_POINTS) 449
450CRL_DIST_POINTS *
451d2i_CRL_DIST_POINTS(CRL_DIST_POINTS **a, const unsigned char **in, long len)
452{
453 return (CRL_DIST_POINTS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
454 &CRL_DIST_POINTS_it);
455}
456
457int
458i2d_CRL_DIST_POINTS(CRL_DIST_POINTS *a, unsigned char **out)
459{
460 return ASN1_item_i2d((ASN1_VALUE *)a, out, &CRL_DIST_POINTS_it);
461}
462
463CRL_DIST_POINTS *
464CRL_DIST_POINTS_new(void)
465{
466 return (CRL_DIST_POINTS *)ASN1_item_new(&CRL_DIST_POINTS_it);
467}
468
469void
470CRL_DIST_POINTS_free(CRL_DIST_POINTS *a)
471{
472 ASN1_item_free((ASN1_VALUE *)a, &CRL_DIST_POINTS_it);
473}
402 474
403ASN1_SEQUENCE(ISSUING_DIST_POINT) = { 475ASN1_SEQUENCE(ISSUING_DIST_POINT) = {
404 ASN1_EXP_OPT(ISSUING_DIST_POINT, distpoint, DIST_POINT_NAME, 0), 476 ASN1_EXP_OPT(ISSUING_DIST_POINT, distpoint, DIST_POINT_NAME, 0),
@@ -409,7 +481,31 @@ ASN1_SEQUENCE(ISSUING_DIST_POINT) = {
409 ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5) 481 ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5)
410} ASN1_SEQUENCE_END(ISSUING_DIST_POINT) 482} ASN1_SEQUENCE_END(ISSUING_DIST_POINT)
411 483
412IMPLEMENT_ASN1_FUNCTIONS(ISSUING_DIST_POINT) 484
485ISSUING_DIST_POINT *
486d2i_ISSUING_DIST_POINT(ISSUING_DIST_POINT **a, const unsigned char **in, long len)
487{
488 return (ISSUING_DIST_POINT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
489 &ISSUING_DIST_POINT_it);
490}
491
492int
493i2d_ISSUING_DIST_POINT(ISSUING_DIST_POINT *a, unsigned char **out)
494{
495 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ISSUING_DIST_POINT_it);
496}
497
498ISSUING_DIST_POINT *
499ISSUING_DIST_POINT_new(void)
500{
501 return (ISSUING_DIST_POINT *)ASN1_item_new(&ISSUING_DIST_POINT_it);
502}
503
504void
505ISSUING_DIST_POINT_free(ISSUING_DIST_POINT *a)
506{
507 ASN1_item_free((ASN1_VALUE *)a, &ISSUING_DIST_POINT_it);
508}
413 509
414static int i2r_idp(const X509V3_EXT_METHOD *method, void *pidp, BIO *out, 510static int i2r_idp(const X509V3_EXT_METHOD *method, void *pidp, BIO *out,
415 int indent); 511 int indent);
diff --git a/src/lib/libcrypto/x509v3/v3_extku.c b/src/lib/libcrypto/x509v3/v3_extku.c
index a9f1d6da6e..c37b65f7a5 100644
--- a/src/lib/libcrypto/x509v3/v3_extku.c
+++ b/src/lib/libcrypto/x509v3/v3_extku.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_extku.c,v 1.10 2014/10/28 05:46:56 miod Exp $ */ 1/* $OpenBSD: v3_extku.c,v 1.11 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 */
@@ -96,7 +96,31 @@ ASN1_ITEM_TEMPLATE(EXTENDED_KEY_USAGE) =
96 ASN1_OBJECT) 96 ASN1_OBJECT)
97ASN1_ITEM_TEMPLATE_END(EXTENDED_KEY_USAGE) 97ASN1_ITEM_TEMPLATE_END(EXTENDED_KEY_USAGE)
98 98
99IMPLEMENT_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) 99
100EXTENDED_KEY_USAGE *
101d2i_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE **a, const unsigned char **in, long len)
102{
103 return (EXTENDED_KEY_USAGE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
104 &EXTENDED_KEY_USAGE_it);
105}
106
107int
108i2d_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE *a, unsigned char **out)
109{
110 return ASN1_item_i2d((ASN1_VALUE *)a, out, &EXTENDED_KEY_USAGE_it);
111}
112
113EXTENDED_KEY_USAGE *
114EXTENDED_KEY_USAGE_new(void)
115{
116 return (EXTENDED_KEY_USAGE *)ASN1_item_new(&EXTENDED_KEY_USAGE_it);
117}
118
119void
120EXTENDED_KEY_USAGE_free(EXTENDED_KEY_USAGE *a)
121{
122 ASN1_item_free((ASN1_VALUE *)a, &EXTENDED_KEY_USAGE_it);
123}
100 124
101static STACK_OF(CONF_VALUE) * 125static STACK_OF(CONF_VALUE) *
102i2v_EXTENDED_KEY_USAGE(const X509V3_EXT_METHOD *method, void *a, 126i2v_EXTENDED_KEY_USAGE(const X509V3_EXT_METHOD *method, void *a,
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)
diff --git a/src/lib/libcrypto/x509v3/v3_info.c b/src/lib/libcrypto/x509v3/v3_info.c
index 0a4df34078..d9fa133308 100644
--- a/src/lib/libcrypto/x509v3/v3_info.c
+++ b/src/lib/libcrypto/x509v3/v3_info.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_info.c,v 1.20 2015/02/07 13:19:15 doug Exp $ */ 1/* $OpenBSD: v3_info.c,v 1.21 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 */
@@ -98,14 +98,62 @@ ASN1_SEQUENCE(ACCESS_DESCRIPTION) = {
98 ASN1_SIMPLE(ACCESS_DESCRIPTION, location, GENERAL_NAME) 98 ASN1_SIMPLE(ACCESS_DESCRIPTION, location, GENERAL_NAME)
99} ASN1_SEQUENCE_END(ACCESS_DESCRIPTION) 99} ASN1_SEQUENCE_END(ACCESS_DESCRIPTION)
100 100
101IMPLEMENT_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) 101
102ACCESS_DESCRIPTION *
103d2i_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION **a, const unsigned char **in, long len)
104{
105 return (ACCESS_DESCRIPTION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
106 &ACCESS_DESCRIPTION_it);
107}
108
109int
110i2d_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION *a, unsigned char **out)
111{
112 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ACCESS_DESCRIPTION_it);
113}
114
115ACCESS_DESCRIPTION *
116ACCESS_DESCRIPTION_new(void)
117{
118 return (ACCESS_DESCRIPTION *)ASN1_item_new(&ACCESS_DESCRIPTION_it);
119}
120
121void
122ACCESS_DESCRIPTION_free(ACCESS_DESCRIPTION *a)
123{
124 ASN1_item_free((ASN1_VALUE *)a, &ACCESS_DESCRIPTION_it);
125}
102 126
103ASN1_ITEM_TEMPLATE(AUTHORITY_INFO_ACCESS) = 127ASN1_ITEM_TEMPLATE(AUTHORITY_INFO_ACCESS) =
104 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, 128 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames,
105 ACCESS_DESCRIPTION) 129 ACCESS_DESCRIPTION)
106ASN1_ITEM_TEMPLATE_END(AUTHORITY_INFO_ACCESS) 130ASN1_ITEM_TEMPLATE_END(AUTHORITY_INFO_ACCESS)
107 131
108IMPLEMENT_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) 132
133AUTHORITY_INFO_ACCESS *
134d2i_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS **a, const unsigned char **in, long len)
135{
136 return (AUTHORITY_INFO_ACCESS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
137 &AUTHORITY_INFO_ACCESS_it);
138}
139
140int
141i2d_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS *a, unsigned char **out)
142{
143 return ASN1_item_i2d((ASN1_VALUE *)a, out, &AUTHORITY_INFO_ACCESS_it);
144}
145
146AUTHORITY_INFO_ACCESS *
147AUTHORITY_INFO_ACCESS_new(void)
148{
149 return (AUTHORITY_INFO_ACCESS *)ASN1_item_new(&AUTHORITY_INFO_ACCESS_it);
150}
151
152void
153AUTHORITY_INFO_ACCESS_free(AUTHORITY_INFO_ACCESS *a)
154{
155 ASN1_item_free((ASN1_VALUE *)a, &AUTHORITY_INFO_ACCESS_it);
156}
109 157
110static STACK_OF(CONF_VALUE) * 158static STACK_OF(CONF_VALUE) *
111i2v_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method, 159i2v_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method,
diff --git a/src/lib/libcrypto/x509v3/v3_pcia.c b/src/lib/libcrypto/x509v3/v3_pcia.c
index c7df225290..07e294e633 100644
--- a/src/lib/libcrypto/x509v3/v3_pcia.c
+++ b/src/lib/libcrypto/x509v3/v3_pcia.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_pcia.c,v 1.4 2014/06/12 15:49:31 deraadt Exp $ */ 1/* $OpenBSD: v3_pcia.c,v 1.5 2015/02/09 16:03:11 jsing Exp $ */
2/* Contributed to the OpenSSL Project 2004 2/* Contributed to the OpenSSL Project 2004
3 * by Richard Levitte (richard@levitte.org) 3 * by Richard Levitte (richard@levitte.org)
4 */ 4 */
@@ -43,7 +43,31 @@ ASN1_SEQUENCE(PROXY_POLICY) = {
43 ASN1_OPT(PROXY_POLICY, policy, ASN1_OCTET_STRING) 43 ASN1_OPT(PROXY_POLICY, policy, ASN1_OCTET_STRING)
44} ASN1_SEQUENCE_END(PROXY_POLICY) 44} ASN1_SEQUENCE_END(PROXY_POLICY)
45 45
46IMPLEMENT_ASN1_FUNCTIONS(PROXY_POLICY) 46
47PROXY_POLICY *
48d2i_PROXY_POLICY(PROXY_POLICY **a, const unsigned char **in, long len)
49{
50 return (PROXY_POLICY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
51 &PROXY_POLICY_it);
52}
53
54int
55i2d_PROXY_POLICY(PROXY_POLICY *a, unsigned char **out)
56{
57 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PROXY_POLICY_it);
58}
59
60PROXY_POLICY *
61PROXY_POLICY_new(void)
62{
63 return (PROXY_POLICY *)ASN1_item_new(&PROXY_POLICY_it);
64}
65
66void
67PROXY_POLICY_free(PROXY_POLICY *a)
68{
69 ASN1_item_free((ASN1_VALUE *)a, &PROXY_POLICY_it);
70}
47 71
48ASN1_SEQUENCE(PROXY_CERT_INFO_EXTENSION) = { 72ASN1_SEQUENCE(PROXY_CERT_INFO_EXTENSION) = {
49 ASN1_OPT(PROXY_CERT_INFO_EXTENSION, pcPathLengthConstraint, 73 ASN1_OPT(PROXY_CERT_INFO_EXTENSION, pcPathLengthConstraint,
@@ -51,4 +75,28 @@ ASN1_SEQUENCE(PROXY_CERT_INFO_EXTENSION) = {
51 ASN1_SIMPLE(PROXY_CERT_INFO_EXTENSION, proxyPolicy, PROXY_POLICY) 75 ASN1_SIMPLE(PROXY_CERT_INFO_EXTENSION, proxyPolicy, PROXY_POLICY)
52} ASN1_SEQUENCE_END(PROXY_CERT_INFO_EXTENSION) 76} ASN1_SEQUENCE_END(PROXY_CERT_INFO_EXTENSION)
53 77
54IMPLEMENT_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) 78
79PROXY_CERT_INFO_EXTENSION *
80d2i_PROXY_CERT_INFO_EXTENSION(PROXY_CERT_INFO_EXTENSION **a, const unsigned char **in, long len)
81{
82 return (PROXY_CERT_INFO_EXTENSION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
83 &PROXY_CERT_INFO_EXTENSION_it);
84}
85
86int
87i2d_PROXY_CERT_INFO_EXTENSION(PROXY_CERT_INFO_EXTENSION *a, unsigned char **out)
88{
89 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PROXY_CERT_INFO_EXTENSION_it);
90}
91
92PROXY_CERT_INFO_EXTENSION *
93PROXY_CERT_INFO_EXTENSION_new(void)
94{
95 return (PROXY_CERT_INFO_EXTENSION *)ASN1_item_new(&PROXY_CERT_INFO_EXTENSION_it);
96}
97
98void
99PROXY_CERT_INFO_EXTENSION_free(PROXY_CERT_INFO_EXTENSION *a)
100{
101 ASN1_item_free((ASN1_VALUE *)a, &PROXY_CERT_INFO_EXTENSION_it);
102}
diff --git a/src/lib/libcrypto/x509v3/v3_pku.c b/src/lib/libcrypto/x509v3/v3_pku.c
index 6cfbc3bd3e..4bce07f09c 100644
--- a/src/lib/libcrypto/x509v3/v3_pku.c
+++ b/src/lib/libcrypto/x509v3/v3_pku.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_pku.c,v 1.9 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: v3_pku.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 */
@@ -80,7 +80,31 @@ ASN1_SEQUENCE(PKEY_USAGE_PERIOD) = {
80 ASN1_IMP_OPT(PKEY_USAGE_PERIOD, notAfter, ASN1_GENERALIZEDTIME, 1) 80 ASN1_IMP_OPT(PKEY_USAGE_PERIOD, notAfter, ASN1_GENERALIZEDTIME, 1)
81} ASN1_SEQUENCE_END(PKEY_USAGE_PERIOD) 81} ASN1_SEQUENCE_END(PKEY_USAGE_PERIOD)
82 82
83IMPLEMENT_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) 83
84PKEY_USAGE_PERIOD *
85d2i_PKEY_USAGE_PERIOD(PKEY_USAGE_PERIOD **a, const unsigned char **in, long len)
86{
87 return (PKEY_USAGE_PERIOD *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
88 &PKEY_USAGE_PERIOD_it);
89}
90
91int
92i2d_PKEY_USAGE_PERIOD(PKEY_USAGE_PERIOD *a, unsigned char **out)
93{
94 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKEY_USAGE_PERIOD_it);
95}
96
97PKEY_USAGE_PERIOD *
98PKEY_USAGE_PERIOD_new(void)
99{
100 return (PKEY_USAGE_PERIOD *)ASN1_item_new(&PKEY_USAGE_PERIOD_it);
101}
102
103void
104PKEY_USAGE_PERIOD_free(PKEY_USAGE_PERIOD *a)
105{
106 ASN1_item_free((ASN1_VALUE *)a, &PKEY_USAGE_PERIOD_it);
107}
84 108
85static int 109static int
86i2r_PKEY_USAGE_PERIOD(X509V3_EXT_METHOD *method, PKEY_USAGE_PERIOD *usage, 110i2r_PKEY_USAGE_PERIOD(X509V3_EXT_METHOD *method, PKEY_USAGE_PERIOD *usage,
diff --git a/src/lib/libcrypto/x509v3/v3_sxnet.c b/src/lib/libcrypto/x509v3/v3_sxnet.c
index 81e8ab67dd..dc8ee379c7 100644
--- a/src/lib/libcrypto/x509v3/v3_sxnet.c
+++ b/src/lib/libcrypto/x509v3/v3_sxnet.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_sxnet.c,v 1.11 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: v3_sxnet.c,v 1.12 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 */
@@ -95,14 +95,62 @@ ASN1_SEQUENCE(SXNETID) = {
95 ASN1_SIMPLE(SXNETID, user, ASN1_OCTET_STRING) 95 ASN1_SIMPLE(SXNETID, user, ASN1_OCTET_STRING)
96} ASN1_SEQUENCE_END(SXNETID) 96} ASN1_SEQUENCE_END(SXNETID)
97 97
98IMPLEMENT_ASN1_FUNCTIONS(SXNETID) 98
99SXNETID *
100d2i_SXNETID(SXNETID **a, const unsigned char **in, long len)
101{
102 return (SXNETID *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
103 &SXNETID_it);
104}
105
106int
107i2d_SXNETID(SXNETID *a, unsigned char **out)
108{
109 return ASN1_item_i2d((ASN1_VALUE *)a, out, &SXNETID_it);
110}
111
112SXNETID *
113SXNETID_new(void)
114{
115 return (SXNETID *)ASN1_item_new(&SXNETID_it);
116}
117
118void
119SXNETID_free(SXNETID *a)
120{
121 ASN1_item_free((ASN1_VALUE *)a, &SXNETID_it);
122}
99 123
100ASN1_SEQUENCE(SXNET) = { 124ASN1_SEQUENCE(SXNET) = {
101 ASN1_SIMPLE(SXNET, version, ASN1_INTEGER), 125 ASN1_SIMPLE(SXNET, version, ASN1_INTEGER),
102 ASN1_SEQUENCE_OF(SXNET, ids, SXNETID) 126 ASN1_SEQUENCE_OF(SXNET, ids, SXNETID)
103} ASN1_SEQUENCE_END(SXNET) 127} ASN1_SEQUENCE_END(SXNET)
104 128
105IMPLEMENT_ASN1_FUNCTIONS(SXNET) 129
130SXNET *
131d2i_SXNET(SXNET **a, const unsigned char **in, long len)
132{
133 return (SXNET *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
134 &SXNET_it);
135}
136
137int
138i2d_SXNET(SXNET *a, unsigned char **out)
139{
140 return ASN1_item_i2d((ASN1_VALUE *)a, out, &SXNET_it);
141}
142
143SXNET *
144SXNET_new(void)
145{
146 return (SXNET *)ASN1_item_new(&SXNET_it);
147}
148
149void
150SXNET_free(SXNET *a)
151{
152 ASN1_item_free((ASN1_VALUE *)a, &SXNET_it);
153}
106 154
107static int 155static int
108sxnet_i2r(X509V3_EXT_METHOD *method, SXNET *sx, BIO *out, int indent) 156sxnet_i2r(X509V3_EXT_METHOD *method, SXNET *sx, BIO *out, int indent)
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_addr.c b/src/lib/libssl/src/crypto/x509v3/v3_addr.c
index 40efb1b9ac..4073aeeaa6 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_addr.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_addr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_addr.c,v 1.14 2014/11/18 03:28:05 tedu Exp $ */ 1/* $OpenBSD: v3_addr.c,v 1.15 2015/02/09 16:03:11 jsing Exp $ */
2/* 2/*
3 * Contributed to the OpenSSL Project by the American Registry for 3 * Contributed to the OpenSSL Project by the American Registry for
4 * Internet Numbers ("ARIN"). 4 * Internet Numbers ("ARIN").
@@ -102,10 +102,106 @@ ASN1_ITEM_TEMPLATE(IPAddrBlocks) =
102 IPAddrBlocks, IPAddressFamily) 102 IPAddrBlocks, IPAddressFamily)
103ASN1_ITEM_TEMPLATE_END(IPAddrBlocks) 103ASN1_ITEM_TEMPLATE_END(IPAddrBlocks)
104 104
105IMPLEMENT_ASN1_FUNCTIONS(IPAddressRange) 105
106IMPLEMENT_ASN1_FUNCTIONS(IPAddressOrRange) 106IPAddressRange *
107IMPLEMENT_ASN1_FUNCTIONS(IPAddressChoice) 107d2i_IPAddressRange(IPAddressRange **a, const unsigned char **in, long len)
108IMPLEMENT_ASN1_FUNCTIONS(IPAddressFamily) 108{
109 return (IPAddressRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
110 &IPAddressRange_it);
111}
112
113int
114i2d_IPAddressRange(IPAddressRange *a, unsigned char **out)
115{
116 return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressRange_it);
117}
118
119IPAddressRange *
120IPAddressRange_new(void)
121{
122 return (IPAddressRange *)ASN1_item_new(&IPAddressRange_it);
123}
124
125void
126IPAddressRange_free(IPAddressRange *a)
127{
128 ASN1_item_free((ASN1_VALUE *)a, &IPAddressRange_it);
129}
130
131IPAddressOrRange *
132d2i_IPAddressOrRange(IPAddressOrRange **a, const unsigned char **in, long len)
133{
134 return (IPAddressOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
135 &IPAddressOrRange_it);
136}
137
138int
139i2d_IPAddressOrRange(IPAddressOrRange *a, unsigned char **out)
140{
141 return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressOrRange_it);
142}
143
144IPAddressOrRange *
145IPAddressOrRange_new(void)
146{
147 return (IPAddressOrRange *)ASN1_item_new(&IPAddressOrRange_it);
148}
149
150void
151IPAddressOrRange_free(IPAddressOrRange *a)
152{
153 ASN1_item_free((ASN1_VALUE *)a, &IPAddressOrRange_it);
154}
155
156IPAddressChoice *
157d2i_IPAddressChoice(IPAddressChoice **a, const unsigned char **in, long len)
158{
159 return (IPAddressChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
160 &IPAddressChoice_it);
161}
162
163int
164i2d_IPAddressChoice(IPAddressChoice *a, unsigned char **out)
165{
166 return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressChoice_it);
167}
168
169IPAddressChoice *
170IPAddressChoice_new(void)
171{
172 return (IPAddressChoice *)ASN1_item_new(&IPAddressChoice_it);
173}
174
175void
176IPAddressChoice_free(IPAddressChoice *a)
177{
178 ASN1_item_free((ASN1_VALUE *)a, &IPAddressChoice_it);
179}
180
181IPAddressFamily *
182d2i_IPAddressFamily(IPAddressFamily **a, const unsigned char **in, long len)
183{
184 return (IPAddressFamily *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
185 &IPAddressFamily_it);
186}
187
188int
189i2d_IPAddressFamily(IPAddressFamily *a, unsigned char **out)
190{
191 return ASN1_item_i2d((ASN1_VALUE *)a, out, &IPAddressFamily_it);
192}
193
194IPAddressFamily *
195IPAddressFamily_new(void)
196{
197 return (IPAddressFamily *)ASN1_item_new(&IPAddressFamily_it);
198}
199
200void
201IPAddressFamily_free(IPAddressFamily *a)
202{
203 ASN1_item_free((ASN1_VALUE *)a, &IPAddressFamily_it);
204}
109 205
110/* 206/*
111 * How much buffer space do we need for a raw address? 207 * How much buffer space do we need for a raw address?
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_akeya.c b/src/lib/libssl/src/crypto/x509v3/v3_akeya.c
index 247c9f48a9..1848c0911e 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_akeya.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_akeya.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_akeya.c,v 1.5 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: v3_akeya.c,v 1.6 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,4 +69,28 @@ ASN1_SEQUENCE(AUTHORITY_KEYID) = {
69 ASN1_IMP_OPT(AUTHORITY_KEYID, serial, ASN1_INTEGER, 2) 69 ASN1_IMP_OPT(AUTHORITY_KEYID, serial, ASN1_INTEGER, 2)
70} ASN1_SEQUENCE_END(AUTHORITY_KEYID) 70} ASN1_SEQUENCE_END(AUTHORITY_KEYID)
71 71
72IMPLEMENT_ASN1_FUNCTIONS(AUTHORITY_KEYID) 72
73AUTHORITY_KEYID *
74d2i_AUTHORITY_KEYID(AUTHORITY_KEYID **a, const unsigned char **in, long len)
75{
76 return (AUTHORITY_KEYID *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
77 &AUTHORITY_KEYID_it);
78}
79
80int
81i2d_AUTHORITY_KEYID(AUTHORITY_KEYID *a, unsigned char **out)
82{
83 return ASN1_item_i2d((ASN1_VALUE *)a, out, &AUTHORITY_KEYID_it);
84}
85
86AUTHORITY_KEYID *
87AUTHORITY_KEYID_new(void)
88{
89 return (AUTHORITY_KEYID *)ASN1_item_new(&AUTHORITY_KEYID_it);
90}
91
92void
93AUTHORITY_KEYID_free(AUTHORITY_KEYID *a)
94{
95 ASN1_item_free((ASN1_VALUE *)a, &AUTHORITY_KEYID_it);
96}
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_asid.c b/src/lib/libssl/src/crypto/x509v3/v3_asid.c
index 680eed31ec..10f82c573d 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_asid.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_asid.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_asid.c,v 1.11 2014/07/13 16:03:10 beck Exp $ */ 1/* $OpenBSD: v3_asid.c,v 1.12 2015/02/09 16:03:11 jsing Exp $ */
2/* 2/*
3 * Contributed to the OpenSSL Project by the American Registry for 3 * Contributed to the OpenSSL Project by the American Registry for
4 * Internet Numbers ("ARIN"). 4 * Internet Numbers ("ARIN").
@@ -98,10 +98,106 @@ ASN1_SEQUENCE(ASIdentifiers) = {
98 ASN1_EXP_OPT(ASIdentifiers, rdi, ASIdentifierChoice, 1) 98 ASN1_EXP_OPT(ASIdentifiers, rdi, ASIdentifierChoice, 1)
99} ASN1_SEQUENCE_END(ASIdentifiers) 99} ASN1_SEQUENCE_END(ASIdentifiers)
100 100
101IMPLEMENT_ASN1_FUNCTIONS(ASRange) 101
102IMPLEMENT_ASN1_FUNCTIONS(ASIdOrRange) 102ASRange *
103IMPLEMENT_ASN1_FUNCTIONS(ASIdentifierChoice) 103d2i_ASRange(ASRange **a, const unsigned char **in, long len)
104IMPLEMENT_ASN1_FUNCTIONS(ASIdentifiers) 104{
105 return (ASRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
106 &ASRange_it);
107}
108
109int
110i2d_ASRange(ASRange *a, unsigned char **out)
111{
112 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASRange_it);
113}
114
115ASRange *
116ASRange_new(void)
117{
118 return (ASRange *)ASN1_item_new(&ASRange_it);
119}
120
121void
122ASRange_free(ASRange *a)
123{
124 ASN1_item_free((ASN1_VALUE *)a, &ASRange_it);
125}
126
127ASIdOrRange *
128d2i_ASIdOrRange(ASIdOrRange **a, const unsigned char **in, long len)
129{
130 return (ASIdOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
131 &ASIdOrRange_it);
132}
133
134int
135i2d_ASIdOrRange(ASIdOrRange *a, unsigned char **out)
136{
137 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASIdOrRange_it);
138}
139
140ASIdOrRange *
141ASIdOrRange_new(void)
142{
143 return (ASIdOrRange *)ASN1_item_new(&ASIdOrRange_it);
144}
145
146void
147ASIdOrRange_free(ASIdOrRange *a)
148{
149 ASN1_item_free((ASN1_VALUE *)a, &ASIdOrRange_it);
150}
151
152ASIdentifierChoice *
153d2i_ASIdentifierChoice(ASIdentifierChoice **a, const unsigned char **in, long len)
154{
155 return (ASIdentifierChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
156 &ASIdentifierChoice_it);
157}
158
159int
160i2d_ASIdentifierChoice(ASIdentifierChoice *a, unsigned char **out)
161{
162 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASIdentifierChoice_it);
163}
164
165ASIdentifierChoice *
166ASIdentifierChoice_new(void)
167{
168 return (ASIdentifierChoice *)ASN1_item_new(&ASIdentifierChoice_it);
169}
170
171void
172ASIdentifierChoice_free(ASIdentifierChoice *a)
173{
174 ASN1_item_free((ASN1_VALUE *)a, &ASIdentifierChoice_it);
175}
176
177ASIdentifiers *
178d2i_ASIdentifiers(ASIdentifiers **a, const unsigned char **in, long len)
179{
180 return (ASIdentifiers *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
181 &ASIdentifiers_it);
182}
183
184int
185i2d_ASIdentifiers(ASIdentifiers *a, unsigned char **out)
186{
187 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ASIdentifiers_it);
188}
189
190ASIdentifiers *
191ASIdentifiers_new(void)
192{
193 return (ASIdentifiers *)ASN1_item_new(&ASIdentifiers_it);
194}
195
196void
197ASIdentifiers_free(ASIdentifiers *a)
198{
199 ASN1_item_free((ASN1_VALUE *)a, &ASIdentifiers_it);
200}
105 201
106/* 202/*
107 * i2r method for an ASIdentifierChoice. 203 * i2r method for an ASIdentifierChoice.
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_bcons.c b/src/lib/libssl/src/crypto/x509v3/v3_bcons.c
index 8e2632d379..fb3f6c7619 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_bcons.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_bcons.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_bcons.c,v 1.10 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: v3_bcons.c,v 1.11 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 */
@@ -86,7 +86,31 @@ ASN1_SEQUENCE(BASIC_CONSTRAINTS) = {
86 ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER) 86 ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER)
87} ASN1_SEQUENCE_END(BASIC_CONSTRAINTS) 87} ASN1_SEQUENCE_END(BASIC_CONSTRAINTS)
88 88
89IMPLEMENT_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) 89
90BASIC_CONSTRAINTS *
91d2i_BASIC_CONSTRAINTS(BASIC_CONSTRAINTS **a, const unsigned char **in, long len)
92{
93 return (BASIC_CONSTRAINTS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
94 &BASIC_CONSTRAINTS_it);
95}
96
97int
98i2d_BASIC_CONSTRAINTS(BASIC_CONSTRAINTS *a, unsigned char **out)
99{
100 return ASN1_item_i2d((ASN1_VALUE *)a, out, &BASIC_CONSTRAINTS_it);
101}
102
103BASIC_CONSTRAINTS *
104BASIC_CONSTRAINTS_new(void)
105{
106 return (BASIC_CONSTRAINTS *)ASN1_item_new(&BASIC_CONSTRAINTS_it);
107}
108
109void
110BASIC_CONSTRAINTS_free(BASIC_CONSTRAINTS *a)
111{
112 ASN1_item_free((ASN1_VALUE *)a, &BASIC_CONSTRAINTS_it);
113}
90 114
91 115
92static STACK_OF(CONF_VALUE) * 116static STACK_OF(CONF_VALUE) *
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_cpols.c b/src/lib/libssl/src/crypto/x509v3/v3_cpols.c
index d683db697e..6ceb93d372 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_cpols.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_cpols.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_cpols.c,v 1.16 2014/10/05 18:27:33 miod Exp $ */ 1/* $OpenBSD: v3_cpols.c,v 1.17 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 */
@@ -97,14 +97,62 @@ ASN1_ITEM_TEMPLATE(CERTIFICATEPOLICIES) =
97 POLICYINFO) 97 POLICYINFO)
98ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES) 98ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES)
99 99
100IMPLEMENT_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) 100
101CERTIFICATEPOLICIES *
102d2i_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES **a, const unsigned char **in, long len)
103{
104 return (CERTIFICATEPOLICIES *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
105 &CERTIFICATEPOLICIES_it);
106}
107
108int
109i2d_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES *a, unsigned char **out)
110{
111 return ASN1_item_i2d((ASN1_VALUE *)a, out, &CERTIFICATEPOLICIES_it);
112}
113
114CERTIFICATEPOLICIES *
115CERTIFICATEPOLICIES_new(void)
116{
117 return (CERTIFICATEPOLICIES *)ASN1_item_new(&CERTIFICATEPOLICIES_it);
118}
119
120void
121CERTIFICATEPOLICIES_free(CERTIFICATEPOLICIES *a)
122{
123 ASN1_item_free((ASN1_VALUE *)a, &CERTIFICATEPOLICIES_it);
124}
101 125
102ASN1_SEQUENCE(POLICYINFO) = { 126ASN1_SEQUENCE(POLICYINFO) = {
103 ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT), 127 ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT),
104 ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO) 128 ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO)
105} ASN1_SEQUENCE_END(POLICYINFO) 129} ASN1_SEQUENCE_END(POLICYINFO)
106 130
107IMPLEMENT_ASN1_FUNCTIONS(POLICYINFO) 131
132POLICYINFO *
133d2i_POLICYINFO(POLICYINFO **a, const unsigned char **in, long len)
134{
135 return (POLICYINFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
136 &POLICYINFO_it);
137}
138
139int
140i2d_POLICYINFO(POLICYINFO *a, unsigned char **out)
141{
142 return ASN1_item_i2d((ASN1_VALUE *)a, out, &POLICYINFO_it);
143}
144
145POLICYINFO *
146POLICYINFO_new(void)
147{
148 return (POLICYINFO *)ASN1_item_new(&POLICYINFO_it);
149}
150
151void
152POLICYINFO_free(POLICYINFO *a)
153{
154 ASN1_item_free((ASN1_VALUE *)a, &POLICYINFO_it);
155}
108 156
109ASN1_ADB_TEMPLATE(policydefault) = 157ASN1_ADB_TEMPLATE(policydefault) =
110 ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY); 158 ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY);
@@ -119,21 +167,93 @@ ASN1_SEQUENCE(POLICYQUALINFO) = {
119 ASN1_ADB_OBJECT(POLICYQUALINFO) 167 ASN1_ADB_OBJECT(POLICYQUALINFO)
120} ASN1_SEQUENCE_END(POLICYQUALINFO) 168} ASN1_SEQUENCE_END(POLICYQUALINFO)
121 169
122IMPLEMENT_ASN1_FUNCTIONS(POLICYQUALINFO) 170
171POLICYQUALINFO *
172d2i_POLICYQUALINFO(POLICYQUALINFO **a, const unsigned char **in, long len)
173{
174 return (POLICYQUALINFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
175 &POLICYQUALINFO_it);
176}
177
178int
179i2d_POLICYQUALINFO(POLICYQUALINFO *a, unsigned char **out)
180{
181 return ASN1_item_i2d((ASN1_VALUE *)a, out, &POLICYQUALINFO_it);
182}
183
184POLICYQUALINFO *
185POLICYQUALINFO_new(void)
186{
187 return (POLICYQUALINFO *)ASN1_item_new(&POLICYQUALINFO_it);
188}
189
190void
191POLICYQUALINFO_free(POLICYQUALINFO *a)
192{
193 ASN1_item_free((ASN1_VALUE *)a, &POLICYQUALINFO_it);
194}
123 195
124ASN1_SEQUENCE(USERNOTICE) = { 196ASN1_SEQUENCE(USERNOTICE) = {
125 ASN1_OPT(USERNOTICE, noticeref, NOTICEREF), 197 ASN1_OPT(USERNOTICE, noticeref, NOTICEREF),
126 ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT) 198 ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT)
127} ASN1_SEQUENCE_END(USERNOTICE) 199} ASN1_SEQUENCE_END(USERNOTICE)
128 200
129IMPLEMENT_ASN1_FUNCTIONS(USERNOTICE) 201
202USERNOTICE *
203d2i_USERNOTICE(USERNOTICE **a, const unsigned char **in, long len)
204{
205 return (USERNOTICE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
206 &USERNOTICE_it);
207}
208
209int
210i2d_USERNOTICE(USERNOTICE *a, unsigned char **out)
211{
212 return ASN1_item_i2d((ASN1_VALUE *)a, out, &USERNOTICE_it);
213}
214
215USERNOTICE *
216USERNOTICE_new(void)
217{
218 return (USERNOTICE *)ASN1_item_new(&USERNOTICE_it);
219}
220
221void
222USERNOTICE_free(USERNOTICE *a)
223{
224 ASN1_item_free((ASN1_VALUE *)a, &USERNOTICE_it);
225}
130 226
131ASN1_SEQUENCE(NOTICEREF) = { 227ASN1_SEQUENCE(NOTICEREF) = {
132 ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT), 228 ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT),
133 ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER) 229 ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER)
134} ASN1_SEQUENCE_END(NOTICEREF) 230} ASN1_SEQUENCE_END(NOTICEREF)
135 231
136IMPLEMENT_ASN1_FUNCTIONS(NOTICEREF) 232
233NOTICEREF *
234d2i_NOTICEREF(NOTICEREF **a, const unsigned char **in, long len)
235{
236 return (NOTICEREF *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
237 &NOTICEREF_it);
238}
239
240int
241i2d_NOTICEREF(NOTICEREF *a, unsigned char **out)
242{
243 return ASN1_item_i2d((ASN1_VALUE *)a, out, &NOTICEREF_it);
244}
245
246NOTICEREF *
247NOTICEREF_new(void)
248{
249 return (NOTICEREF *)ASN1_item_new(&NOTICEREF_it);
250}
251
252void
253NOTICEREF_free(NOTICEREF *a)
254{
255 ASN1_item_free((ASN1_VALUE *)a, &NOTICEREF_it);
256}
137 257
138static 258static
139STACK_OF(POLICYINFO) *r2i_certpol(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, 259STACK_OF(POLICYINFO) *r2i_certpol(X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_crld.c b/src/lib/libssl/src/crypto/x509v3/v3_crld.c
index 9586401da6..2201b61264 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_crld.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_crld.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_crld.c,v 1.13 2014/10/05 18:27:58 miod Exp $ */ 1/* $OpenBSD: v3_crld.c,v 1.14 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 */
@@ -383,7 +383,31 @@ ASN1_CHOICE_cb(DIST_POINT_NAME, dpn_cb) = {
383} ASN1_CHOICE_END_cb(DIST_POINT_NAME, DIST_POINT_NAME, type) 383} ASN1_CHOICE_END_cb(DIST_POINT_NAME, DIST_POINT_NAME, type)
384 384
385 385
386IMPLEMENT_ASN1_FUNCTIONS(DIST_POINT_NAME) 386
387DIST_POINT_NAME *
388d2i_DIST_POINT_NAME(DIST_POINT_NAME **a, const unsigned char **in, long len)
389{
390 return (DIST_POINT_NAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
391 &DIST_POINT_NAME_it);
392}
393
394int
395i2d_DIST_POINT_NAME(DIST_POINT_NAME *a, unsigned char **out)
396{
397 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIST_POINT_NAME_it);
398}
399
400DIST_POINT_NAME *
401DIST_POINT_NAME_new(void)
402{
403 return (DIST_POINT_NAME *)ASN1_item_new(&DIST_POINT_NAME_it);
404}
405
406void
407DIST_POINT_NAME_free(DIST_POINT_NAME *a)
408{
409 ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_NAME_it);
410}
387 411
388ASN1_SEQUENCE(DIST_POINT) = { 412ASN1_SEQUENCE(DIST_POINT) = {
389 ASN1_EXP_OPT(DIST_POINT, distpoint, DIST_POINT_NAME, 0), 413 ASN1_EXP_OPT(DIST_POINT, distpoint, DIST_POINT_NAME, 0),
@@ -391,14 +415,62 @@ ASN1_SEQUENCE(DIST_POINT) = {
391 ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2) 415 ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2)
392} ASN1_SEQUENCE_END(DIST_POINT) 416} ASN1_SEQUENCE_END(DIST_POINT)
393 417
394IMPLEMENT_ASN1_FUNCTIONS(DIST_POINT) 418
419DIST_POINT *
420d2i_DIST_POINT(DIST_POINT **a, const unsigned char **in, long len)
421{
422 return (DIST_POINT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
423 &DIST_POINT_it);
424}
425
426int
427i2d_DIST_POINT(DIST_POINT *a, unsigned char **out)
428{
429 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIST_POINT_it);
430}
431
432DIST_POINT *
433DIST_POINT_new(void)
434{
435 return (DIST_POINT *)ASN1_item_new(&DIST_POINT_it);
436}
437
438void
439DIST_POINT_free(DIST_POINT *a)
440{
441 ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_it);
442}
395 443
396ASN1_ITEM_TEMPLATE(CRL_DIST_POINTS) = 444ASN1_ITEM_TEMPLATE(CRL_DIST_POINTS) =
397 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, CRLDistributionPoints, 445 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, CRLDistributionPoints,
398 DIST_POINT) 446 DIST_POINT)
399ASN1_ITEM_TEMPLATE_END(CRL_DIST_POINTS) 447ASN1_ITEM_TEMPLATE_END(CRL_DIST_POINTS)
400 448
401IMPLEMENT_ASN1_FUNCTIONS(CRL_DIST_POINTS) 449
450CRL_DIST_POINTS *
451d2i_CRL_DIST_POINTS(CRL_DIST_POINTS **a, const unsigned char **in, long len)
452{
453 return (CRL_DIST_POINTS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
454 &CRL_DIST_POINTS_it);
455}
456
457int
458i2d_CRL_DIST_POINTS(CRL_DIST_POINTS *a, unsigned char **out)
459{
460 return ASN1_item_i2d((ASN1_VALUE *)a, out, &CRL_DIST_POINTS_it);
461}
462
463CRL_DIST_POINTS *
464CRL_DIST_POINTS_new(void)
465{
466 return (CRL_DIST_POINTS *)ASN1_item_new(&CRL_DIST_POINTS_it);
467}
468
469void
470CRL_DIST_POINTS_free(CRL_DIST_POINTS *a)
471{
472 ASN1_item_free((ASN1_VALUE *)a, &CRL_DIST_POINTS_it);
473}
402 474
403ASN1_SEQUENCE(ISSUING_DIST_POINT) = { 475ASN1_SEQUENCE(ISSUING_DIST_POINT) = {
404 ASN1_EXP_OPT(ISSUING_DIST_POINT, distpoint, DIST_POINT_NAME, 0), 476 ASN1_EXP_OPT(ISSUING_DIST_POINT, distpoint, DIST_POINT_NAME, 0),
@@ -409,7 +481,31 @@ ASN1_SEQUENCE(ISSUING_DIST_POINT) = {
409 ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5) 481 ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5)
410} ASN1_SEQUENCE_END(ISSUING_DIST_POINT) 482} ASN1_SEQUENCE_END(ISSUING_DIST_POINT)
411 483
412IMPLEMENT_ASN1_FUNCTIONS(ISSUING_DIST_POINT) 484
485ISSUING_DIST_POINT *
486d2i_ISSUING_DIST_POINT(ISSUING_DIST_POINT **a, const unsigned char **in, long len)
487{
488 return (ISSUING_DIST_POINT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
489 &ISSUING_DIST_POINT_it);
490}
491
492int
493i2d_ISSUING_DIST_POINT(ISSUING_DIST_POINT *a, unsigned char **out)
494{
495 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ISSUING_DIST_POINT_it);
496}
497
498ISSUING_DIST_POINT *
499ISSUING_DIST_POINT_new(void)
500{
501 return (ISSUING_DIST_POINT *)ASN1_item_new(&ISSUING_DIST_POINT_it);
502}
503
504void
505ISSUING_DIST_POINT_free(ISSUING_DIST_POINT *a)
506{
507 ASN1_item_free((ASN1_VALUE *)a, &ISSUING_DIST_POINT_it);
508}
413 509
414static int i2r_idp(const X509V3_EXT_METHOD *method, void *pidp, BIO *out, 510static int i2r_idp(const X509V3_EXT_METHOD *method, void *pidp, BIO *out,
415 int indent); 511 int indent);
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_extku.c b/src/lib/libssl/src/crypto/x509v3/v3_extku.c
index a9f1d6da6e..c37b65f7a5 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_extku.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_extku.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_extku.c,v 1.10 2014/10/28 05:46:56 miod Exp $ */ 1/* $OpenBSD: v3_extku.c,v 1.11 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 */
@@ -96,7 +96,31 @@ ASN1_ITEM_TEMPLATE(EXTENDED_KEY_USAGE) =
96 ASN1_OBJECT) 96 ASN1_OBJECT)
97ASN1_ITEM_TEMPLATE_END(EXTENDED_KEY_USAGE) 97ASN1_ITEM_TEMPLATE_END(EXTENDED_KEY_USAGE)
98 98
99IMPLEMENT_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) 99
100EXTENDED_KEY_USAGE *
101d2i_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE **a, const unsigned char **in, long len)
102{
103 return (EXTENDED_KEY_USAGE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
104 &EXTENDED_KEY_USAGE_it);
105}
106
107int
108i2d_EXTENDED_KEY_USAGE(EXTENDED_KEY_USAGE *a, unsigned char **out)
109{
110 return ASN1_item_i2d((ASN1_VALUE *)a, out, &EXTENDED_KEY_USAGE_it);
111}
112
113EXTENDED_KEY_USAGE *
114EXTENDED_KEY_USAGE_new(void)
115{
116 return (EXTENDED_KEY_USAGE *)ASN1_item_new(&EXTENDED_KEY_USAGE_it);
117}
118
119void
120EXTENDED_KEY_USAGE_free(EXTENDED_KEY_USAGE *a)
121{
122 ASN1_item_free((ASN1_VALUE *)a, &EXTENDED_KEY_USAGE_it);
123}
100 124
101static STACK_OF(CONF_VALUE) * 125static STACK_OF(CONF_VALUE) *
102i2v_EXTENDED_KEY_USAGE(const X509V3_EXT_METHOD *method, void *a, 126i2v_EXTENDED_KEY_USAGE(const X509V3_EXT_METHOD *method, void *a,
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_genn.c b/src/lib/libssl/src/crypto/x509v3/v3_genn.c
index 716f4a7b99..25d7f447d2 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_genn.c
+++ b/src/lib/libssl/src/crypto/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)
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_info.c b/src/lib/libssl/src/crypto/x509v3/v3_info.c
index 0a4df34078..d9fa133308 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_info.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_info.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_info.c,v 1.20 2015/02/07 13:19:15 doug Exp $ */ 1/* $OpenBSD: v3_info.c,v 1.21 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 */
@@ -98,14 +98,62 @@ ASN1_SEQUENCE(ACCESS_DESCRIPTION) = {
98 ASN1_SIMPLE(ACCESS_DESCRIPTION, location, GENERAL_NAME) 98 ASN1_SIMPLE(ACCESS_DESCRIPTION, location, GENERAL_NAME)
99} ASN1_SEQUENCE_END(ACCESS_DESCRIPTION) 99} ASN1_SEQUENCE_END(ACCESS_DESCRIPTION)
100 100
101IMPLEMENT_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) 101
102ACCESS_DESCRIPTION *
103d2i_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION **a, const unsigned char **in, long len)
104{
105 return (ACCESS_DESCRIPTION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
106 &ACCESS_DESCRIPTION_it);
107}
108
109int
110i2d_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION *a, unsigned char **out)
111{
112 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ACCESS_DESCRIPTION_it);
113}
114
115ACCESS_DESCRIPTION *
116ACCESS_DESCRIPTION_new(void)
117{
118 return (ACCESS_DESCRIPTION *)ASN1_item_new(&ACCESS_DESCRIPTION_it);
119}
120
121void
122ACCESS_DESCRIPTION_free(ACCESS_DESCRIPTION *a)
123{
124 ASN1_item_free((ASN1_VALUE *)a, &ACCESS_DESCRIPTION_it);
125}
102 126
103ASN1_ITEM_TEMPLATE(AUTHORITY_INFO_ACCESS) = 127ASN1_ITEM_TEMPLATE(AUTHORITY_INFO_ACCESS) =
104 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, 128 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames,
105 ACCESS_DESCRIPTION) 129 ACCESS_DESCRIPTION)
106ASN1_ITEM_TEMPLATE_END(AUTHORITY_INFO_ACCESS) 130ASN1_ITEM_TEMPLATE_END(AUTHORITY_INFO_ACCESS)
107 131
108IMPLEMENT_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) 132
133AUTHORITY_INFO_ACCESS *
134d2i_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS **a, const unsigned char **in, long len)
135{
136 return (AUTHORITY_INFO_ACCESS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
137 &AUTHORITY_INFO_ACCESS_it);
138}
139
140int
141i2d_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS *a, unsigned char **out)
142{
143 return ASN1_item_i2d((ASN1_VALUE *)a, out, &AUTHORITY_INFO_ACCESS_it);
144}
145
146AUTHORITY_INFO_ACCESS *
147AUTHORITY_INFO_ACCESS_new(void)
148{
149 return (AUTHORITY_INFO_ACCESS *)ASN1_item_new(&AUTHORITY_INFO_ACCESS_it);
150}
151
152void
153AUTHORITY_INFO_ACCESS_free(AUTHORITY_INFO_ACCESS *a)
154{
155 ASN1_item_free((ASN1_VALUE *)a, &AUTHORITY_INFO_ACCESS_it);
156}
109 157
110static STACK_OF(CONF_VALUE) * 158static STACK_OF(CONF_VALUE) *
111i2v_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method, 159i2v_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method,
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_pcia.c b/src/lib/libssl/src/crypto/x509v3/v3_pcia.c
index c7df225290..07e294e633 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_pcia.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_pcia.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_pcia.c,v 1.4 2014/06/12 15:49:31 deraadt Exp $ */ 1/* $OpenBSD: v3_pcia.c,v 1.5 2015/02/09 16:03:11 jsing Exp $ */
2/* Contributed to the OpenSSL Project 2004 2/* Contributed to the OpenSSL Project 2004
3 * by Richard Levitte (richard@levitte.org) 3 * by Richard Levitte (richard@levitte.org)
4 */ 4 */
@@ -43,7 +43,31 @@ ASN1_SEQUENCE(PROXY_POLICY) = {
43 ASN1_OPT(PROXY_POLICY, policy, ASN1_OCTET_STRING) 43 ASN1_OPT(PROXY_POLICY, policy, ASN1_OCTET_STRING)
44} ASN1_SEQUENCE_END(PROXY_POLICY) 44} ASN1_SEQUENCE_END(PROXY_POLICY)
45 45
46IMPLEMENT_ASN1_FUNCTIONS(PROXY_POLICY) 46
47PROXY_POLICY *
48d2i_PROXY_POLICY(PROXY_POLICY **a, const unsigned char **in, long len)
49{
50 return (PROXY_POLICY *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
51 &PROXY_POLICY_it);
52}
53
54int
55i2d_PROXY_POLICY(PROXY_POLICY *a, unsigned char **out)
56{
57 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PROXY_POLICY_it);
58}
59
60PROXY_POLICY *
61PROXY_POLICY_new(void)
62{
63 return (PROXY_POLICY *)ASN1_item_new(&PROXY_POLICY_it);
64}
65
66void
67PROXY_POLICY_free(PROXY_POLICY *a)
68{
69 ASN1_item_free((ASN1_VALUE *)a, &PROXY_POLICY_it);
70}
47 71
48ASN1_SEQUENCE(PROXY_CERT_INFO_EXTENSION) = { 72ASN1_SEQUENCE(PROXY_CERT_INFO_EXTENSION) = {
49 ASN1_OPT(PROXY_CERT_INFO_EXTENSION, pcPathLengthConstraint, 73 ASN1_OPT(PROXY_CERT_INFO_EXTENSION, pcPathLengthConstraint,
@@ -51,4 +75,28 @@ ASN1_SEQUENCE(PROXY_CERT_INFO_EXTENSION) = {
51 ASN1_SIMPLE(PROXY_CERT_INFO_EXTENSION, proxyPolicy, PROXY_POLICY) 75 ASN1_SIMPLE(PROXY_CERT_INFO_EXTENSION, proxyPolicy, PROXY_POLICY)
52} ASN1_SEQUENCE_END(PROXY_CERT_INFO_EXTENSION) 76} ASN1_SEQUENCE_END(PROXY_CERT_INFO_EXTENSION)
53 77
54IMPLEMENT_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) 78
79PROXY_CERT_INFO_EXTENSION *
80d2i_PROXY_CERT_INFO_EXTENSION(PROXY_CERT_INFO_EXTENSION **a, const unsigned char **in, long len)
81{
82 return (PROXY_CERT_INFO_EXTENSION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
83 &PROXY_CERT_INFO_EXTENSION_it);
84}
85
86int
87i2d_PROXY_CERT_INFO_EXTENSION(PROXY_CERT_INFO_EXTENSION *a, unsigned char **out)
88{
89 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PROXY_CERT_INFO_EXTENSION_it);
90}
91
92PROXY_CERT_INFO_EXTENSION *
93PROXY_CERT_INFO_EXTENSION_new(void)
94{
95 return (PROXY_CERT_INFO_EXTENSION *)ASN1_item_new(&PROXY_CERT_INFO_EXTENSION_it);
96}
97
98void
99PROXY_CERT_INFO_EXTENSION_free(PROXY_CERT_INFO_EXTENSION *a)
100{
101 ASN1_item_free((ASN1_VALUE *)a, &PROXY_CERT_INFO_EXTENSION_it);
102}
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_pku.c b/src/lib/libssl/src/crypto/x509v3/v3_pku.c
index 6cfbc3bd3e..4bce07f09c 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_pku.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_pku.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_pku.c,v 1.9 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: v3_pku.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 */
@@ -80,7 +80,31 @@ ASN1_SEQUENCE(PKEY_USAGE_PERIOD) = {
80 ASN1_IMP_OPT(PKEY_USAGE_PERIOD, notAfter, ASN1_GENERALIZEDTIME, 1) 80 ASN1_IMP_OPT(PKEY_USAGE_PERIOD, notAfter, ASN1_GENERALIZEDTIME, 1)
81} ASN1_SEQUENCE_END(PKEY_USAGE_PERIOD) 81} ASN1_SEQUENCE_END(PKEY_USAGE_PERIOD)
82 82
83IMPLEMENT_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) 83
84PKEY_USAGE_PERIOD *
85d2i_PKEY_USAGE_PERIOD(PKEY_USAGE_PERIOD **a, const unsigned char **in, long len)
86{
87 return (PKEY_USAGE_PERIOD *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
88 &PKEY_USAGE_PERIOD_it);
89}
90
91int
92i2d_PKEY_USAGE_PERIOD(PKEY_USAGE_PERIOD *a, unsigned char **out)
93{
94 return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKEY_USAGE_PERIOD_it);
95}
96
97PKEY_USAGE_PERIOD *
98PKEY_USAGE_PERIOD_new(void)
99{
100 return (PKEY_USAGE_PERIOD *)ASN1_item_new(&PKEY_USAGE_PERIOD_it);
101}
102
103void
104PKEY_USAGE_PERIOD_free(PKEY_USAGE_PERIOD *a)
105{
106 ASN1_item_free((ASN1_VALUE *)a, &PKEY_USAGE_PERIOD_it);
107}
84 108
85static int 109static int
86i2r_PKEY_USAGE_PERIOD(X509V3_EXT_METHOD *method, PKEY_USAGE_PERIOD *usage, 110i2r_PKEY_USAGE_PERIOD(X509V3_EXT_METHOD *method, PKEY_USAGE_PERIOD *usage,
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_sxnet.c b/src/lib/libssl/src/crypto/x509v3/v3_sxnet.c
index 81e8ab67dd..dc8ee379c7 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_sxnet.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_sxnet.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_sxnet.c,v 1.11 2014/07/11 08:44:49 jsing Exp $ */ 1/* $OpenBSD: v3_sxnet.c,v 1.12 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 */
@@ -95,14 +95,62 @@ ASN1_SEQUENCE(SXNETID) = {
95 ASN1_SIMPLE(SXNETID, user, ASN1_OCTET_STRING) 95 ASN1_SIMPLE(SXNETID, user, ASN1_OCTET_STRING)
96} ASN1_SEQUENCE_END(SXNETID) 96} ASN1_SEQUENCE_END(SXNETID)
97 97
98IMPLEMENT_ASN1_FUNCTIONS(SXNETID) 98
99SXNETID *
100d2i_SXNETID(SXNETID **a, const unsigned char **in, long len)
101{
102 return (SXNETID *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
103 &SXNETID_it);
104}
105
106int
107i2d_SXNETID(SXNETID *a, unsigned char **out)
108{
109 return ASN1_item_i2d((ASN1_VALUE *)a, out, &SXNETID_it);
110}
111
112SXNETID *
113SXNETID_new(void)
114{
115 return (SXNETID *)ASN1_item_new(&SXNETID_it);
116}
117
118void
119SXNETID_free(SXNETID *a)
120{
121 ASN1_item_free((ASN1_VALUE *)a, &SXNETID_it);
122}
99 123
100ASN1_SEQUENCE(SXNET) = { 124ASN1_SEQUENCE(SXNET) = {
101 ASN1_SIMPLE(SXNET, version, ASN1_INTEGER), 125 ASN1_SIMPLE(SXNET, version, ASN1_INTEGER),
102 ASN1_SEQUENCE_OF(SXNET, ids, SXNETID) 126 ASN1_SEQUENCE_OF(SXNET, ids, SXNETID)
103} ASN1_SEQUENCE_END(SXNET) 127} ASN1_SEQUENCE_END(SXNET)
104 128
105IMPLEMENT_ASN1_FUNCTIONS(SXNET) 129
130SXNET *
131d2i_SXNET(SXNET **a, const unsigned char **in, long len)
132{
133 return (SXNET *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
134 &SXNET_it);
135}
136
137int
138i2d_SXNET(SXNET *a, unsigned char **out)
139{
140 return ASN1_item_i2d((ASN1_VALUE *)a, out, &SXNET_it);
141}
142
143SXNET *
144SXNET_new(void)
145{
146 return (SXNET *)ASN1_item_new(&SXNET_it);
147}
148
149void
150SXNET_free(SXNET *a)
151{
152 ASN1_item_free((ASN1_VALUE *)a, &SXNET_it);
153}
106 154
107static int 155static int
108sxnet_i2r(X509V3_EXT_METHOD *method, SXNET *sx, BIO *out, int indent) 156sxnet_i2r(X509V3_EXT_METHOD *method, SXNET *sx, BIO *out, int indent)