diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/asn1/asn1t.h | 73 |
1 files changed, 72 insertions, 1 deletions
diff --git a/src/lib/libcrypto/asn1/asn1t.h b/src/lib/libcrypto/asn1/asn1t.h index ba380bdf41..d6168b65e1 100644 --- a/src/lib/libcrypto/asn1/asn1t.h +++ b/src/lib/libcrypto/asn1/asn1t.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: asn1t.h,v 1.14 2016/12/27 15:12:51 jsing Exp $ */ | 1 | /* $OpenBSD: asn1t.h,v 1.15 2019/08/20 13:10:09 inoguchi 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 2000. | 3 | * project 2000. |
| 4 | */ | 4 | */ |
| @@ -81,6 +81,9 @@ extern "C" { | |||
| 81 | #define ASN1_ITEM_start(itname) \ | 81 | #define ASN1_ITEM_start(itname) \ |
| 82 | const ASN1_ITEM itname##_it = { | 82 | const ASN1_ITEM itname##_it = { |
| 83 | 83 | ||
| 84 | #define static_ASN1_ITEM_start(itname) \ | ||
| 85 | static const ASN1_ITEM itname##_it = { | ||
| 86 | |||
| 84 | #define ASN1_ITEM_end(itname) \ | 87 | #define ASN1_ITEM_end(itname) \ |
| 85 | }; | 88 | }; |
| 86 | 89 | ||
| @@ -103,6 +106,18 @@ extern "C" { | |||
| 103 | #tname \ | 106 | #tname \ |
| 104 | ASN1_ITEM_end(tname) | 107 | ASN1_ITEM_end(tname) |
| 105 | 108 | ||
| 109 | #define static_ASN1_ITEM_TEMPLATE_END(tname) \ | ||
| 110 | ;\ | ||
| 111 | static_ASN1_ITEM_start(tname) \ | ||
| 112 | ASN1_ITYPE_PRIMITIVE,\ | ||
| 113 | -1,\ | ||
| 114 | &tname##_item_tt,\ | ||
| 115 | 0,\ | ||
| 116 | NULL,\ | ||
| 117 | 0,\ | ||
| 118 | #tname \ | ||
| 119 | ASN1_ITEM_end(tname) | ||
| 120 | |||
| 106 | 121 | ||
| 107 | /* This is a ASN1 type which just embeds a template */ | 122 | /* This is a ASN1 type which just embeds a template */ |
| 108 | 123 | ||
| @@ -131,6 +146,8 @@ extern "C" { | |||
| 131 | 146 | ||
| 132 | #define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) | 147 | #define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) |
| 133 | 148 | ||
| 149 | #define static_ASN1_SEQUENCE_END(stname) static_ASN1_SEQUENCE_END_name(stname, stname) | ||
| 150 | |||
| 134 | #define ASN1_SEQUENCE_END_name(stname, tname) \ | 151 | #define ASN1_SEQUENCE_END_name(stname, tname) \ |
| 135 | ;\ | 152 | ;\ |
| 136 | ASN1_ITEM_start(tname) \ | 153 | ASN1_ITEM_start(tname) \ |
| @@ -143,6 +160,18 @@ extern "C" { | |||
| 143 | #stname \ | 160 | #stname \ |
| 144 | ASN1_ITEM_end(tname) | 161 | ASN1_ITEM_end(tname) |
| 145 | 162 | ||
| 163 | #define static_ASN1_SEQUENCE_END_name(stname, tname) \ | ||
| 164 | ;\ | ||
| 165 | static_ASN1_ITEM_start(tname) \ | ||
| 166 | ASN1_ITYPE_SEQUENCE,\ | ||
| 167 | V_ASN1_SEQUENCE,\ | ||
| 168 | tname##_seq_tt,\ | ||
| 169 | sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ | ||
| 170 | NULL,\ | ||
| 171 | sizeof(stname),\ | ||
| 172 | #stname \ | ||
| 173 | ASN1_ITEM_end(tname) | ||
| 174 | |||
| 146 | #define ASN1_NDEF_SEQUENCE(tname) \ | 175 | #define ASN1_NDEF_SEQUENCE(tname) \ |
| 147 | ASN1_SEQUENCE(tname) | 176 | ASN1_SEQUENCE(tname) |
| 148 | 177 | ||
| @@ -177,12 +206,26 @@ extern "C" { | |||
| 177 | #tname \ | 206 | #tname \ |
| 178 | ASN1_ITEM_end(tname) | 207 | ASN1_ITEM_end(tname) |
| 179 | 208 | ||
| 209 | #define static_ASN1_NDEF_SEQUENCE_END(tname) \ | ||
| 210 | ;\ | ||
| 211 | static_ASN1_ITEM_start(tname) \ | ||
| 212 | ASN1_ITYPE_NDEF_SEQUENCE,\ | ||
| 213 | V_ASN1_SEQUENCE,\ | ||
| 214 | tname##_seq_tt,\ | ||
| 215 | sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ | ||
| 216 | NULL,\ | ||
| 217 | sizeof(tname),\ | ||
| 218 | #tname \ | ||
| 219 | ASN1_ITEM_end(tname) | ||
| 220 | |||
| 180 | #define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname, stname) | 221 | #define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname, stname) |
| 181 | 222 | ||
| 182 | #define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) | 223 | #define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) |
| 183 | 224 | ||
| 184 | #define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) | 225 | #define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) |
| 185 | 226 | ||
| 227 | #define static_ASN1_SEQUENCE_END_cb(stname, tname) static_ASN1_SEQUENCE_END_ref(stname, tname) | ||
| 228 | |||
| 186 | #define ASN1_SEQUENCE_END_ref(stname, tname) \ | 229 | #define ASN1_SEQUENCE_END_ref(stname, tname) \ |
| 187 | ;\ | 230 | ;\ |
| 188 | ASN1_ITEM_start(tname) \ | 231 | ASN1_ITEM_start(tname) \ |
| @@ -195,6 +238,18 @@ extern "C" { | |||
| 195 | #stname \ | 238 | #stname \ |
| 196 | ASN1_ITEM_end(tname) | 239 | ASN1_ITEM_end(tname) |
| 197 | 240 | ||
| 241 | #define static_ASN1_SEQUENCE_END_ref(stname, tname) \ | ||
| 242 | ;\ | ||
| 243 | static_ASN1_ITEM_start(tname) \ | ||
| 244 | ASN1_ITYPE_SEQUENCE,\ | ||
| 245 | V_ASN1_SEQUENCE,\ | ||
| 246 | tname##_seq_tt,\ | ||
| 247 | sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ | ||
| 248 | &tname##_aux,\ | ||
| 249 | sizeof(stname),\ | ||
| 250 | #stname \ | ||
| 251 | ASN1_ITEM_end(tname) | ||
| 252 | |||
| 198 | #define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ | 253 | #define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ |
| 199 | ;\ | 254 | ;\ |
| 200 | ASN1_ITEM_start(tname) \ | 255 | ASN1_ITEM_start(tname) \ |
| @@ -239,8 +294,12 @@ extern "C" { | |||
| 239 | 294 | ||
| 240 | #define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) | 295 | #define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) |
| 241 | 296 | ||
| 297 | #define static_ASN1_CHOICE_END(stname) static_ASN1_CHOICE_END_name(stname, stname) | ||
| 298 | |||
| 242 | #define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) | 299 | #define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) |
| 243 | 300 | ||
| 301 | #define static_ASN1_CHOICE_END_name(stname, tname) static_ASN1_CHOICE_END_selector(stname, tname, type) | ||
| 302 | |||
| 244 | #define ASN1_CHOICE_END_selector(stname, tname, selname) \ | 303 | #define ASN1_CHOICE_END_selector(stname, tname, selname) \ |
| 245 | ;\ | 304 | ;\ |
| 246 | ASN1_ITEM_start(tname) \ | 305 | ASN1_ITEM_start(tname) \ |
| @@ -253,6 +312,18 @@ extern "C" { | |||
| 253 | #stname \ | 312 | #stname \ |
| 254 | ASN1_ITEM_end(tname) | 313 | ASN1_ITEM_end(tname) |
| 255 | 314 | ||
| 315 | #define static_ASN1_CHOICE_END_selector(stname, tname, selname) \ | ||
| 316 | ;\ | ||
| 317 | static_ASN1_ITEM_start(tname) \ | ||
| 318 | ASN1_ITYPE_CHOICE,\ | ||
| 319 | offsetof(stname,selname) ,\ | ||
| 320 | tname##_ch_tt,\ | ||
| 321 | sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ | ||
| 322 | NULL,\ | ||
| 323 | sizeof(stname),\ | ||
| 324 | #stname \ | ||
| 325 | ASN1_ITEM_end(tname) | ||
| 326 | |||
| 256 | #define ASN1_CHOICE_END_cb(stname, tname, selname) \ | 327 | #define ASN1_CHOICE_END_cb(stname, tname, selname) \ |
| 257 | ;\ | 328 | ;\ |
| 258 | ASN1_ITEM_start(tname) \ | 329 | ASN1_ITEM_start(tname) \ |
