1 /* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 /* tests/asn.1/krb5_encode_test.c */
4 * Copyright (C) 1994 by the Massachusetts Institute of Technology.
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.
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.
37 extern int current_appl_type;
39 krb5_context test_context;
44 static void encoder_print_results(code, typestring, description)
49 char *code_string = NULL;
50 krb5_error_code retval;
54 printf("encode_krb5_%s%s:\n", typestring, description);
55 r = trval2(stdout, code->data, code->length, 0, &rlen);
57 if (rlen < 0 || (unsigned int) rlen != code->length) {
58 printf("Error: length mismatch: was %d, parsed %d\n",
63 printf("Error: Return from trval2 is %d.\n", r);
66 current_appl_type = -1; /* Reset type */
68 retval = asn1_krb5_data_unparse(code,&(code_string));
70 com_err("krb5_encode_test", retval ,
71 "while unparsing %s", typestring);
74 printf("encode_krb5_%s%s: %s\n", typestring, description,
78 ktest_destroy_data(&code);
81 static void PRS(argc, argv)
87 extern int print_types, print_krb5_types, print_id_and_len,
88 print_constructed_length, print_skip_context,
89 print_skip_tagnum, print_context_shortcut;
91 while ((optchar = getopt(argc, argv, "tp:")) != -1) {
97 sample_principal_name = optarg;
101 fprintf(stderr, "Usage: %s [-t] [-p principal]\n",
107 print_krb5_types = 1;
108 print_id_and_len = 0;
109 print_constructed_length = 0;
110 print_skip_context = 1;
111 print_skip_tagnum = 1;
112 print_context_shortcut = 1;
121 krb5_error_code retval;
125 retval = krb5_init_context(&test_context);
127 com_err(argv[0], retval, "while initializing krb5");
130 init_access(argv[0]);
132 #define setup(value,type,typestring,constructor) \
133 retval = constructor(&(value)); \
135 com_err("krb5_encode_test", retval, "while making sample %s", typestring); \
139 #define encode_run(value,type,typestring,description,encoder) \
140 retval = encoder(&(value),&(code)); \
142 com_err("krb5_encode_test", retval,"while encoding %s", typestring); \
145 encoder_print_results(code, typestring, description);
147 /****************************************************************/
148 /* encode_krb5_authenticator */
150 krb5_authenticator authent;
151 setup(authent,authenticator,"authenticator",ktest_make_sample_authenticator);
153 encode_run(authent,authenticator,"authenticator","",encode_krb5_authenticator);
155 ktest_destroy_checksum(&(authent.checksum));
156 ktest_destroy_keyblock(&(authent.subkey));
157 authent.seq_number = 0;
158 ktest_empty_authorization_data(authent.authorization_data);
159 encode_run(authent,authenticator,"authenticator","(optionals empty)",encode_krb5_authenticator);
161 ktest_destroy_authorization_data(&(authent.authorization_data));
162 encode_run(authent,authenticator,"authenticator","(optionals NULL)",encode_krb5_authenticator);
163 ktest_empty_authenticator(&authent);
166 /****************************************************************/
167 /* encode_krb5_ticket */
170 setup(tkt,ticket,"ticket",ktest_make_sample_ticket);
171 encode_run(tkt,ticket,"ticket","",encode_krb5_ticket);
172 ktest_empty_ticket(&tkt);
175 /****************************************************************/
176 /* encode_krb5_encryption_key */
178 krb5_keyblock keyblk;
179 setup(keyblk,keyblock,"keyblock",ktest_make_sample_keyblock);
180 current_appl_type = 1005;
181 encode_run(keyblk,keyblock,"keyblock","",encode_krb5_encryption_key);
182 ktest_empty_keyblock(&keyblk);
185 /****************************************************************/
186 /* encode_krb5_enc_tkt_part */
189 memset(&tkt, 0, sizeof(krb5_ticket));
190 tkt.enc_part2 = (krb5_enc_tkt_part*)calloc(1,sizeof(krb5_enc_tkt_part));
191 if (tkt.enc_part2 == NULL) com_err("allocating enc_tkt_part",errno,"");
192 setup(*(tkt.enc_part2),enc_tkt_part,"enc_tkt_part",ktest_make_sample_enc_tkt_part);
194 encode_run(*(tkt.enc_part2),enc_tkt_part,"enc_tkt_part","",encode_krb5_enc_tkt_part);
196 tkt.enc_part2->times.starttime = 0;
197 tkt.enc_part2->times.renew_till = 0;
198 ktest_destroy_address(&(tkt.enc_part2->caddrs[1]));
199 ktest_destroy_address(&(tkt.enc_part2->caddrs[0]));
200 ktest_destroy_authdata(&(tkt.enc_part2->authorization_data[1]));
201 ktest_destroy_authdata(&(tkt.enc_part2->authorization_data[0]));
203 /* ISODE version fails on the empty caddrs field */
204 ktest_destroy_addresses(&(tkt.enc_part2->caddrs));
205 ktest_destroy_authorization_data(&(tkt.enc_part2->authorization_data));
207 encode_run(*(tkt.enc_part2),enc_tkt_part,"enc_tkt_part","(optionals NULL)",encode_krb5_enc_tkt_part);
208 ktest_empty_ticket(&tkt);
211 /****************************************************************/
212 /* encode_krb5_enc_kdc_rep_part */
216 memset(&kdcr, 0, sizeof(kdcr));
218 kdcr.enc_part2 = (krb5_enc_kdc_rep_part*)
219 calloc(1,sizeof(krb5_enc_kdc_rep_part));
220 if (kdcr.enc_part2 == NULL) com_err("allocating enc_kdc_rep_part",errno,"");
221 setup(*(kdcr.enc_part2),enc_kdc_rep_part,"enc_kdc_rep_part",ktest_make_sample_enc_kdc_rep_part);
223 encode_run(*(kdcr.enc_part2),enc_kdc_rep_part,"enc_kdc_rep_part","",encode_krb5_enc_kdc_rep_part);
225 kdcr.enc_part2->key_exp = 0;
226 kdcr.enc_part2->times.starttime = 0;
227 kdcr.enc_part2->flags &= ~TKT_FLG_RENEWABLE;
228 ktest_destroy_addresses(&(kdcr.enc_part2->caddrs));
230 encode_run(*(kdcr.enc_part2),enc_kdc_rep_part,"enc_kdc_rep_part","(optionals NULL)",encode_krb5_enc_kdc_rep_part);
232 ktest_empty_kdc_rep(&kdcr);
235 /****************************************************************/
236 /* encode_krb5_as_rep */
239 setup(kdcr,kdc_rep,"kdc_rep",ktest_make_sample_kdc_rep);
241 /* kdcr.msg_type = KRB5_TGS_REP;
242 test(encode_krb5_as_rep(&kdcr,&code) == KRB5_BADMSGTYPE,
243 "encode_krb5_as_rep type check\n");
244 ktest_destroy_data(&code);*/
246 kdcr.msg_type = KRB5_AS_REP;
247 encode_run(kdcr,as_rep,"as_rep","",encode_krb5_as_rep);
249 ktest_destroy_pa_data_array(&(kdcr.padata));
250 encode_run(kdcr,as_rep,"as_rep","(optionals NULL)",encode_krb5_as_rep);
252 ktest_empty_kdc_rep(&kdcr);
256 /****************************************************************/
257 /* encode_krb5_tgs_rep */
260 setup(kdcr,kdc_rep,"kdc_rep",ktest_make_sample_kdc_rep);
262 /* kdcr.msg_type = KRB5_AS_REP;
263 test(encode_krb5_tgs_rep(&kdcr,&code) == KRB5_BADMSGTYPE,
264 "encode_krb5_tgs_rep type check\n");*/
266 kdcr.msg_type = KRB5_TGS_REP;
267 encode_run(kdcr,tgs_rep,"tgs_rep","",encode_krb5_tgs_rep);
269 ktest_destroy_pa_data_array(&(kdcr.padata));
270 encode_run(kdcr,tgs_rep,"tgs_rep","(optionals NULL)",encode_krb5_tgs_rep);
272 ktest_empty_kdc_rep(&kdcr);
276 /****************************************************************/
277 /* encode_krb5_ap_req */
280 setup(apreq,ap_req,"ap_req",ktest_make_sample_ap_req);
281 encode_run(apreq,ap_req,"ap_req","",encode_krb5_ap_req);
282 ktest_empty_ap_req(&apreq);
285 /****************************************************************/
286 /* encode_krb5_ap_rep */
289 setup(aprep,ap_rep,"ap_rep",ktest_make_sample_ap_rep);
290 encode_run(aprep,ap_rep,"ap_rep","",encode_krb5_ap_rep);
291 ktest_empty_ap_rep(&aprep);
294 /****************************************************************/
295 /* encode_krb5_ap_rep_enc_part */
297 krb5_ap_rep_enc_part apenc;
298 setup(apenc,ap_rep_enc_part,"ap_rep_enc_part",ktest_make_sample_ap_rep_enc_part);
299 encode_run(apenc,ap_rep_enc_part,"ap_rep_enc_part","",encode_krb5_ap_rep_enc_part);
301 ktest_destroy_keyblock(&(apenc.subkey));
302 apenc.seq_number = 0;
303 encode_run(apenc,ap_rep_enc_part,"ap_rep_enc_part","(optionals NULL)",encode_krb5_ap_rep_enc_part);
304 ktest_empty_ap_rep_enc_part(&apenc);
307 /****************************************************************/
308 /* encode_krb5_as_req */
311 setup(asreq,kdc_req,"kdc_req",ktest_make_sample_kdc_req);
312 asreq.msg_type = KRB5_AS_REQ;
313 asreq.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
314 encode_run(asreq,as_req,"as_req","",encode_krb5_as_req);
316 ktest_destroy_pa_data_array(&(asreq.padata));
317 ktest_destroy_principal(&(asreq.client));
319 ktest_destroy_principal(&(asreq.server));
321 asreq.kdc_options |= KDC_OPT_ENC_TKT_IN_SKEY;
324 ktest_destroy_addresses(&(asreq.addresses));
325 ktest_destroy_enc_data(&(asreq.authorization_data));
326 encode_run(asreq,as_req,"as_req","(optionals NULL except second_ticket)",encode_krb5_as_req);
327 ktest_destroy_sequence_of_ticket(&(asreq.second_ticket));
329 ktest_make_sample_principal(&(asreq.server));
331 asreq.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
332 encode_run(asreq,as_req,"as_req","(optionals NULL except server)",encode_krb5_as_req);
333 ktest_empty_kdc_req(&asreq);
336 /****************************************************************/
337 /* encode_krb5_tgs_req */
340 setup(tgsreq,kdc_req,"kdc_req",ktest_make_sample_kdc_req);
341 tgsreq.msg_type = KRB5_TGS_REQ;
342 tgsreq.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
343 encode_run(tgsreq,tgs_req,"tgs_req","",encode_krb5_tgs_req);
345 ktest_destroy_pa_data_array(&(tgsreq.padata));
346 ktest_destroy_principal(&(tgsreq.client));
348 ktest_destroy_principal(&(tgsreq.server));
350 tgsreq.kdc_options |= KDC_OPT_ENC_TKT_IN_SKEY;
353 ktest_destroy_addresses(&(tgsreq.addresses));
354 ktest_destroy_enc_data(&(tgsreq.authorization_data));
355 encode_run(tgsreq,tgs_req,"tgs_req","(optionals NULL except second_ticket)",encode_krb5_tgs_req);
357 ktest_destroy_sequence_of_ticket(&(tgsreq.second_ticket));
359 ktest_make_sample_principal(&(tgsreq.server));
361 tgsreq.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
362 encode_run(tgsreq,tgs_req,"tgs_req","(optionals NULL except server)",encode_krb5_tgs_req);
364 ktest_empty_kdc_req(&tgsreq);
367 /****************************************************************/
368 /* encode_krb5_kdc_req_body */
371 memset(&kdcrb, 0, sizeof(kdcrb));
372 setup(kdcrb,kdc_req_body,"kdc_req_body",ktest_make_sample_kdc_req_body);
373 kdcrb.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
374 current_appl_type = 1007; /* Force interpretation as kdc-req-body */
375 encode_run(kdcrb,kdc_req_body,"kdc_req_body","",encode_krb5_kdc_req_body);
377 ktest_destroy_principal(&(kdcrb.client));
379 ktest_destroy_principal(&(kdcrb.server));
381 kdcrb.kdc_options |= KDC_OPT_ENC_TKT_IN_SKEY;
384 ktest_destroy_addresses(&(kdcrb.addresses));
385 ktest_destroy_enc_data(&(kdcrb.authorization_data));
386 current_appl_type = 1007; /* Force interpretation as kdc-req-body */
387 encode_run(kdcrb,kdc_req_body,"kdc_req_body","(optionals NULL except second_ticket)",encode_krb5_kdc_req_body);
389 ktest_destroy_sequence_of_ticket(&(kdcrb.second_ticket));
391 ktest_make_sample_principal(&(kdcrb.server));
393 kdcrb.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
394 current_appl_type = 1007; /* Force interpretation as kdc-req-body */
395 encode_run(kdcrb,kdc_req_body,"kdc_req_body","(optionals NULL except server)",encode_krb5_kdc_req_body);
397 ktest_empty_kdc_req(&kdcrb);
400 /****************************************************************/
401 /* encode_krb5_safe */
404 setup(s,safe,"safe",ktest_make_sample_safe);
405 encode_run(s,safe,"safe","",encode_krb5_safe);
408 /* s.usec should be opted out by the timestamp */
410 ktest_destroy_address(&(s.r_address));
411 encode_run(s,safe,"safe","(optionals NULL)",encode_krb5_safe);
413 ktest_empty_safe(&s);
416 /****************************************************************/
417 /* encode_krb5_priv */
420 setup(p,priv,"priv",ktest_make_sample_priv);
421 encode_run(p,priv,"priv","",encode_krb5_priv);
422 ktest_empty_priv(&p);
425 /****************************************************************/
426 /* encode_krb5_enc_priv_part */
428 krb5_priv_enc_part ep;
429 setup(ep,priv_enc_part,"priv_enc_part",ktest_make_sample_priv_enc_part);
430 encode_run(ep,enc_priv_part,"enc_priv_part","",encode_krb5_enc_priv_part);
433 /* ep.usec should be opted out along with timestamp */
435 ktest_destroy_address(&(ep.r_address));
436 encode_run(ep,enc_priv_part,"enc_priv_part","(optionals NULL)",encode_krb5_enc_priv_part);
438 ktest_empty_priv_enc_part(&ep);
441 /****************************************************************/
442 /* encode_krb5_cred */
445 setup(c,cred,"cred",ktest_make_sample_cred);
446 encode_run(c,cred,"cred","",encode_krb5_cred);
447 ktest_empty_cred(&c);
450 /****************************************************************/
451 /* encode_krb5_enc_cred_part */
453 krb5_cred_enc_part cep;
454 setup(cep,cred_enc_part,"cred_enc_part",ktest_make_sample_cred_enc_part);
455 encode_run(cep,enc_cred_part,"enc_cred_part","",encode_krb5_enc_cred_part);
457 ktest_destroy_principal(&(cep.ticket_info[0]->client));
458 ktest_destroy_principal(&(cep.ticket_info[0]->server));
459 cep.ticket_info[0]->flags = 0;
460 cep.ticket_info[0]->times.authtime = 0;
461 cep.ticket_info[0]->times.starttime = 0;
462 cep.ticket_info[0]->times.endtime = 0;
463 cep.ticket_info[0]->times.renew_till = 0;
464 ktest_destroy_addresses(&(cep.ticket_info[0]->caddrs));
467 ktest_destroy_address(&(cep.s_address));
468 ktest_destroy_address(&(cep.r_address));
469 encode_run(cep,enc_cred_part,"enc_cred_part","(optionals NULL)",encode_krb5_enc_cred_part);
471 ktest_empty_cred_enc_part(&cep);
474 /****************************************************************/
475 /* encode_krb5_error */
478 setup(kerr,error,"error",ktest_make_sample_error);
479 encode_run(kerr,error,"error","",encode_krb5_error);
482 ktest_destroy_principal(&(kerr.client));
483 ktest_empty_data(&(kerr.text));
484 ktest_empty_data(&(kerr.e_data));
485 encode_run(kerr,error,"error","(optionals NULL)",encode_krb5_error);
487 ktest_empty_error(&kerr);
490 /****************************************************************/
491 /* encode_krb5_authdata */
494 setup(ad,authorization_data,"authorization_data",ktest_make_sample_authorization_data);
496 retval = encode_krb5_authdata(ad,&(code));
498 com_err("encoding authorization_data",retval,"");
501 current_appl_type = 1004; /* Force type to be authdata */
502 encoder_print_results(code, "authorization_data", "");
504 ktest_destroy_authorization_data(&ad);
507 /****************************************************************/
508 /* encode_pwd_sequence */
510 passwd_phrase_element ppe;
511 setup(ppe,passwd_phrase_element,"PasswdSequence",ktest_make_sample_passwd_phrase_element);
512 encode_run(ppe,passwd_phrase_element,"pwd_sequence","",encode_krb5_pwd_sequence);
513 ktest_empty_passwd_phrase_element(&ppe);
516 /****************************************************************/
517 /* encode_passwd_data */
520 setup(pd,krb5_pwd_data,"PasswdData",ktest_make_sample_krb5_pwd_data);
521 encode_run(pd,krb5_pwd_data,"pwd_data","",encode_krb5_pwd_data);
522 ktest_empty_pwd_data(&pd);
525 /****************************************************************/
526 /* encode_padata_sequence */
530 setup(pa,krb5_pa_data,"PreauthData",ktest_make_sample_pa_data_array);
531 retval = encode_krb5_padata_sequence(pa,&(code));
533 com_err("encoding padata_sequence",retval,"");
536 encoder_print_results(code, "padata_sequence", "");
538 ktest_destroy_pa_data_array(&pa);
541 /****************************************************************/
542 /* encode_padata_sequence (empty) */
546 setup(pa,krb5_pa_data,"EmptyPreauthData",ktest_make_sample_empty_pa_data_array);
547 retval = encode_krb5_padata_sequence(pa,&(code));
549 com_err("encoding padata_sequence(empty)",retval,"");
552 encoder_print_results(code, "padata_sequence(empty)", "");
554 ktest_destroy_pa_data_array(&pa);
557 /****************************************************************/
558 /* encode_alt_method */
561 setup(am,krb5_alt_method,"AltMethod",ktest_make_sample_alt_method);
562 encode_run(am,krb5_alt_method,"alt_method","",encode_krb5_alt_method);
567 encode_run(am,krb5_alt_method,"alt_method (no data)","",
568 encode_krb5_alt_method);
569 ktest_empty_alt_method(&am);
572 /****************************************************************/
573 /* encode_etype_info */
575 krb5_etype_info_entry **info;
577 setup(info,krb5_etype_info_entry **,"etype_info",
578 ktest_make_sample_etype_info);
579 retval = encode_krb5_etype_info(info,&(code));
581 com_err("encoding etype_info",retval,"");
584 encoder_print_results(code, "etype_info", "");
585 ktest_destroy_etype_info_entry(info[2]); info[2] = 0;
586 ktest_destroy_etype_info_entry(info[1]); info[1] = 0;
588 retval = encode_krb5_etype_info(info,&(code));
590 com_err("encoding etype_info (only 1)",retval,"");
593 encoder_print_results(code, "etype_info (only 1)", "");
595 ktest_destroy_etype_info_entry(info[0]); info[0] = 0;
597 retval = encode_krb5_etype_info(info,&(code));
599 com_err("encoding etype_info (no info)",retval,"");
602 encoder_print_results(code, "etype_info (no info)", "");
604 ktest_destroy_etype_info(info);
607 /* encode_etype_info 2*/
609 krb5_etype_info_entry **info;
611 setup(info,krb5_etype_info_entry **,"etype_info2",
612 ktest_make_sample_etype_info2);
613 retval = encode_krb5_etype_info2(info,&(code));
615 com_err("encoding etype_info",retval,"");
618 encoder_print_results(code, "etype_info2", "");
619 ktest_destroy_etype_info_entry(info[2]); info[2] = 0;
620 ktest_destroy_etype_info_entry(info[1]); info[1] = 0;
622 retval = encode_krb5_etype_info2(info,&(code));
624 com_err("encoding etype_info (only 1)",retval,"");
627 encoder_print_results(code, "etype_info2 (only 1)", "");
629 ktest_destroy_etype_info(info);
630 /* ktest_destroy_etype_info_entry(info[0]); info[0] = 0;*/
634 /****************************************************************/
635 /* encode_pa_enc_ts */
637 krb5_pa_enc_ts pa_enc;
638 setup(pa_enc,krb5_pa_enc_ts,"pa_enc_ts",ktest_make_sample_pa_enc_ts);
639 encode_run(pa_enc,krb5_pa_enc_ts,"pa_enc_ts","",encode_krb5_pa_enc_ts);
641 encode_run(pa_enc,krb5_pa_enc_ts,"pa_enc_ts (no usec)","",encode_krb5_pa_enc_ts);
644 /****************************************************************/
645 /* encode_enc_data */
647 krb5_enc_data enc_data;
648 setup(enc_data,krb5_enc_data,"enc_data",ktest_make_sample_enc_data);
649 current_appl_type = 1001;
650 encode_run(enc_data,krb5_enc_data,"enc_data","",encode_krb5_enc_data);
651 enc_data.kvno = 0xFF000000;
652 current_appl_type = 1001;
653 encode_run(enc_data,krb5_enc_data,"enc_data","(MSB-set kvno)",encode_krb5_enc_data);
654 enc_data.kvno = 0xFFFFFFFF;
655 current_appl_type = 1001;
656 encode_run(enc_data,krb5_enc_data,"enc_data","(kvno=-1)",encode_krb5_enc_data);
657 ktest_destroy_enc_data(&enc_data);
659 /****************************************************************/
660 /* encode_krb5_sam_challenge */
662 krb5_sam_challenge sam_ch;
663 setup(sam_ch,krb5_sam_challenge,"sam_challenge",
664 ktest_make_sample_sam_challenge);
665 encode_run(sam_ch,krb5_sam_challenge,"sam_challenge","",
666 encode_krb5_sam_challenge);
667 ktest_empty_sam_challenge(&sam_ch);
669 /****************************************************************/
670 /* encode_krb5_sam_response */
672 krb5_sam_response sam_ch;
673 setup(sam_ch,krb5_sam_response,"sam_response",
674 ktest_make_sample_sam_response);
675 encode_run(sam_ch,krb5_sam_response,"sam_response","",
676 encode_krb5_sam_response);
677 ktest_empty_sam_response(&sam_ch);
679 /****************************************************************/
680 /* encode_krb5_sam_key */
683 setup(sam_ch,krb5_sam_key,"sam_key",
684 ktest_make_sample_sam_key);
685 encode_run(sam_ch,krb5_sam_key,"sam_key","",
686 encode_krb5_sam_key);
687 ktest_empty_sam_key(&sam_ch);
689 /****************************************************************/
690 /* encode_krb5_enc_sam_response_enc */
692 krb5_enc_sam_response_enc sam_ch;
693 setup(sam_ch,krb5_enc_sam_response_enc,"enc_sam_response_enc",
694 ktest_make_sample_enc_sam_response_enc);
695 encode_run(sam_ch,krb5_enc_sam_response_enc,"enc_sam_response_enc","",
696 encode_krb5_enc_sam_response_enc);
697 ktest_empty_enc_sam_response_enc(&sam_ch);
699 /****************************************************************/
700 /* encode_krb5_predicted_sam_response */
702 krb5_predicted_sam_response sam_ch;
703 setup(sam_ch,krb5_predicted_sam_response,"predicted_sam_response",
704 ktest_make_sample_predicted_sam_response);
705 encode_run(sam_ch,krb5_predicted_sam_response,"predicted_sam_response","",
706 encode_krb5_predicted_sam_response);
707 ktest_empty_predicted_sam_response(&sam_ch);
709 /****************************************************************/
710 /* encode_krb5_sam_response_2 */
712 krb5_sam_response_2 sam_ch2;
713 setup(sam_ch2,krb5_sam_response_2,"sam_response_2",
714 ktest_make_sample_sam_response_2);
715 encode_run(sam_ch2,krb5_sam_response_2,"sam_response_2","",
716 acc.encode_krb5_sam_response_2);
717 ktest_empty_sam_response_2(&sam_ch2);
719 /****************************************************************/
720 /* encode_krb5_sam_response_enc_2 */
722 krb5_enc_sam_response_enc_2 sam_ch2;
723 setup(sam_ch2,krb5_enc_sam_response_enc_2,"enc_sam_response_enc_2",
724 ktest_make_sample_enc_sam_response_enc_2);
725 encode_run(sam_ch2,krb5_enc_sam_response_enc_2,
726 "enc_sam_response_enc_2","",
727 acc.encode_krb5_enc_sam_response_enc_2);
728 ktest_empty_enc_sam_response_enc_2(&sam_ch2);
730 /****************************************************************/
731 /* encode_krb5_pa_s4u_x509_user */
733 krb5_pa_s4u_x509_user s4u;
734 setup(s4u,krb5_pa_s4u_x509_user,"pa_s4u_x509_user",
735 ktest_make_sample_pa_s4u_x509_user);
736 encode_run(s4u,krb5_pa_s4u_x509_user,
737 "pa_s4u_x509_user","",
738 encode_krb5_pa_s4u_x509_user);
739 ktest_empty_pa_s4u_x509_user(&s4u);
741 /****************************************************************/
742 /* encode_krb5_ad_kdcissued */
744 krb5_ad_kdcissued kdci;
745 setup(kdci,krb5_ad_kdcissued,"ad_kdcissued",
746 ktest_make_sample_ad_kdcissued);
747 encode_run(kdci,krb5_ad_kdcissued,
749 encode_krb5_ad_kdcissued);
750 ktest_empty_ad_kdcissued(&kdci);
752 /****************************************************************/
753 /* encode_krb5_ad_signedpath_data */
755 krb5_ad_signedpath_data spd;
756 setup(spd,krb5_ad_signedpath_data,"ad_signedpath_data",
757 ktest_make_sample_ad_signedpath_data);
758 encode_run(spd,krb5_ad_signedpath_data,
759 "ad_signedpath_data","",
760 encode_krb5_ad_signedpath_data);
761 ktest_empty_ad_signedpath_data(&spd);
763 /****************************************************************/
764 /* encode_krb5_ad_signedpath */
766 krb5_ad_signedpath sp;
767 setup(sp,krb5_ad_signedpath,"ad_signedpath",
768 ktest_make_sample_ad_signedpath);
769 encode_run(sp,krb5_ad_signedpath,
771 encode_krb5_ad_signedpath);
772 ktest_empty_ad_signedpath(&sp);
774 /****************************************************************/
775 /* encode_krb5_iakerb_header */
777 krb5_iakerb_header ih;
778 setup(ih,krb5_ad_signedpath,"iakerb_header",
779 ktest_make_sample_iakerb_header);
780 encode_run(ih,krb5_iakerb_header,
782 encode_krb5_iakerb_header);
783 ktest_empty_iakerb_header(&ih);
785 /****************************************************************/
786 /* encode_krb5_iakerb_finished */
788 krb5_iakerb_finished ih;
789 setup(ih,krb5_ad_signedpath,"iakerb_finished",
790 ktest_make_sample_iakerb_finished);
791 encode_run(ih,krb5_iakerb_finished,
792 "iakerb_finished","",
793 encode_krb5_iakerb_finished);
794 ktest_empty_iakerb_finished(&ih);
798 ldap_seqof_key_data skd;
800 setup(skd, ldap_seqof_key_data, "ldap_seqof_key_data",
801 ktest_make_sample_ldap_seqof_key_data);
802 encode_run(skd, ldap_seqof_key_data, "ldap_seqof_key_data", "",
803 acc.asn1_ldap_encode_sequence_of_keys);
804 ktest_empty_ldap_seqof_key_data(test_context, &skd);
808 krb5_free_context(test_context);