Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/crypto/krb5/src/tests/asn.1/krb5_encode_test.c
34907 views
1
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
/* tests/asn.1/krb5_encode_test.c */
3
/*
4
* Copyright (C) 1994 by the Massachusetts Institute of Technology.
5
* All rights reserved.
6
*
7
* Export of this software from the United States of America may
8
* require a specific license from the United States Government.
9
* It is the responsibility of any person or organization contemplating
10
* export to obtain such a license before exporting.
11
*
12
* WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
13
* distribute this software and its documentation for any purpose and
14
* without fee is hereby granted, provided that the above copyright
15
* notice appear in all copies and that both that copyright notice and
16
* this permission notice appear in supporting documentation, and that
17
* the name of M.I.T. not be used in advertising or publicity pertaining
18
* to distribution of the software without specific, written prior
19
* permission. Furthermore if you modify this software you must label
20
* your software as modified software and not distribute it in such a
21
* fashion that it might be confused with the original M.I.T. software.
22
* M.I.T. makes no representations about the suitability of
23
* this software for any purpose. It is provided "as is" without express
24
* or implied warranty.
25
*/
26
27
#include "k5-int.h"
28
#include "com_err.h"
29
#include "utility.h"
30
31
#include "ktest.h"
32
#include "debug.h"
33
34
extern int current_appl_type;
35
36
krb5_context test_context;
37
int error_count = 0;
38
int do_trval = 0;
39
int first_trval = 1;
40
int trval2(FILE *, unsigned char *, int, int, int *);
41
42
static void
43
encoder_print_results(krb5_data *code, char *typestring, char *description)
44
{
45
char *code_string = NULL;
46
int r, rlen;
47
48
if (do_trval) {
49
if (first_trval)
50
first_trval = 0;
51
else
52
printf("\n");
53
printf("encode_krb5_%s%s:\n", typestring, description);
54
r = trval2(stdout, (uint8_t *)code->data, code->length, 0, &rlen);
55
printf("\n");
56
if (rlen < 0 || (unsigned int) rlen != code->length) {
57
printf("Error: length mismatch: was %d, parsed %d\n",
58
code->length, rlen);
59
exit(1);
60
}
61
if (r != 0) {
62
printf("Error: Return from trval2 is %d.\n", r);
63
exit(1);
64
}
65
current_appl_type = -1; /* Reset type */
66
} else {
67
asn1_krb5_data_unparse(code,&(code_string));
68
printf("encode_krb5_%s%s: %s\n", typestring, description,
69
code_string);
70
free(code_string);
71
}
72
ktest_destroy_data(&code);
73
}
74
75
static void
76
PRS(int argc, char **argv)
77
{
78
extern char *optarg;
79
int optchar;
80
extern int print_types, print_krb5_types, print_id_and_len,
81
print_constructed_length, print_skip_context,
82
print_skip_tagnum, print_context_shortcut;
83
84
while ((optchar = getopt(argc, argv, "tp:")) != -1) {
85
switch(optchar) {
86
case 't':
87
do_trval = 1;
88
break;
89
case 'p':
90
sample_principal_name = optarg;
91
break;
92
case '?':
93
default:
94
fprintf(stderr, "Usage: %s [-t] [-p principal]\n",
95
argv[0]);
96
exit(1);
97
}
98
}
99
print_types = 1;
100
print_krb5_types = 1;
101
print_id_and_len = 0;
102
print_constructed_length = 0;
103
print_skip_context = 1;
104
print_skip_tagnum = 1;
105
print_context_shortcut = 1;
106
}
107
108
int
109
main(int argc, char **argv)
110
{
111
krb5_data *code;
112
krb5_error_code retval;
113
114
PRS(argc, argv);
115
116
retval = krb5_init_context(&test_context);
117
if (retval) {
118
com_err(argv[0], retval, "while initializing krb5");
119
exit(1);
120
}
121
init_access(argv[0]);
122
123
#define encode_run(value,typestring,description,encoder) \
124
retval = encoder(&(value),&(code)); \
125
if (retval) { \
126
com_err("krb5_encode_test", retval,"while encoding %s", typestring); \
127
exit(1); \
128
} \
129
encoder_print_results(code, typestring, description);
130
131
/****************************************************************/
132
/* encode_krb5_authenticator */
133
{
134
krb5_authenticator authent;
135
ktest_make_sample_authenticator(&authent);
136
137
encode_run(authent, "authenticator", "", encode_krb5_authenticator);
138
139
ktest_destroy_checksum(&(authent.checksum));
140
ktest_destroy_keyblock(&(authent.subkey));
141
authent.seq_number = 0;
142
ktest_empty_authorization_data(authent.authorization_data);
143
encode_run(authent, "authenticator", "(optionals empty)",
144
encode_krb5_authenticator);
145
146
ktest_destroy_authorization_data(&(authent.authorization_data));
147
encode_run(authent, "authenticator", "(optionals NULL)",
148
encode_krb5_authenticator);
149
ktest_empty_authenticator(&authent);
150
}
151
152
/****************************************************************/
153
/* encode_krb5_ticket */
154
{
155
krb5_ticket tkt;
156
ktest_make_sample_ticket(&tkt);
157
encode_run(tkt, "ticket", "", encode_krb5_ticket);
158
ktest_empty_ticket(&tkt);
159
}
160
161
/****************************************************************/
162
/* encode_krb5_encryption_key */
163
{
164
krb5_keyblock keyblk;
165
ktest_make_sample_keyblock(&keyblk);
166
current_appl_type = 1005;
167
encode_run(keyblk, "keyblock", "", encode_krb5_encryption_key);
168
ktest_empty_keyblock(&keyblk);
169
}
170
171
/****************************************************************/
172
/* encode_krb5_enc_tkt_part */
173
{
174
krb5_ticket tkt;
175
memset(&tkt, 0, sizeof(krb5_ticket));
176
tkt.enc_part2 = ealloc(sizeof(krb5_enc_tkt_part));
177
ktest_make_sample_enc_tkt_part(tkt.enc_part2);
178
179
encode_run(*tkt.enc_part2, "enc_tkt_part", "",
180
encode_krb5_enc_tkt_part);
181
182
tkt.enc_part2->times.starttime = 0;
183
tkt.enc_part2->times.renew_till = 0;
184
ktest_destroy_address(&(tkt.enc_part2->caddrs[1]));
185
ktest_destroy_address(&(tkt.enc_part2->caddrs[0]));
186
ktest_destroy_authdata(&(tkt.enc_part2->authorization_data[1]));
187
ktest_destroy_authdata(&(tkt.enc_part2->authorization_data[0]));
188
189
/* ISODE version fails on the empty caddrs field */
190
ktest_destroy_addresses(&(tkt.enc_part2->caddrs));
191
ktest_destroy_authorization_data(&(tkt.enc_part2->authorization_data));
192
193
encode_run(*tkt.enc_part2, "enc_tkt_part", "(optionals NULL)",
194
encode_krb5_enc_tkt_part);
195
ktest_empty_ticket(&tkt);
196
}
197
198
/****************************************************************/
199
/* encode_krb5_enc_kdc_rep_part */
200
{
201
krb5_kdc_rep kdcr;
202
203
memset(&kdcr, 0, sizeof(kdcr));
204
205
kdcr.enc_part2 = ealloc(sizeof(krb5_enc_kdc_rep_part));
206
ktest_make_sample_enc_kdc_rep_part(kdcr.enc_part2);
207
208
encode_run(*kdcr.enc_part2, "enc_kdc_rep_part", "",
209
encode_krb5_enc_kdc_rep_part);
210
211
kdcr.enc_part2->key_exp = 0;
212
kdcr.enc_part2->times.starttime = 0;
213
kdcr.enc_part2->flags &= ~TKT_FLG_RENEWABLE;
214
ktest_destroy_addresses(&(kdcr.enc_part2->caddrs));
215
216
encode_run(*kdcr.enc_part2, "enc_kdc_rep_part", "(optionals NULL)",
217
encode_krb5_enc_kdc_rep_part);
218
219
ktest_empty_kdc_rep(&kdcr);
220
}
221
222
/****************************************************************/
223
/* encode_krb5_as_rep */
224
{
225
krb5_kdc_rep kdcr;
226
ktest_make_sample_kdc_rep(&kdcr);
227
228
/* kdcr.msg_type = KRB5_TGS_REP;
229
test(encode_krb5_as_rep(&kdcr,&code) == KRB5_BADMSGTYPE,
230
"encode_krb5_as_rep type check\n");
231
ktest_destroy_data(&code);*/
232
233
kdcr.msg_type = KRB5_AS_REP;
234
encode_run(kdcr, "as_rep", "", encode_krb5_as_rep);
235
236
ktest_destroy_pa_data_array(&(kdcr.padata));
237
encode_run(kdcr, "as_rep", "(optionals NULL)", encode_krb5_as_rep);
238
239
ktest_empty_kdc_rep(&kdcr);
240
241
}
242
243
/****************************************************************/
244
/* encode_krb5_tgs_rep */
245
{
246
krb5_kdc_rep kdcr;
247
ktest_make_sample_kdc_rep(&kdcr);
248
249
/* kdcr.msg_type = KRB5_AS_REP;
250
test(encode_krb5_tgs_rep(&kdcr,&code) == KRB5_BADMSGTYPE,
251
"encode_krb5_tgs_rep type check\n");*/
252
253
kdcr.msg_type = KRB5_TGS_REP;
254
encode_run(kdcr, "tgs_rep", "", encode_krb5_tgs_rep);
255
256
ktest_destroy_pa_data_array(&(kdcr.padata));
257
encode_run(kdcr, "tgs_rep", "(optionals NULL)", encode_krb5_tgs_rep);
258
259
ktest_empty_kdc_rep(&kdcr);
260
261
}
262
263
/****************************************************************/
264
/* encode_krb5_ap_req */
265
{
266
krb5_ap_req apreq;
267
ktest_make_sample_ap_req(&apreq);
268
encode_run(apreq, "ap_req", "", encode_krb5_ap_req);
269
ktest_empty_ap_req(&apreq);
270
}
271
272
/****************************************************************/
273
/* encode_krb5_ap_rep */
274
{
275
krb5_ap_rep aprep;
276
ktest_make_sample_ap_rep(&aprep);
277
encode_run(aprep, "ap_rep", "", encode_krb5_ap_rep);
278
ktest_empty_ap_rep(&aprep);
279
}
280
281
/****************************************************************/
282
/* encode_krb5_ap_rep_enc_part */
283
{
284
krb5_ap_rep_enc_part apenc;
285
ktest_make_sample_ap_rep_enc_part(&apenc);
286
encode_run(apenc, "ap_rep_enc_part", "", encode_krb5_ap_rep_enc_part);
287
288
ktest_destroy_keyblock(&(apenc.subkey));
289
apenc.seq_number = 0;
290
encode_run(apenc, "ap_rep_enc_part", "(optionals NULL)",
291
encode_krb5_ap_rep_enc_part);
292
ktest_empty_ap_rep_enc_part(&apenc);
293
}
294
295
/****************************************************************/
296
/* encode_krb5_as_req */
297
{
298
krb5_kdc_req asreq;
299
ktest_make_sample_kdc_req(&asreq);
300
asreq.msg_type = KRB5_AS_REQ;
301
asreq.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
302
encode_run(asreq, "as_req", "", encode_krb5_as_req);
303
304
ktest_destroy_pa_data_array(&(asreq.padata));
305
ktest_destroy_principal(&(asreq.client));
306
#ifndef ISODE_SUCKS
307
ktest_destroy_principal(&(asreq.server));
308
#endif
309
asreq.kdc_options |= KDC_OPT_ENC_TKT_IN_SKEY;
310
asreq.from = 0;
311
asreq.rtime = 0;
312
ktest_destroy_addresses(&(asreq.addresses));
313
ktest_destroy_enc_data(&(asreq.authorization_data));
314
encode_run(asreq, "as_req", "(optionals NULL except second_ticket)",
315
encode_krb5_as_req);
316
ktest_destroy_sequence_of_ticket(&(asreq.second_ticket));
317
#ifndef ISODE_SUCKS
318
ktest_make_sample_principal(&(asreq.server));
319
#endif
320
asreq.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
321
encode_run(asreq, "as_req", "(optionals NULL except server)",
322
encode_krb5_as_req);
323
ktest_empty_kdc_req(&asreq);
324
}
325
326
/****************************************************************/
327
/* encode_krb5_tgs_req */
328
{
329
krb5_kdc_req tgsreq;
330
ktest_make_sample_kdc_req(&tgsreq);
331
tgsreq.msg_type = KRB5_TGS_REQ;
332
tgsreq.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
333
encode_run(tgsreq, "tgs_req", "", encode_krb5_tgs_req);
334
335
ktest_destroy_pa_data_array(&(tgsreq.padata));
336
ktest_destroy_principal(&(tgsreq.client));
337
#ifndef ISODE_SUCKS
338
ktest_destroy_principal(&(tgsreq.server));
339
#endif
340
tgsreq.kdc_options |= KDC_OPT_ENC_TKT_IN_SKEY;
341
tgsreq.from = 0;
342
tgsreq.rtime = 0;
343
ktest_destroy_addresses(&(tgsreq.addresses));
344
ktest_destroy_enc_data(&(tgsreq.authorization_data));
345
encode_run(tgsreq, "tgs_req", "(optionals NULL except second_ticket)",
346
encode_krb5_tgs_req);
347
348
ktest_destroy_sequence_of_ticket(&(tgsreq.second_ticket));
349
#ifndef ISODE_SUCKS
350
ktest_make_sample_principal(&(tgsreq.server));
351
#endif
352
tgsreq.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
353
encode_run(tgsreq, "tgs_req", "(optionals NULL except server)",
354
encode_krb5_tgs_req);
355
356
ktest_empty_kdc_req(&tgsreq);
357
}
358
359
/****************************************************************/
360
/* encode_krb5_kdc_req_body */
361
{
362
krb5_kdc_req kdcrb;
363
memset(&kdcrb, 0, sizeof(kdcrb));
364
ktest_make_sample_kdc_req_body(&kdcrb);
365
kdcrb.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
366
current_appl_type = 1007; /* Force interpretation as kdc-req-body */
367
encode_run(kdcrb, "kdc_req_body", "", encode_krb5_kdc_req_body);
368
369
ktest_destroy_principal(&(kdcrb.client));
370
#ifndef ISODE_SUCKS
371
ktest_destroy_principal(&(kdcrb.server));
372
#endif
373
kdcrb.kdc_options |= KDC_OPT_ENC_TKT_IN_SKEY;
374
kdcrb.from = 0;
375
kdcrb.rtime = 0;
376
ktest_destroy_addresses(&(kdcrb.addresses));
377
ktest_destroy_enc_data(&(kdcrb.authorization_data));
378
current_appl_type = 1007; /* Force interpretation as kdc-req-body */
379
encode_run(kdcrb, "kdc_req_body",
380
"(optionals NULL except second_ticket)",
381
encode_krb5_kdc_req_body);
382
383
ktest_destroy_sequence_of_ticket(&(kdcrb.second_ticket));
384
#ifndef ISODE_SUCKS
385
ktest_make_sample_principal(&(kdcrb.server));
386
#endif
387
kdcrb.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
388
current_appl_type = 1007; /* Force interpretation as kdc-req-body */
389
encode_run(kdcrb, "kdc_req_body", "(optionals NULL except server)",
390
encode_krb5_kdc_req_body);
391
392
ktest_empty_kdc_req(&kdcrb);
393
}
394
395
/****************************************************************/
396
/* encode_krb5_safe */
397
{
398
krb5_safe s;
399
ktest_make_sample_safe(&s);
400
encode_run(s, "safe", "", encode_krb5_safe);
401
402
s.timestamp = 0;
403
/* s.usec should be opted out by the timestamp */
404
s.seq_number = 0;
405
ktest_destroy_address(&(s.r_address));
406
encode_run(s, "safe", "(optionals NULL)", encode_krb5_safe);
407
408
ktest_empty_safe(&s);
409
}
410
411
/****************************************************************/
412
/* encode_krb5_priv */
413
{
414
krb5_priv p;
415
ktest_make_sample_priv(&p);
416
encode_run(p, "priv", "", encode_krb5_priv);
417
ktest_empty_priv(&p);
418
}
419
420
/****************************************************************/
421
/* encode_krb5_enc_priv_part */
422
{
423
krb5_priv_enc_part ep;
424
ktest_make_sample_priv_enc_part(&ep);
425
encode_run(ep, "enc_priv_part", "", encode_krb5_enc_priv_part);
426
427
ep.timestamp = 0;
428
/* ep.usec should be opted out along with timestamp */
429
ep.seq_number = 0;
430
ktest_destroy_address(&(ep.r_address));
431
encode_run(ep, "enc_priv_part", "(optionals NULL)",
432
encode_krb5_enc_priv_part);
433
434
ktest_empty_priv_enc_part(&ep);
435
}
436
437
/****************************************************************/
438
/* encode_krb5_cred */
439
{
440
krb5_cred c;
441
ktest_make_sample_cred(&c);
442
encode_run(c, "cred", "", encode_krb5_cred);
443
ktest_empty_cred(&c);
444
}
445
446
/****************************************************************/
447
/* encode_krb5_enc_cred_part */
448
{
449
krb5_cred_enc_part cep;
450
ktest_make_sample_cred_enc_part(&cep);
451
encode_run(cep, "enc_cred_part", "", encode_krb5_enc_cred_part);
452
453
ktest_destroy_principal(&(cep.ticket_info[0]->client));
454
ktest_destroy_principal(&(cep.ticket_info[0]->server));
455
cep.ticket_info[0]->flags = 0;
456
cep.ticket_info[0]->times.authtime = 0;
457
cep.ticket_info[0]->times.starttime = 0;
458
cep.ticket_info[0]->times.endtime = 0;
459
cep.ticket_info[0]->times.renew_till = 0;
460
ktest_destroy_addresses(&(cep.ticket_info[0]->caddrs));
461
cep.nonce = 0;
462
cep.timestamp = 0;
463
ktest_destroy_address(&(cep.s_address));
464
ktest_destroy_address(&(cep.r_address));
465
encode_run(cep, "enc_cred_part", "(optionals NULL)",
466
encode_krb5_enc_cred_part);
467
468
ktest_empty_cred_enc_part(&cep);
469
}
470
471
/****************************************************************/
472
/* encode_krb5_error */
473
{
474
krb5_error kerr;
475
ktest_make_sample_error(&kerr);
476
encode_run(kerr, "error", "", encode_krb5_error);
477
478
kerr.ctime = 0;
479
ktest_destroy_principal(&(kerr.client));
480
ktest_empty_data(&(kerr.text));
481
ktest_empty_data(&(kerr.e_data));
482
encode_run(kerr, "error", "(optionals NULL)", encode_krb5_error);
483
484
ktest_empty_error(&kerr);
485
}
486
487
/****************************************************************/
488
/* encode_krb5_authdata */
489
{
490
krb5_authdata **ad;
491
ktest_make_sample_authorization_data(&ad);
492
493
retval = encode_krb5_authdata(ad,&(code));
494
if (retval) {
495
com_err("encoding authorization_data",retval,"");
496
exit(1);
497
}
498
current_appl_type = 1004; /* Force type to be authdata */
499
encoder_print_results(code, "authorization_data", "");
500
501
ktest_destroy_authorization_data(&ad);
502
}
503
504
/****************************************************************/
505
/* encode_padata_sequence and encode_krb5_typed_data */
506
{
507
krb5_pa_data **pa;
508
509
ktest_make_sample_pa_data_array(&pa);
510
encode_run(*pa, "padata_sequence", "", encode_krb5_padata_sequence);
511
encode_run(*pa, "typed_data", "", encode_krb5_typed_data);
512
ktest_destroy_pa_data_array(&pa);
513
514
ktest_make_sample_empty_pa_data_array(&pa);
515
encode_run(*pa, "padata_sequence", "(empty)",
516
encode_krb5_padata_sequence);
517
ktest_destroy_pa_data_array(&pa);
518
}
519
520
/****************************************************************/
521
/* encode_etype_info */
522
{
523
krb5_etype_info_entry **info;
524
525
ktest_make_sample_etype_info(&info);
526
encode_run(*info, "etype_info", "", encode_krb5_etype_info);
527
528
ktest_destroy_etype_info_entry(info[2]); info[2] = 0;
529
ktest_destroy_etype_info_entry(info[1]); info[1] = 0;
530
encode_run(*info, "etype_info", "(only 1)", encode_krb5_etype_info);
531
532
ktest_destroy_etype_info_entry(info[0]); info[0] = 0;
533
encode_run(*info, "etype_info", "(no info)", encode_krb5_etype_info);
534
535
ktest_destroy_etype_info(info);
536
}
537
538
/* encode_etype_info2 */
539
{
540
krb5_etype_info_entry **info;
541
542
ktest_make_sample_etype_info2(&info);
543
encode_run(*info, "etype_info2", "", encode_krb5_etype_info2);
544
545
ktest_destroy_etype_info_entry(info[2]); info[2] = 0;
546
ktest_destroy_etype_info_entry(info[1]); info[1] = 0;
547
encode_run(*info, "etype_info2", "(only 1)", encode_krb5_etype_info2);
548
549
/* etype_info2 sequences aren't allowed to be empty. */
550
551
ktest_destroy_etype_info(info);
552
}
553
554
/****************************************************************/
555
/* encode_pa_enc_ts */
556
{
557
krb5_pa_enc_ts pa_enc;
558
ktest_make_sample_pa_enc_ts(&pa_enc);
559
encode_run(pa_enc, "pa_enc_ts", "", encode_krb5_pa_enc_ts);
560
pa_enc.pausec = 0;
561
encode_run(pa_enc, "pa_enc_ts (no usec)", "", encode_krb5_pa_enc_ts);
562
}
563
564
/****************************************************************/
565
/* encode_enc_data */
566
{
567
krb5_enc_data enc_data;
568
ktest_make_sample_enc_data(&enc_data);
569
current_appl_type = 1001;
570
encode_run(enc_data, "enc_data", "", encode_krb5_enc_data);
571
enc_data.kvno = 0xFF000000;
572
current_appl_type = 1001;
573
encode_run(enc_data, "enc_data", "(MSB-set kvno)",
574
encode_krb5_enc_data);
575
enc_data.kvno = 0xFFFFFFFF;
576
current_appl_type = 1001;
577
encode_run(enc_data, "enc_data", "(kvno=-1)", encode_krb5_enc_data);
578
ktest_destroy_enc_data(&enc_data);
579
}
580
/****************************************************************/
581
/* encode_krb5_sam_challenge_2 */
582
{
583
krb5_sam_challenge_2 sam_ch2;
584
ktest_make_sample_sam_challenge_2(&sam_ch2);
585
encode_run(sam_ch2, "sam_challenge_2", "",
586
encode_krb5_sam_challenge_2);
587
ktest_empty_sam_challenge_2(&sam_ch2);
588
}
589
/****************************************************************/
590
/* encode_krb5_sam_challenge_2_body */
591
{
592
krb5_sam_challenge_2_body body;
593
ktest_make_sample_sam_challenge_2_body(&body);
594
encode_run(body, "sam_challenge_2_body", "",
595
encode_krb5_sam_challenge_2_body);
596
ktest_empty_sam_challenge_2_body(&body);
597
}
598
/****************************************************************/
599
/* encode_krb5_sam_response_2 */
600
{
601
krb5_sam_response_2 sam_ch2;
602
ktest_make_sample_sam_response_2(&sam_ch2);
603
encode_run(sam_ch2, "sam_response_2", "", encode_krb5_sam_response_2);
604
ktest_empty_sam_response_2(&sam_ch2);
605
}
606
/****************************************************************/
607
/* encode_krb5_sam_response_enc_2 */
608
{
609
krb5_enc_sam_response_enc_2 sam_ch2;
610
ktest_make_sample_enc_sam_response_enc_2(&sam_ch2);
611
encode_run(sam_ch2, "enc_sam_response_enc_2", "",
612
encode_krb5_enc_sam_response_enc_2);
613
ktest_empty_enc_sam_response_enc_2(&sam_ch2);
614
}
615
/****************************************************************/
616
/* encode_krb5_pa_for_user */
617
{
618
krb5_pa_for_user s4u;
619
ktest_make_sample_pa_for_user(&s4u);
620
encode_run(s4u, "pa_for_user", "", encode_krb5_pa_for_user);
621
ktest_empty_pa_for_user(&s4u);
622
}
623
/****************************************************************/
624
/* encode_krb5_pa_s4u_x509_user */
625
{
626
krb5_pa_s4u_x509_user s4u;
627
ktest_make_sample_pa_s4u_x509_user(&s4u);
628
encode_run(s4u, "pa_s4u_x509_user", "", encode_krb5_pa_s4u_x509_user);
629
ktest_empty_pa_s4u_x509_user(&s4u);
630
}
631
/****************************************************************/
632
/* encode_krb5_ad_kdcissued */
633
{
634
krb5_ad_kdcissued kdci;
635
ktest_make_sample_ad_kdcissued(&kdci);
636
encode_run(kdci, "ad_kdcissued", "", encode_krb5_ad_kdcissued);
637
ktest_empty_ad_kdcissued(&kdci);
638
}
639
/****************************************************************/
640
/* encode_krb5_iakerb_header */
641
{
642
krb5_iakerb_header ih;
643
ktest_make_sample_iakerb_header(&ih);
644
encode_run(ih, "iakerb_header", "", encode_krb5_iakerb_header);
645
ktest_empty_iakerb_header(&ih);
646
}
647
/****************************************************************/
648
/* encode_krb5_iakerb_finished */
649
{
650
krb5_iakerb_finished ih;
651
ktest_make_sample_iakerb_finished(&ih);
652
encode_run(ih, "iakerb_finished", "", encode_krb5_iakerb_finished);
653
ktest_empty_iakerb_finished(&ih);
654
}
655
/****************************************************************/
656
/* encode_krb5_fast_response */
657
{
658
krb5_fast_response fr;
659
ktest_make_sample_fast_response(&fr);
660
encode_run(fr, "fast_response", "", encode_krb5_fast_response);
661
ktest_empty_fast_response(&fr);
662
}
663
/****************************************************************/
664
/* encode_krb5_pa_fx_fast_reply */
665
{
666
krb5_enc_data enc_data;
667
ktest_make_sample_enc_data(&enc_data);
668
encode_run(enc_data, "pa_fx_fast_reply", "",
669
encode_krb5_pa_fx_fast_reply);
670
ktest_destroy_enc_data(&enc_data);
671
}
672
/****************************************************************/
673
/* encode_krb5_otp_tokeninfo */
674
{
675
krb5_otp_tokeninfo ti;
676
ktest_make_minimal_otp_tokeninfo(&ti);
677
encode_run(ti, "otp_tokeninfo", "(optionals NULL)",
678
encode_krb5_otp_tokeninfo);
679
ktest_empty_otp_tokeninfo(&ti);
680
ktest_make_maximal_otp_tokeninfo(&ti);
681
encode_run(ti, "otp_tokeninfo", "", encode_krb5_otp_tokeninfo);
682
ktest_empty_otp_tokeninfo(&ti);
683
}
684
/****************************************************************/
685
/* encode_krb5_pa_otp_challenge */
686
{
687
krb5_pa_otp_challenge ch;
688
ktest_make_minimal_pa_otp_challenge(&ch);
689
encode_run(ch, "pa_otp_challenge", "(optionals NULL)",
690
encode_krb5_pa_otp_challenge);
691
ktest_empty_pa_otp_challenge(&ch);
692
ktest_make_maximal_pa_otp_challenge(&ch);
693
encode_run(ch, "pa_otp_challenge", "", encode_krb5_pa_otp_challenge);
694
ktest_empty_pa_otp_challenge(&ch);
695
}
696
/****************************************************************/
697
/* encode_krb5_pa_otp_req */
698
{
699
krb5_pa_otp_req req;
700
ktest_make_minimal_pa_otp_req(&req);
701
encode_run(req, "pa_otp_req", "(optionals NULL)",
702
encode_krb5_pa_otp_req);
703
ktest_empty_pa_otp_req(&req);
704
ktest_make_maximal_pa_otp_req(&req);
705
encode_run(req, "pa_otp_req", "", encode_krb5_pa_otp_req);
706
ktest_empty_pa_otp_req(&req);
707
}
708
/****************************************************************/
709
/* encode_krb5_pa_otp_enc_request */
710
{
711
krb5_data d;
712
ktest_make_sample_data(&d);
713
encode_run(d, "pa_otp_enc_req", "", encode_krb5_pa_otp_enc_req);
714
ktest_empty_data(&d);
715
}
716
/****************************************************************/
717
/* encode_krb5_kkdcp_message */
718
{
719
krb5_kkdcp_message info;
720
ktest_make_sample_kkdcp_message(&info);
721
encode_run(info, "kkdcp_message", "", encode_krb5_kkdcp_message);
722
ktest_empty_kkdcp_message(&info);
723
}
724
/* encode_krb5_cammac */
725
{
726
krb5_cammac req;
727
ktest_make_minimal_cammac(&req);
728
encode_run(req, "cammac", "(optionals NULL)", encode_krb5_cammac);
729
ktest_empty_cammac(&req);
730
ktest_make_maximal_cammac(&req);
731
encode_run(req, "cammac", "", encode_krb5_cammac);
732
ktest_empty_cammac(&req);
733
}
734
/****************************************************************/
735
/* encode_krb5_secure_cookie */
736
{
737
krb5_secure_cookie cookie;
738
ktest_make_sample_secure_cookie(&cookie);
739
encode_run(cookie, "secure_cookie", "", encode_krb5_secure_cookie);
740
ktest_empty_secure_cookie(&cookie);
741
}
742
/****************************************************************/
743
/* encode_krb5_spake_factor */
744
{
745
krb5_spake_factor factor;
746
ktest_make_minimal_spake_factor(&factor);
747
encode_run(factor, "spake_factor", "(optionals NULL)",
748
encode_krb5_spake_factor);
749
ktest_empty_spake_factor(&factor);
750
ktest_make_maximal_spake_factor(&factor);
751
encode_run(factor, "spake_factor", "", encode_krb5_spake_factor);
752
ktest_empty_spake_factor(&factor);
753
}
754
/****************************************************************/
755
/* encode_krb5_pa_spake */
756
{
757
krb5_pa_spake pa_spake;
758
ktest_make_support_pa_spake(&pa_spake);
759
encode_run(pa_spake, "pa_spake", "(support)", encode_krb5_pa_spake);
760
ktest_empty_pa_spake(&pa_spake);
761
ktest_make_challenge_pa_spake(&pa_spake);
762
encode_run(pa_spake, "pa_spake", "(challenge)", encode_krb5_pa_spake);
763
ktest_empty_pa_spake(&pa_spake);
764
ktest_make_response_pa_spake(&pa_spake);
765
encode_run(pa_spake, "pa_spake", "(response)", encode_krb5_pa_spake);
766
ktest_empty_pa_spake(&pa_spake);
767
ktest_make_encdata_pa_spake(&pa_spake);
768
encode_run(pa_spake, "pa_spake", "(encdata)", encode_krb5_pa_spake);
769
ktest_empty_pa_spake(&pa_spake);
770
}
771
#ifndef DISABLE_PKINIT
772
/****************************************************************/
773
/* encode_krb5_pa_pk_as_req */
774
{
775
krb5_pa_pk_as_req req;
776
ktest_make_sample_pa_pk_as_req(&req);
777
encode_run(req, "pa_pk_as_req", "", acc.encode_krb5_pa_pk_as_req);
778
ktest_empty_pa_pk_as_req(&req);
779
}
780
/****************************************************************/
781
/* encode_krb5_pa_pk_as_rep */
782
{
783
krb5_pa_pk_as_rep rep;
784
ktest_make_sample_pa_pk_as_rep_dhInfo(&rep);
785
encode_run(rep, "pa_pk_as_rep", "(dhInfo)",
786
acc.encode_krb5_pa_pk_as_rep);
787
ktest_empty_pa_pk_as_rep(&rep);
788
ktest_make_sample_pa_pk_as_rep_encKeyPack(&rep);
789
encode_run(rep, "pa_pk_as_rep", "(encKeyPack)",
790
acc.encode_krb5_pa_pk_as_rep);
791
ktest_empty_pa_pk_as_rep(&rep);
792
}
793
/****************************************************************/
794
/* encode_krb5_auth_pack */
795
{
796
krb5_auth_pack pack;
797
ktest_make_sample_auth_pack(&pack);
798
encode_run(pack, "auth_pack", "", acc.encode_krb5_auth_pack);
799
ktest_empty_auth_pack(&pack);
800
}
801
/****************************************************************/
802
/* encode_krb5_kdc_dh_key_info */
803
{
804
krb5_kdc_dh_key_info ki;
805
ktest_make_sample_kdc_dh_key_info(&ki);
806
encode_run(ki, "kdc_dh_key_info", "", acc.encode_krb5_kdc_dh_key_info);
807
ktest_empty_kdc_dh_key_info(&ki);
808
}
809
/****************************************************************/
810
/* encode_krb5_reply_key_pack */
811
{
812
krb5_reply_key_pack pack;
813
ktest_make_sample_reply_key_pack(&pack);
814
encode_run(pack, "reply_key_pack", "", acc.encode_krb5_reply_key_pack);
815
ktest_empty_reply_key_pack(&pack);
816
}
817
/****************************************************************/
818
/* encode_krb5_sp80056a_other_info */
819
{
820
krb5_sp80056a_other_info info;
821
ktest_make_sample_sp80056a_other_info(&info);
822
encode_run(info, "sp80056a_other_info", "",
823
encode_krb5_sp80056a_other_info);
824
ktest_empty_sp80056a_other_info(&info);
825
}
826
/****************************************************************/
827
/* encode_krb5_pkinit_supp_pub_info */
828
{
829
krb5_pkinit_supp_pub_info info;
830
ktest_make_sample_pkinit_supp_pub_info(&info);
831
encode_run(info, "pkinit_supp_pub_info", "",
832
encode_krb5_pkinit_supp_pub_info);
833
ktest_empty_pkinit_supp_pub_info(&info);
834
}
835
#endif /* not DISABLE_PKINIT */
836
#ifdef ENABLE_LDAP
837
{
838
ldap_seqof_key_data skd;
839
840
ktest_make_sample_ldap_seqof_key_data(&skd);
841
encode_run(skd, "ldap_seqof_key_data", "",
842
acc.asn1_ldap_encode_sequence_of_keys);
843
ktest_empty_ldap_seqof_key_data(&skd);
844
}
845
#endif
846
847
krb5_free_context(test_context);
848
exit(error_count);
849
return(error_count);
850
}
851
852