diff options
| author | jsing <> | 2015-07-25 16:00:14 +0000 |
|---|---|---|
| committer | jsing <> | 2015-07-25 16:00:14 +0000 |
| commit | ecfdb188f78a1de1018bd9dd4d1120d2b02e13b1 (patch) | |
| tree | cd45d65e112b344fe18207993fd6fe834040b515 | |
| parent | 751abddd1bbd878ad429dec7d604ae60ce316824 (diff) | |
| download | openbsd-ecfdb188f78a1de1018bd9dd4d1120d2b02e13b1.tar.gz openbsd-ecfdb188f78a1de1018bd9dd4d1120d2b02e13b1.tar.bz2 openbsd-ecfdb188f78a1de1018bd9dd4d1120d2b02e13b1.zip | |
Expand ASN.1 template macros - the generated assembly only differs by
changes to line numbers.
Diffstat (limited to '')
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 * |
