summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)