diff options
author | jsing <> | 2015-07-25 16:00:14 +0000 |
---|---|---|
committer | jsing <> | 2015-07-25 16:00:14 +0000 |
commit | 9a71de96c8bcf60011a8623c652b850b80caa03f (patch) | |
tree | cd45d65e112b344fe18207993fd6fe834040b515 | |
parent | 2065a85e8046724356556ea49150db9e5c0e42c6 (diff) | |
download | openbsd-9a71de96c8bcf60011a8623c652b850b80caa03f.tar.gz openbsd-9a71de96c8bcf60011a8623c652b850b80caa03f.tar.bz2 openbsd-9a71de96c8bcf60011a8623c652b850b80caa03f.zip |
Expand ASN.1 template macros - the generated assembly only differs by
changes to line numbers.
26 files changed, 1612 insertions, 282 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_akeya.c b/src/lib/libcrypto/x509v3/v3_akeya.c index 1848c0911e..83ef1b5838 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.6 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_akeya.c,v 1.7 2015/07/25 16:00:14 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 | */ |
@@ -63,11 +63,39 @@ | |||
63 | #include <openssl/conf.h> | 63 | #include <openssl/conf.h> |
64 | #include <openssl/x509v3.h> | 64 | #include <openssl/x509v3.h> |
65 | 65 | ||
66 | ASN1_SEQUENCE(AUTHORITY_KEYID) = { | 66 | static const ASN1_TEMPLATE AUTHORITY_KEYID_seq_tt[] = { |
67 | ASN1_IMP_OPT(AUTHORITY_KEYID, keyid, ASN1_OCTET_STRING, 0), | 67 | { |
68 | ASN1_IMP_SEQUENCE_OF_OPT(AUTHORITY_KEYID, issuer, GENERAL_NAME, 1), | 68 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, |
69 | ASN1_IMP_OPT(AUTHORITY_KEYID, serial, ASN1_INTEGER, 2) | 69 | .tag = 0, |
70 | } ASN1_SEQUENCE_END(AUTHORITY_KEYID) | 70 | .offset = offsetof(AUTHORITY_KEYID, keyid), |
71 | .field_name = "keyid", | ||
72 | .item = &ASN1_OCTET_STRING_it, | ||
73 | }, | ||
74 | { | ||
75 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_SEQUENCE_OF | ASN1_TFLG_OPTIONAL, | ||
76 | .tag = 1, | ||
77 | .offset = offsetof(AUTHORITY_KEYID, issuer), | ||
78 | .field_name = "issuer", | ||
79 | .item = &GENERAL_NAME_it, | ||
80 | }, | ||
81 | { | ||
82 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
83 | .tag = 2, | ||
84 | .offset = offsetof(AUTHORITY_KEYID, serial), | ||
85 | .field_name = "serial", | ||
86 | .item = &ASN1_INTEGER_it, | ||
87 | }, | ||
88 | }; | ||
89 | |||
90 | const ASN1_ITEM AUTHORITY_KEYID_it = { | ||
91 | .itype = ASN1_ITYPE_SEQUENCE, | ||
92 | .utype = V_ASN1_SEQUENCE, | ||
93 | .templates = AUTHORITY_KEYID_seq_tt, | ||
94 | .tcount = sizeof(AUTHORITY_KEYID_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
95 | .funcs = NULL, | ||
96 | .size = sizeof(AUTHORITY_KEYID), | ||
97 | .sname = "AUTHORITY_KEYID", | ||
98 | }; | ||
71 | 99 | ||
72 | 100 | ||
73 | AUTHORITY_KEYID * | 101 | AUTHORITY_KEYID * |
diff --git a/src/lib/libcrypto/x509v3/v3_bcons.c b/src/lib/libcrypto/x509v3/v3_bcons.c index fb3f6c7619..eea63b760a 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.11 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_bcons.c,v 1.12 2015/07/25 16:00:14 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 | */ |
@@ -81,10 +81,32 @@ const X509V3_EXT_METHOD v3_bcons = { | |||
81 | NULL | 81 | NULL |
82 | }; | 82 | }; |
83 | 83 | ||
84 | ASN1_SEQUENCE(BASIC_CONSTRAINTS) = { | 84 | static const ASN1_TEMPLATE BASIC_CONSTRAINTS_seq_tt[] = { |
85 | ASN1_OPT(BASIC_CONSTRAINTS, ca, ASN1_FBOOLEAN), | 85 | { |
86 | ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER) | 86 | .flags = ASN1_TFLG_OPTIONAL, |
87 | } ASN1_SEQUENCE_END(BASIC_CONSTRAINTS) | 87 | .tag = 0, |
88 | .offset = offsetof(BASIC_CONSTRAINTS, ca), | ||
89 | .field_name = "ca", | ||
90 | .item = &ASN1_FBOOLEAN_it, | ||
91 | }, | ||
92 | { | ||
93 | .flags = ASN1_TFLG_OPTIONAL, | ||
94 | .tag = 0, | ||
95 | .offset = offsetof(BASIC_CONSTRAINTS, pathlen), | ||
96 | .field_name = "pathlen", | ||
97 | .item = &ASN1_INTEGER_it, | ||
98 | }, | ||
99 | }; | ||
100 | |||
101 | const ASN1_ITEM BASIC_CONSTRAINTS_it = { | ||
102 | .itype = ASN1_ITYPE_SEQUENCE, | ||
103 | .utype = V_ASN1_SEQUENCE, | ||
104 | .templates = BASIC_CONSTRAINTS_seq_tt, | ||
105 | .tcount = sizeof(BASIC_CONSTRAINTS_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
106 | .funcs = NULL, | ||
107 | .size = sizeof(BASIC_CONSTRAINTS), | ||
108 | .sname = "BASIC_CONSTRAINTS", | ||
109 | }; | ||
88 | 110 | ||
89 | 111 | ||
90 | BASIC_CONSTRAINTS * | 112 | BASIC_CONSTRAINTS * |
diff --git a/src/lib/libcrypto/x509v3/v3_cpols.c b/src/lib/libcrypto/x509v3/v3_cpols.c index 61e6b3ba47..4244f03851 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.20 2015/07/15 17:00:35 miod Exp $ */ | 1 | /* $OpenBSD: v3_cpols.c,v 1.21 2015/07/25 16:00:14 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 | */ |
@@ -92,10 +92,23 @@ const X509V3_EXT_METHOD v3_cpols = { | |||
92 | NULL | 92 | NULL |
93 | }; | 93 | }; |
94 | 94 | ||
95 | ASN1_ITEM_TEMPLATE(CERTIFICATEPOLICIES) = | 95 | static const ASN1_TEMPLATE CERTIFICATEPOLICIES_item_tt = { |
96 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, CERTIFICATEPOLICIES, | 96 | .flags = ASN1_TFLG_SEQUENCE_OF, |
97 | POLICYINFO) | 97 | .tag = 0, |
98 | ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES) | 98 | .offset = 0, |
99 | .field_name = "CERTIFICATEPOLICIES", | ||
100 | .item = &POLICYINFO_it, | ||
101 | }; | ||
102 | |||
103 | const ASN1_ITEM CERTIFICATEPOLICIES_it = { | ||
104 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
105 | .utype = -1, | ||
106 | .templates = &CERTIFICATEPOLICIES_item_tt, | ||
107 | .tcount = 0, | ||
108 | .funcs = NULL, | ||
109 | .size = 0, | ||
110 | .sname = "CERTIFICATEPOLICIES", | ||
111 | }; | ||
99 | 112 | ||
100 | 113 | ||
101 | CERTIFICATEPOLICIES * | 114 | CERTIFICATEPOLICIES * |
@@ -123,10 +136,32 @@ CERTIFICATEPOLICIES_free(CERTIFICATEPOLICIES *a) | |||
123 | ASN1_item_free((ASN1_VALUE *)a, &CERTIFICATEPOLICIES_it); | 136 | ASN1_item_free((ASN1_VALUE *)a, &CERTIFICATEPOLICIES_it); |
124 | } | 137 | } |
125 | 138 | ||
126 | ASN1_SEQUENCE(POLICYINFO) = { | 139 | static const ASN1_TEMPLATE POLICYINFO_seq_tt[] = { |
127 | ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT), | 140 | { |
128 | ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO) | 141 | .flags = 0, |
129 | } ASN1_SEQUENCE_END(POLICYINFO) | 142 | .tag = 0, |
143 | .offset = offsetof(POLICYINFO, policyid), | ||
144 | .field_name = "policyid", | ||
145 | .item = &ASN1_OBJECT_it, | ||
146 | }, | ||
147 | { | ||
148 | .flags = ASN1_TFLG_SEQUENCE_OF | ASN1_TFLG_OPTIONAL, | ||
149 | .tag = 0, | ||
150 | .offset = offsetof(POLICYINFO, qualifiers), | ||
151 | .field_name = "qualifiers", | ||
152 | .item = &POLICYQUALINFO_it, | ||
153 | }, | ||
154 | }; | ||
155 | |||
156 | const ASN1_ITEM POLICYINFO_it = { | ||
157 | .itype = ASN1_ITYPE_SEQUENCE, | ||
158 | .utype = V_ASN1_SEQUENCE, | ||
159 | .templates = POLICYINFO_seq_tt, | ||
160 | .tcount = sizeof(POLICYINFO_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
161 | .funcs = NULL, | ||
162 | .size = sizeof(POLICYINFO), | ||
163 | .sname = "POLICYINFO", | ||
164 | }; | ||
130 | 165 | ||
131 | 166 | ||
132 | POLICYINFO * | 167 | POLICYINFO * |
@@ -154,18 +189,75 @@ POLICYINFO_free(POLICYINFO *a) | |||
154 | ASN1_item_free((ASN1_VALUE *)a, &POLICYINFO_it); | 189 | ASN1_item_free((ASN1_VALUE *)a, &POLICYINFO_it); |
155 | } | 190 | } |
156 | 191 | ||
157 | ASN1_ADB_TEMPLATE(policydefault) = | 192 | static const ASN1_TEMPLATE policydefault_tt = { |
158 | ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY); | 193 | .flags = 0, |
194 | .tag = 0, | ||
195 | .offset = offsetof(POLICYQUALINFO, d.other), | ||
196 | .field_name = "d.other", | ||
197 | .item = &ASN1_ANY_it, | ||
198 | }; | ||
159 | 199 | ||
160 | ASN1_ADB(POLICYQUALINFO) = { | 200 | static const ASN1_ADB_TABLE POLICYQUALINFO_adbtbl[] = { |
161 | ADB_ENTRY(NID_id_qt_cps, ASN1_SIMPLE(POLICYQUALINFO, d.cpsuri, ASN1_IA5STRING)), | 201 | { |
162 | ADB_ENTRY(NID_id_qt_unotice, ASN1_SIMPLE(POLICYQUALINFO, d.usernotice, USERNOTICE)) | 202 | .value = NID_id_qt_cps, |
163 | } ASN1_ADB_END(POLICYQUALINFO, 0, pqualid, 0, &policydefault_tt, NULL); | 203 | .tt = { |
204 | .flags = 0, | ||
205 | .tag = 0, | ||
206 | .offset = offsetof(POLICYQUALINFO, d.cpsuri), | ||
207 | .field_name = "d.cpsuri", | ||
208 | .item = &ASN1_IA5STRING_it, | ||
209 | }, | ||
210 | |||
211 | }, | ||
212 | { | ||
213 | .value = NID_id_qt_unotice, | ||
214 | .tt = { | ||
215 | .flags = 0, | ||
216 | .tag = 0, | ||
217 | .offset = offsetof(POLICYQUALINFO, d.usernotice), | ||
218 | .field_name = "d.usernotice", | ||
219 | .item = &USERNOTICE_it, | ||
220 | }, | ||
221 | |||
222 | }, | ||
223 | }; | ||
164 | 224 | ||
165 | ASN1_SEQUENCE(POLICYQUALINFO) = { | 225 | static const ASN1_ADB POLICYQUALINFO_adb = { |
166 | ASN1_SIMPLE(POLICYQUALINFO, pqualid, ASN1_OBJECT), | 226 | .flags = 0, |
167 | ASN1_ADB_OBJECT(POLICYQUALINFO) | 227 | .offset = offsetof(POLICYQUALINFO, pqualid), |
168 | } ASN1_SEQUENCE_END(POLICYQUALINFO) | 228 | .app_items = 0, |
229 | .tbl = POLICYQUALINFO_adbtbl, | ||
230 | .tblcount = sizeof(POLICYQUALINFO_adbtbl) / sizeof(ASN1_ADB_TABLE), | ||
231 | .default_tt = &policydefault_tt, | ||
232 | .null_tt = NULL, | ||
233 | }; | ||
234 | |||
235 | static const ASN1_TEMPLATE POLICYQUALINFO_seq_tt[] = { | ||
236 | { | ||
237 | .flags = 0, | ||
238 | .tag = 0, | ||
239 | .offset = offsetof(POLICYQUALINFO, pqualid), | ||
240 | .field_name = "pqualid", | ||
241 | .item = &ASN1_OBJECT_it, | ||
242 | }, | ||
243 | { | ||
244 | .flags = ASN1_TFLG_ADB_OID, | ||
245 | .tag = -1, | ||
246 | .offset = 0, | ||
247 | .field_name = "POLICYQUALINFO", | ||
248 | .item = (const ASN1_ITEM *)&POLICYQUALINFO_adb, | ||
249 | }, | ||
250 | }; | ||
251 | |||
252 | const ASN1_ITEM POLICYQUALINFO_it = { | ||
253 | .itype = ASN1_ITYPE_SEQUENCE, | ||
254 | .utype = V_ASN1_SEQUENCE, | ||
255 | .templates = POLICYQUALINFO_seq_tt, | ||
256 | .tcount = sizeof(POLICYQUALINFO_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
257 | .funcs = NULL, | ||
258 | .size = sizeof(POLICYQUALINFO), | ||
259 | .sname = "POLICYQUALINFO", | ||
260 | }; | ||
169 | 261 | ||
170 | 262 | ||
171 | POLICYQUALINFO * | 263 | POLICYQUALINFO * |
@@ -193,10 +285,32 @@ POLICYQUALINFO_free(POLICYQUALINFO *a) | |||
193 | ASN1_item_free((ASN1_VALUE *)a, &POLICYQUALINFO_it); | 285 | ASN1_item_free((ASN1_VALUE *)a, &POLICYQUALINFO_it); |
194 | } | 286 | } |
195 | 287 | ||
196 | ASN1_SEQUENCE(USERNOTICE) = { | 288 | static const ASN1_TEMPLATE USERNOTICE_seq_tt[] = { |
197 | ASN1_OPT(USERNOTICE, noticeref, NOTICEREF), | 289 | { |
198 | ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT) | 290 | .flags = ASN1_TFLG_OPTIONAL, |
199 | } ASN1_SEQUENCE_END(USERNOTICE) | 291 | .tag = 0, |
292 | .offset = offsetof(USERNOTICE, noticeref), | ||
293 | .field_name = "noticeref", | ||
294 | .item = &NOTICEREF_it, | ||
295 | }, | ||
296 | { | ||
297 | .flags = ASN1_TFLG_OPTIONAL, | ||
298 | .tag = 0, | ||
299 | .offset = offsetof(USERNOTICE, exptext), | ||
300 | .field_name = "exptext", | ||
301 | .item = &DISPLAYTEXT_it, | ||
302 | }, | ||
303 | }; | ||
304 | |||
305 | const ASN1_ITEM USERNOTICE_it = { | ||
306 | .itype = ASN1_ITYPE_SEQUENCE, | ||
307 | .utype = V_ASN1_SEQUENCE, | ||
308 | .templates = USERNOTICE_seq_tt, | ||
309 | .tcount = sizeof(USERNOTICE_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
310 | .funcs = NULL, | ||
311 | .size = sizeof(USERNOTICE), | ||
312 | .sname = "USERNOTICE", | ||
313 | }; | ||
200 | 314 | ||
201 | 315 | ||
202 | USERNOTICE * | 316 | USERNOTICE * |
@@ -224,10 +338,32 @@ USERNOTICE_free(USERNOTICE *a) | |||
224 | ASN1_item_free((ASN1_VALUE *)a, &USERNOTICE_it); | 338 | ASN1_item_free((ASN1_VALUE *)a, &USERNOTICE_it); |
225 | } | 339 | } |
226 | 340 | ||
227 | ASN1_SEQUENCE(NOTICEREF) = { | 341 | static const ASN1_TEMPLATE NOTICEREF_seq_tt[] = { |
228 | ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT), | 342 | { |
229 | ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER) | 343 | .flags = 0, |
230 | } ASN1_SEQUENCE_END(NOTICEREF) | 344 | .tag = 0, |
345 | .offset = offsetof(NOTICEREF, organization), | ||
346 | .field_name = "organization", | ||
347 | .item = &DISPLAYTEXT_it, | ||
348 | }, | ||
349 | { | ||
350 | .flags = ASN1_TFLG_SEQUENCE_OF, | ||
351 | .tag = 0, | ||
352 | .offset = offsetof(NOTICEREF, noticenos), | ||
353 | .field_name = "noticenos", | ||
354 | .item = &ASN1_INTEGER_it, | ||
355 | }, | ||
356 | }; | ||
357 | |||
358 | const ASN1_ITEM NOTICEREF_it = { | ||
359 | .itype = ASN1_ITYPE_SEQUENCE, | ||
360 | .utype = V_ASN1_SEQUENCE, | ||
361 | .templates = NOTICEREF_seq_tt, | ||
362 | .tcount = sizeof(NOTICEREF_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
363 | .funcs = NULL, | ||
364 | .size = sizeof(NOTICEREF), | ||
365 | .sname = "NOTICEREF", | ||
366 | }; | ||
231 | 367 | ||
232 | 368 | ||
233 | NOTICEREF * | 369 | NOTICEREF * |
diff --git a/src/lib/libcrypto/x509v3/v3_crld.c b/src/lib/libcrypto/x509v3/v3_crld.c index b2e4370658..9c4017968d 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.16 2015/02/14 15:19:04 miod Exp $ */ | 1 | /* $OpenBSD: v3_crld.c,v 1.17 2015/07/25 16:00:14 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 | */ |
@@ -374,10 +374,34 @@ dpn_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg) | |||
374 | } | 374 | } |
375 | 375 | ||
376 | 376 | ||
377 | ASN1_CHOICE_cb(DIST_POINT_NAME, dpn_cb) = { | 377 | static const ASN1_AUX DIST_POINT_NAME_aux = { |
378 | ASN1_IMP_SEQUENCE_OF(DIST_POINT_NAME, name.fullname, GENERAL_NAME, 0), | 378 | .app_data = NULL, |
379 | .flags = 0, | ||
380 | .ref_offset = 0, | ||
381 | .ref_lock = 0, | ||
382 | .asn1_cb = dpn_cb, | ||
383 | .enc_offset = 0, | ||
384 | }; | ||
385 | static const ASN1_TEMPLATE DIST_POINT_NAME_ch_tt[] = { | ||
386 | { | ||
387 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_SEQUENCE_OF, | ||
388 | .tag = 0, | ||
389 | .offset = offsetof(DIST_POINT_NAME, name.fullname), | ||
390 | .field_name = "name.fullname", | ||
391 | .item = &GENERAL_NAME_it, | ||
392 | }, | ||
379 | ASN1_IMP_SET_OF(DIST_POINT_NAME, name.relativename, X509_NAME_ENTRY, 1) | 393 | ASN1_IMP_SET_OF(DIST_POINT_NAME, name.relativename, X509_NAME_ENTRY, 1) |
380 | } ASN1_CHOICE_END_cb(DIST_POINT_NAME, DIST_POINT_NAME, type) | 394 | }; |
395 | |||
396 | const ASN1_ITEM DIST_POINT_NAME_it = { | ||
397 | .itype = ASN1_ITYPE_CHOICE, | ||
398 | .utype = offsetof(DIST_POINT_NAME, type), | ||
399 | .templates = DIST_POINT_NAME_ch_tt, | ||
400 | .tcount = sizeof(DIST_POINT_NAME_ch_tt) / sizeof(ASN1_TEMPLATE), | ||
401 | .funcs = &DIST_POINT_NAME_aux, | ||
402 | .size = sizeof(DIST_POINT_NAME), | ||
403 | .sname = "DIST_POINT_NAME", | ||
404 | }; | ||
381 | 405 | ||
382 | 406 | ||
383 | 407 | ||
@@ -406,11 +430,39 @@ DIST_POINT_NAME_free(DIST_POINT_NAME *a) | |||
406 | ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_NAME_it); | 430 | ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_NAME_it); |
407 | } | 431 | } |
408 | 432 | ||
409 | ASN1_SEQUENCE(DIST_POINT) = { | 433 | static const ASN1_TEMPLATE DIST_POINT_seq_tt[] = { |
410 | ASN1_EXP_OPT(DIST_POINT, distpoint, DIST_POINT_NAME, 0), | 434 | { |
411 | ASN1_IMP_OPT(DIST_POINT, reasons, ASN1_BIT_STRING, 1), | 435 | .flags = ASN1_TFLG_EXPLICIT | ASN1_TFLG_OPTIONAL, |
412 | ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2) | 436 | .tag = 0, |
413 | } ASN1_SEQUENCE_END(DIST_POINT) | 437 | .offset = offsetof(DIST_POINT, distpoint), |
438 | .field_name = "distpoint", | ||
439 | .item = &DIST_POINT_NAME_it, | ||
440 | }, | ||
441 | { | ||
442 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
443 | .tag = 1, | ||
444 | .offset = offsetof(DIST_POINT, reasons), | ||
445 | .field_name = "reasons", | ||
446 | .item = &ASN1_BIT_STRING_it, | ||
447 | }, | ||
448 | { | ||
449 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_SEQUENCE_OF | ASN1_TFLG_OPTIONAL, | ||
450 | .tag = 2, | ||
451 | .offset = offsetof(DIST_POINT, CRLissuer), | ||
452 | .field_name = "CRLissuer", | ||
453 | .item = &GENERAL_NAME_it, | ||
454 | }, | ||
455 | }; | ||
456 | |||
457 | const ASN1_ITEM DIST_POINT_it = { | ||
458 | .itype = ASN1_ITYPE_SEQUENCE, | ||
459 | .utype = V_ASN1_SEQUENCE, | ||
460 | .templates = DIST_POINT_seq_tt, | ||
461 | .tcount = sizeof(DIST_POINT_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
462 | .funcs = NULL, | ||
463 | .size = sizeof(DIST_POINT), | ||
464 | .sname = "DIST_POINT", | ||
465 | }; | ||
414 | 466 | ||
415 | 467 | ||
416 | DIST_POINT * | 468 | DIST_POINT * |
@@ -438,10 +490,23 @@ DIST_POINT_free(DIST_POINT *a) | |||
438 | ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_it); | 490 | ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_it); |
439 | } | 491 | } |
440 | 492 | ||
441 | ASN1_ITEM_TEMPLATE(CRL_DIST_POINTS) = | 493 | static const ASN1_TEMPLATE CRL_DIST_POINTS_item_tt = { |
442 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, CRLDistributionPoints, | 494 | .flags = ASN1_TFLG_SEQUENCE_OF, |
443 | DIST_POINT) | 495 | .tag = 0, |
444 | ASN1_ITEM_TEMPLATE_END(CRL_DIST_POINTS) | 496 | .offset = 0, |
497 | .field_name = "CRLDistributionPoints", | ||
498 | .item = &DIST_POINT_it, | ||
499 | }; | ||
500 | |||
501 | const ASN1_ITEM CRL_DIST_POINTS_it = { | ||
502 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
503 | .utype = -1, | ||
504 | .templates = &CRL_DIST_POINTS_item_tt, | ||
505 | .tcount = 0, | ||
506 | .funcs = NULL, | ||
507 | .size = 0, | ||
508 | .sname = "CRL_DIST_POINTS", | ||
509 | }; | ||
445 | 510 | ||
446 | 511 | ||
447 | CRL_DIST_POINTS * | 512 | CRL_DIST_POINTS * |
@@ -469,14 +534,60 @@ CRL_DIST_POINTS_free(CRL_DIST_POINTS *a) | |||
469 | ASN1_item_free((ASN1_VALUE *)a, &CRL_DIST_POINTS_it); | 534 | ASN1_item_free((ASN1_VALUE *)a, &CRL_DIST_POINTS_it); |
470 | } | 535 | } |
471 | 536 | ||
472 | ASN1_SEQUENCE(ISSUING_DIST_POINT) = { | 537 | static const ASN1_TEMPLATE ISSUING_DIST_POINT_seq_tt[] = { |
473 | ASN1_EXP_OPT(ISSUING_DIST_POINT, distpoint, DIST_POINT_NAME, 0), | 538 | { |
474 | ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyuser, ASN1_FBOOLEAN, 1), | 539 | .flags = ASN1_TFLG_EXPLICIT | ASN1_TFLG_OPTIONAL, |
475 | ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyCA, ASN1_FBOOLEAN, 2), | 540 | .tag = 0, |
476 | ASN1_IMP_OPT(ISSUING_DIST_POINT, onlysomereasons, ASN1_BIT_STRING, 3), | 541 | .offset = offsetof(ISSUING_DIST_POINT, distpoint), |
477 | ASN1_IMP_OPT(ISSUING_DIST_POINT, indirectCRL, ASN1_FBOOLEAN, 4), | 542 | .field_name = "distpoint", |
478 | ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5) | 543 | .item = &DIST_POINT_NAME_it, |
479 | } ASN1_SEQUENCE_END(ISSUING_DIST_POINT) | 544 | }, |
545 | { | ||
546 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
547 | .tag = 1, | ||
548 | .offset = offsetof(ISSUING_DIST_POINT, onlyuser), | ||
549 | .field_name = "onlyuser", | ||
550 | .item = &ASN1_FBOOLEAN_it, | ||
551 | }, | ||
552 | { | ||
553 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
554 | .tag = 2, | ||
555 | .offset = offsetof(ISSUING_DIST_POINT, onlyCA), | ||
556 | .field_name = "onlyCA", | ||
557 | .item = &ASN1_FBOOLEAN_it, | ||
558 | }, | ||
559 | { | ||
560 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
561 | .tag = 3, | ||
562 | .offset = offsetof(ISSUING_DIST_POINT, onlysomereasons), | ||
563 | .field_name = "onlysomereasons", | ||
564 | .item = &ASN1_BIT_STRING_it, | ||
565 | }, | ||
566 | { | ||
567 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
568 | .tag = 4, | ||
569 | .offset = offsetof(ISSUING_DIST_POINT, indirectCRL), | ||
570 | .field_name = "indirectCRL", | ||
571 | .item = &ASN1_FBOOLEAN_it, | ||
572 | }, | ||
573 | { | ||
574 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
575 | .tag = 5, | ||
576 | .offset = offsetof(ISSUING_DIST_POINT, onlyattr), | ||
577 | .field_name = "onlyattr", | ||
578 | .item = &ASN1_FBOOLEAN_it, | ||
579 | }, | ||
580 | }; | ||
581 | |||
582 | const ASN1_ITEM ISSUING_DIST_POINT_it = { | ||
583 | .itype = ASN1_ITYPE_SEQUENCE, | ||
584 | .utype = V_ASN1_SEQUENCE, | ||
585 | .templates = ISSUING_DIST_POINT_seq_tt, | ||
586 | .tcount = sizeof(ISSUING_DIST_POINT_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
587 | .funcs = NULL, | ||
588 | .size = sizeof(ISSUING_DIST_POINT), | ||
589 | .sname = "ISSUING_DIST_POINT", | ||
590 | }; | ||
480 | 591 | ||
481 | 592 | ||
482 | ISSUING_DIST_POINT * | 593 | ISSUING_DIST_POINT * |
diff --git a/src/lib/libcrypto/x509v3/v3_extku.c b/src/lib/libcrypto/x509v3/v3_extku.c index c37b65f7a5..2ee7594fed 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.11 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_extku.c,v 1.12 2015/07/25 16:00:14 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 | */ |
@@ -91,10 +91,23 @@ const X509V3_EXT_METHOD v3_ocsp_accresp = { | |||
91 | NULL | 91 | NULL |
92 | }; | 92 | }; |
93 | 93 | ||
94 | ASN1_ITEM_TEMPLATE(EXTENDED_KEY_USAGE) = | 94 | static const ASN1_TEMPLATE EXTENDED_KEY_USAGE_item_tt = { |
95 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, EXTENDED_KEY_USAGE, | 95 | .flags = ASN1_TFLG_SEQUENCE_OF, |
96 | ASN1_OBJECT) | 96 | .tag = 0, |
97 | ASN1_ITEM_TEMPLATE_END(EXTENDED_KEY_USAGE) | 97 | .offset = 0, |
98 | .field_name = "EXTENDED_KEY_USAGE", | ||
99 | .item = &ASN1_OBJECT_it, | ||
100 | }; | ||
101 | |||
102 | const ASN1_ITEM EXTENDED_KEY_USAGE_it = { | ||
103 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
104 | .utype = -1, | ||
105 | .templates = &EXTENDED_KEY_USAGE_item_tt, | ||
106 | .tcount = 0, | ||
107 | .funcs = NULL, | ||
108 | .size = 0, | ||
109 | .sname = "EXTENDED_KEY_USAGE", | ||
110 | }; | ||
98 | 111 | ||
99 | 112 | ||
100 | EXTENDED_KEY_USAGE * | 113 | EXTENDED_KEY_USAGE * |
diff --git a/src/lib/libcrypto/x509v3/v3_genn.c b/src/lib/libcrypto/x509v3/v3_genn.c index 25d7f447d2..9943fd33d2 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.10 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_genn.c,v 1.11 2015/07/25 16:00:14 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 | */ |
@@ -63,11 +63,33 @@ | |||
63 | #include <openssl/conf.h> | 63 | #include <openssl/conf.h> |
64 | #include <openssl/x509v3.h> | 64 | #include <openssl/x509v3.h> |
65 | 65 | ||
66 | ASN1_SEQUENCE(OTHERNAME) = { | 66 | static const ASN1_TEMPLATE OTHERNAME_seq_tt[] = { |
67 | ASN1_SIMPLE(OTHERNAME, type_id, ASN1_OBJECT), | 67 | { |
68 | .flags = 0, | ||
69 | .tag = 0, | ||
70 | .offset = offsetof(OTHERNAME, type_id), | ||
71 | .field_name = "type_id", | ||
72 | .item = &ASN1_OBJECT_it, | ||
73 | }, | ||
68 | /* Maybe have a true ANY DEFINED BY later */ | 74 | /* Maybe have a true ANY DEFINED BY later */ |
69 | ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0) | 75 | { |
70 | } ASN1_SEQUENCE_END(OTHERNAME) | 76 | .flags = ASN1_TFLG_EXPLICIT, |
77 | .tag = 0, | ||
78 | .offset = offsetof(OTHERNAME, value), | ||
79 | .field_name = "value", | ||
80 | .item = &ASN1_ANY_it, | ||
81 | }, | ||
82 | }; | ||
83 | |||
84 | const ASN1_ITEM OTHERNAME_it = { | ||
85 | .itype = ASN1_ITYPE_SEQUENCE, | ||
86 | .utype = V_ASN1_SEQUENCE, | ||
87 | .templates = OTHERNAME_seq_tt, | ||
88 | .tcount = sizeof(OTHERNAME_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
89 | .funcs = NULL, | ||
90 | .size = sizeof(OTHERNAME), | ||
91 | .sname = "OTHERNAME", | ||
92 | }; | ||
71 | 93 | ||
72 | 94 | ||
73 | OTHERNAME * | 95 | OTHERNAME * |
@@ -95,10 +117,32 @@ OTHERNAME_free(OTHERNAME *a) | |||
95 | ASN1_item_free((ASN1_VALUE *)a, &OTHERNAME_it); | 117 | ASN1_item_free((ASN1_VALUE *)a, &OTHERNAME_it); |
96 | } | 118 | } |
97 | 119 | ||
98 | ASN1_SEQUENCE(EDIPARTYNAME) = { | 120 | static const ASN1_TEMPLATE EDIPARTYNAME_seq_tt[] = { |
99 | ASN1_IMP_OPT(EDIPARTYNAME, nameAssigner, DIRECTORYSTRING, 0), | 121 | { |
100 | ASN1_IMP_OPT(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1) | 122 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, |
101 | } ASN1_SEQUENCE_END(EDIPARTYNAME) | 123 | .tag = 0, |
124 | .offset = offsetof(EDIPARTYNAME, nameAssigner), | ||
125 | .field_name = "nameAssigner", | ||
126 | .item = &DIRECTORYSTRING_it, | ||
127 | }, | ||
128 | { | ||
129 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
130 | .tag = 1, | ||
131 | .offset = offsetof(EDIPARTYNAME, partyName), | ||
132 | .field_name = "partyName", | ||
133 | .item = &DIRECTORYSTRING_it, | ||
134 | }, | ||
135 | }; | ||
136 | |||
137 | const ASN1_ITEM EDIPARTYNAME_it = { | ||
138 | .itype = ASN1_ITYPE_SEQUENCE, | ||
139 | .utype = V_ASN1_SEQUENCE, | ||
140 | .templates = EDIPARTYNAME_seq_tt, | ||
141 | .tcount = sizeof(EDIPARTYNAME_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
142 | .funcs = NULL, | ||
143 | .size = sizeof(EDIPARTYNAME), | ||
144 | .sname = "EDIPARTYNAME", | ||
145 | }; | ||
102 | 146 | ||
103 | 147 | ||
104 | EDIPARTYNAME * | 148 | EDIPARTYNAME * |
@@ -126,19 +170,83 @@ EDIPARTYNAME_free(EDIPARTYNAME *a) | |||
126 | ASN1_item_free((ASN1_VALUE *)a, &EDIPARTYNAME_it); | 170 | ASN1_item_free((ASN1_VALUE *)a, &EDIPARTYNAME_it); |
127 | } | 171 | } |
128 | 172 | ||
129 | ASN1_CHOICE(GENERAL_NAME) = { | 173 | static const ASN1_TEMPLATE GENERAL_NAME_ch_tt[] = { |
130 | ASN1_IMP(GENERAL_NAME, d.otherName, OTHERNAME, GEN_OTHERNAME), | 174 | { |
131 | ASN1_IMP(GENERAL_NAME, d.rfc822Name, ASN1_IA5STRING, GEN_EMAIL), | 175 | .flags = ASN1_TFLG_IMPLICIT, |
132 | ASN1_IMP(GENERAL_NAME, d.dNSName, ASN1_IA5STRING, GEN_DNS), | 176 | .tag = GEN_OTHERNAME, |
177 | .offset = offsetof(GENERAL_NAME, d.otherName), | ||
178 | .field_name = "d.otherName", | ||
179 | .item = &OTHERNAME_it, | ||
180 | }, | ||
181 | { | ||
182 | .flags = ASN1_TFLG_IMPLICIT, | ||
183 | .tag = GEN_EMAIL, | ||
184 | .offset = offsetof(GENERAL_NAME, d.rfc822Name), | ||
185 | .field_name = "d.rfc822Name", | ||
186 | .item = &ASN1_IA5STRING_it, | ||
187 | }, | ||
188 | { | ||
189 | .flags = ASN1_TFLG_IMPLICIT, | ||
190 | .tag = GEN_DNS, | ||
191 | .offset = offsetof(GENERAL_NAME, d.dNSName), | ||
192 | .field_name = "d.dNSName", | ||
193 | .item = &ASN1_IA5STRING_it, | ||
194 | }, | ||
133 | /* Don't decode this */ | 195 | /* Don't decode this */ |
134 | ASN1_IMP(GENERAL_NAME, d.x400Address, ASN1_SEQUENCE, GEN_X400), | 196 | { |
197 | .flags = ASN1_TFLG_IMPLICIT, | ||
198 | .tag = GEN_X400, | ||
199 | .offset = offsetof(GENERAL_NAME, d.x400Address), | ||
200 | .field_name = "d.x400Address", | ||
201 | .item = &ASN1_SEQUENCE_it, | ||
202 | }, | ||
135 | /* X509_NAME is a CHOICE type so use EXPLICIT */ | 203 | /* X509_NAME is a CHOICE type so use EXPLICIT */ |
136 | ASN1_EXP(GENERAL_NAME, d.directoryName, X509_NAME, GEN_DIRNAME), | 204 | { |
137 | ASN1_IMP(GENERAL_NAME, d.ediPartyName, EDIPARTYNAME, GEN_EDIPARTY), | 205 | .flags = ASN1_TFLG_EXPLICIT, |
138 | ASN1_IMP(GENERAL_NAME, d.uniformResourceIdentifier, ASN1_IA5STRING, GEN_URI), | 206 | .tag = GEN_DIRNAME, |
139 | ASN1_IMP(GENERAL_NAME, d.iPAddress, ASN1_OCTET_STRING, GEN_IPADD), | 207 | .offset = offsetof(GENERAL_NAME, d.directoryName), |
140 | ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID) | 208 | .field_name = "d.directoryName", |
141 | } ASN1_CHOICE_END(GENERAL_NAME) | 209 | .item = &X509_NAME_it, |
210 | }, | ||
211 | { | ||
212 | .flags = ASN1_TFLG_IMPLICIT, | ||
213 | .tag = GEN_EDIPARTY, | ||
214 | .offset = offsetof(GENERAL_NAME, d.ediPartyName), | ||
215 | .field_name = "d.ediPartyName", | ||
216 | .item = &EDIPARTYNAME_it, | ||
217 | }, | ||
218 | { | ||
219 | .flags = ASN1_TFLG_IMPLICIT, | ||
220 | .tag = GEN_URI, | ||
221 | .offset = offsetof(GENERAL_NAME, d.uniformResourceIdentifier), | ||
222 | .field_name = "d.uniformResourceIdentifier", | ||
223 | .item = &ASN1_IA5STRING_it, | ||
224 | }, | ||
225 | { | ||
226 | .flags = ASN1_TFLG_IMPLICIT, | ||
227 | .tag = GEN_IPADD, | ||
228 | .offset = offsetof(GENERAL_NAME, d.iPAddress), | ||
229 | .field_name = "d.iPAddress", | ||
230 | .item = &ASN1_OCTET_STRING_it, | ||
231 | }, | ||
232 | { | ||
233 | .flags = ASN1_TFLG_IMPLICIT, | ||
234 | .tag = GEN_RID, | ||
235 | .offset = offsetof(GENERAL_NAME, d.registeredID), | ||
236 | .field_name = "d.registeredID", | ||
237 | .item = &ASN1_OBJECT_it, | ||
238 | }, | ||
239 | }; | ||
240 | |||
241 | const ASN1_ITEM GENERAL_NAME_it = { | ||
242 | .itype = ASN1_ITYPE_CHOICE, | ||
243 | .utype = offsetof(GENERAL_NAME, type), | ||
244 | .templates = GENERAL_NAME_ch_tt, | ||
245 | .tcount = sizeof(GENERAL_NAME_ch_tt) / sizeof(ASN1_TEMPLATE), | ||
246 | .funcs = NULL, | ||
247 | .size = sizeof(GENERAL_NAME), | ||
248 | .sname = "GENERAL_NAME", | ||
249 | }; | ||
142 | 250 | ||
143 | 251 | ||
144 | GENERAL_NAME * | 252 | GENERAL_NAME * |
@@ -166,9 +274,23 @@ GENERAL_NAME_free(GENERAL_NAME *a) | |||
166 | ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAME_it); | 274 | ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAME_it); |
167 | } | 275 | } |
168 | 276 | ||
169 | ASN1_ITEM_TEMPLATE(GENERAL_NAMES) = | 277 | static const ASN1_TEMPLATE GENERAL_NAMES_item_tt = { |
170 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, GENERAL_NAME) | 278 | .flags = ASN1_TFLG_SEQUENCE_OF, |
171 | ASN1_ITEM_TEMPLATE_END(GENERAL_NAMES) | 279 | .tag = 0, |
280 | .offset = 0, | ||
281 | .field_name = "GeneralNames", | ||
282 | .item = &GENERAL_NAME_it, | ||
283 | }; | ||
284 | |||
285 | const ASN1_ITEM GENERAL_NAMES_it = { | ||
286 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
287 | .utype = -1, | ||
288 | .templates = &GENERAL_NAMES_item_tt, | ||
289 | .tcount = 0, | ||
290 | .funcs = NULL, | ||
291 | .size = 0, | ||
292 | .sname = "GENERAL_NAMES", | ||
293 | }; | ||
172 | 294 | ||
173 | 295 | ||
174 | GENERAL_NAMES * | 296 | GENERAL_NAMES * |
diff --git a/src/lib/libcrypto/x509v3/v3_info.c b/src/lib/libcrypto/x509v3/v3_info.c index d9fa133308..795a7bb6ff 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.21 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_info.c,v 1.22 2015/07/25 16:00:14 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 | */ |
@@ -93,10 +93,32 @@ const X509V3_EXT_METHOD v3_sinfo = { | |||
93 | NULL | 93 | NULL |
94 | }; | 94 | }; |
95 | 95 | ||
96 | ASN1_SEQUENCE(ACCESS_DESCRIPTION) = { | 96 | static const ASN1_TEMPLATE ACCESS_DESCRIPTION_seq_tt[] = { |
97 | ASN1_SIMPLE(ACCESS_DESCRIPTION, method, ASN1_OBJECT), | 97 | { |
98 | ASN1_SIMPLE(ACCESS_DESCRIPTION, location, GENERAL_NAME) | 98 | .flags = 0, |
99 | } ASN1_SEQUENCE_END(ACCESS_DESCRIPTION) | 99 | .tag = 0, |
100 | .offset = offsetof(ACCESS_DESCRIPTION, method), | ||
101 | .field_name = "method", | ||
102 | .item = &ASN1_OBJECT_it, | ||
103 | }, | ||
104 | { | ||
105 | .flags = 0, | ||
106 | .tag = 0, | ||
107 | .offset = offsetof(ACCESS_DESCRIPTION, location), | ||
108 | .field_name = "location", | ||
109 | .item = &GENERAL_NAME_it, | ||
110 | }, | ||
111 | }; | ||
112 | |||
113 | const ASN1_ITEM ACCESS_DESCRIPTION_it = { | ||
114 | .itype = ASN1_ITYPE_SEQUENCE, | ||
115 | .utype = V_ASN1_SEQUENCE, | ||
116 | .templates = ACCESS_DESCRIPTION_seq_tt, | ||
117 | .tcount = sizeof(ACCESS_DESCRIPTION_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
118 | .funcs = NULL, | ||
119 | .size = sizeof(ACCESS_DESCRIPTION), | ||
120 | .sname = "ACCESS_DESCRIPTION", | ||
121 | }; | ||
100 | 122 | ||
101 | 123 | ||
102 | ACCESS_DESCRIPTION * | 124 | ACCESS_DESCRIPTION * |
@@ -124,10 +146,23 @@ ACCESS_DESCRIPTION_free(ACCESS_DESCRIPTION *a) | |||
124 | ASN1_item_free((ASN1_VALUE *)a, &ACCESS_DESCRIPTION_it); | 146 | ASN1_item_free((ASN1_VALUE *)a, &ACCESS_DESCRIPTION_it); |
125 | } | 147 | } |
126 | 148 | ||
127 | ASN1_ITEM_TEMPLATE(AUTHORITY_INFO_ACCESS) = | 149 | static const ASN1_TEMPLATE AUTHORITY_INFO_ACCESS_item_tt = { |
128 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, | 150 | .flags = ASN1_TFLG_SEQUENCE_OF, |
129 | ACCESS_DESCRIPTION) | 151 | .tag = 0, |
130 | ASN1_ITEM_TEMPLATE_END(AUTHORITY_INFO_ACCESS) | 152 | .offset = 0, |
153 | .field_name = "GeneralNames", | ||
154 | .item = &ACCESS_DESCRIPTION_it, | ||
155 | }; | ||
156 | |||
157 | const ASN1_ITEM AUTHORITY_INFO_ACCESS_it = { | ||
158 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
159 | .utype = -1, | ||
160 | .templates = &AUTHORITY_INFO_ACCESS_item_tt, | ||
161 | .tcount = 0, | ||
162 | .funcs = NULL, | ||
163 | .size = 0, | ||
164 | .sname = "AUTHORITY_INFO_ACCESS", | ||
165 | }; | ||
131 | 166 | ||
132 | 167 | ||
133 | AUTHORITY_INFO_ACCESS * | 168 | AUTHORITY_INFO_ACCESS * |
diff --git a/src/lib/libcrypto/x509v3/v3_ncons.c b/src/lib/libcrypto/x509v3/v3_ncons.c index 7cb272a58f..e154b6ba18 100644 --- a/src/lib/libcrypto/x509v3/v3_ncons.c +++ b/src/lib/libcrypto/x509v3/v3_ncons.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: v3_ncons.c,v 1.6 2015/02/10 05:43:09 jsing Exp $ */ | 1 | /* $OpenBSD: v3_ncons.c,v 1.7 2015/07/25 16:00:14 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. | 3 | * project. |
4 | */ | 4 | */ |
@@ -89,18 +89,56 @@ const X509V3_EXT_METHOD v3_name_constraints = { | |||
89 | NULL | 89 | NULL |
90 | }; | 90 | }; |
91 | 91 | ||
92 | ASN1_SEQUENCE(GENERAL_SUBTREE) = { | 92 | static const ASN1_TEMPLATE GENERAL_SUBTREE_seq_tt[] = { |
93 | ASN1_SIMPLE(GENERAL_SUBTREE, base, GENERAL_NAME), | 93 | { |
94 | ASN1_IMP_OPT(GENERAL_SUBTREE, minimum, ASN1_INTEGER, 0), | 94 | .flags = 0, |
95 | ASN1_IMP_OPT(GENERAL_SUBTREE, maximum, ASN1_INTEGER, 1) | 95 | .tag = 0, |
96 | } ASN1_SEQUENCE_END(GENERAL_SUBTREE) | 96 | .offset = offsetof(GENERAL_SUBTREE, base), |
97 | .field_name = "base", | ||
98 | .item = &GENERAL_NAME_it, | ||
99 | }, | ||
100 | { | ||
101 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
102 | .tag = 0, | ||
103 | .offset = offsetof(GENERAL_SUBTREE, minimum), | ||
104 | .field_name = "minimum", | ||
105 | .item = &ASN1_INTEGER_it, | ||
106 | }, | ||
107 | { | ||
108 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
109 | .tag = 1, | ||
110 | .offset = offsetof(GENERAL_SUBTREE, maximum), | ||
111 | .field_name = "maximum", | ||
112 | .item = &ASN1_INTEGER_it, | ||
113 | }, | ||
114 | }; | ||
115 | |||
116 | const ASN1_ITEM GENERAL_SUBTREE_it = { | ||
117 | .itype = ASN1_ITYPE_SEQUENCE, | ||
118 | .utype = V_ASN1_SEQUENCE, | ||
119 | .templates = GENERAL_SUBTREE_seq_tt, | ||
120 | .tcount = sizeof(GENERAL_SUBTREE_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
121 | .funcs = NULL, | ||
122 | .size = sizeof(GENERAL_SUBTREE), | ||
123 | .sname = "GENERAL_SUBTREE", | ||
124 | }; | ||
97 | 125 | ||
98 | ASN1_SEQUENCE(NAME_CONSTRAINTS) = { | 126 | static const ASN1_TEMPLATE NAME_CONSTRAINTS_seq_tt[] = { |
99 | ASN1_IMP_SEQUENCE_OF_OPT(NAME_CONSTRAINTS, permittedSubtrees, | 127 | ASN1_IMP_SEQUENCE_OF_OPT(NAME_CONSTRAINTS, permittedSubtrees, |
100 | GENERAL_SUBTREE, 0), | 128 | GENERAL_SUBTREE, 0), |
101 | ASN1_IMP_SEQUENCE_OF_OPT(NAME_CONSTRAINTS, excludedSubtrees, | 129 | ASN1_IMP_SEQUENCE_OF_OPT(NAME_CONSTRAINTS, excludedSubtrees, |
102 | GENERAL_SUBTREE, 1), | 130 | GENERAL_SUBTREE, 1), |
103 | } ASN1_SEQUENCE_END(NAME_CONSTRAINTS) | 131 | }; |
132 | |||
133 | const ASN1_ITEM NAME_CONSTRAINTS_it = { | ||
134 | .itype = ASN1_ITYPE_SEQUENCE, | ||
135 | .utype = V_ASN1_SEQUENCE, | ||
136 | .templates = NAME_CONSTRAINTS_seq_tt, | ||
137 | .tcount = sizeof(NAME_CONSTRAINTS_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
138 | .funcs = NULL, | ||
139 | .size = sizeof(NAME_CONSTRAINTS), | ||
140 | .sname = "NAME_CONSTRAINTS", | ||
141 | }; | ||
104 | 142 | ||
105 | 143 | ||
106 | 144 | ||
diff --git a/src/lib/libcrypto/x509v3/v3_pcia.c b/src/lib/libcrypto/x509v3/v3_pcia.c index 07e294e633..f9ec02c00a 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.5 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_pcia.c,v 1.6 2015/07/25 16:00:14 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 | */ |
@@ -38,10 +38,32 @@ | |||
38 | #include <openssl/asn1t.h> | 38 | #include <openssl/asn1t.h> |
39 | #include <openssl/x509v3.h> | 39 | #include <openssl/x509v3.h> |
40 | 40 | ||
41 | ASN1_SEQUENCE(PROXY_POLICY) = { | 41 | static const ASN1_TEMPLATE PROXY_POLICY_seq_tt[] = { |
42 | ASN1_SIMPLE(PROXY_POLICY, policyLanguage, ASN1_OBJECT), | 42 | { |
43 | ASN1_OPT(PROXY_POLICY, policy, ASN1_OCTET_STRING) | 43 | .flags = 0, |
44 | } ASN1_SEQUENCE_END(PROXY_POLICY) | 44 | .tag = 0, |
45 | .offset = offsetof(PROXY_POLICY, policyLanguage), | ||
46 | .field_name = "policyLanguage", | ||
47 | .item = &ASN1_OBJECT_it, | ||
48 | }, | ||
49 | { | ||
50 | .flags = ASN1_TFLG_OPTIONAL, | ||
51 | .tag = 0, | ||
52 | .offset = offsetof(PROXY_POLICY, policy), | ||
53 | .field_name = "policy", | ||
54 | .item = &ASN1_OCTET_STRING_it, | ||
55 | }, | ||
56 | }; | ||
57 | |||
58 | const ASN1_ITEM PROXY_POLICY_it = { | ||
59 | .itype = ASN1_ITYPE_SEQUENCE, | ||
60 | .utype = V_ASN1_SEQUENCE, | ||
61 | .templates = PROXY_POLICY_seq_tt, | ||
62 | .tcount = sizeof(PROXY_POLICY_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
63 | .funcs = NULL, | ||
64 | .size = sizeof(PROXY_POLICY), | ||
65 | .sname = "PROXY_POLICY", | ||
66 | }; | ||
45 | 67 | ||
46 | 68 | ||
47 | PROXY_POLICY * | 69 | PROXY_POLICY * |
@@ -69,11 +91,32 @@ PROXY_POLICY_free(PROXY_POLICY *a) | |||
69 | ASN1_item_free((ASN1_VALUE *)a, &PROXY_POLICY_it); | 91 | ASN1_item_free((ASN1_VALUE *)a, &PROXY_POLICY_it); |
70 | } | 92 | } |
71 | 93 | ||
72 | ASN1_SEQUENCE(PROXY_CERT_INFO_EXTENSION) = { | 94 | static const ASN1_TEMPLATE PROXY_CERT_INFO_EXTENSION_seq_tt[] = { |
73 | ASN1_OPT(PROXY_CERT_INFO_EXTENSION, pcPathLengthConstraint, | 95 | { |
74 | ASN1_INTEGER), | 96 | .flags = ASN1_TFLG_OPTIONAL, |
75 | ASN1_SIMPLE(PROXY_CERT_INFO_EXTENSION, proxyPolicy, PROXY_POLICY) | 97 | .tag = 0, |
76 | } ASN1_SEQUENCE_END(PROXY_CERT_INFO_EXTENSION) | 98 | .offset = offsetof(PROXY_CERT_INFO_EXTENSION, pcPathLengthConstraint), |
99 | .field_name = "pcPathLengthConstraint", | ||
100 | .item = &ASN1_INTEGER_it, | ||
101 | }, | ||
102 | { | ||
103 | .flags = 0, | ||
104 | .tag = 0, | ||
105 | .offset = offsetof(PROXY_CERT_INFO_EXTENSION, proxyPolicy), | ||
106 | .field_name = "proxyPolicy", | ||
107 | .item = &PROXY_POLICY_it, | ||
108 | }, | ||
109 | }; | ||
110 | |||
111 | const ASN1_ITEM PROXY_CERT_INFO_EXTENSION_it = { | ||
112 | .itype = ASN1_ITYPE_SEQUENCE, | ||
113 | .utype = V_ASN1_SEQUENCE, | ||
114 | .templates = PROXY_CERT_INFO_EXTENSION_seq_tt, | ||
115 | .tcount = sizeof(PROXY_CERT_INFO_EXTENSION_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
116 | .funcs = NULL, | ||
117 | .size = sizeof(PROXY_CERT_INFO_EXTENSION), | ||
118 | .sname = "PROXY_CERT_INFO_EXTENSION", | ||
119 | }; | ||
77 | 120 | ||
78 | 121 | ||
79 | PROXY_CERT_INFO_EXTENSION * | 122 | PROXY_CERT_INFO_EXTENSION * |
diff --git a/src/lib/libcrypto/x509v3/v3_pcons.c b/src/lib/libcrypto/x509v3/v3_pcons.c index 075efd8851..7bece06271 100644 --- a/src/lib/libcrypto/x509v3/v3_pcons.c +++ b/src/lib/libcrypto/x509v3/v3_pcons.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: v3_pcons.c,v 1.6 2015/02/10 05:43:09 jsing Exp $ */ | 1 | /* $OpenBSD: v3_pcons.c,v 1.7 2015/07/25 16:00:14 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. | 3 | * project. |
4 | */ | 4 | */ |
@@ -82,11 +82,27 @@ const X509V3_EXT_METHOD v3_policy_constraints = { | |||
82 | NULL | 82 | NULL |
83 | }; | 83 | }; |
84 | 84 | ||
85 | ASN1_SEQUENCE(POLICY_CONSTRAINTS) = { | 85 | static const ASN1_TEMPLATE POLICY_CONSTRAINTS_seq_tt[] = { |
86 | ASN1_IMP_OPT(POLICY_CONSTRAINTS, requireExplicitPolicy, | 86 | ASN1_IMP_OPT(POLICY_CONSTRAINTS, requireExplicitPolicy, |
87 | ASN1_INTEGER, 0), | 87 | ASN1_INTEGER, 0), |
88 | ASN1_IMP_OPT(POLICY_CONSTRAINTS, inhibitPolicyMapping, ASN1_INTEGER, 1) | 88 | { |
89 | } ASN1_SEQUENCE_END(POLICY_CONSTRAINTS) | 89 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, |
90 | .tag = 1, | ||
91 | .offset = offsetof(POLICY_CONSTRAINTS, inhibitPolicyMapping), | ||
92 | .field_name = "inhibitPolicyMapping", | ||
93 | .item = &ASN1_INTEGER_it, | ||
94 | }, | ||
95 | }; | ||
96 | |||
97 | const ASN1_ITEM POLICY_CONSTRAINTS_it = { | ||
98 | .itype = ASN1_ITYPE_SEQUENCE, | ||
99 | .utype = V_ASN1_SEQUENCE, | ||
100 | .templates = POLICY_CONSTRAINTS_seq_tt, | ||
101 | .tcount = sizeof(POLICY_CONSTRAINTS_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
102 | .funcs = NULL, | ||
103 | .size = sizeof(POLICY_CONSTRAINTS), | ||
104 | .sname = "POLICY_CONSTRAINTS", | ||
105 | }; | ||
90 | 106 | ||
91 | 107 | ||
92 | POLICY_CONSTRAINTS * | 108 | POLICY_CONSTRAINTS * |
diff --git a/src/lib/libcrypto/x509v3/v3_pku.c b/src/lib/libcrypto/x509v3/v3_pku.c index 4bce07f09c..360e3daa58 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.10 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_pku.c,v 1.11 2015/07/25 16:00:14 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 | */ |
@@ -75,10 +75,32 @@ const X509V3_EXT_METHOD v3_pkey_usage_period = { | |||
75 | NULL | 75 | NULL |
76 | }; | 76 | }; |
77 | 77 | ||
78 | ASN1_SEQUENCE(PKEY_USAGE_PERIOD) = { | 78 | static const ASN1_TEMPLATE PKEY_USAGE_PERIOD_seq_tt[] = { |
79 | ASN1_IMP_OPT(PKEY_USAGE_PERIOD, notBefore, ASN1_GENERALIZEDTIME, 0), | 79 | { |
80 | ASN1_IMP_OPT(PKEY_USAGE_PERIOD, notAfter, ASN1_GENERALIZEDTIME, 1) | 80 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, |
81 | } ASN1_SEQUENCE_END(PKEY_USAGE_PERIOD) | 81 | .tag = 0, |
82 | .offset = offsetof(PKEY_USAGE_PERIOD, notBefore), | ||
83 | .field_name = "notBefore", | ||
84 | .item = &ASN1_GENERALIZEDTIME_it, | ||
85 | }, | ||
86 | { | ||
87 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
88 | .tag = 1, | ||
89 | .offset = offsetof(PKEY_USAGE_PERIOD, notAfter), | ||
90 | .field_name = "notAfter", | ||
91 | .item = &ASN1_GENERALIZEDTIME_it, | ||
92 | }, | ||
93 | }; | ||
94 | |||
95 | const ASN1_ITEM PKEY_USAGE_PERIOD_it = { | ||
96 | .itype = ASN1_ITYPE_SEQUENCE, | ||
97 | .utype = V_ASN1_SEQUENCE, | ||
98 | .templates = PKEY_USAGE_PERIOD_seq_tt, | ||
99 | .tcount = sizeof(PKEY_USAGE_PERIOD_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
100 | .funcs = NULL, | ||
101 | .size = sizeof(PKEY_USAGE_PERIOD), | ||
102 | .sname = "PKEY_USAGE_PERIOD", | ||
103 | }; | ||
82 | 104 | ||
83 | 105 | ||
84 | PKEY_USAGE_PERIOD * | 106 | PKEY_USAGE_PERIOD * |
diff --git a/src/lib/libcrypto/x509v3/v3_pmaps.c b/src/lib/libcrypto/x509v3/v3_pmaps.c index e8099d7f12..32ab04eda9 100644 --- a/src/lib/libcrypto/x509v3/v3_pmaps.c +++ b/src/lib/libcrypto/x509v3/v3_pmaps.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: v3_pmaps.c,v 1.7 2015/02/13 01:16:26 beck Exp $ */ | 1 | /* $OpenBSD: v3_pmaps.c,v 1.8 2015/07/25 16:00:14 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. | 3 | * project. |
4 | */ | 4 | */ |
@@ -80,15 +80,50 @@ const X509V3_EXT_METHOD v3_policy_mappings = { | |||
80 | NULL | 80 | NULL |
81 | }; | 81 | }; |
82 | 82 | ||
83 | ASN1_SEQUENCE(POLICY_MAPPING) = { | 83 | static const ASN1_TEMPLATE POLICY_MAPPING_seq_tt[] = { |
84 | ASN1_SIMPLE(POLICY_MAPPING, issuerDomainPolicy, ASN1_OBJECT), | 84 | { |
85 | ASN1_SIMPLE(POLICY_MAPPING, subjectDomainPolicy, ASN1_OBJECT) | 85 | .flags = 0, |
86 | } ASN1_SEQUENCE_END(POLICY_MAPPING) | 86 | .tag = 0, |
87 | .offset = offsetof(POLICY_MAPPING, issuerDomainPolicy), | ||
88 | .field_name = "issuerDomainPolicy", | ||
89 | .item = &ASN1_OBJECT_it, | ||
90 | }, | ||
91 | { | ||
92 | .flags = 0, | ||
93 | .tag = 0, | ||
94 | .offset = offsetof(POLICY_MAPPING, subjectDomainPolicy), | ||
95 | .field_name = "subjectDomainPolicy", | ||
96 | .item = &ASN1_OBJECT_it, | ||
97 | }, | ||
98 | }; | ||
99 | |||
100 | const ASN1_ITEM POLICY_MAPPING_it = { | ||
101 | .itype = ASN1_ITYPE_SEQUENCE, | ||
102 | .utype = V_ASN1_SEQUENCE, | ||
103 | .templates = POLICY_MAPPING_seq_tt, | ||
104 | .tcount = sizeof(POLICY_MAPPING_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
105 | .funcs = NULL, | ||
106 | .size = sizeof(POLICY_MAPPING), | ||
107 | .sname = "POLICY_MAPPING", | ||
108 | }; | ||
87 | 109 | ||
88 | ASN1_ITEM_TEMPLATE(POLICY_MAPPINGS) = | 110 | static const ASN1_TEMPLATE POLICY_MAPPINGS_item_tt = { |
89 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, POLICY_MAPPINGS, | 111 | .flags = ASN1_TFLG_SEQUENCE_OF, |
90 | POLICY_MAPPING) | 112 | .tag = 0, |
91 | ASN1_ITEM_TEMPLATE_END(POLICY_MAPPINGS) | 113 | .offset = 0, |
114 | .field_name = "POLICY_MAPPINGS", | ||
115 | .item = &POLICY_MAPPING_it, | ||
116 | }; | ||
117 | |||
118 | const ASN1_ITEM POLICY_MAPPINGS_it = { | ||
119 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
120 | .utype = -1, | ||
121 | .templates = &POLICY_MAPPINGS_item_tt, | ||
122 | .tcount = 0, | ||
123 | .funcs = NULL, | ||
124 | .size = 0, | ||
125 | .sname = "POLICY_MAPPINGS", | ||
126 | }; | ||
92 | 127 | ||
93 | 128 | ||
94 | POLICY_MAPPING * | 129 | POLICY_MAPPING * |
diff --git a/src/lib/libcrypto/x509v3/v3_sxnet.c b/src/lib/libcrypto/x509v3/v3_sxnet.c index 7029aad916..d87dd34339 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.13 2015/02/10 08:33:10 jsing Exp $ */ | 1 | /* $OpenBSD: v3_sxnet.c,v 1.14 2015/07/25 16:00:14 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 | */ |
@@ -90,10 +90,32 @@ const X509V3_EXT_METHOD v3_sxnet = { | |||
90 | NULL | 90 | NULL |
91 | }; | 91 | }; |
92 | 92 | ||
93 | ASN1_SEQUENCE(SXNETID) = { | 93 | static const ASN1_TEMPLATE SXNETID_seq_tt[] = { |
94 | ASN1_SIMPLE(SXNETID, zone, ASN1_INTEGER), | 94 | { |
95 | ASN1_SIMPLE(SXNETID, user, ASN1_OCTET_STRING) | 95 | .flags = 0, |
96 | } ASN1_SEQUENCE_END(SXNETID) | 96 | .tag = 0, |
97 | .offset = offsetof(SXNETID, zone), | ||
98 | .field_name = "zone", | ||
99 | .item = &ASN1_INTEGER_it, | ||
100 | }, | ||
101 | { | ||
102 | .flags = 0, | ||
103 | .tag = 0, | ||
104 | .offset = offsetof(SXNETID, user), | ||
105 | .field_name = "user", | ||
106 | .item = &ASN1_OCTET_STRING_it, | ||
107 | }, | ||
108 | }; | ||
109 | |||
110 | const ASN1_ITEM SXNETID_it = { | ||
111 | .itype = ASN1_ITYPE_SEQUENCE, | ||
112 | .utype = V_ASN1_SEQUENCE, | ||
113 | .templates = SXNETID_seq_tt, | ||
114 | .tcount = sizeof(SXNETID_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
115 | .funcs = NULL, | ||
116 | .size = sizeof(SXNETID), | ||
117 | .sname = "SXNETID", | ||
118 | }; | ||
97 | 119 | ||
98 | 120 | ||
99 | SXNETID * | 121 | SXNETID * |
@@ -121,10 +143,32 @@ SXNETID_free(SXNETID *a) | |||
121 | ASN1_item_free((ASN1_VALUE *)a, &SXNETID_it); | 143 | ASN1_item_free((ASN1_VALUE *)a, &SXNETID_it); |
122 | } | 144 | } |
123 | 145 | ||
124 | ASN1_SEQUENCE(SXNET) = { | 146 | static const ASN1_TEMPLATE SXNET_seq_tt[] = { |
125 | ASN1_SIMPLE(SXNET, version, ASN1_INTEGER), | 147 | { |
126 | ASN1_SEQUENCE_OF(SXNET, ids, SXNETID) | 148 | .flags = 0, |
127 | } ASN1_SEQUENCE_END(SXNET) | 149 | .tag = 0, |
150 | .offset = offsetof(SXNET, version), | ||
151 | .field_name = "version", | ||
152 | .item = &ASN1_INTEGER_it, | ||
153 | }, | ||
154 | { | ||
155 | .flags = ASN1_TFLG_SEQUENCE_OF, | ||
156 | .tag = 0, | ||
157 | .offset = offsetof(SXNET, ids), | ||
158 | .field_name = "ids", | ||
159 | .item = &SXNETID_it, | ||
160 | }, | ||
161 | }; | ||
162 | |||
163 | const ASN1_ITEM SXNET_it = { | ||
164 | .itype = ASN1_ITYPE_SEQUENCE, | ||
165 | .utype = V_ASN1_SEQUENCE, | ||
166 | .templates = SXNET_seq_tt, | ||
167 | .tcount = sizeof(SXNET_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
168 | .funcs = NULL, | ||
169 | .size = sizeof(SXNET), | ||
170 | .sname = "SXNET", | ||
171 | }; | ||
128 | 172 | ||
129 | 173 | ||
130 | SXNET * | 174 | SXNET * |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_akeya.c b/src/lib/libssl/src/crypto/x509v3/v3_akeya.c index 1848c0911e..83ef1b5838 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.6 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_akeya.c,v 1.7 2015/07/25 16:00:14 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 | */ |
@@ -63,11 +63,39 @@ | |||
63 | #include <openssl/conf.h> | 63 | #include <openssl/conf.h> |
64 | #include <openssl/x509v3.h> | 64 | #include <openssl/x509v3.h> |
65 | 65 | ||
66 | ASN1_SEQUENCE(AUTHORITY_KEYID) = { | 66 | static const ASN1_TEMPLATE AUTHORITY_KEYID_seq_tt[] = { |
67 | ASN1_IMP_OPT(AUTHORITY_KEYID, keyid, ASN1_OCTET_STRING, 0), | 67 | { |
68 | ASN1_IMP_SEQUENCE_OF_OPT(AUTHORITY_KEYID, issuer, GENERAL_NAME, 1), | 68 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, |
69 | ASN1_IMP_OPT(AUTHORITY_KEYID, serial, ASN1_INTEGER, 2) | 69 | .tag = 0, |
70 | } ASN1_SEQUENCE_END(AUTHORITY_KEYID) | 70 | .offset = offsetof(AUTHORITY_KEYID, keyid), |
71 | .field_name = "keyid", | ||
72 | .item = &ASN1_OCTET_STRING_it, | ||
73 | }, | ||
74 | { | ||
75 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_SEQUENCE_OF | ASN1_TFLG_OPTIONAL, | ||
76 | .tag = 1, | ||
77 | .offset = offsetof(AUTHORITY_KEYID, issuer), | ||
78 | .field_name = "issuer", | ||
79 | .item = &GENERAL_NAME_it, | ||
80 | }, | ||
81 | { | ||
82 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
83 | .tag = 2, | ||
84 | .offset = offsetof(AUTHORITY_KEYID, serial), | ||
85 | .field_name = "serial", | ||
86 | .item = &ASN1_INTEGER_it, | ||
87 | }, | ||
88 | }; | ||
89 | |||
90 | const ASN1_ITEM AUTHORITY_KEYID_it = { | ||
91 | .itype = ASN1_ITYPE_SEQUENCE, | ||
92 | .utype = V_ASN1_SEQUENCE, | ||
93 | .templates = AUTHORITY_KEYID_seq_tt, | ||
94 | .tcount = sizeof(AUTHORITY_KEYID_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
95 | .funcs = NULL, | ||
96 | .size = sizeof(AUTHORITY_KEYID), | ||
97 | .sname = "AUTHORITY_KEYID", | ||
98 | }; | ||
71 | 99 | ||
72 | 100 | ||
73 | AUTHORITY_KEYID * | 101 | AUTHORITY_KEYID * |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_bcons.c b/src/lib/libssl/src/crypto/x509v3/v3_bcons.c index fb3f6c7619..eea63b760a 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.11 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_bcons.c,v 1.12 2015/07/25 16:00:14 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 | */ |
@@ -81,10 +81,32 @@ const X509V3_EXT_METHOD v3_bcons = { | |||
81 | NULL | 81 | NULL |
82 | }; | 82 | }; |
83 | 83 | ||
84 | ASN1_SEQUENCE(BASIC_CONSTRAINTS) = { | 84 | static const ASN1_TEMPLATE BASIC_CONSTRAINTS_seq_tt[] = { |
85 | ASN1_OPT(BASIC_CONSTRAINTS, ca, ASN1_FBOOLEAN), | 85 | { |
86 | ASN1_OPT(BASIC_CONSTRAINTS, pathlen, ASN1_INTEGER) | 86 | .flags = ASN1_TFLG_OPTIONAL, |
87 | } ASN1_SEQUENCE_END(BASIC_CONSTRAINTS) | 87 | .tag = 0, |
88 | .offset = offsetof(BASIC_CONSTRAINTS, ca), | ||
89 | .field_name = "ca", | ||
90 | .item = &ASN1_FBOOLEAN_it, | ||
91 | }, | ||
92 | { | ||
93 | .flags = ASN1_TFLG_OPTIONAL, | ||
94 | .tag = 0, | ||
95 | .offset = offsetof(BASIC_CONSTRAINTS, pathlen), | ||
96 | .field_name = "pathlen", | ||
97 | .item = &ASN1_INTEGER_it, | ||
98 | }, | ||
99 | }; | ||
100 | |||
101 | const ASN1_ITEM BASIC_CONSTRAINTS_it = { | ||
102 | .itype = ASN1_ITYPE_SEQUENCE, | ||
103 | .utype = V_ASN1_SEQUENCE, | ||
104 | .templates = BASIC_CONSTRAINTS_seq_tt, | ||
105 | .tcount = sizeof(BASIC_CONSTRAINTS_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
106 | .funcs = NULL, | ||
107 | .size = sizeof(BASIC_CONSTRAINTS), | ||
108 | .sname = "BASIC_CONSTRAINTS", | ||
109 | }; | ||
88 | 110 | ||
89 | 111 | ||
90 | BASIC_CONSTRAINTS * | 112 | BASIC_CONSTRAINTS * |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_cpols.c b/src/lib/libssl/src/crypto/x509v3/v3_cpols.c index 61e6b3ba47..4244f03851 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.20 2015/07/15 17:00:35 miod Exp $ */ | 1 | /* $OpenBSD: v3_cpols.c,v 1.21 2015/07/25 16:00:14 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 | */ |
@@ -92,10 +92,23 @@ const X509V3_EXT_METHOD v3_cpols = { | |||
92 | NULL | 92 | NULL |
93 | }; | 93 | }; |
94 | 94 | ||
95 | ASN1_ITEM_TEMPLATE(CERTIFICATEPOLICIES) = | 95 | static const ASN1_TEMPLATE CERTIFICATEPOLICIES_item_tt = { |
96 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, CERTIFICATEPOLICIES, | 96 | .flags = ASN1_TFLG_SEQUENCE_OF, |
97 | POLICYINFO) | 97 | .tag = 0, |
98 | ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES) | 98 | .offset = 0, |
99 | .field_name = "CERTIFICATEPOLICIES", | ||
100 | .item = &POLICYINFO_it, | ||
101 | }; | ||
102 | |||
103 | const ASN1_ITEM CERTIFICATEPOLICIES_it = { | ||
104 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
105 | .utype = -1, | ||
106 | .templates = &CERTIFICATEPOLICIES_item_tt, | ||
107 | .tcount = 0, | ||
108 | .funcs = NULL, | ||
109 | .size = 0, | ||
110 | .sname = "CERTIFICATEPOLICIES", | ||
111 | }; | ||
99 | 112 | ||
100 | 113 | ||
101 | CERTIFICATEPOLICIES * | 114 | CERTIFICATEPOLICIES * |
@@ -123,10 +136,32 @@ CERTIFICATEPOLICIES_free(CERTIFICATEPOLICIES *a) | |||
123 | ASN1_item_free((ASN1_VALUE *)a, &CERTIFICATEPOLICIES_it); | 136 | ASN1_item_free((ASN1_VALUE *)a, &CERTIFICATEPOLICIES_it); |
124 | } | 137 | } |
125 | 138 | ||
126 | ASN1_SEQUENCE(POLICYINFO) = { | 139 | static const ASN1_TEMPLATE POLICYINFO_seq_tt[] = { |
127 | ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT), | 140 | { |
128 | ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO) | 141 | .flags = 0, |
129 | } ASN1_SEQUENCE_END(POLICYINFO) | 142 | .tag = 0, |
143 | .offset = offsetof(POLICYINFO, policyid), | ||
144 | .field_name = "policyid", | ||
145 | .item = &ASN1_OBJECT_it, | ||
146 | }, | ||
147 | { | ||
148 | .flags = ASN1_TFLG_SEQUENCE_OF | ASN1_TFLG_OPTIONAL, | ||
149 | .tag = 0, | ||
150 | .offset = offsetof(POLICYINFO, qualifiers), | ||
151 | .field_name = "qualifiers", | ||
152 | .item = &POLICYQUALINFO_it, | ||
153 | }, | ||
154 | }; | ||
155 | |||
156 | const ASN1_ITEM POLICYINFO_it = { | ||
157 | .itype = ASN1_ITYPE_SEQUENCE, | ||
158 | .utype = V_ASN1_SEQUENCE, | ||
159 | .templates = POLICYINFO_seq_tt, | ||
160 | .tcount = sizeof(POLICYINFO_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
161 | .funcs = NULL, | ||
162 | .size = sizeof(POLICYINFO), | ||
163 | .sname = "POLICYINFO", | ||
164 | }; | ||
130 | 165 | ||
131 | 166 | ||
132 | POLICYINFO * | 167 | POLICYINFO * |
@@ -154,18 +189,75 @@ POLICYINFO_free(POLICYINFO *a) | |||
154 | ASN1_item_free((ASN1_VALUE *)a, &POLICYINFO_it); | 189 | ASN1_item_free((ASN1_VALUE *)a, &POLICYINFO_it); |
155 | } | 190 | } |
156 | 191 | ||
157 | ASN1_ADB_TEMPLATE(policydefault) = | 192 | static const ASN1_TEMPLATE policydefault_tt = { |
158 | ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY); | 193 | .flags = 0, |
194 | .tag = 0, | ||
195 | .offset = offsetof(POLICYQUALINFO, d.other), | ||
196 | .field_name = "d.other", | ||
197 | .item = &ASN1_ANY_it, | ||
198 | }; | ||
159 | 199 | ||
160 | ASN1_ADB(POLICYQUALINFO) = { | 200 | static const ASN1_ADB_TABLE POLICYQUALINFO_adbtbl[] = { |
161 | ADB_ENTRY(NID_id_qt_cps, ASN1_SIMPLE(POLICYQUALINFO, d.cpsuri, ASN1_IA5STRING)), | 201 | { |
162 | ADB_ENTRY(NID_id_qt_unotice, ASN1_SIMPLE(POLICYQUALINFO, d.usernotice, USERNOTICE)) | 202 | .value = NID_id_qt_cps, |
163 | } ASN1_ADB_END(POLICYQUALINFO, 0, pqualid, 0, &policydefault_tt, NULL); | 203 | .tt = { |
204 | .flags = 0, | ||
205 | .tag = 0, | ||
206 | .offset = offsetof(POLICYQUALINFO, d.cpsuri), | ||
207 | .field_name = "d.cpsuri", | ||
208 | .item = &ASN1_IA5STRING_it, | ||
209 | }, | ||
210 | |||
211 | }, | ||
212 | { | ||
213 | .value = NID_id_qt_unotice, | ||
214 | .tt = { | ||
215 | .flags = 0, | ||
216 | .tag = 0, | ||
217 | .offset = offsetof(POLICYQUALINFO, d.usernotice), | ||
218 | .field_name = "d.usernotice", | ||
219 | .item = &USERNOTICE_it, | ||
220 | }, | ||
221 | |||
222 | }, | ||
223 | }; | ||
164 | 224 | ||
165 | ASN1_SEQUENCE(POLICYQUALINFO) = { | 225 | static const ASN1_ADB POLICYQUALINFO_adb = { |
166 | ASN1_SIMPLE(POLICYQUALINFO, pqualid, ASN1_OBJECT), | 226 | .flags = 0, |
167 | ASN1_ADB_OBJECT(POLICYQUALINFO) | 227 | .offset = offsetof(POLICYQUALINFO, pqualid), |
168 | } ASN1_SEQUENCE_END(POLICYQUALINFO) | 228 | .app_items = 0, |
229 | .tbl = POLICYQUALINFO_adbtbl, | ||
230 | .tblcount = sizeof(POLICYQUALINFO_adbtbl) / sizeof(ASN1_ADB_TABLE), | ||
231 | .default_tt = &policydefault_tt, | ||
232 | .null_tt = NULL, | ||
233 | }; | ||
234 | |||
235 | static const ASN1_TEMPLATE POLICYQUALINFO_seq_tt[] = { | ||
236 | { | ||
237 | .flags = 0, | ||
238 | .tag = 0, | ||
239 | .offset = offsetof(POLICYQUALINFO, pqualid), | ||
240 | .field_name = "pqualid", | ||
241 | .item = &ASN1_OBJECT_it, | ||
242 | }, | ||
243 | { | ||
244 | .flags = ASN1_TFLG_ADB_OID, | ||
245 | .tag = -1, | ||
246 | .offset = 0, | ||
247 | .field_name = "POLICYQUALINFO", | ||
248 | .item = (const ASN1_ITEM *)&POLICYQUALINFO_adb, | ||
249 | }, | ||
250 | }; | ||
251 | |||
252 | const ASN1_ITEM POLICYQUALINFO_it = { | ||
253 | .itype = ASN1_ITYPE_SEQUENCE, | ||
254 | .utype = V_ASN1_SEQUENCE, | ||
255 | .templates = POLICYQUALINFO_seq_tt, | ||
256 | .tcount = sizeof(POLICYQUALINFO_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
257 | .funcs = NULL, | ||
258 | .size = sizeof(POLICYQUALINFO), | ||
259 | .sname = "POLICYQUALINFO", | ||
260 | }; | ||
169 | 261 | ||
170 | 262 | ||
171 | POLICYQUALINFO * | 263 | POLICYQUALINFO * |
@@ -193,10 +285,32 @@ POLICYQUALINFO_free(POLICYQUALINFO *a) | |||
193 | ASN1_item_free((ASN1_VALUE *)a, &POLICYQUALINFO_it); | 285 | ASN1_item_free((ASN1_VALUE *)a, &POLICYQUALINFO_it); |
194 | } | 286 | } |
195 | 287 | ||
196 | ASN1_SEQUENCE(USERNOTICE) = { | 288 | static const ASN1_TEMPLATE USERNOTICE_seq_tt[] = { |
197 | ASN1_OPT(USERNOTICE, noticeref, NOTICEREF), | 289 | { |
198 | ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT) | 290 | .flags = ASN1_TFLG_OPTIONAL, |
199 | } ASN1_SEQUENCE_END(USERNOTICE) | 291 | .tag = 0, |
292 | .offset = offsetof(USERNOTICE, noticeref), | ||
293 | .field_name = "noticeref", | ||
294 | .item = &NOTICEREF_it, | ||
295 | }, | ||
296 | { | ||
297 | .flags = ASN1_TFLG_OPTIONAL, | ||
298 | .tag = 0, | ||
299 | .offset = offsetof(USERNOTICE, exptext), | ||
300 | .field_name = "exptext", | ||
301 | .item = &DISPLAYTEXT_it, | ||
302 | }, | ||
303 | }; | ||
304 | |||
305 | const ASN1_ITEM USERNOTICE_it = { | ||
306 | .itype = ASN1_ITYPE_SEQUENCE, | ||
307 | .utype = V_ASN1_SEQUENCE, | ||
308 | .templates = USERNOTICE_seq_tt, | ||
309 | .tcount = sizeof(USERNOTICE_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
310 | .funcs = NULL, | ||
311 | .size = sizeof(USERNOTICE), | ||
312 | .sname = "USERNOTICE", | ||
313 | }; | ||
200 | 314 | ||
201 | 315 | ||
202 | USERNOTICE * | 316 | USERNOTICE * |
@@ -224,10 +338,32 @@ USERNOTICE_free(USERNOTICE *a) | |||
224 | ASN1_item_free((ASN1_VALUE *)a, &USERNOTICE_it); | 338 | ASN1_item_free((ASN1_VALUE *)a, &USERNOTICE_it); |
225 | } | 339 | } |
226 | 340 | ||
227 | ASN1_SEQUENCE(NOTICEREF) = { | 341 | static const ASN1_TEMPLATE NOTICEREF_seq_tt[] = { |
228 | ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT), | 342 | { |
229 | ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER) | 343 | .flags = 0, |
230 | } ASN1_SEQUENCE_END(NOTICEREF) | 344 | .tag = 0, |
345 | .offset = offsetof(NOTICEREF, organization), | ||
346 | .field_name = "organization", | ||
347 | .item = &DISPLAYTEXT_it, | ||
348 | }, | ||
349 | { | ||
350 | .flags = ASN1_TFLG_SEQUENCE_OF, | ||
351 | .tag = 0, | ||
352 | .offset = offsetof(NOTICEREF, noticenos), | ||
353 | .field_name = "noticenos", | ||
354 | .item = &ASN1_INTEGER_it, | ||
355 | }, | ||
356 | }; | ||
357 | |||
358 | const ASN1_ITEM NOTICEREF_it = { | ||
359 | .itype = ASN1_ITYPE_SEQUENCE, | ||
360 | .utype = V_ASN1_SEQUENCE, | ||
361 | .templates = NOTICEREF_seq_tt, | ||
362 | .tcount = sizeof(NOTICEREF_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
363 | .funcs = NULL, | ||
364 | .size = sizeof(NOTICEREF), | ||
365 | .sname = "NOTICEREF", | ||
366 | }; | ||
231 | 367 | ||
232 | 368 | ||
233 | NOTICEREF * | 369 | NOTICEREF * |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_crld.c b/src/lib/libssl/src/crypto/x509v3/v3_crld.c index b2e4370658..9c4017968d 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.16 2015/02/14 15:19:04 miod Exp $ */ | 1 | /* $OpenBSD: v3_crld.c,v 1.17 2015/07/25 16:00:14 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 | */ |
@@ -374,10 +374,34 @@ dpn_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg) | |||
374 | } | 374 | } |
375 | 375 | ||
376 | 376 | ||
377 | ASN1_CHOICE_cb(DIST_POINT_NAME, dpn_cb) = { | 377 | static const ASN1_AUX DIST_POINT_NAME_aux = { |
378 | ASN1_IMP_SEQUENCE_OF(DIST_POINT_NAME, name.fullname, GENERAL_NAME, 0), | 378 | .app_data = NULL, |
379 | .flags = 0, | ||
380 | .ref_offset = 0, | ||
381 | .ref_lock = 0, | ||
382 | .asn1_cb = dpn_cb, | ||
383 | .enc_offset = 0, | ||
384 | }; | ||
385 | static const ASN1_TEMPLATE DIST_POINT_NAME_ch_tt[] = { | ||
386 | { | ||
387 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_SEQUENCE_OF, | ||
388 | .tag = 0, | ||
389 | .offset = offsetof(DIST_POINT_NAME, name.fullname), | ||
390 | .field_name = "name.fullname", | ||
391 | .item = &GENERAL_NAME_it, | ||
392 | }, | ||
379 | ASN1_IMP_SET_OF(DIST_POINT_NAME, name.relativename, X509_NAME_ENTRY, 1) | 393 | ASN1_IMP_SET_OF(DIST_POINT_NAME, name.relativename, X509_NAME_ENTRY, 1) |
380 | } ASN1_CHOICE_END_cb(DIST_POINT_NAME, DIST_POINT_NAME, type) | 394 | }; |
395 | |||
396 | const ASN1_ITEM DIST_POINT_NAME_it = { | ||
397 | .itype = ASN1_ITYPE_CHOICE, | ||
398 | .utype = offsetof(DIST_POINT_NAME, type), | ||
399 | .templates = DIST_POINT_NAME_ch_tt, | ||
400 | .tcount = sizeof(DIST_POINT_NAME_ch_tt) / sizeof(ASN1_TEMPLATE), | ||
401 | .funcs = &DIST_POINT_NAME_aux, | ||
402 | .size = sizeof(DIST_POINT_NAME), | ||
403 | .sname = "DIST_POINT_NAME", | ||
404 | }; | ||
381 | 405 | ||
382 | 406 | ||
383 | 407 | ||
@@ -406,11 +430,39 @@ DIST_POINT_NAME_free(DIST_POINT_NAME *a) | |||
406 | ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_NAME_it); | 430 | ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_NAME_it); |
407 | } | 431 | } |
408 | 432 | ||
409 | ASN1_SEQUENCE(DIST_POINT) = { | 433 | static const ASN1_TEMPLATE DIST_POINT_seq_tt[] = { |
410 | ASN1_EXP_OPT(DIST_POINT, distpoint, DIST_POINT_NAME, 0), | 434 | { |
411 | ASN1_IMP_OPT(DIST_POINT, reasons, ASN1_BIT_STRING, 1), | 435 | .flags = ASN1_TFLG_EXPLICIT | ASN1_TFLG_OPTIONAL, |
412 | ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2) | 436 | .tag = 0, |
413 | } ASN1_SEQUENCE_END(DIST_POINT) | 437 | .offset = offsetof(DIST_POINT, distpoint), |
438 | .field_name = "distpoint", | ||
439 | .item = &DIST_POINT_NAME_it, | ||
440 | }, | ||
441 | { | ||
442 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
443 | .tag = 1, | ||
444 | .offset = offsetof(DIST_POINT, reasons), | ||
445 | .field_name = "reasons", | ||
446 | .item = &ASN1_BIT_STRING_it, | ||
447 | }, | ||
448 | { | ||
449 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_SEQUENCE_OF | ASN1_TFLG_OPTIONAL, | ||
450 | .tag = 2, | ||
451 | .offset = offsetof(DIST_POINT, CRLissuer), | ||
452 | .field_name = "CRLissuer", | ||
453 | .item = &GENERAL_NAME_it, | ||
454 | }, | ||
455 | }; | ||
456 | |||
457 | const ASN1_ITEM DIST_POINT_it = { | ||
458 | .itype = ASN1_ITYPE_SEQUENCE, | ||
459 | .utype = V_ASN1_SEQUENCE, | ||
460 | .templates = DIST_POINT_seq_tt, | ||
461 | .tcount = sizeof(DIST_POINT_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
462 | .funcs = NULL, | ||
463 | .size = sizeof(DIST_POINT), | ||
464 | .sname = "DIST_POINT", | ||
465 | }; | ||
414 | 466 | ||
415 | 467 | ||
416 | DIST_POINT * | 468 | DIST_POINT * |
@@ -438,10 +490,23 @@ DIST_POINT_free(DIST_POINT *a) | |||
438 | ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_it); | 490 | ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_it); |
439 | } | 491 | } |
440 | 492 | ||
441 | ASN1_ITEM_TEMPLATE(CRL_DIST_POINTS) = | 493 | static const ASN1_TEMPLATE CRL_DIST_POINTS_item_tt = { |
442 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, CRLDistributionPoints, | 494 | .flags = ASN1_TFLG_SEQUENCE_OF, |
443 | DIST_POINT) | 495 | .tag = 0, |
444 | ASN1_ITEM_TEMPLATE_END(CRL_DIST_POINTS) | 496 | .offset = 0, |
497 | .field_name = "CRLDistributionPoints", | ||
498 | .item = &DIST_POINT_it, | ||
499 | }; | ||
500 | |||
501 | const ASN1_ITEM CRL_DIST_POINTS_it = { | ||
502 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
503 | .utype = -1, | ||
504 | .templates = &CRL_DIST_POINTS_item_tt, | ||
505 | .tcount = 0, | ||
506 | .funcs = NULL, | ||
507 | .size = 0, | ||
508 | .sname = "CRL_DIST_POINTS", | ||
509 | }; | ||
445 | 510 | ||
446 | 511 | ||
447 | CRL_DIST_POINTS * | 512 | CRL_DIST_POINTS * |
@@ -469,14 +534,60 @@ CRL_DIST_POINTS_free(CRL_DIST_POINTS *a) | |||
469 | ASN1_item_free((ASN1_VALUE *)a, &CRL_DIST_POINTS_it); | 534 | ASN1_item_free((ASN1_VALUE *)a, &CRL_DIST_POINTS_it); |
470 | } | 535 | } |
471 | 536 | ||
472 | ASN1_SEQUENCE(ISSUING_DIST_POINT) = { | 537 | static const ASN1_TEMPLATE ISSUING_DIST_POINT_seq_tt[] = { |
473 | ASN1_EXP_OPT(ISSUING_DIST_POINT, distpoint, DIST_POINT_NAME, 0), | 538 | { |
474 | ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyuser, ASN1_FBOOLEAN, 1), | 539 | .flags = ASN1_TFLG_EXPLICIT | ASN1_TFLG_OPTIONAL, |
475 | ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyCA, ASN1_FBOOLEAN, 2), | 540 | .tag = 0, |
476 | ASN1_IMP_OPT(ISSUING_DIST_POINT, onlysomereasons, ASN1_BIT_STRING, 3), | 541 | .offset = offsetof(ISSUING_DIST_POINT, distpoint), |
477 | ASN1_IMP_OPT(ISSUING_DIST_POINT, indirectCRL, ASN1_FBOOLEAN, 4), | 542 | .field_name = "distpoint", |
478 | ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5) | 543 | .item = &DIST_POINT_NAME_it, |
479 | } ASN1_SEQUENCE_END(ISSUING_DIST_POINT) | 544 | }, |
545 | { | ||
546 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
547 | .tag = 1, | ||
548 | .offset = offsetof(ISSUING_DIST_POINT, onlyuser), | ||
549 | .field_name = "onlyuser", | ||
550 | .item = &ASN1_FBOOLEAN_it, | ||
551 | }, | ||
552 | { | ||
553 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
554 | .tag = 2, | ||
555 | .offset = offsetof(ISSUING_DIST_POINT, onlyCA), | ||
556 | .field_name = "onlyCA", | ||
557 | .item = &ASN1_FBOOLEAN_it, | ||
558 | }, | ||
559 | { | ||
560 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
561 | .tag = 3, | ||
562 | .offset = offsetof(ISSUING_DIST_POINT, onlysomereasons), | ||
563 | .field_name = "onlysomereasons", | ||
564 | .item = &ASN1_BIT_STRING_it, | ||
565 | }, | ||
566 | { | ||
567 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
568 | .tag = 4, | ||
569 | .offset = offsetof(ISSUING_DIST_POINT, indirectCRL), | ||
570 | .field_name = "indirectCRL", | ||
571 | .item = &ASN1_FBOOLEAN_it, | ||
572 | }, | ||
573 | { | ||
574 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
575 | .tag = 5, | ||
576 | .offset = offsetof(ISSUING_DIST_POINT, onlyattr), | ||
577 | .field_name = "onlyattr", | ||
578 | .item = &ASN1_FBOOLEAN_it, | ||
579 | }, | ||
580 | }; | ||
581 | |||
582 | const ASN1_ITEM ISSUING_DIST_POINT_it = { | ||
583 | .itype = ASN1_ITYPE_SEQUENCE, | ||
584 | .utype = V_ASN1_SEQUENCE, | ||
585 | .templates = ISSUING_DIST_POINT_seq_tt, | ||
586 | .tcount = sizeof(ISSUING_DIST_POINT_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
587 | .funcs = NULL, | ||
588 | .size = sizeof(ISSUING_DIST_POINT), | ||
589 | .sname = "ISSUING_DIST_POINT", | ||
590 | }; | ||
480 | 591 | ||
481 | 592 | ||
482 | ISSUING_DIST_POINT * | 593 | ISSUING_DIST_POINT * |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_extku.c b/src/lib/libssl/src/crypto/x509v3/v3_extku.c index c37b65f7a5..2ee7594fed 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.11 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_extku.c,v 1.12 2015/07/25 16:00:14 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 | */ |
@@ -91,10 +91,23 @@ const X509V3_EXT_METHOD v3_ocsp_accresp = { | |||
91 | NULL | 91 | NULL |
92 | }; | 92 | }; |
93 | 93 | ||
94 | ASN1_ITEM_TEMPLATE(EXTENDED_KEY_USAGE) = | 94 | static const ASN1_TEMPLATE EXTENDED_KEY_USAGE_item_tt = { |
95 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, EXTENDED_KEY_USAGE, | 95 | .flags = ASN1_TFLG_SEQUENCE_OF, |
96 | ASN1_OBJECT) | 96 | .tag = 0, |
97 | ASN1_ITEM_TEMPLATE_END(EXTENDED_KEY_USAGE) | 97 | .offset = 0, |
98 | .field_name = "EXTENDED_KEY_USAGE", | ||
99 | .item = &ASN1_OBJECT_it, | ||
100 | }; | ||
101 | |||
102 | const ASN1_ITEM EXTENDED_KEY_USAGE_it = { | ||
103 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
104 | .utype = -1, | ||
105 | .templates = &EXTENDED_KEY_USAGE_item_tt, | ||
106 | .tcount = 0, | ||
107 | .funcs = NULL, | ||
108 | .size = 0, | ||
109 | .sname = "EXTENDED_KEY_USAGE", | ||
110 | }; | ||
98 | 111 | ||
99 | 112 | ||
100 | EXTENDED_KEY_USAGE * | 113 | EXTENDED_KEY_USAGE * |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_genn.c b/src/lib/libssl/src/crypto/x509v3/v3_genn.c index 25d7f447d2..9943fd33d2 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.10 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_genn.c,v 1.11 2015/07/25 16:00:14 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 | */ |
@@ -63,11 +63,33 @@ | |||
63 | #include <openssl/conf.h> | 63 | #include <openssl/conf.h> |
64 | #include <openssl/x509v3.h> | 64 | #include <openssl/x509v3.h> |
65 | 65 | ||
66 | ASN1_SEQUENCE(OTHERNAME) = { | 66 | static const ASN1_TEMPLATE OTHERNAME_seq_tt[] = { |
67 | ASN1_SIMPLE(OTHERNAME, type_id, ASN1_OBJECT), | 67 | { |
68 | .flags = 0, | ||
69 | .tag = 0, | ||
70 | .offset = offsetof(OTHERNAME, type_id), | ||
71 | .field_name = "type_id", | ||
72 | .item = &ASN1_OBJECT_it, | ||
73 | }, | ||
68 | /* Maybe have a true ANY DEFINED BY later */ | 74 | /* Maybe have a true ANY DEFINED BY later */ |
69 | ASN1_EXP(OTHERNAME, value, ASN1_ANY, 0) | 75 | { |
70 | } ASN1_SEQUENCE_END(OTHERNAME) | 76 | .flags = ASN1_TFLG_EXPLICIT, |
77 | .tag = 0, | ||
78 | .offset = offsetof(OTHERNAME, value), | ||
79 | .field_name = "value", | ||
80 | .item = &ASN1_ANY_it, | ||
81 | }, | ||
82 | }; | ||
83 | |||
84 | const ASN1_ITEM OTHERNAME_it = { | ||
85 | .itype = ASN1_ITYPE_SEQUENCE, | ||
86 | .utype = V_ASN1_SEQUENCE, | ||
87 | .templates = OTHERNAME_seq_tt, | ||
88 | .tcount = sizeof(OTHERNAME_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
89 | .funcs = NULL, | ||
90 | .size = sizeof(OTHERNAME), | ||
91 | .sname = "OTHERNAME", | ||
92 | }; | ||
71 | 93 | ||
72 | 94 | ||
73 | OTHERNAME * | 95 | OTHERNAME * |
@@ -95,10 +117,32 @@ OTHERNAME_free(OTHERNAME *a) | |||
95 | ASN1_item_free((ASN1_VALUE *)a, &OTHERNAME_it); | 117 | ASN1_item_free((ASN1_VALUE *)a, &OTHERNAME_it); |
96 | } | 118 | } |
97 | 119 | ||
98 | ASN1_SEQUENCE(EDIPARTYNAME) = { | 120 | static const ASN1_TEMPLATE EDIPARTYNAME_seq_tt[] = { |
99 | ASN1_IMP_OPT(EDIPARTYNAME, nameAssigner, DIRECTORYSTRING, 0), | 121 | { |
100 | ASN1_IMP_OPT(EDIPARTYNAME, partyName, DIRECTORYSTRING, 1) | 122 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, |
101 | } ASN1_SEQUENCE_END(EDIPARTYNAME) | 123 | .tag = 0, |
124 | .offset = offsetof(EDIPARTYNAME, nameAssigner), | ||
125 | .field_name = "nameAssigner", | ||
126 | .item = &DIRECTORYSTRING_it, | ||
127 | }, | ||
128 | { | ||
129 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
130 | .tag = 1, | ||
131 | .offset = offsetof(EDIPARTYNAME, partyName), | ||
132 | .field_name = "partyName", | ||
133 | .item = &DIRECTORYSTRING_it, | ||
134 | }, | ||
135 | }; | ||
136 | |||
137 | const ASN1_ITEM EDIPARTYNAME_it = { | ||
138 | .itype = ASN1_ITYPE_SEQUENCE, | ||
139 | .utype = V_ASN1_SEQUENCE, | ||
140 | .templates = EDIPARTYNAME_seq_tt, | ||
141 | .tcount = sizeof(EDIPARTYNAME_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
142 | .funcs = NULL, | ||
143 | .size = sizeof(EDIPARTYNAME), | ||
144 | .sname = "EDIPARTYNAME", | ||
145 | }; | ||
102 | 146 | ||
103 | 147 | ||
104 | EDIPARTYNAME * | 148 | EDIPARTYNAME * |
@@ -126,19 +170,83 @@ EDIPARTYNAME_free(EDIPARTYNAME *a) | |||
126 | ASN1_item_free((ASN1_VALUE *)a, &EDIPARTYNAME_it); | 170 | ASN1_item_free((ASN1_VALUE *)a, &EDIPARTYNAME_it); |
127 | } | 171 | } |
128 | 172 | ||
129 | ASN1_CHOICE(GENERAL_NAME) = { | 173 | static const ASN1_TEMPLATE GENERAL_NAME_ch_tt[] = { |
130 | ASN1_IMP(GENERAL_NAME, d.otherName, OTHERNAME, GEN_OTHERNAME), | 174 | { |
131 | ASN1_IMP(GENERAL_NAME, d.rfc822Name, ASN1_IA5STRING, GEN_EMAIL), | 175 | .flags = ASN1_TFLG_IMPLICIT, |
132 | ASN1_IMP(GENERAL_NAME, d.dNSName, ASN1_IA5STRING, GEN_DNS), | 176 | .tag = GEN_OTHERNAME, |
177 | .offset = offsetof(GENERAL_NAME, d.otherName), | ||
178 | .field_name = "d.otherName", | ||
179 | .item = &OTHERNAME_it, | ||
180 | }, | ||
181 | { | ||
182 | .flags = ASN1_TFLG_IMPLICIT, | ||
183 | .tag = GEN_EMAIL, | ||
184 | .offset = offsetof(GENERAL_NAME, d.rfc822Name), | ||
185 | .field_name = "d.rfc822Name", | ||
186 | .item = &ASN1_IA5STRING_it, | ||
187 | }, | ||
188 | { | ||
189 | .flags = ASN1_TFLG_IMPLICIT, | ||
190 | .tag = GEN_DNS, | ||
191 | .offset = offsetof(GENERAL_NAME, d.dNSName), | ||
192 | .field_name = "d.dNSName", | ||
193 | .item = &ASN1_IA5STRING_it, | ||
194 | }, | ||
133 | /* Don't decode this */ | 195 | /* Don't decode this */ |
134 | ASN1_IMP(GENERAL_NAME, d.x400Address, ASN1_SEQUENCE, GEN_X400), | 196 | { |
197 | .flags = ASN1_TFLG_IMPLICIT, | ||
198 | .tag = GEN_X400, | ||
199 | .offset = offsetof(GENERAL_NAME, d.x400Address), | ||
200 | .field_name = "d.x400Address", | ||
201 | .item = &ASN1_SEQUENCE_it, | ||
202 | }, | ||
135 | /* X509_NAME is a CHOICE type so use EXPLICIT */ | 203 | /* X509_NAME is a CHOICE type so use EXPLICIT */ |
136 | ASN1_EXP(GENERAL_NAME, d.directoryName, X509_NAME, GEN_DIRNAME), | 204 | { |
137 | ASN1_IMP(GENERAL_NAME, d.ediPartyName, EDIPARTYNAME, GEN_EDIPARTY), | 205 | .flags = ASN1_TFLG_EXPLICIT, |
138 | ASN1_IMP(GENERAL_NAME, d.uniformResourceIdentifier, ASN1_IA5STRING, GEN_URI), | 206 | .tag = GEN_DIRNAME, |
139 | ASN1_IMP(GENERAL_NAME, d.iPAddress, ASN1_OCTET_STRING, GEN_IPADD), | 207 | .offset = offsetof(GENERAL_NAME, d.directoryName), |
140 | ASN1_IMP(GENERAL_NAME, d.registeredID, ASN1_OBJECT, GEN_RID) | 208 | .field_name = "d.directoryName", |
141 | } ASN1_CHOICE_END(GENERAL_NAME) | 209 | .item = &X509_NAME_it, |
210 | }, | ||
211 | { | ||
212 | .flags = ASN1_TFLG_IMPLICIT, | ||
213 | .tag = GEN_EDIPARTY, | ||
214 | .offset = offsetof(GENERAL_NAME, d.ediPartyName), | ||
215 | .field_name = "d.ediPartyName", | ||
216 | .item = &EDIPARTYNAME_it, | ||
217 | }, | ||
218 | { | ||
219 | .flags = ASN1_TFLG_IMPLICIT, | ||
220 | .tag = GEN_URI, | ||
221 | .offset = offsetof(GENERAL_NAME, d.uniformResourceIdentifier), | ||
222 | .field_name = "d.uniformResourceIdentifier", | ||
223 | .item = &ASN1_IA5STRING_it, | ||
224 | }, | ||
225 | { | ||
226 | .flags = ASN1_TFLG_IMPLICIT, | ||
227 | .tag = GEN_IPADD, | ||
228 | .offset = offsetof(GENERAL_NAME, d.iPAddress), | ||
229 | .field_name = "d.iPAddress", | ||
230 | .item = &ASN1_OCTET_STRING_it, | ||
231 | }, | ||
232 | { | ||
233 | .flags = ASN1_TFLG_IMPLICIT, | ||
234 | .tag = GEN_RID, | ||
235 | .offset = offsetof(GENERAL_NAME, d.registeredID), | ||
236 | .field_name = "d.registeredID", | ||
237 | .item = &ASN1_OBJECT_it, | ||
238 | }, | ||
239 | }; | ||
240 | |||
241 | const ASN1_ITEM GENERAL_NAME_it = { | ||
242 | .itype = ASN1_ITYPE_CHOICE, | ||
243 | .utype = offsetof(GENERAL_NAME, type), | ||
244 | .templates = GENERAL_NAME_ch_tt, | ||
245 | .tcount = sizeof(GENERAL_NAME_ch_tt) / sizeof(ASN1_TEMPLATE), | ||
246 | .funcs = NULL, | ||
247 | .size = sizeof(GENERAL_NAME), | ||
248 | .sname = "GENERAL_NAME", | ||
249 | }; | ||
142 | 250 | ||
143 | 251 | ||
144 | GENERAL_NAME * | 252 | GENERAL_NAME * |
@@ -166,9 +274,23 @@ GENERAL_NAME_free(GENERAL_NAME *a) | |||
166 | ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAME_it); | 274 | ASN1_item_free((ASN1_VALUE *)a, &GENERAL_NAME_it); |
167 | } | 275 | } |
168 | 276 | ||
169 | ASN1_ITEM_TEMPLATE(GENERAL_NAMES) = | 277 | static const ASN1_TEMPLATE GENERAL_NAMES_item_tt = { |
170 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, GENERAL_NAME) | 278 | .flags = ASN1_TFLG_SEQUENCE_OF, |
171 | ASN1_ITEM_TEMPLATE_END(GENERAL_NAMES) | 279 | .tag = 0, |
280 | .offset = 0, | ||
281 | .field_name = "GeneralNames", | ||
282 | .item = &GENERAL_NAME_it, | ||
283 | }; | ||
284 | |||
285 | const ASN1_ITEM GENERAL_NAMES_it = { | ||
286 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
287 | .utype = -1, | ||
288 | .templates = &GENERAL_NAMES_item_tt, | ||
289 | .tcount = 0, | ||
290 | .funcs = NULL, | ||
291 | .size = 0, | ||
292 | .sname = "GENERAL_NAMES", | ||
293 | }; | ||
172 | 294 | ||
173 | 295 | ||
174 | GENERAL_NAMES * | 296 | GENERAL_NAMES * |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_info.c b/src/lib/libssl/src/crypto/x509v3/v3_info.c index d9fa133308..795a7bb6ff 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.21 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_info.c,v 1.22 2015/07/25 16:00:14 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 | */ |
@@ -93,10 +93,32 @@ const X509V3_EXT_METHOD v3_sinfo = { | |||
93 | NULL | 93 | NULL |
94 | }; | 94 | }; |
95 | 95 | ||
96 | ASN1_SEQUENCE(ACCESS_DESCRIPTION) = { | 96 | static const ASN1_TEMPLATE ACCESS_DESCRIPTION_seq_tt[] = { |
97 | ASN1_SIMPLE(ACCESS_DESCRIPTION, method, ASN1_OBJECT), | 97 | { |
98 | ASN1_SIMPLE(ACCESS_DESCRIPTION, location, GENERAL_NAME) | 98 | .flags = 0, |
99 | } ASN1_SEQUENCE_END(ACCESS_DESCRIPTION) | 99 | .tag = 0, |
100 | .offset = offsetof(ACCESS_DESCRIPTION, method), | ||
101 | .field_name = "method", | ||
102 | .item = &ASN1_OBJECT_it, | ||
103 | }, | ||
104 | { | ||
105 | .flags = 0, | ||
106 | .tag = 0, | ||
107 | .offset = offsetof(ACCESS_DESCRIPTION, location), | ||
108 | .field_name = "location", | ||
109 | .item = &GENERAL_NAME_it, | ||
110 | }, | ||
111 | }; | ||
112 | |||
113 | const ASN1_ITEM ACCESS_DESCRIPTION_it = { | ||
114 | .itype = ASN1_ITYPE_SEQUENCE, | ||
115 | .utype = V_ASN1_SEQUENCE, | ||
116 | .templates = ACCESS_DESCRIPTION_seq_tt, | ||
117 | .tcount = sizeof(ACCESS_DESCRIPTION_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
118 | .funcs = NULL, | ||
119 | .size = sizeof(ACCESS_DESCRIPTION), | ||
120 | .sname = "ACCESS_DESCRIPTION", | ||
121 | }; | ||
100 | 122 | ||
101 | 123 | ||
102 | ACCESS_DESCRIPTION * | 124 | ACCESS_DESCRIPTION * |
@@ -124,10 +146,23 @@ ACCESS_DESCRIPTION_free(ACCESS_DESCRIPTION *a) | |||
124 | ASN1_item_free((ASN1_VALUE *)a, &ACCESS_DESCRIPTION_it); | 146 | ASN1_item_free((ASN1_VALUE *)a, &ACCESS_DESCRIPTION_it); |
125 | } | 147 | } |
126 | 148 | ||
127 | ASN1_ITEM_TEMPLATE(AUTHORITY_INFO_ACCESS) = | 149 | static const ASN1_TEMPLATE AUTHORITY_INFO_ACCESS_item_tt = { |
128 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, GeneralNames, | 150 | .flags = ASN1_TFLG_SEQUENCE_OF, |
129 | ACCESS_DESCRIPTION) | 151 | .tag = 0, |
130 | ASN1_ITEM_TEMPLATE_END(AUTHORITY_INFO_ACCESS) | 152 | .offset = 0, |
153 | .field_name = "GeneralNames", | ||
154 | .item = &ACCESS_DESCRIPTION_it, | ||
155 | }; | ||
156 | |||
157 | const ASN1_ITEM AUTHORITY_INFO_ACCESS_it = { | ||
158 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
159 | .utype = -1, | ||
160 | .templates = &AUTHORITY_INFO_ACCESS_item_tt, | ||
161 | .tcount = 0, | ||
162 | .funcs = NULL, | ||
163 | .size = 0, | ||
164 | .sname = "AUTHORITY_INFO_ACCESS", | ||
165 | }; | ||
131 | 166 | ||
132 | 167 | ||
133 | AUTHORITY_INFO_ACCESS * | 168 | AUTHORITY_INFO_ACCESS * |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_ncons.c b/src/lib/libssl/src/crypto/x509v3/v3_ncons.c index 7cb272a58f..e154b6ba18 100644 --- a/src/lib/libssl/src/crypto/x509v3/v3_ncons.c +++ b/src/lib/libssl/src/crypto/x509v3/v3_ncons.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: v3_ncons.c,v 1.6 2015/02/10 05:43:09 jsing Exp $ */ | 1 | /* $OpenBSD: v3_ncons.c,v 1.7 2015/07/25 16:00:14 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. | 3 | * project. |
4 | */ | 4 | */ |
@@ -89,18 +89,56 @@ const X509V3_EXT_METHOD v3_name_constraints = { | |||
89 | NULL | 89 | NULL |
90 | }; | 90 | }; |
91 | 91 | ||
92 | ASN1_SEQUENCE(GENERAL_SUBTREE) = { | 92 | static const ASN1_TEMPLATE GENERAL_SUBTREE_seq_tt[] = { |
93 | ASN1_SIMPLE(GENERAL_SUBTREE, base, GENERAL_NAME), | 93 | { |
94 | ASN1_IMP_OPT(GENERAL_SUBTREE, minimum, ASN1_INTEGER, 0), | 94 | .flags = 0, |
95 | ASN1_IMP_OPT(GENERAL_SUBTREE, maximum, ASN1_INTEGER, 1) | 95 | .tag = 0, |
96 | } ASN1_SEQUENCE_END(GENERAL_SUBTREE) | 96 | .offset = offsetof(GENERAL_SUBTREE, base), |
97 | .field_name = "base", | ||
98 | .item = &GENERAL_NAME_it, | ||
99 | }, | ||
100 | { | ||
101 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
102 | .tag = 0, | ||
103 | .offset = offsetof(GENERAL_SUBTREE, minimum), | ||
104 | .field_name = "minimum", | ||
105 | .item = &ASN1_INTEGER_it, | ||
106 | }, | ||
107 | { | ||
108 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
109 | .tag = 1, | ||
110 | .offset = offsetof(GENERAL_SUBTREE, maximum), | ||
111 | .field_name = "maximum", | ||
112 | .item = &ASN1_INTEGER_it, | ||
113 | }, | ||
114 | }; | ||
115 | |||
116 | const ASN1_ITEM GENERAL_SUBTREE_it = { | ||
117 | .itype = ASN1_ITYPE_SEQUENCE, | ||
118 | .utype = V_ASN1_SEQUENCE, | ||
119 | .templates = GENERAL_SUBTREE_seq_tt, | ||
120 | .tcount = sizeof(GENERAL_SUBTREE_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
121 | .funcs = NULL, | ||
122 | .size = sizeof(GENERAL_SUBTREE), | ||
123 | .sname = "GENERAL_SUBTREE", | ||
124 | }; | ||
97 | 125 | ||
98 | ASN1_SEQUENCE(NAME_CONSTRAINTS) = { | 126 | static const ASN1_TEMPLATE NAME_CONSTRAINTS_seq_tt[] = { |
99 | ASN1_IMP_SEQUENCE_OF_OPT(NAME_CONSTRAINTS, permittedSubtrees, | 127 | ASN1_IMP_SEQUENCE_OF_OPT(NAME_CONSTRAINTS, permittedSubtrees, |
100 | GENERAL_SUBTREE, 0), | 128 | GENERAL_SUBTREE, 0), |
101 | ASN1_IMP_SEQUENCE_OF_OPT(NAME_CONSTRAINTS, excludedSubtrees, | 129 | ASN1_IMP_SEQUENCE_OF_OPT(NAME_CONSTRAINTS, excludedSubtrees, |
102 | GENERAL_SUBTREE, 1), | 130 | GENERAL_SUBTREE, 1), |
103 | } ASN1_SEQUENCE_END(NAME_CONSTRAINTS) | 131 | }; |
132 | |||
133 | const ASN1_ITEM NAME_CONSTRAINTS_it = { | ||
134 | .itype = ASN1_ITYPE_SEQUENCE, | ||
135 | .utype = V_ASN1_SEQUENCE, | ||
136 | .templates = NAME_CONSTRAINTS_seq_tt, | ||
137 | .tcount = sizeof(NAME_CONSTRAINTS_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
138 | .funcs = NULL, | ||
139 | .size = sizeof(NAME_CONSTRAINTS), | ||
140 | .sname = "NAME_CONSTRAINTS", | ||
141 | }; | ||
104 | 142 | ||
105 | 143 | ||
106 | 144 | ||
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_pcia.c b/src/lib/libssl/src/crypto/x509v3/v3_pcia.c index 07e294e633..f9ec02c00a 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.5 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_pcia.c,v 1.6 2015/07/25 16:00:14 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 | */ |
@@ -38,10 +38,32 @@ | |||
38 | #include <openssl/asn1t.h> | 38 | #include <openssl/asn1t.h> |
39 | #include <openssl/x509v3.h> | 39 | #include <openssl/x509v3.h> |
40 | 40 | ||
41 | ASN1_SEQUENCE(PROXY_POLICY) = { | 41 | static const ASN1_TEMPLATE PROXY_POLICY_seq_tt[] = { |
42 | ASN1_SIMPLE(PROXY_POLICY, policyLanguage, ASN1_OBJECT), | 42 | { |
43 | ASN1_OPT(PROXY_POLICY, policy, ASN1_OCTET_STRING) | 43 | .flags = 0, |
44 | } ASN1_SEQUENCE_END(PROXY_POLICY) | 44 | .tag = 0, |
45 | .offset = offsetof(PROXY_POLICY, policyLanguage), | ||
46 | .field_name = "policyLanguage", | ||
47 | .item = &ASN1_OBJECT_it, | ||
48 | }, | ||
49 | { | ||
50 | .flags = ASN1_TFLG_OPTIONAL, | ||
51 | .tag = 0, | ||
52 | .offset = offsetof(PROXY_POLICY, policy), | ||
53 | .field_name = "policy", | ||
54 | .item = &ASN1_OCTET_STRING_it, | ||
55 | }, | ||
56 | }; | ||
57 | |||
58 | const ASN1_ITEM PROXY_POLICY_it = { | ||
59 | .itype = ASN1_ITYPE_SEQUENCE, | ||
60 | .utype = V_ASN1_SEQUENCE, | ||
61 | .templates = PROXY_POLICY_seq_tt, | ||
62 | .tcount = sizeof(PROXY_POLICY_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
63 | .funcs = NULL, | ||
64 | .size = sizeof(PROXY_POLICY), | ||
65 | .sname = "PROXY_POLICY", | ||
66 | }; | ||
45 | 67 | ||
46 | 68 | ||
47 | PROXY_POLICY * | 69 | PROXY_POLICY * |
@@ -69,11 +91,32 @@ PROXY_POLICY_free(PROXY_POLICY *a) | |||
69 | ASN1_item_free((ASN1_VALUE *)a, &PROXY_POLICY_it); | 91 | ASN1_item_free((ASN1_VALUE *)a, &PROXY_POLICY_it); |
70 | } | 92 | } |
71 | 93 | ||
72 | ASN1_SEQUENCE(PROXY_CERT_INFO_EXTENSION) = { | 94 | static const ASN1_TEMPLATE PROXY_CERT_INFO_EXTENSION_seq_tt[] = { |
73 | ASN1_OPT(PROXY_CERT_INFO_EXTENSION, pcPathLengthConstraint, | 95 | { |
74 | ASN1_INTEGER), | 96 | .flags = ASN1_TFLG_OPTIONAL, |
75 | ASN1_SIMPLE(PROXY_CERT_INFO_EXTENSION, proxyPolicy, PROXY_POLICY) | 97 | .tag = 0, |
76 | } ASN1_SEQUENCE_END(PROXY_CERT_INFO_EXTENSION) | 98 | .offset = offsetof(PROXY_CERT_INFO_EXTENSION, pcPathLengthConstraint), |
99 | .field_name = "pcPathLengthConstraint", | ||
100 | .item = &ASN1_INTEGER_it, | ||
101 | }, | ||
102 | { | ||
103 | .flags = 0, | ||
104 | .tag = 0, | ||
105 | .offset = offsetof(PROXY_CERT_INFO_EXTENSION, proxyPolicy), | ||
106 | .field_name = "proxyPolicy", | ||
107 | .item = &PROXY_POLICY_it, | ||
108 | }, | ||
109 | }; | ||
110 | |||
111 | const ASN1_ITEM PROXY_CERT_INFO_EXTENSION_it = { | ||
112 | .itype = ASN1_ITYPE_SEQUENCE, | ||
113 | .utype = V_ASN1_SEQUENCE, | ||
114 | .templates = PROXY_CERT_INFO_EXTENSION_seq_tt, | ||
115 | .tcount = sizeof(PROXY_CERT_INFO_EXTENSION_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
116 | .funcs = NULL, | ||
117 | .size = sizeof(PROXY_CERT_INFO_EXTENSION), | ||
118 | .sname = "PROXY_CERT_INFO_EXTENSION", | ||
119 | }; | ||
77 | 120 | ||
78 | 121 | ||
79 | PROXY_CERT_INFO_EXTENSION * | 122 | PROXY_CERT_INFO_EXTENSION * |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_pcons.c b/src/lib/libssl/src/crypto/x509v3/v3_pcons.c index 075efd8851..7bece06271 100644 --- a/src/lib/libssl/src/crypto/x509v3/v3_pcons.c +++ b/src/lib/libssl/src/crypto/x509v3/v3_pcons.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: v3_pcons.c,v 1.6 2015/02/10 05:43:09 jsing Exp $ */ | 1 | /* $OpenBSD: v3_pcons.c,v 1.7 2015/07/25 16:00:14 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. | 3 | * project. |
4 | */ | 4 | */ |
@@ -82,11 +82,27 @@ const X509V3_EXT_METHOD v3_policy_constraints = { | |||
82 | NULL | 82 | NULL |
83 | }; | 83 | }; |
84 | 84 | ||
85 | ASN1_SEQUENCE(POLICY_CONSTRAINTS) = { | 85 | static const ASN1_TEMPLATE POLICY_CONSTRAINTS_seq_tt[] = { |
86 | ASN1_IMP_OPT(POLICY_CONSTRAINTS, requireExplicitPolicy, | 86 | ASN1_IMP_OPT(POLICY_CONSTRAINTS, requireExplicitPolicy, |
87 | ASN1_INTEGER, 0), | 87 | ASN1_INTEGER, 0), |
88 | ASN1_IMP_OPT(POLICY_CONSTRAINTS, inhibitPolicyMapping, ASN1_INTEGER, 1) | 88 | { |
89 | } ASN1_SEQUENCE_END(POLICY_CONSTRAINTS) | 89 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, |
90 | .tag = 1, | ||
91 | .offset = offsetof(POLICY_CONSTRAINTS, inhibitPolicyMapping), | ||
92 | .field_name = "inhibitPolicyMapping", | ||
93 | .item = &ASN1_INTEGER_it, | ||
94 | }, | ||
95 | }; | ||
96 | |||
97 | const ASN1_ITEM POLICY_CONSTRAINTS_it = { | ||
98 | .itype = ASN1_ITYPE_SEQUENCE, | ||
99 | .utype = V_ASN1_SEQUENCE, | ||
100 | .templates = POLICY_CONSTRAINTS_seq_tt, | ||
101 | .tcount = sizeof(POLICY_CONSTRAINTS_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
102 | .funcs = NULL, | ||
103 | .size = sizeof(POLICY_CONSTRAINTS), | ||
104 | .sname = "POLICY_CONSTRAINTS", | ||
105 | }; | ||
90 | 106 | ||
91 | 107 | ||
92 | POLICY_CONSTRAINTS * | 108 | POLICY_CONSTRAINTS * |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_pku.c b/src/lib/libssl/src/crypto/x509v3/v3_pku.c index 4bce07f09c..360e3daa58 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.10 2015/02/09 16:03:11 jsing Exp $ */ | 1 | /* $OpenBSD: v3_pku.c,v 1.11 2015/07/25 16:00:14 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 | */ |
@@ -75,10 +75,32 @@ const X509V3_EXT_METHOD v3_pkey_usage_period = { | |||
75 | NULL | 75 | NULL |
76 | }; | 76 | }; |
77 | 77 | ||
78 | ASN1_SEQUENCE(PKEY_USAGE_PERIOD) = { | 78 | static const ASN1_TEMPLATE PKEY_USAGE_PERIOD_seq_tt[] = { |
79 | ASN1_IMP_OPT(PKEY_USAGE_PERIOD, notBefore, ASN1_GENERALIZEDTIME, 0), | 79 | { |
80 | ASN1_IMP_OPT(PKEY_USAGE_PERIOD, notAfter, ASN1_GENERALIZEDTIME, 1) | 80 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, |
81 | } ASN1_SEQUENCE_END(PKEY_USAGE_PERIOD) | 81 | .tag = 0, |
82 | .offset = offsetof(PKEY_USAGE_PERIOD, notBefore), | ||
83 | .field_name = "notBefore", | ||
84 | .item = &ASN1_GENERALIZEDTIME_it, | ||
85 | }, | ||
86 | { | ||
87 | .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_OPTIONAL, | ||
88 | .tag = 1, | ||
89 | .offset = offsetof(PKEY_USAGE_PERIOD, notAfter), | ||
90 | .field_name = "notAfter", | ||
91 | .item = &ASN1_GENERALIZEDTIME_it, | ||
92 | }, | ||
93 | }; | ||
94 | |||
95 | const ASN1_ITEM PKEY_USAGE_PERIOD_it = { | ||
96 | .itype = ASN1_ITYPE_SEQUENCE, | ||
97 | .utype = V_ASN1_SEQUENCE, | ||
98 | .templates = PKEY_USAGE_PERIOD_seq_tt, | ||
99 | .tcount = sizeof(PKEY_USAGE_PERIOD_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
100 | .funcs = NULL, | ||
101 | .size = sizeof(PKEY_USAGE_PERIOD), | ||
102 | .sname = "PKEY_USAGE_PERIOD", | ||
103 | }; | ||
82 | 104 | ||
83 | 105 | ||
84 | PKEY_USAGE_PERIOD * | 106 | PKEY_USAGE_PERIOD * |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_pmaps.c b/src/lib/libssl/src/crypto/x509v3/v3_pmaps.c index e8099d7f12..32ab04eda9 100644 --- a/src/lib/libssl/src/crypto/x509v3/v3_pmaps.c +++ b/src/lib/libssl/src/crypto/x509v3/v3_pmaps.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: v3_pmaps.c,v 1.7 2015/02/13 01:16:26 beck Exp $ */ | 1 | /* $OpenBSD: v3_pmaps.c,v 1.8 2015/07/25 16:00:14 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. | 3 | * project. |
4 | */ | 4 | */ |
@@ -80,15 +80,50 @@ const X509V3_EXT_METHOD v3_policy_mappings = { | |||
80 | NULL | 80 | NULL |
81 | }; | 81 | }; |
82 | 82 | ||
83 | ASN1_SEQUENCE(POLICY_MAPPING) = { | 83 | static const ASN1_TEMPLATE POLICY_MAPPING_seq_tt[] = { |
84 | ASN1_SIMPLE(POLICY_MAPPING, issuerDomainPolicy, ASN1_OBJECT), | 84 | { |
85 | ASN1_SIMPLE(POLICY_MAPPING, subjectDomainPolicy, ASN1_OBJECT) | 85 | .flags = 0, |
86 | } ASN1_SEQUENCE_END(POLICY_MAPPING) | 86 | .tag = 0, |
87 | .offset = offsetof(POLICY_MAPPING, issuerDomainPolicy), | ||
88 | .field_name = "issuerDomainPolicy", | ||
89 | .item = &ASN1_OBJECT_it, | ||
90 | }, | ||
91 | { | ||
92 | .flags = 0, | ||
93 | .tag = 0, | ||
94 | .offset = offsetof(POLICY_MAPPING, subjectDomainPolicy), | ||
95 | .field_name = "subjectDomainPolicy", | ||
96 | .item = &ASN1_OBJECT_it, | ||
97 | }, | ||
98 | }; | ||
99 | |||
100 | const ASN1_ITEM POLICY_MAPPING_it = { | ||
101 | .itype = ASN1_ITYPE_SEQUENCE, | ||
102 | .utype = V_ASN1_SEQUENCE, | ||
103 | .templates = POLICY_MAPPING_seq_tt, | ||
104 | .tcount = sizeof(POLICY_MAPPING_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
105 | .funcs = NULL, | ||
106 | .size = sizeof(POLICY_MAPPING), | ||
107 | .sname = "POLICY_MAPPING", | ||
108 | }; | ||
87 | 109 | ||
88 | ASN1_ITEM_TEMPLATE(POLICY_MAPPINGS) = | 110 | static const ASN1_TEMPLATE POLICY_MAPPINGS_item_tt = { |
89 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, POLICY_MAPPINGS, | 111 | .flags = ASN1_TFLG_SEQUENCE_OF, |
90 | POLICY_MAPPING) | 112 | .tag = 0, |
91 | ASN1_ITEM_TEMPLATE_END(POLICY_MAPPINGS) | 113 | .offset = 0, |
114 | .field_name = "POLICY_MAPPINGS", | ||
115 | .item = &POLICY_MAPPING_it, | ||
116 | }; | ||
117 | |||
118 | const ASN1_ITEM POLICY_MAPPINGS_it = { | ||
119 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
120 | .utype = -1, | ||
121 | .templates = &POLICY_MAPPINGS_item_tt, | ||
122 | .tcount = 0, | ||
123 | .funcs = NULL, | ||
124 | .size = 0, | ||
125 | .sname = "POLICY_MAPPINGS", | ||
126 | }; | ||
92 | 127 | ||
93 | 128 | ||
94 | POLICY_MAPPING * | 129 | POLICY_MAPPING * |
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_sxnet.c b/src/lib/libssl/src/crypto/x509v3/v3_sxnet.c index 7029aad916..d87dd34339 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.13 2015/02/10 08:33:10 jsing Exp $ */ | 1 | /* $OpenBSD: v3_sxnet.c,v 1.14 2015/07/25 16:00:14 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 | */ |
@@ -90,10 +90,32 @@ const X509V3_EXT_METHOD v3_sxnet = { | |||
90 | NULL | 90 | NULL |
91 | }; | 91 | }; |
92 | 92 | ||
93 | ASN1_SEQUENCE(SXNETID) = { | 93 | static const ASN1_TEMPLATE SXNETID_seq_tt[] = { |
94 | ASN1_SIMPLE(SXNETID, zone, ASN1_INTEGER), | 94 | { |
95 | ASN1_SIMPLE(SXNETID, user, ASN1_OCTET_STRING) | 95 | .flags = 0, |
96 | } ASN1_SEQUENCE_END(SXNETID) | 96 | .tag = 0, |
97 | .offset = offsetof(SXNETID, zone), | ||
98 | .field_name = "zone", | ||
99 | .item = &ASN1_INTEGER_it, | ||
100 | }, | ||
101 | { | ||
102 | .flags = 0, | ||
103 | .tag = 0, | ||
104 | .offset = offsetof(SXNETID, user), | ||
105 | .field_name = "user", | ||
106 | .item = &ASN1_OCTET_STRING_it, | ||
107 | }, | ||
108 | }; | ||
109 | |||
110 | const ASN1_ITEM SXNETID_it = { | ||
111 | .itype = ASN1_ITYPE_SEQUENCE, | ||
112 | .utype = V_ASN1_SEQUENCE, | ||
113 | .templates = SXNETID_seq_tt, | ||
114 | .tcount = sizeof(SXNETID_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
115 | .funcs = NULL, | ||
116 | .size = sizeof(SXNETID), | ||
117 | .sname = "SXNETID", | ||
118 | }; | ||
97 | 119 | ||
98 | 120 | ||
99 | SXNETID * | 121 | SXNETID * |
@@ -121,10 +143,32 @@ SXNETID_free(SXNETID *a) | |||
121 | ASN1_item_free((ASN1_VALUE *)a, &SXNETID_it); | 143 | ASN1_item_free((ASN1_VALUE *)a, &SXNETID_it); |
122 | } | 144 | } |
123 | 145 | ||
124 | ASN1_SEQUENCE(SXNET) = { | 146 | static const ASN1_TEMPLATE SXNET_seq_tt[] = { |
125 | ASN1_SIMPLE(SXNET, version, ASN1_INTEGER), | 147 | { |
126 | ASN1_SEQUENCE_OF(SXNET, ids, SXNETID) | 148 | .flags = 0, |
127 | } ASN1_SEQUENCE_END(SXNET) | 149 | .tag = 0, |
150 | .offset = offsetof(SXNET, version), | ||
151 | .field_name = "version", | ||
152 | .item = &ASN1_INTEGER_it, | ||
153 | }, | ||
154 | { | ||
155 | .flags = ASN1_TFLG_SEQUENCE_OF, | ||
156 | .tag = 0, | ||
157 | .offset = offsetof(SXNET, ids), | ||
158 | .field_name = "ids", | ||
159 | .item = &SXNETID_it, | ||
160 | }, | ||
161 | }; | ||
162 | |||
163 | const ASN1_ITEM SXNET_it = { | ||
164 | .itype = ASN1_ITYPE_SEQUENCE, | ||
165 | .utype = V_ASN1_SEQUENCE, | ||
166 | .templates = SXNET_seq_tt, | ||
167 | .tcount = sizeof(SXNET_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
168 | .funcs = NULL, | ||
169 | .size = sizeof(SXNET), | ||
170 | .sname = "SXNET", | ||
171 | }; | ||
128 | 172 | ||
129 | 173 | ||
130 | SXNET * | 174 | SXNET * |