diff options
author | jsing <> | 2015-07-25 14:52:47 +0000 |
---|---|---|
committer | jsing <> | 2015-07-25 14:52:47 +0000 |
commit | 553cd32c2ee170cb8cf8d7b221c1512f3d86999e (patch) | |
tree | 3a4ef75aff2b83beae2d00f42e4b715192f4e2fc /src/lib/libcrypto/krb5/krb5_asn.c | |
parent | 803d578ff8ba6027ffddbc4f6037a9bd5e2d0590 (diff) | |
download | openbsd-553cd32c2ee170cb8cf8d7b221c1512f3d86999e.tar.gz openbsd-553cd32c2ee170cb8cf8d7b221c1512f3d86999e.tar.bz2 openbsd-553cd32c2ee170cb8cf8d7b221c1512f3d86999e.zip |
Expand ASN.1 template macros - no change in generated assembly.
Diffstat (limited to 'src/lib/libcrypto/krb5/krb5_asn.c')
-rw-r--r-- | src/lib/libcrypto/krb5/krb5_asn.c | 411 |
1 files changed, 351 insertions, 60 deletions
diff --git a/src/lib/libcrypto/krb5/krb5_asn.c b/src/lib/libcrypto/krb5/krb5_asn.c index 1a95e62935..4713fce37b 100644 --- a/src/lib/libcrypto/krb5/krb5_asn.c +++ b/src/lib/libcrypto/krb5/krb5_asn.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: krb5_asn.c,v 1.3 2015/02/09 16:04:46 jsing Exp $ */ | 1 | /* $OpenBSD: krb5_asn.c,v 1.4 2015/07/25 14:49:45 jsing Exp $ */ |
2 | /* Written by Vern Staats <staatsvr@asc.hpc.mil> for the OpenSSL project, | 2 | /* Written by Vern Staats <staatsvr@asc.hpc.mil> for the OpenSSL project, |
3 | ** using ocsp/{*.h,*asn*.c} as a starting point | 3 | ** using ocsp/{*.h,*asn*.c} as a starting point |
4 | */ | 4 | */ |
@@ -60,11 +60,39 @@ | |||
60 | #include <openssl/krb5_asn.h> | 60 | #include <openssl/krb5_asn.h> |
61 | 61 | ||
62 | 62 | ||
63 | ASN1_SEQUENCE(KRB5_ENCDATA) = { | 63 | static const ASN1_TEMPLATE KRB5_ENCDATA_seq_tt[] = { |
64 | ASN1_EXP(KRB5_ENCDATA, etype, ASN1_INTEGER, 0), | 64 | { |
65 | ASN1_EXP_OPT(KRB5_ENCDATA, kvno, ASN1_INTEGER, 1), | 65 | .flags = ASN1_TFLG_EXPLICIT, |
66 | ASN1_EXP(KRB5_ENCDATA, cipher, ASN1_OCTET_STRING,2) | 66 | .tag = 0, |
67 | } ASN1_SEQUENCE_END(KRB5_ENCDATA) | 67 | .offset = offsetof(KRB5_ENCDATA, etype), |
68 | .field_name = "etype", | ||
69 | .item = &ASN1_INTEGER_it, | ||
70 | }, | ||
71 | { | ||
72 | .flags = ASN1_TFLG_EXPLICIT | ASN1_TFLG_OPTIONAL, | ||
73 | .tag = 1, | ||
74 | .offset = offsetof(KRB5_ENCDATA, kvno), | ||
75 | .field_name = "kvno", | ||
76 | .item = &ASN1_INTEGER_it, | ||
77 | }, | ||
78 | { | ||
79 | .flags = ASN1_TFLG_EXPLICIT, | ||
80 | .tag = 2, | ||
81 | .offset = offsetof(KRB5_ENCDATA, cipher), | ||
82 | .field_name = "cipher", | ||
83 | .item = &ASN1_OCTET_STRING_it, | ||
84 | }, | ||
85 | }; | ||
86 | |||
87 | const ASN1_ITEM KRB5_ENCDATA_it = { | ||
88 | .itype = ASN1_ITYPE_SEQUENCE, | ||
89 | .utype = V_ASN1_SEQUENCE, | ||
90 | .templates = KRB5_ENCDATA_seq_tt, | ||
91 | .tcount = sizeof(KRB5_ENCDATA_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
92 | .funcs = NULL, | ||
93 | .size = sizeof(KRB5_ENCDATA), | ||
94 | .sname = "KRB5_ENCDATA", | ||
95 | }; | ||
68 | 96 | ||
69 | 97 | ||
70 | KRB5_ENCDATA * | 98 | KRB5_ENCDATA * |
@@ -93,10 +121,32 @@ KRB5_ENCDATA_free(KRB5_ENCDATA *a) | |||
93 | } | 121 | } |
94 | 122 | ||
95 | 123 | ||
96 | ASN1_SEQUENCE(KRB5_PRINCNAME) = { | 124 | static const ASN1_TEMPLATE KRB5_PRINCNAME_seq_tt[] = { |
97 | ASN1_EXP(KRB5_PRINCNAME, nametype, ASN1_INTEGER, 0), | 125 | { |
98 | ASN1_EXP_SEQUENCE_OF(KRB5_PRINCNAME, namestring, ASN1_GENERALSTRING, 1) | 126 | .flags = ASN1_TFLG_EXPLICIT, |
99 | } ASN1_SEQUENCE_END(KRB5_PRINCNAME) | 127 | .tag = 0, |
128 | .offset = offsetof(KRB5_PRINCNAME, nametype), | ||
129 | .field_name = "nametype", | ||
130 | .item = &ASN1_INTEGER_it, | ||
131 | }, | ||
132 | { | ||
133 | .flags = ASN1_TFLG_EXPLICIT | ASN1_TFLG_SEQUENCE_OF, | ||
134 | .tag = 1, | ||
135 | .offset = offsetof(KRB5_PRINCNAME, namestring), | ||
136 | .field_name = "namestring", | ||
137 | .item = &ASN1_GENERALSTRING_it, | ||
138 | }, | ||
139 | }; | ||
140 | |||
141 | const ASN1_ITEM KRB5_PRINCNAME_it = { | ||
142 | .itype = ASN1_ITYPE_SEQUENCE, | ||
143 | .utype = V_ASN1_SEQUENCE, | ||
144 | .templates = KRB5_PRINCNAME_seq_tt, | ||
145 | .tcount = sizeof(KRB5_PRINCNAME_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
146 | .funcs = NULL, | ||
147 | .size = sizeof(KRB5_PRINCNAME), | ||
148 | .sname = "KRB5_PRINCNAME", | ||
149 | }; | ||
100 | 150 | ||
101 | 151 | ||
102 | KRB5_PRINCNAME * | 152 | KRB5_PRINCNAME * |
@@ -126,12 +176,46 @@ KRB5_PRINCNAME_free(KRB5_PRINCNAME *a) | |||
126 | 176 | ||
127 | 177 | ||
128 | /* [APPLICATION 1] = 0x61 */ | 178 | /* [APPLICATION 1] = 0x61 */ |
129 | ASN1_SEQUENCE(KRB5_TKTBODY) = { | 179 | static const ASN1_TEMPLATE KRB5_TKTBODY_seq_tt[] = { |
130 | ASN1_EXP(KRB5_TKTBODY, tktvno, ASN1_INTEGER, 0), | 180 | { |
131 | ASN1_EXP(KRB5_TKTBODY, realm, ASN1_GENERALSTRING, 1), | 181 | .flags = ASN1_TFLG_EXPLICIT, |
132 | ASN1_EXP(KRB5_TKTBODY, sname, KRB5_PRINCNAME, 2), | 182 | .tag = 0, |
133 | ASN1_EXP(KRB5_TKTBODY, encdata, KRB5_ENCDATA, 3) | 183 | .offset = offsetof(KRB5_TKTBODY, tktvno), |
134 | } ASN1_SEQUENCE_END(KRB5_TKTBODY) | 184 | .field_name = "tktvno", |
185 | .item = &ASN1_INTEGER_it, | ||
186 | }, | ||
187 | { | ||
188 | .flags = ASN1_TFLG_EXPLICIT, | ||
189 | .tag = 1, | ||
190 | .offset = offsetof(KRB5_TKTBODY, realm), | ||
191 | .field_name = "realm", | ||
192 | .item = &ASN1_GENERALSTRING_it, | ||
193 | }, | ||
194 | { | ||
195 | .flags = ASN1_TFLG_EXPLICIT, | ||
196 | .tag = 2, | ||
197 | .offset = offsetof(KRB5_TKTBODY, sname), | ||
198 | .field_name = "sname", | ||
199 | .item = &KRB5_PRINCNAME_it, | ||
200 | }, | ||
201 | { | ||
202 | .flags = ASN1_TFLG_EXPLICIT, | ||
203 | .tag = 3, | ||
204 | .offset = offsetof(KRB5_TKTBODY, encdata), | ||
205 | .field_name = "encdata", | ||
206 | .item = &KRB5_ENCDATA_it, | ||
207 | }, | ||
208 | }; | ||
209 | |||
210 | const ASN1_ITEM KRB5_TKTBODY_it = { | ||
211 | .itype = ASN1_ITYPE_SEQUENCE, | ||
212 | .utype = V_ASN1_SEQUENCE, | ||
213 | .templates = KRB5_TKTBODY_seq_tt, | ||
214 | .tcount = sizeof(KRB5_TKTBODY_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
215 | .funcs = NULL, | ||
216 | .size = sizeof(KRB5_TKTBODY), | ||
217 | .sname = "KRB5_TKTBODY", | ||
218 | }; | ||
135 | 219 | ||
136 | 220 | ||
137 | KRB5_TKTBODY * | 221 | KRB5_TKTBODY * |
@@ -160,10 +244,23 @@ KRB5_TKTBODY_free(KRB5_TKTBODY *a) | |||
160 | } | 244 | } |
161 | 245 | ||
162 | 246 | ||
163 | ASN1_ITEM_TEMPLATE(KRB5_TICKET) = | 247 | static const ASN1_TEMPLATE KRB5_TICKET_item_tt = { |
164 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_EXPTAG|ASN1_TFLG_APPLICATION, 1, | 248 | .flags = ASN1_TFLG_EXPTAG | ASN1_TFLG_APPLICATION, |
165 | KRB5_TICKET, KRB5_TKTBODY) | 249 | .tag = 1, |
166 | ASN1_ITEM_TEMPLATE_END(KRB5_TICKET) | 250 | .offset = 0, |
251 | .field_name = "KRB5_TICKET", | ||
252 | .item = &KRB5_TKTBODY_it, | ||
253 | }; | ||
254 | |||
255 | const ASN1_ITEM KRB5_TICKET_it = { | ||
256 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
257 | .utype = -1, | ||
258 | .templates = &KRB5_TICKET_item_tt, | ||
259 | .tcount = 0, | ||
260 | .funcs = NULL, | ||
261 | .size = 0, | ||
262 | .sname = "KRB5_TICKET", | ||
263 | }; | ||
167 | 264 | ||
168 | 265 | ||
169 | KRB5_TICKET * | 266 | KRB5_TICKET * |
@@ -193,13 +290,53 @@ KRB5_TICKET_free(KRB5_TICKET *a) | |||
193 | 290 | ||
194 | 291 | ||
195 | /* [APPLICATION 14] = 0x6e */ | 292 | /* [APPLICATION 14] = 0x6e */ |
196 | ASN1_SEQUENCE(KRB5_APREQBODY) = { | 293 | static const ASN1_TEMPLATE KRB5_APREQBODY_seq_tt[] = { |
197 | ASN1_EXP(KRB5_APREQBODY, pvno, ASN1_INTEGER, 0), | 294 | { |
198 | ASN1_EXP(KRB5_APREQBODY, msgtype, ASN1_INTEGER, 1), | 295 | .flags = ASN1_TFLG_EXPLICIT, |
199 | ASN1_EXP(KRB5_APREQBODY, apoptions, ASN1_BIT_STRING, 2), | 296 | .tag = 0, |
200 | ASN1_EXP(KRB5_APREQBODY, ticket, KRB5_TICKET, 3), | 297 | .offset = offsetof(KRB5_APREQBODY, pvno), |
201 | ASN1_EXP(KRB5_APREQBODY, authenticator, KRB5_ENCDATA, 4), | 298 | .field_name = "pvno", |
202 | } ASN1_SEQUENCE_END(KRB5_APREQBODY) | 299 | .item = &ASN1_INTEGER_it, |
300 | }, | ||
301 | { | ||
302 | .flags = ASN1_TFLG_EXPLICIT, | ||
303 | .tag = 1, | ||
304 | .offset = offsetof(KRB5_APREQBODY, msgtype), | ||
305 | .field_name = "msgtype", | ||
306 | .item = &ASN1_INTEGER_it, | ||
307 | }, | ||
308 | { | ||
309 | .flags = ASN1_TFLG_EXPLICIT, | ||
310 | .tag = 2, | ||
311 | .offset = offsetof(KRB5_APREQBODY, apoptions), | ||
312 | .field_name = "apoptions", | ||
313 | .item = &ASN1_BIT_STRING_it, | ||
314 | }, | ||
315 | { | ||
316 | .flags = ASN1_TFLG_EXPLICIT, | ||
317 | .tag = 3, | ||
318 | .offset = offsetof(KRB5_APREQBODY, ticket), | ||
319 | .field_name = "ticket", | ||
320 | .item = &KRB5_TICKET_it, | ||
321 | }, | ||
322 | { | ||
323 | .flags = ASN1_TFLG_EXPLICIT, | ||
324 | .tag = 4, | ||
325 | .offset = offsetof(KRB5_APREQBODY, authenticator), | ||
326 | .field_name = "authenticator", | ||
327 | .item = &KRB5_ENCDATA_it, | ||
328 | }, | ||
329 | }; | ||
330 | |||
331 | const ASN1_ITEM KRB5_APREQBODY_it = { | ||
332 | .itype = ASN1_ITYPE_SEQUENCE, | ||
333 | .utype = V_ASN1_SEQUENCE, | ||
334 | .templates = KRB5_APREQBODY_seq_tt, | ||
335 | .tcount = sizeof(KRB5_APREQBODY_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
336 | .funcs = NULL, | ||
337 | .size = sizeof(KRB5_APREQBODY), | ||
338 | .sname = "KRB5_APREQBODY", | ||
339 | }; | ||
203 | 340 | ||
204 | 341 | ||
205 | KRB5_APREQBODY * | 342 | KRB5_APREQBODY * |
@@ -227,10 +364,23 @@ KRB5_APREQBODY_free(KRB5_APREQBODY *a) | |||
227 | ASN1_item_free((ASN1_VALUE *)a, &KRB5_APREQBODY_it); | 364 | ASN1_item_free((ASN1_VALUE *)a, &KRB5_APREQBODY_it); |
228 | } | 365 | } |
229 | 366 | ||
230 | ASN1_ITEM_TEMPLATE(KRB5_APREQ) = | 367 | static const ASN1_TEMPLATE KRB5_APREQ_item_tt = { |
231 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_EXPTAG|ASN1_TFLG_APPLICATION, 14, | 368 | .flags = ASN1_TFLG_EXPTAG | ASN1_TFLG_APPLICATION, |
232 | KRB5_APREQ, KRB5_APREQBODY) | 369 | .tag = 14, |
233 | ASN1_ITEM_TEMPLATE_END(KRB5_APREQ) | 370 | .offset = 0, |
371 | .field_name = "KRB5_APREQ", | ||
372 | .item = &KRB5_APREQBODY_it, | ||
373 | }; | ||
374 | |||
375 | const ASN1_ITEM KRB5_APREQ_it = { | ||
376 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
377 | .utype = -1, | ||
378 | .templates = &KRB5_APREQ_item_tt, | ||
379 | .tcount = 0, | ||
380 | .funcs = NULL, | ||
381 | .size = 0, | ||
382 | .sname = "KRB5_APREQ", | ||
383 | }; | ||
234 | 384 | ||
235 | 385 | ||
236 | KRB5_APREQ * | 386 | KRB5_APREQ * |
@@ -261,10 +411,32 @@ KRB5_APREQ_free(KRB5_APREQ *a) | |||
261 | 411 | ||
262 | /* Authenticator stuff */ | 412 | /* Authenticator stuff */ |
263 | 413 | ||
264 | ASN1_SEQUENCE(KRB5_CHECKSUM) = { | 414 | static const ASN1_TEMPLATE KRB5_CHECKSUM_seq_tt[] = { |
265 | ASN1_EXP(KRB5_CHECKSUM, ctype, ASN1_INTEGER, 0), | 415 | { |
266 | ASN1_EXP(KRB5_CHECKSUM, checksum, ASN1_OCTET_STRING,1) | 416 | .flags = ASN1_TFLG_EXPLICIT, |
267 | } ASN1_SEQUENCE_END(KRB5_CHECKSUM) | 417 | .tag = 0, |
418 | .offset = offsetof(KRB5_CHECKSUM, ctype), | ||
419 | .field_name = "ctype", | ||
420 | .item = &ASN1_INTEGER_it, | ||
421 | }, | ||
422 | { | ||
423 | .flags = ASN1_TFLG_EXPLICIT, | ||
424 | .tag = 1, | ||
425 | .offset = offsetof(KRB5_CHECKSUM, checksum), | ||
426 | .field_name = "checksum", | ||
427 | .item = &ASN1_OCTET_STRING_it, | ||
428 | }, | ||
429 | }; | ||
430 | |||
431 | const ASN1_ITEM KRB5_CHECKSUM_it = { | ||
432 | .itype = ASN1_ITYPE_SEQUENCE, | ||
433 | .utype = V_ASN1_SEQUENCE, | ||
434 | .templates = KRB5_CHECKSUM_seq_tt, | ||
435 | .tcount = sizeof(KRB5_CHECKSUM_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
436 | .funcs = NULL, | ||
437 | .size = sizeof(KRB5_CHECKSUM), | ||
438 | .sname = "KRB5_CHECKSUM", | ||
439 | }; | ||
268 | 440 | ||
269 | 441 | ||
270 | KRB5_CHECKSUM * | 442 | KRB5_CHECKSUM * |
@@ -293,10 +465,32 @@ KRB5_CHECKSUM_free(KRB5_CHECKSUM *a) | |||
293 | } | 465 | } |
294 | 466 | ||
295 | 467 | ||
296 | ASN1_SEQUENCE(KRB5_ENCKEY) = { | 468 | static const ASN1_TEMPLATE KRB5_ENCKEY_seq_tt[] = { |
297 | ASN1_EXP(KRB5_ENCKEY, ktype, ASN1_INTEGER, 0), | 469 | { |
298 | ASN1_EXP(KRB5_ENCKEY, keyvalue, ASN1_OCTET_STRING,1) | 470 | .flags = ASN1_TFLG_EXPLICIT, |
299 | } ASN1_SEQUENCE_END(KRB5_ENCKEY) | 471 | .tag = 0, |
472 | .offset = offsetof(KRB5_ENCKEY, ktype), | ||
473 | .field_name = "ktype", | ||
474 | .item = &ASN1_INTEGER_it, | ||
475 | }, | ||
476 | { | ||
477 | .flags = ASN1_TFLG_EXPLICIT, | ||
478 | .tag = 1, | ||
479 | .offset = offsetof(KRB5_ENCKEY, keyvalue), | ||
480 | .field_name = "keyvalue", | ||
481 | .item = &ASN1_OCTET_STRING_it, | ||
482 | }, | ||
483 | }; | ||
484 | |||
485 | const ASN1_ITEM KRB5_ENCKEY_it = { | ||
486 | .itype = ASN1_ITYPE_SEQUENCE, | ||
487 | .utype = V_ASN1_SEQUENCE, | ||
488 | .templates = KRB5_ENCKEY_seq_tt, | ||
489 | .tcount = sizeof(KRB5_ENCKEY_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
490 | .funcs = NULL, | ||
491 | .size = sizeof(KRB5_ENCKEY), | ||
492 | .sname = "KRB5_ENCKEY", | ||
493 | }; | ||
300 | 494 | ||
301 | 495 | ||
302 | KRB5_ENCKEY * | 496 | KRB5_ENCKEY * |
@@ -326,10 +520,32 @@ KRB5_ENCKEY_free(KRB5_ENCKEY *a) | |||
326 | 520 | ||
327 | 521 | ||
328 | /* SEQ OF SEQ; see ASN1_EXP_SEQUENCE_OF_OPT() below */ | 522 | /* SEQ OF SEQ; see ASN1_EXP_SEQUENCE_OF_OPT() below */ |
329 | ASN1_SEQUENCE(KRB5_AUTHDATA) = { | 523 | static const ASN1_TEMPLATE KRB5_AUTHDATA_seq_tt[] = { |
330 | ASN1_EXP(KRB5_AUTHDATA, adtype, ASN1_INTEGER, 0), | 524 | { |
331 | ASN1_EXP(KRB5_AUTHDATA, addata, ASN1_OCTET_STRING,1) | 525 | .flags = ASN1_TFLG_EXPLICIT, |
332 | } ASN1_SEQUENCE_END(KRB5_AUTHDATA) | 526 | .tag = 0, |
527 | .offset = offsetof(KRB5_AUTHDATA, adtype), | ||
528 | .field_name = "adtype", | ||
529 | .item = &ASN1_INTEGER_it, | ||
530 | }, | ||
531 | { | ||
532 | .flags = ASN1_TFLG_EXPLICIT, | ||
533 | .tag = 1, | ||
534 | .offset = offsetof(KRB5_AUTHDATA, addata), | ||
535 | .field_name = "addata", | ||
536 | .item = &ASN1_OCTET_STRING_it, | ||
537 | }, | ||
538 | }; | ||
539 | |||
540 | const ASN1_ITEM KRB5_AUTHDATA_it = { | ||
541 | .itype = ASN1_ITYPE_SEQUENCE, | ||
542 | .utype = V_ASN1_SEQUENCE, | ||
543 | .templates = KRB5_AUTHDATA_seq_tt, | ||
544 | .tcount = sizeof(KRB5_AUTHDATA_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
545 | .funcs = NULL, | ||
546 | .size = sizeof(KRB5_AUTHDATA), | ||
547 | .sname = "KRB5_AUTHDATA", | ||
548 | }; | ||
333 | 549 | ||
334 | 550 | ||
335 | KRB5_AUTHDATA * | 551 | KRB5_AUTHDATA * |
@@ -359,18 +575,81 @@ KRB5_AUTHDATA_free(KRB5_AUTHDATA *a) | |||
359 | 575 | ||
360 | 576 | ||
361 | /* [APPLICATION 2] = 0x62 */ | 577 | /* [APPLICATION 2] = 0x62 */ |
362 | ASN1_SEQUENCE(KRB5_AUTHENTBODY) = { | 578 | static const ASN1_TEMPLATE KRB5_AUTHENTBODY_seq_tt[] = { |
363 | ASN1_EXP(KRB5_AUTHENTBODY, avno, ASN1_INTEGER, 0), | 579 | { |
364 | ASN1_EXP(KRB5_AUTHENTBODY, crealm, ASN1_GENERALSTRING, 1), | 580 | .flags = ASN1_TFLG_EXPLICIT, |
365 | ASN1_EXP(KRB5_AUTHENTBODY, cname, KRB5_PRINCNAME, 2), | 581 | .tag = 0, |
366 | ASN1_EXP_OPT(KRB5_AUTHENTBODY, cksum, KRB5_CHECKSUM, 3), | 582 | .offset = offsetof(KRB5_AUTHENTBODY, avno), |
367 | ASN1_EXP(KRB5_AUTHENTBODY, cusec, ASN1_INTEGER, 4), | 583 | .field_name = "avno", |
368 | ASN1_EXP(KRB5_AUTHENTBODY, ctime, ASN1_GENERALIZEDTIME, 5), | 584 | .item = &ASN1_INTEGER_it, |
369 | ASN1_EXP_OPT(KRB5_AUTHENTBODY, subkey, KRB5_ENCKEY, 6), | 585 | }, |
370 | ASN1_EXP_OPT(KRB5_AUTHENTBODY, seqnum, ASN1_INTEGER, 7), | 586 | { |
371 | ASN1_EXP_SEQUENCE_OF_OPT | 587 | .flags = ASN1_TFLG_EXPLICIT, |
372 | (KRB5_AUTHENTBODY, authorization, KRB5_AUTHDATA, 8), | 588 | .tag = 1, |
373 | } ASN1_SEQUENCE_END(KRB5_AUTHENTBODY) | 589 | .offset = offsetof(KRB5_AUTHENTBODY, crealm), |
590 | .field_name = "crealm", | ||
591 | .item = &ASN1_GENERALSTRING_it, | ||
592 | }, | ||
593 | { | ||
594 | .flags = ASN1_TFLG_EXPLICIT, | ||
595 | .tag = 2, | ||
596 | .offset = offsetof(KRB5_AUTHENTBODY, cname), | ||
597 | .field_name = "cname", | ||
598 | .item = &KRB5_PRINCNAME_it, | ||
599 | }, | ||
600 | { | ||
601 | .flags = ASN1_TFLG_EXPLICIT | ASN1_TFLG_OPTIONAL, | ||
602 | .tag = 3, | ||
603 | .offset = offsetof(KRB5_AUTHENTBODY, cksum), | ||
604 | .field_name = "cksum", | ||
605 | .item = &KRB5_CHECKSUM_it, | ||
606 | }, | ||
607 | { | ||
608 | .flags = ASN1_TFLG_EXPLICIT, | ||
609 | .tag = 4, | ||
610 | .offset = offsetof(KRB5_AUTHENTBODY, cusec), | ||
611 | .field_name = "cusec", | ||
612 | .item = &ASN1_INTEGER_it, | ||
613 | }, | ||
614 | { | ||
615 | .flags = ASN1_TFLG_EXPLICIT, | ||
616 | .tag = 5, | ||
617 | .offset = offsetof(KRB5_AUTHENTBODY, ctime), | ||
618 | .field_name = "ctime", | ||
619 | .item = &ASN1_GENERALIZEDTIME_it, | ||
620 | }, | ||
621 | { | ||
622 | .flags = ASN1_TFLG_EXPLICIT | ASN1_TFLG_OPTIONAL, | ||
623 | .tag = 6, | ||
624 | .offset = offsetof(KRB5_AUTHENTBODY, subkey), | ||
625 | .field_name = "subkey", | ||
626 | .item = &KRB5_ENCKEY_it, | ||
627 | }, | ||
628 | { | ||
629 | .flags = ASN1_TFLG_EXPLICIT | ASN1_TFLG_OPTIONAL, | ||
630 | .tag = 7, | ||
631 | .offset = offsetof(KRB5_AUTHENTBODY, seqnum), | ||
632 | .field_name = "seqnum", | ||
633 | .item = &ASN1_INTEGER_it, | ||
634 | }, | ||
635 | { | ||
636 | .flags = ASN1_TFLG_EXPLICIT | ASN1_TFLG_SEQUENCE_OF | ASN1_TFLG_OPTIONAL, | ||
637 | .tag = 8, | ||
638 | .offset = offsetof(KRB5_AUTHENTBODY, authorization), | ||
639 | .field_name = "authorization", | ||
640 | .item = &KRB5_AUTHDATA_it, | ||
641 | }, | ||
642 | }; | ||
643 | |||
644 | const ASN1_ITEM KRB5_AUTHENTBODY_it = { | ||
645 | .itype = ASN1_ITYPE_SEQUENCE, | ||
646 | .utype = V_ASN1_SEQUENCE, | ||
647 | .templates = KRB5_AUTHENTBODY_seq_tt, | ||
648 | .tcount = sizeof(KRB5_AUTHENTBODY_seq_tt) / sizeof(ASN1_TEMPLATE), | ||
649 | .funcs = NULL, | ||
650 | .size = sizeof(KRB5_AUTHENTBODY), | ||
651 | .sname = "KRB5_AUTHENTBODY", | ||
652 | }; | ||
374 | 653 | ||
375 | 654 | ||
376 | KRB5_AUTHENTBODY * | 655 | KRB5_AUTHENTBODY * |
@@ -398,10 +677,23 @@ KRB5_AUTHENTBODY_free(KRB5_AUTHENTBODY *a) | |||
398 | ASN1_item_free((ASN1_VALUE *)a, &KRB5_AUTHENTBODY_it); | 677 | ASN1_item_free((ASN1_VALUE *)a, &KRB5_AUTHENTBODY_it); |
399 | } | 678 | } |
400 | 679 | ||
401 | ASN1_ITEM_TEMPLATE(KRB5_AUTHENT) = | 680 | static const ASN1_TEMPLATE KRB5_AUTHENT_item_tt = { |
402 | ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_EXPTAG|ASN1_TFLG_APPLICATION, 2, | 681 | .flags = ASN1_TFLG_EXPTAG | ASN1_TFLG_APPLICATION, |
403 | KRB5_AUTHENT, KRB5_AUTHENTBODY) | 682 | .tag = 2, |
404 | ASN1_ITEM_TEMPLATE_END(KRB5_AUTHENT) | 683 | .offset = 0, |
684 | .field_name = "KRB5_AUTHENT", | ||
685 | .item = &KRB5_AUTHENTBODY_it, | ||
686 | }; | ||
687 | |||
688 | const ASN1_ITEM KRB5_AUTHENT_it = { | ||
689 | .itype = ASN1_ITYPE_PRIMITIVE, | ||
690 | .utype = -1, | ||
691 | .templates = &KRB5_AUTHENT_item_tt, | ||
692 | .tcount = 0, | ||
693 | .funcs = NULL, | ||
694 | .size = 0, | ||
695 | .sname = "KRB5_AUTHENT", | ||
696 | }; | ||
405 | 697 | ||
406 | 698 | ||
407 | KRB5_AUTHENT * | 699 | KRB5_AUTHENT * |
@@ -428,4 +720,3 @@ KRB5_AUTHENT_free(KRB5_AUTHENT *a) | |||
428 | { | 720 | { |
429 | ASN1_item_free((ASN1_VALUE *)a, &KRB5_AUTHENT_it); | 721 | ASN1_item_free((ASN1_VALUE *)a, &KRB5_AUTHENT_it); |
430 | } | 722 | } |
431 | |||