xref: /freebsd/crypto/heimdal/lib/krb5/krb5-protos.h (revision b52b9d56d4e96089873a75f9e29062eec19fabba)
1 /* This is a generated file */
2 #ifndef __krb5_protos_h__
3 #define __krb5_protos_h__
4 
5 #ifdef __STDC__
6 #include <stdarg.h>
7 #ifndef __P
8 #define __P(x) x
9 #endif
10 #else
11 #ifndef __P
12 #define __P(x) ()
13 #endif
14 #endif
15 
16 #if !defined(__GNUC__) && !defined(__attribute__)
17 #define __attribute__(x)
18 #endif
19 
20 krb5_error_code
21 krb524_convert_creds_kdc __P((
22 	krb5_context context,
23 	krb5_creds *in_cred,
24 	struct credentials *v4creds));
25 
26 krb5_error_code
27 krb524_convert_creds_kdc_ccache __P((
28 	krb5_context context,
29 	krb5_ccache ccache,
30 	krb5_creds *in_cred,
31 	struct credentials *v4creds));
32 
33 krb5_error_code
34 krb5_425_conv_principal __P((
35 	krb5_context context,
36 	const char *name,
37 	const char *instance,
38 	const char *realm,
39 	krb5_principal *princ));
40 
41 krb5_error_code
42 krb5_425_conv_principal_ext __P((
43 	krb5_context context,
44 	const char *name,
45 	const char *instance,
46 	const char *realm,
47 	krb5_boolean (*func)(krb5_context, krb5_principal),
48 	krb5_boolean resolve,
49 	krb5_principal *princ));
50 
51 krb5_error_code
52 krb5_524_conv_principal __P((
53 	krb5_context context,
54 	const krb5_principal principal,
55 	char *name,
56 	char *instance,
57 	char *realm));
58 
59 krb5_error_code
60 krb5_abort __P((
61 	krb5_context context,
62 	krb5_error_code code,
63 	const char *fmt,
64 	...))
65     __attribute__ ((noreturn, format (printf, 3, 4)));
66 
67 krb5_error_code
68 krb5_abortx __P((
69 	krb5_context context,
70 	const char *fmt,
71 	...))
72     __attribute__ ((noreturn, format (printf, 2, 3)));
73 
74 krb5_error_code
75 krb5_acl_match_file __P((
76 	krb5_context context,
77 	const char *file,
78 	const char *format,
79 	...));
80 
81 krb5_error_code
82 krb5_acl_match_string __P((
83 	krb5_context context,
84 	const char *acl_string,
85 	const char *format,
86 	...));
87 
88 krb5_error_code
89 krb5_add_et_list __P((
90 	krb5_context context,
91 	void (*func)(struct et_list **)));
92 
93 krb5_error_code
94 krb5_add_extra_addresses __P((
95 	krb5_context context,
96 	krb5_addresses *addresses));
97 
98 krb5_error_code
99 krb5_add_ignore_addresses __P((
100 	krb5_context context,
101 	krb5_addresses *addresses));
102 
103 krb5_error_code
104 krb5_addlog_dest __P((
105 	krb5_context context,
106 	krb5_log_facility *f,
107 	const char *orig));
108 
109 krb5_error_code
110 krb5_addlog_func __P((
111 	krb5_context context,
112 	krb5_log_facility *fac,
113 	int min,
114 	int max,
115 	krb5_log_log_func_t log,
116 	krb5_log_close_func_t close,
117 	void *data));
118 
119 krb5_error_code
120 krb5_addr2sockaddr __P((
121 	krb5_context context,
122 	const krb5_address *addr,
123 	struct sockaddr *sa,
124 	int *sa_size,
125 	int port));
126 
127 krb5_boolean
128 krb5_address_compare __P((
129 	krb5_context context,
130 	const krb5_address *addr1,
131 	const krb5_address *addr2));
132 
133 int
134 krb5_address_order __P((
135 	krb5_context context,
136 	const krb5_address *addr1,
137 	const krb5_address *addr2));
138 
139 krb5_boolean
140 krb5_address_search __P((
141 	krb5_context context,
142 	const krb5_address *addr,
143 	const krb5_addresses *addrlist));
144 
145 krb5_error_code
146 krb5_aname_to_localname __P((
147 	krb5_context context,
148 	krb5_const_principal aname,
149 	size_t lnsize,
150 	char *lname));
151 
152 krb5_error_code
153 krb5_anyaddr __P((
154 	krb5_context context,
155 	int af,
156 	struct sockaddr *sa,
157 	int *sa_size,
158 	int port));
159 
160 void
161 krb5_appdefault_boolean __P((
162 	krb5_context context,
163 	const char *appname,
164 	krb5_const_realm realm,
165 	const char *option,
166 	krb5_boolean def_val,
167 	krb5_boolean *ret_val));
168 
169 void
170 krb5_appdefault_string __P((
171 	krb5_context context,
172 	const char *appname,
173 	krb5_const_realm realm,
174 	const char *option,
175 	const char *def_val,
176 	char **ret_val));
177 
178 void
179 krb5_appdefault_time __P((
180 	krb5_context context,
181 	const char *appname,
182 	krb5_const_realm realm,
183 	const char *option,
184 	time_t def_val,
185 	time_t *ret_val));
186 
187 krb5_error_code
188 krb5_append_addresses __P((
189 	krb5_context context,
190 	krb5_addresses *dest,
191 	const krb5_addresses *source));
192 
193 krb5_error_code
194 krb5_auth_con_free __P((
195 	krb5_context context,
196 	krb5_auth_context auth_context));
197 
198 krb5_error_code
199 krb5_auth_con_genaddrs __P((
200 	krb5_context context,
201 	krb5_auth_context auth_context,
202 	int fd,
203 	int flags));
204 
205 krb5_error_code
206 krb5_auth_con_getaddrs __P((
207 	krb5_context context,
208 	krb5_auth_context auth_context,
209 	krb5_address **local_addr,
210 	krb5_address **remote_addr));
211 
212 krb5_error_code
213 krb5_auth_con_getauthenticator __P((
214 	krb5_context context,
215 	krb5_auth_context auth_context,
216 	krb5_authenticator *authenticator));
217 
218 krb5_error_code
219 krb5_auth_con_getcksumtype __P((
220 	krb5_context context,
221 	krb5_auth_context auth_context,
222 	krb5_cksumtype *cksumtype));
223 
224 krb5_error_code
225 krb5_auth_con_getflags __P((
226 	krb5_context context,
227 	krb5_auth_context auth_context,
228 	int32_t *flags));
229 
230 krb5_error_code
231 krb5_auth_con_getkey __P((
232 	krb5_context context,
233 	krb5_auth_context auth_context,
234 	krb5_keyblock **keyblock));
235 
236 krb5_error_code
237 krb5_auth_con_getkeytype __P((
238 	krb5_context context,
239 	krb5_auth_context auth_context,
240 	krb5_keytype *keytype));
241 
242 krb5_error_code
243 krb5_auth_con_getlocalseqnumber __P((
244 	krb5_context context,
245 	krb5_auth_context auth_context,
246 	int32_t *seqnumber));
247 
248 krb5_error_code
249 krb5_auth_con_getlocalsubkey __P((
250 	krb5_context context,
251 	krb5_auth_context auth_context,
252 	krb5_keyblock **keyblock));
253 
254 krb5_error_code
255 krb5_auth_con_getrcache __P((
256 	krb5_context context,
257 	krb5_auth_context auth_context,
258 	krb5_rcache *rcache));
259 
260 krb5_error_code
261 krb5_auth_con_getremotesubkey __P((
262 	krb5_context context,
263 	krb5_auth_context auth_context,
264 	krb5_keyblock **keyblock));
265 
266 krb5_error_code
267 krb5_auth_con_init __P((
268 	krb5_context context,
269 	krb5_auth_context *auth_context));
270 
271 krb5_error_code
272 krb5_auth_con_setaddrs __P((
273 	krb5_context context,
274 	krb5_auth_context auth_context,
275 	krb5_address *local_addr,
276 	krb5_address *remote_addr));
277 
278 krb5_error_code
279 krb5_auth_con_setaddrs_from_fd __P((
280 	krb5_context context,
281 	krb5_auth_context auth_context,
282 	void *p_fd));
283 
284 krb5_error_code
285 krb5_auth_con_setcksumtype __P((
286 	krb5_context context,
287 	krb5_auth_context auth_context,
288 	krb5_cksumtype cksumtype));
289 
290 krb5_error_code
291 krb5_auth_con_setflags __P((
292 	krb5_context context,
293 	krb5_auth_context auth_context,
294 	int32_t flags));
295 
296 krb5_error_code
297 krb5_auth_con_setkey __P((
298 	krb5_context context,
299 	krb5_auth_context auth_context,
300 	krb5_keyblock *keyblock));
301 
302 krb5_error_code
303 krb5_auth_con_setkeytype __P((
304 	krb5_context context,
305 	krb5_auth_context auth_context,
306 	krb5_keytype keytype));
307 
308 krb5_error_code
309 krb5_auth_con_setlocalseqnumber __P((
310 	krb5_context context,
311 	krb5_auth_context auth_context,
312 	int32_t seqnumber));
313 
314 krb5_error_code
315 krb5_auth_con_setlocalsubkey __P((
316 	krb5_context context,
317 	krb5_auth_context auth_context,
318 	krb5_keyblock *keyblock));
319 
320 krb5_error_code
321 krb5_auth_con_setrcache __P((
322 	krb5_context context,
323 	krb5_auth_context auth_context,
324 	krb5_rcache rcache));
325 
326 krb5_error_code
327 krb5_auth_con_setremoteseqnumber __P((
328 	krb5_context context,
329 	krb5_auth_context auth_context,
330 	int32_t seqnumber));
331 
332 krb5_error_code
333 krb5_auth_con_setremotesubkey __P((
334 	krb5_context context,
335 	krb5_auth_context auth_context,
336 	krb5_keyblock *keyblock));
337 
338 krb5_error_code
339 krb5_auth_con_setuserkey __P((
340 	krb5_context context,
341 	krb5_auth_context auth_context,
342 	krb5_keyblock *keyblock));
343 
344 krb5_error_code
345 krb5_auth_getremoteseqnumber __P((
346 	krb5_context context,
347 	krb5_auth_context auth_context,
348 	int32_t *seqnumber));
349 
350 krb5_error_code
351 krb5_build_ap_req __P((
352 	krb5_context context,
353 	krb5_enctype enctype,
354 	krb5_creds *cred,
355 	krb5_flags ap_options,
356 	krb5_data authenticator,
357 	krb5_data *retdata));
358 
359 krb5_error_code
360 krb5_build_authenticator __P((
361 	krb5_context context,
362 	krb5_auth_context auth_context,
363 	krb5_enctype enctype,
364 	krb5_creds *cred,
365 	Checksum *cksum,
366 	Authenticator **auth_result,
367 	krb5_data *result,
368 	krb5_key_usage usage));
369 
370 krb5_error_code
371 krb5_build_principal __P((
372 	krb5_context context,
373 	krb5_principal *principal,
374 	int rlen,
375 	krb5_const_realm realm,
376 	...));
377 
378 krb5_error_code
379 krb5_build_principal_ext __P((
380 	krb5_context context,
381 	krb5_principal *principal,
382 	int rlen,
383 	krb5_const_realm realm,
384 	...));
385 
386 krb5_error_code
387 krb5_build_principal_va __P((
388 	krb5_context context,
389 	krb5_principal *principal,
390 	int rlen,
391 	krb5_const_realm realm,
392 	va_list ap));
393 
394 krb5_error_code
395 krb5_build_principal_va_ext __P((
396 	krb5_context context,
397 	krb5_principal *principal,
398 	int rlen,
399 	krb5_const_realm realm,
400 	va_list ap));
401 
402 krb5_error_code
403 krb5_cc_close __P((
404 	krb5_context context,
405 	krb5_ccache id));
406 
407 krb5_error_code
408 krb5_cc_copy_cache __P((
409 	krb5_context context,
410 	const krb5_ccache from,
411 	krb5_ccache to));
412 
413 krb5_error_code
414 krb5_cc_default __P((
415 	krb5_context context,
416 	krb5_ccache *id));
417 
418 const char*
419 krb5_cc_default_name __P((krb5_context context));
420 
421 krb5_error_code
422 krb5_cc_destroy __P((
423 	krb5_context context,
424 	krb5_ccache id));
425 
426 krb5_error_code
427 krb5_cc_end_seq_get __P((
428 	krb5_context context,
429 	const krb5_ccache id,
430 	krb5_cc_cursor *cursor));
431 
432 krb5_error_code
433 krb5_cc_gen_new __P((
434 	krb5_context context,
435 	const krb5_cc_ops *ops,
436 	krb5_ccache *id));
437 
438 const char*
439 krb5_cc_get_name __P((
440 	krb5_context context,
441 	krb5_ccache id));
442 
443 krb5_error_code
444 krb5_cc_get_principal __P((
445 	krb5_context context,
446 	krb5_ccache id,
447 	krb5_principal *principal));
448 
449 const char*
450 krb5_cc_get_type __P((
451 	krb5_context context,
452 	krb5_ccache id));
453 
454 krb5_error_code
455 krb5_cc_get_version __P((
456 	krb5_context context,
457 	const krb5_ccache id));
458 
459 krb5_error_code
460 krb5_cc_initialize __P((
461 	krb5_context context,
462 	krb5_ccache id,
463 	krb5_principal primary_principal));
464 
465 krb5_error_code
466 krb5_cc_next_cred __P((
467 	krb5_context context,
468 	const krb5_ccache id,
469 	krb5_cc_cursor *cursor,
470 	krb5_creds *creds));
471 
472 krb5_error_code
473 krb5_cc_register __P((
474 	krb5_context context,
475 	const krb5_cc_ops *ops,
476 	krb5_boolean override));
477 
478 krb5_error_code
479 krb5_cc_remove_cred __P((
480 	krb5_context context,
481 	krb5_ccache id,
482 	krb5_flags which,
483 	krb5_creds *cred));
484 
485 krb5_error_code
486 krb5_cc_resolve __P((
487 	krb5_context context,
488 	const char *name,
489 	krb5_ccache *id));
490 
491 krb5_error_code
492 krb5_cc_retrieve_cred __P((
493 	krb5_context context,
494 	krb5_ccache id,
495 	krb5_flags whichfields,
496 	const krb5_creds *mcreds,
497 	krb5_creds *creds));
498 
499 krb5_error_code
500 krb5_cc_set_flags __P((
501 	krb5_context context,
502 	krb5_ccache id,
503 	krb5_flags flags));
504 
505 krb5_error_code
506 krb5_cc_start_seq_get __P((
507 	krb5_context context,
508 	const krb5_ccache id,
509 	krb5_cc_cursor *cursor));
510 
511 krb5_error_code
512 krb5_cc_store_cred __P((
513 	krb5_context context,
514 	krb5_ccache id,
515 	krb5_creds *creds));
516 
517 krb5_error_code
518 krb5_change_password __P((
519 	krb5_context context,
520 	krb5_creds *creds,
521 	char *newpw,
522 	int *result_code,
523 	krb5_data *result_code_string,
524 	krb5_data *result_string));
525 
526 krb5_error_code
527 krb5_check_transited_realms __P((
528 	krb5_context context,
529 	const char *const *realms,
530 	int num_realms,
531 	int *bad_realm));
532 
533 krb5_boolean
534 krb5_checksum_is_collision_proof __P((
535 	krb5_context context,
536 	krb5_cksumtype type));
537 
538 krb5_boolean
539 krb5_checksum_is_keyed __P((
540 	krb5_context context,
541 	krb5_cksumtype type));
542 
543 krb5_error_code
544 krb5_checksumsize __P((
545 	krb5_context context,
546 	krb5_cksumtype type,
547 	size_t *size));
548 
549 void
550 krb5_clear_error_string __P((krb5_context context));
551 
552 krb5_error_code
553 krb5_closelog __P((
554 	krb5_context context,
555 	krb5_log_facility *fac));
556 
557 krb5_boolean
558 krb5_compare_creds __P((
559 	krb5_context context,
560 	krb5_flags whichfields,
561 	const krb5_creds *mcreds,
562 	const krb5_creds *creds));
563 
564 krb5_error_code
565 krb5_config_file_free __P((
566 	krb5_context context,
567 	krb5_config_section *s));
568 
569 void
570 krb5_config_free_strings __P((char **strings));
571 
572 const void *
573 krb5_config_get __P((
574 	krb5_context context,
575 	krb5_config_section *c,
576 	int type,
577 	...));
578 
579 krb5_boolean
580 krb5_config_get_bool __P((
581 	krb5_context context,
582 	krb5_config_section *c,
583 	...));
584 
585 krb5_boolean
586 krb5_config_get_bool_default __P((
587 	krb5_context context,
588 	krb5_config_section *c,
589 	krb5_boolean def_value,
590 	...));
591 
592 int
593 krb5_config_get_int __P((
594 	krb5_context context,
595 	krb5_config_section *c,
596 	...));
597 
598 int
599 krb5_config_get_int_default __P((
600 	krb5_context context,
601 	krb5_config_section *c,
602 	int def_value,
603 	...));
604 
605 const krb5_config_binding *
606 krb5_config_get_list __P((
607 	krb5_context context,
608 	krb5_config_section *c,
609 	...));
610 
611 const void *
612 krb5_config_get_next __P((
613 	krb5_context context,
614 	krb5_config_section *c,
615 	krb5_config_binding **pointer,
616 	int type,
617 	...));
618 
619 const char *
620 krb5_config_get_string __P((
621 	krb5_context context,
622 	krb5_config_section *c,
623 	...));
624 
625 const char *
626 krb5_config_get_string_default __P((
627 	krb5_context context,
628 	krb5_config_section *c,
629 	const char *def_value,
630 	...));
631 
632 char**
633 krb5_config_get_strings __P((
634 	krb5_context context,
635 	krb5_config_section *c,
636 	...));
637 
638 int
639 krb5_config_get_time __P((
640 	krb5_context context,
641 	krb5_config_section *c,
642 	...));
643 
644 int
645 krb5_config_get_time_default __P((
646 	krb5_context context,
647 	krb5_config_section *c,
648 	int def_value,
649 	...));
650 
651 krb5_error_code
652 krb5_config_parse_file __P((
653 	krb5_context context,
654 	const char *fname,
655 	krb5_config_section **res));
656 
657 const void *
658 krb5_config_vget __P((
659 	krb5_context context,
660 	krb5_config_section *c,
661 	int type,
662 	va_list args));
663 
664 krb5_boolean
665 krb5_config_vget_bool __P((
666 	krb5_context context,
667 	krb5_config_section *c,
668 	va_list args));
669 
670 krb5_boolean
671 krb5_config_vget_bool_default __P((
672 	krb5_context context,
673 	krb5_config_section *c,
674 	krb5_boolean def_value,
675 	va_list args));
676 
677 int
678 krb5_config_vget_int __P((
679 	krb5_context context,
680 	krb5_config_section *c,
681 	va_list args));
682 
683 int
684 krb5_config_vget_int_default __P((
685 	krb5_context context,
686 	krb5_config_section *c,
687 	int def_value,
688 	va_list args));
689 
690 const krb5_config_binding *
691 krb5_config_vget_list __P((
692 	krb5_context context,
693 	krb5_config_section *c,
694 	va_list args));
695 
696 const void *
697 krb5_config_vget_next __P((
698 	krb5_context context,
699 	krb5_config_section *c,
700 	krb5_config_binding **pointer,
701 	int type,
702 	va_list args));
703 
704 const char *
705 krb5_config_vget_string __P((
706 	krb5_context context,
707 	krb5_config_section *c,
708 	va_list args));
709 
710 const char *
711 krb5_config_vget_string_default __P((
712 	krb5_context context,
713 	krb5_config_section *c,
714 	const char *def_value,
715 	va_list args));
716 
717 char **
718 krb5_config_vget_strings __P((
719 	krb5_context context,
720 	krb5_config_section *c,
721 	va_list args));
722 
723 int
724 krb5_config_vget_time __P((
725 	krb5_context context,
726 	krb5_config_section *c,
727 	va_list args));
728 
729 int
730 krb5_config_vget_time_default __P((
731 	krb5_context context,
732 	krb5_config_section *c,
733 	int def_value,
734 	va_list args));
735 
736 krb5_error_code
737 krb5_copy_address __P((
738 	krb5_context context,
739 	const krb5_address *inaddr,
740 	krb5_address *outaddr));
741 
742 krb5_error_code
743 krb5_copy_addresses __P((
744 	krb5_context context,
745 	const krb5_addresses *inaddr,
746 	krb5_addresses *outaddr));
747 
748 krb5_error_code
749 krb5_copy_creds __P((
750 	krb5_context context,
751 	const krb5_creds *incred,
752 	krb5_creds **outcred));
753 
754 krb5_error_code
755 krb5_copy_creds_contents __P((
756 	krb5_context context,
757 	const krb5_creds *incred,
758 	krb5_creds *c));
759 
760 krb5_error_code
761 krb5_copy_data __P((
762 	krb5_context context,
763 	const krb5_data *indata,
764 	krb5_data **outdata));
765 
766 krb5_error_code
767 krb5_copy_host_realm __P((
768 	krb5_context context,
769 	const krb5_realm *from,
770 	krb5_realm **to));
771 
772 krb5_error_code
773 krb5_copy_keyblock __P((
774 	krb5_context context,
775 	const krb5_keyblock *inblock,
776 	krb5_keyblock **to));
777 
778 krb5_error_code
779 krb5_copy_keyblock_contents __P((
780 	krb5_context context,
781 	const krb5_keyblock *inblock,
782 	krb5_keyblock *to));
783 
784 krb5_error_code
785 krb5_copy_principal __P((
786 	krb5_context context,
787 	krb5_const_principal inprinc,
788 	krb5_principal *outprinc));
789 
790 krb5_error_code
791 krb5_copy_ticket __P((
792 	krb5_context context,
793 	const krb5_ticket *from,
794 	krb5_ticket **to));
795 
796 krb5_error_code
797 krb5_create_checksum __P((
798 	krb5_context context,
799 	krb5_crypto crypto,
800 	krb5_key_usage usage,
801 	int type,
802 	void *data,
803 	size_t len,
804 	Checksum *result));
805 
806 krb5_error_code
807 krb5_crypto_destroy __P((
808 	krb5_context context,
809 	krb5_crypto crypto));
810 
811 krb5_error_code
812 krb5_crypto_init __P((
813 	krb5_context context,
814 	const krb5_keyblock *key,
815 	krb5_enctype etype,
816 	krb5_crypto *crypto));
817 
818 krb5_error_code
819 krb5_data_alloc __P((
820 	krb5_data *p,
821 	int len));
822 
823 krb5_error_code
824 krb5_data_copy __P((
825 	krb5_data *p,
826 	const void *data,
827 	size_t len));
828 
829 void
830 krb5_data_free __P((krb5_data *p));
831 
832 krb5_error_code
833 krb5_data_realloc __P((
834 	krb5_data *p,
835 	int len));
836 
837 void
838 krb5_data_zero __P((krb5_data *p));
839 
840 krb5_error_code
841 krb5_decode_Authenticator __P((
842 	krb5_context context,
843 	const void *data,
844 	size_t length,
845 	Authenticator *t,
846 	size_t *len));
847 
848 krb5_error_code
849 krb5_decode_ETYPE_INFO __P((
850 	krb5_context context,
851 	const void *data,
852 	size_t length,
853 	ETYPE_INFO *t,
854 	size_t *len));
855 
856 krb5_error_code
857 krb5_decode_EncAPRepPart __P((
858 	krb5_context context,
859 	const void *data,
860 	size_t length,
861 	EncAPRepPart *t,
862 	size_t *len));
863 
864 krb5_error_code
865 krb5_decode_EncASRepPart __P((
866 	krb5_context context,
867 	const void *data,
868 	size_t length,
869 	EncASRepPart *t,
870 	size_t *len));
871 
872 krb5_error_code
873 krb5_decode_EncKrbCredPart __P((
874 	krb5_context context,
875 	const void *data,
876 	size_t length,
877 	EncKrbCredPart *t,
878 	size_t *len));
879 
880 krb5_error_code
881 krb5_decode_EncTGSRepPart __P((
882 	krb5_context context,
883 	const void *data,
884 	size_t length,
885 	EncTGSRepPart *t,
886 	size_t *len));
887 
888 krb5_error_code
889 krb5_decode_EncTicketPart __P((
890 	krb5_context context,
891 	const void *data,
892 	size_t length,
893 	EncTicketPart *t,
894 	size_t *len));
895 
896 krb5_error_code
897 krb5_decode_ap_req __P((
898 	krb5_context context,
899 	const krb5_data *inbuf,
900 	krb5_ap_req *ap_req));
901 
902 krb5_error_code
903 krb5_decrypt __P((
904 	krb5_context context,
905 	krb5_crypto crypto,
906 	unsigned usage,
907 	void *data,
908 	size_t len,
909 	krb5_data *result));
910 
911 krb5_error_code
912 krb5_decrypt_EncryptedData __P((
913 	krb5_context context,
914 	krb5_crypto crypto,
915 	unsigned usage,
916 	const EncryptedData *e,
917 	krb5_data *result));
918 
919 krb5_error_code
920 krb5_decrypt_ivec __P((
921 	krb5_context context,
922 	krb5_crypto crypto,
923 	unsigned usage,
924 	void *data,
925 	size_t len,
926 	krb5_data *result,
927 	void *ivec));
928 
929 krb5_error_code
930 krb5_decrypt_ticket __P((
931 	krb5_context context,
932 	Ticket *ticket,
933 	krb5_keyblock *key,
934 	EncTicketPart *out,
935 	krb5_flags flags));
936 
937 krb5_error_code
938 krb5_derive_key __P((
939 	krb5_context context,
940 	const krb5_keyblock *key,
941 	krb5_enctype etype,
942 	const void *constant,
943 	size_t constant_len,
944 	krb5_keyblock **derived_key));
945 
946 krb5_error_code
947 krb5_domain_x500_decode __P((
948 	krb5_context context,
949 	krb5_data tr,
950 	char ***realms,
951 	int *num_realms,
952 	const char *client_realm,
953 	const char *server_realm));
954 
955 krb5_error_code
956 krb5_domain_x500_encode __P((
957 	char **realms,
958 	int num_realms,
959 	krb5_data *encoding));
960 
961 krb5_error_code
962 krb5_eai_to_heim_errno __P((
963 	int eai_errno,
964 	int system_error));
965 
966 krb5_error_code
967 krb5_encode_Authenticator __P((
968 	krb5_context context,
969 	void *data,
970 	size_t length,
971 	Authenticator *t,
972 	size_t *len));
973 
974 krb5_error_code
975 krb5_encode_ETYPE_INFO __P((
976 	krb5_context context,
977 	void *data,
978 	size_t length,
979 	ETYPE_INFO *t,
980 	size_t *len));
981 
982 krb5_error_code
983 krb5_encode_EncAPRepPart __P((
984 	krb5_context context,
985 	void *data,
986 	size_t length,
987 	EncAPRepPart *t,
988 	size_t *len));
989 
990 krb5_error_code
991 krb5_encode_EncASRepPart __P((
992 	krb5_context context,
993 	void *data,
994 	size_t length,
995 	EncASRepPart *t,
996 	size_t *len));
997 
998 krb5_error_code
999 krb5_encode_EncKrbCredPart __P((
1000 	krb5_context context,
1001 	void *data,
1002 	size_t length,
1003 	EncKrbCredPart *t,
1004 	size_t *len));
1005 
1006 krb5_error_code
1007 krb5_encode_EncTGSRepPart __P((
1008 	krb5_context context,
1009 	void *data,
1010 	size_t length,
1011 	EncTGSRepPart *t,
1012 	size_t *len));
1013 
1014 krb5_error_code
1015 krb5_encode_EncTicketPart __P((
1016 	krb5_context context,
1017 	void *data,
1018 	size_t length,
1019 	EncTicketPart *t,
1020 	size_t *len));
1021 
1022 krb5_error_code
1023 krb5_encrypt __P((
1024 	krb5_context context,
1025 	krb5_crypto crypto,
1026 	unsigned usage,
1027 	void *data,
1028 	size_t len,
1029 	krb5_data *result));
1030 
1031 krb5_error_code
1032 krb5_encrypt_EncryptedData __P((
1033 	krb5_context context,
1034 	krb5_crypto crypto,
1035 	unsigned usage,
1036 	void *data,
1037 	size_t len,
1038 	int kvno,
1039 	EncryptedData *result));
1040 
1041 krb5_error_code
1042 krb5_encrypt_ivec __P((
1043 	krb5_context context,
1044 	krb5_crypto crypto,
1045 	unsigned usage,
1046 	void *data,
1047 	size_t len,
1048 	krb5_data *result,
1049 	void *ivec));
1050 
1051 krb5_error_code
1052 krb5_enctype_to_keytype __P((
1053 	krb5_context context,
1054 	krb5_enctype etype,
1055 	krb5_keytype *keytype));
1056 
1057 krb5_error_code
1058 krb5_enctype_to_string __P((
1059 	krb5_context context,
1060 	krb5_enctype etype,
1061 	char **string));
1062 
1063 krb5_error_code
1064 krb5_enctype_valid __P((
1065 	krb5_context context,
1066 	krb5_enctype etype));
1067 
1068 krb5_boolean
1069 krb5_enctypes_compatible_keys __P((
1070 	krb5_context context,
1071 	krb5_enctype etype1,
1072 	krb5_enctype etype2));
1073 
1074 krb5_error_code
1075 krb5_err __P((
1076 	krb5_context context,
1077 	int eval,
1078 	krb5_error_code code,
1079 	const char *fmt,
1080 	...))
1081     __attribute__ ((noreturn, format (printf, 4, 5)));
1082 
1083 krb5_error_code
1084 krb5_error_from_rd_error __P((
1085 	krb5_context context,
1086 	const krb5_error *error,
1087 	const krb5_creds *creds));
1088 
1089 krb5_error_code
1090 krb5_errx __P((
1091 	krb5_context context,
1092 	int eval,
1093 	const char *fmt,
1094 	...))
1095     __attribute__ ((noreturn, format (printf, 3, 4)));
1096 
1097 krb5_error_code
1098 krb5_expand_hostname __P((
1099 	krb5_context context,
1100 	const char *orig_hostname,
1101 	char **new_hostname));
1102 
1103 krb5_error_code
1104 krb5_expand_hostname_realms __P((
1105 	krb5_context context,
1106 	const char *orig_hostname,
1107 	char **new_hostname,
1108 	char ***realms));
1109 
1110 PA_DATA *
1111 krb5_find_padata __P((
1112 	PA_DATA *val,
1113 	unsigned len,
1114 	int type,
1115 	int *index));
1116 
1117 krb5_error_code
1118 krb5_format_time __P((
1119 	krb5_context context,
1120 	time_t t,
1121 	char *s,
1122 	size_t len,
1123 	krb5_boolean include_time));
1124 
1125 krb5_error_code
1126 krb5_free_address __P((
1127 	krb5_context context,
1128 	krb5_address *address));
1129 
1130 krb5_error_code
1131 krb5_free_addresses __P((
1132 	krb5_context context,
1133 	krb5_addresses *addresses));
1134 
1135 void
1136 krb5_free_ap_rep_enc_part __P((
1137 	krb5_context context,
1138 	krb5_ap_rep_enc_part *val));
1139 
1140 void
1141 krb5_free_authenticator __P((
1142 	krb5_context context,
1143 	krb5_authenticator *authenticator));
1144 
1145 void
1146 krb5_free_context __P((krb5_context context));
1147 
1148 krb5_error_code
1149 krb5_free_cred_contents __P((
1150 	krb5_context context,
1151 	krb5_creds *c));
1152 
1153 krb5_error_code
1154 krb5_free_creds __P((
1155 	krb5_context context,
1156 	krb5_creds *c));
1157 
1158 krb5_error_code
1159 krb5_free_creds_contents __P((
1160 	krb5_context context,
1161 	krb5_creds *c));
1162 
1163 void
1164 krb5_free_data __P((
1165 	krb5_context context,
1166 	krb5_data *p));
1167 
1168 void
1169 krb5_free_error __P((
1170 	krb5_context context,
1171 	krb5_error *error));
1172 
1173 void
1174 krb5_free_error_contents __P((
1175 	krb5_context context,
1176 	krb5_error *error));
1177 
1178 void
1179 krb5_free_error_string __P((
1180 	krb5_context context,
1181 	char *str));
1182 
1183 krb5_error_code
1184 krb5_free_host_realm __P((
1185 	krb5_context context,
1186 	krb5_realm *realmlist));
1187 
1188 krb5_error_code
1189 krb5_free_kdc_rep __P((
1190 	krb5_context context,
1191 	krb5_kdc_rep *rep));
1192 
1193 void
1194 krb5_free_keyblock __P((
1195 	krb5_context context,
1196 	krb5_keyblock *keyblock));
1197 
1198 void
1199 krb5_free_keyblock_contents __P((
1200 	krb5_context context,
1201 	krb5_keyblock *keyblock));
1202 
1203 krb5_error_code
1204 krb5_free_krbhst __P((
1205 	krb5_context context,
1206 	char **hostlist));
1207 
1208 void
1209 krb5_free_principal __P((
1210 	krb5_context context,
1211 	krb5_principal p));
1212 
1213 krb5_error_code
1214 krb5_free_salt __P((
1215 	krb5_context context,
1216 	krb5_salt salt));
1217 
1218 krb5_error_code
1219 krb5_free_ticket __P((
1220 	krb5_context context,
1221 	krb5_ticket *ticket));
1222 
1223 krb5_error_code
1224 krb5_fwd_tgt_creds __P((
1225 	krb5_context context,
1226 	krb5_auth_context auth_context,
1227 	const char *hostname,
1228 	krb5_principal client,
1229 	krb5_principal server,
1230 	krb5_ccache ccache,
1231 	int forwardable,
1232 	krb5_data *out_data));
1233 
1234 void
1235 krb5_generate_random_block __P((
1236 	void *buf,
1237 	size_t len));
1238 
1239 krb5_error_code
1240 krb5_generate_random_keyblock __P((
1241 	krb5_context context,
1242 	krb5_enctype type,
1243 	krb5_keyblock *key));
1244 
1245 krb5_error_code
1246 krb5_generate_seq_number __P((
1247 	krb5_context context,
1248 	const krb5_keyblock *key,
1249 	u_int32_t *seqno));
1250 
1251 krb5_error_code
1252 krb5_generate_subkey __P((
1253 	krb5_context context,
1254 	const krb5_keyblock *key,
1255 	krb5_keyblock **subkey));
1256 
1257 krb5_error_code
1258 krb5_get_all_client_addrs __P((
1259 	krb5_context context,
1260 	krb5_addresses *res));
1261 
1262 krb5_error_code
1263 krb5_get_all_server_addrs __P((
1264 	krb5_context context,
1265 	krb5_addresses *res));
1266 
1267 krb5_error_code
1268 krb5_get_cred_from_kdc __P((
1269 	krb5_context context,
1270 	krb5_ccache ccache,
1271 	krb5_creds *in_creds,
1272 	krb5_creds **out_creds,
1273 	krb5_creds ***ret_tgts));
1274 
1275 krb5_error_code
1276 krb5_get_cred_from_kdc_opt __P((
1277 	krb5_context context,
1278 	krb5_ccache ccache,
1279 	krb5_creds *in_creds,
1280 	krb5_creds **out_creds,
1281 	krb5_creds ***ret_tgts,
1282 	krb5_flags flags));
1283 
1284 krb5_error_code
1285 krb5_get_credentials __P((
1286 	krb5_context context,
1287 	krb5_flags options,
1288 	krb5_ccache ccache,
1289 	krb5_creds *in_creds,
1290 	krb5_creds **out_creds));
1291 
1292 krb5_error_code
1293 krb5_get_credentials_with_flags __P((
1294 	krb5_context context,
1295 	krb5_flags options,
1296 	krb5_kdc_flags flags,
1297 	krb5_ccache ccache,
1298 	krb5_creds *in_creds,
1299 	krb5_creds **out_creds));
1300 
1301 krb5_error_code
1302 krb5_get_default_in_tkt_etypes __P((
1303 	krb5_context context,
1304 	krb5_enctype **etypes));
1305 
1306 krb5_error_code
1307 krb5_get_default_principal __P((
1308 	krb5_context context,
1309 	krb5_principal *princ));
1310 
1311 krb5_error_code
1312 krb5_get_default_realm __P((
1313 	krb5_context context,
1314 	krb5_realm *realm));
1315 
1316 krb5_error_code
1317 krb5_get_default_realms __P((
1318 	krb5_context context,
1319 	krb5_realm **realms));
1320 
1321 const char *
1322 krb5_get_err_text __P((
1323 	krb5_context context,
1324 	krb5_error_code code));
1325 
1326 char*
1327 krb5_get_error_string __P((krb5_context context));
1328 
1329 krb5_error_code
1330 krb5_get_extra_addresses __P((
1331 	krb5_context context,
1332 	krb5_addresses *addresses));
1333 
1334 krb5_error_code
1335 krb5_get_fcache_version __P((
1336 	krb5_context context,
1337 	int *version));
1338 
1339 krb5_error_code
1340 krb5_get_forwarded_creds __P((
1341 	krb5_context context,
1342 	krb5_auth_context auth_context,
1343 	krb5_ccache ccache,
1344 	krb5_flags flags,
1345 	const char *hostname,
1346 	krb5_creds *in_creds,
1347 	krb5_data *out_data));
1348 
1349 krb5_error_code
1350 krb5_get_host_realm __P((
1351 	krb5_context context,
1352 	const char *host,
1353 	krb5_realm **realms));
1354 
1355 krb5_error_code
1356 krb5_get_host_realm_int __P((
1357 	krb5_context context,
1358 	const char *host,
1359 	krb5_boolean use_dns,
1360 	krb5_realm **realms));
1361 
1362 krb5_error_code
1363 krb5_get_ignore_addresses __P((
1364 	krb5_context context,
1365 	krb5_addresses *addresses));
1366 
1367 krb5_error_code
1368 krb5_get_in_cred __P((
1369 	krb5_context context,
1370 	krb5_flags options,
1371 	const krb5_addresses *addrs,
1372 	const krb5_enctype *etypes,
1373 	const krb5_preauthtype *ptypes,
1374 	const krb5_preauthdata *preauth,
1375 	krb5_key_proc key_proc,
1376 	krb5_const_pointer keyseed,
1377 	krb5_decrypt_proc decrypt_proc,
1378 	krb5_const_pointer decryptarg,
1379 	krb5_creds *creds,
1380 	krb5_kdc_rep *ret_as_reply));
1381 
1382 krb5_error_code
1383 krb5_get_in_tkt __P((
1384 	krb5_context context,
1385 	krb5_flags options,
1386 	const krb5_addresses *addrs,
1387 	const krb5_enctype *etypes,
1388 	const krb5_preauthtype *ptypes,
1389 	krb5_key_proc key_proc,
1390 	krb5_const_pointer keyseed,
1391 	krb5_decrypt_proc decrypt_proc,
1392 	krb5_const_pointer decryptarg,
1393 	krb5_creds *creds,
1394 	krb5_ccache ccache,
1395 	krb5_kdc_rep *ret_as_reply));
1396 
1397 krb5_error_code
1398 krb5_get_in_tkt_with_keytab __P((
1399 	krb5_context context,
1400 	krb5_flags options,
1401 	krb5_addresses *addrs,
1402 	const krb5_enctype *etypes,
1403 	const krb5_preauthtype *pre_auth_types,
1404 	krb5_keytab keytab,
1405 	krb5_ccache ccache,
1406 	krb5_creds *creds,
1407 	krb5_kdc_rep *ret_as_reply));
1408 
1409 krb5_error_code
1410 krb5_get_in_tkt_with_password __P((
1411 	krb5_context context,
1412 	krb5_flags options,
1413 	krb5_addresses *addrs,
1414 	const krb5_enctype *etypes,
1415 	const krb5_preauthtype *pre_auth_types,
1416 	const char *password,
1417 	krb5_ccache ccache,
1418 	krb5_creds *creds,
1419 	krb5_kdc_rep *ret_as_reply));
1420 
1421 krb5_error_code
1422 krb5_get_in_tkt_with_skey __P((
1423 	krb5_context context,
1424 	krb5_flags options,
1425 	krb5_addresses *addrs,
1426 	const krb5_enctype *etypes,
1427 	const krb5_preauthtype *pre_auth_types,
1428 	const krb5_keyblock *key,
1429 	krb5_ccache ccache,
1430 	krb5_creds *creds,
1431 	krb5_kdc_rep *ret_as_reply));
1432 
1433 krb5_error_code
1434 krb5_get_init_creds_keytab __P((
1435 	krb5_context context,
1436 	krb5_creds *creds,
1437 	krb5_principal client,
1438 	krb5_keytab keytab,
1439 	krb5_deltat start_time,
1440 	const char *in_tkt_service,
1441 	krb5_get_init_creds_opt *options));
1442 
1443 void
1444 krb5_get_init_creds_opt_init __P((krb5_get_init_creds_opt *opt));
1445 
1446 void
1447 krb5_get_init_creds_opt_set_address_list __P((
1448 	krb5_get_init_creds_opt *opt,
1449 	krb5_addresses *addresses));
1450 
1451 void
1452 krb5_get_init_creds_opt_set_anonymous __P((
1453 	krb5_get_init_creds_opt *opt,
1454 	int anonymous));
1455 
1456 void
1457 krb5_get_init_creds_opt_set_default_flags __P((
1458 	krb5_context context,
1459 	const char *appname,
1460 	krb5_const_realm realm,
1461 	krb5_get_init_creds_opt *opt));
1462 
1463 void
1464 krb5_get_init_creds_opt_set_etype_list __P((
1465 	krb5_get_init_creds_opt *opt,
1466 	krb5_enctype *etype_list,
1467 	int etype_list_length));
1468 
1469 void
1470 krb5_get_init_creds_opt_set_forwardable __P((
1471 	krb5_get_init_creds_opt *opt,
1472 	int forwardable));
1473 
1474 void
1475 krb5_get_init_creds_opt_set_preauth_list __P((
1476 	krb5_get_init_creds_opt *opt,
1477 	krb5_preauthtype *preauth_list,
1478 	int preauth_list_length));
1479 
1480 void
1481 krb5_get_init_creds_opt_set_proxiable __P((
1482 	krb5_get_init_creds_opt *opt,
1483 	int proxiable));
1484 
1485 void
1486 krb5_get_init_creds_opt_set_renew_life __P((
1487 	krb5_get_init_creds_opt *opt,
1488 	krb5_deltat renew_life));
1489 
1490 void
1491 krb5_get_init_creds_opt_set_salt __P((
1492 	krb5_get_init_creds_opt *opt,
1493 	krb5_data *salt));
1494 
1495 void
1496 krb5_get_init_creds_opt_set_tkt_life __P((
1497 	krb5_get_init_creds_opt *opt,
1498 	krb5_deltat tkt_life));
1499 
1500 krb5_error_code
1501 krb5_get_init_creds_password __P((
1502 	krb5_context context,
1503 	krb5_creds *creds,
1504 	krb5_principal client,
1505 	const char *password,
1506 	krb5_prompter_fct prompter,
1507 	void *data,
1508 	krb5_deltat start_time,
1509 	const char *in_tkt_service,
1510 	krb5_get_init_creds_opt *options));
1511 
1512 krb5_error_code
1513 krb5_get_kdc_cred __P((
1514 	krb5_context context,
1515 	krb5_ccache id,
1516 	krb5_kdc_flags flags,
1517 	krb5_addresses *addresses,
1518 	Ticket *second_ticket,
1519 	krb5_creds *in_creds,
1520 	krb5_creds **out_creds ));
1521 
1522 krb5_error_code
1523 krb5_get_krb524hst __P((
1524 	krb5_context context,
1525 	const krb5_realm *realm,
1526 	char ***hostlist));
1527 
1528 krb5_error_code
1529 krb5_get_krb_admin_hst __P((
1530 	krb5_context context,
1531 	const krb5_realm *realm,
1532 	char ***hostlist));
1533 
1534 krb5_error_code
1535 krb5_get_krb_changepw_hst __P((
1536 	krb5_context context,
1537 	const krb5_realm *realm,
1538 	char ***hostlist));
1539 
1540 krb5_error_code
1541 krb5_get_krbhst __P((
1542 	krb5_context context,
1543 	const krb5_realm *realm,
1544 	char ***hostlist));
1545 
1546 krb5_error_code
1547 krb5_get_pw_salt __P((
1548 	krb5_context context,
1549 	krb5_const_principal principal,
1550 	krb5_salt *salt));
1551 
1552 krb5_error_code
1553 krb5_get_server_rcache __P((
1554 	krb5_context context,
1555 	const krb5_data *piece,
1556 	krb5_rcache *id));
1557 
1558 krb5_boolean
1559 krb5_get_use_admin_kdc __P((krb5_context context));
1560 
1561 size_t
1562 krb5_get_wrapped_length __P((
1563 	krb5_context context,
1564 	krb5_crypto crypto,
1565 	size_t data_len));
1566 
1567 int
1568 krb5_getportbyname __P((
1569 	krb5_context context,
1570 	const char *service,
1571 	const char *proto,
1572 	int default_port));
1573 
1574 krb5_error_code
1575 krb5_h_addr2addr __P((
1576 	krb5_context context,
1577 	int af,
1578 	const char *haddr,
1579 	krb5_address *addr));
1580 
1581 krb5_error_code
1582 krb5_h_addr2sockaddr __P((
1583 	krb5_context context,
1584 	int af,
1585 	const char *addr,
1586 	struct sockaddr *sa,
1587 	int *sa_size,
1588 	int port));
1589 
1590 krb5_error_code
1591 krb5_h_errno_to_heim_errno __P((int eai_errno));
1592 
1593 krb5_boolean
1594 krb5_have_error_string __P((krb5_context context));
1595 
1596 krb5_error_code
1597 krb5_init_context __P((krb5_context *context));
1598 
1599 void
1600 krb5_init_ets __P((krb5_context context));
1601 
1602 krb5_error_code
1603 krb5_init_etype __P((
1604 	krb5_context context,
1605 	unsigned *len,
1606 	krb5_enctype **val,
1607 	const krb5_enctype *etypes));
1608 
1609 krb5_error_code
1610 krb5_initlog __P((
1611 	krb5_context context,
1612 	const char *program,
1613 	krb5_log_facility **fac));
1614 
1615 krb5_error_code
1616 krb5_keyblock_key_proc __P((
1617 	krb5_context context,
1618 	krb5_keytype type,
1619 	krb5_data *salt,
1620 	krb5_const_pointer keyseed,
1621 	krb5_keyblock **key));
1622 
1623 krb5_error_code
1624 krb5_keytab_key_proc __P((
1625 	krb5_context context,
1626 	krb5_enctype enctype,
1627 	krb5_salt salt,
1628 	krb5_const_pointer keyseed,
1629 	krb5_keyblock **key));
1630 
1631 krb5_error_code
1632 krb5_keytype_to_enctypes __P((
1633 	krb5_context context,
1634 	krb5_keytype keytype,
1635 	unsigned *len,
1636 	krb5_enctype **val));
1637 
1638 krb5_error_code
1639 krb5_keytype_to_enctypes_default __P((
1640 	krb5_context context,
1641 	krb5_keytype keytype,
1642 	unsigned *len,
1643 	krb5_enctype **val));
1644 
1645 krb5_error_code
1646 krb5_keytype_to_string __P((
1647 	krb5_context context,
1648 	krb5_keytype keytype,
1649 	char **string));
1650 
1651 krb5_error_code
1652 krb5_krbhst_format_string __P((
1653 	krb5_context context,
1654 	const krb5_krbhst_info *host,
1655 	char *hostname,
1656 	size_t hostlen));
1657 
1658 void
1659 krb5_krbhst_free __P((
1660 	krb5_context context,
1661 	krb5_krbhst_handle handle));
1662 
1663 krb5_error_code
1664 krb5_krbhst_get_addrinfo __P((
1665 	krb5_context context,
1666 	krb5_krbhst_info *host,
1667 	struct addrinfo **ai));
1668 
1669 krb5_error_code
1670 krb5_krbhst_init __P((
1671 	krb5_context context,
1672 	const char *realm,
1673 	unsigned int type,
1674 	krb5_krbhst_handle *handle));
1675 
1676 krb5_error_code
1677 krb5_krbhst_next __P((
1678 	krb5_context context,
1679 	krb5_krbhst_handle handle,
1680 	krb5_krbhst_info **host));
1681 
1682 krb5_error_code
1683 krb5_krbhst_next_as_string __P((
1684 	krb5_context context,
1685 	krb5_krbhst_handle handle,
1686 	char *hostname,
1687 	size_t hostlen));
1688 
1689 void
1690 krb5_krbhst_reset __P((
1691 	krb5_context context,
1692 	krb5_krbhst_handle handle));
1693 
1694 krb5_error_code
1695 krb5_kt_add_entry __P((
1696 	krb5_context context,
1697 	krb5_keytab id,
1698 	krb5_keytab_entry *entry));
1699 
1700 krb5_error_code
1701 krb5_kt_close __P((
1702 	krb5_context context,
1703 	krb5_keytab id));
1704 
1705 krb5_boolean
1706 krb5_kt_compare __P((
1707 	krb5_context context,
1708 	krb5_keytab_entry *entry,
1709 	krb5_const_principal principal,
1710 	krb5_kvno vno,
1711 	krb5_enctype enctype));
1712 
1713 krb5_error_code
1714 krb5_kt_copy_entry_contents __P((
1715 	krb5_context context,
1716 	const krb5_keytab_entry *in,
1717 	krb5_keytab_entry *out));
1718 
1719 krb5_error_code
1720 krb5_kt_default __P((
1721 	krb5_context context,
1722 	krb5_keytab *id));
1723 
1724 krb5_error_code
1725 krb5_kt_default_modify_name __P((
1726 	krb5_context context,
1727 	char *name,
1728 	size_t namesize));
1729 
1730 krb5_error_code
1731 krb5_kt_default_name __P((
1732 	krb5_context context,
1733 	char *name,
1734 	size_t namesize));
1735 
1736 krb5_error_code
1737 krb5_kt_end_seq_get __P((
1738 	krb5_context context,
1739 	krb5_keytab id,
1740 	krb5_kt_cursor *cursor));
1741 
1742 krb5_error_code
1743 krb5_kt_free_entry __P((
1744 	krb5_context context,
1745 	krb5_keytab_entry *entry));
1746 
1747 krb5_error_code
1748 krb5_kt_get_entry __P((
1749 	krb5_context context,
1750 	krb5_keytab id,
1751 	krb5_const_principal principal,
1752 	krb5_kvno kvno,
1753 	krb5_enctype enctype,
1754 	krb5_keytab_entry *entry));
1755 
1756 krb5_error_code
1757 krb5_kt_get_name __P((
1758 	krb5_context context,
1759 	krb5_keytab keytab,
1760 	char *name,
1761 	size_t namesize));
1762 
1763 krb5_error_code
1764 krb5_kt_next_entry __P((
1765 	krb5_context context,
1766 	krb5_keytab id,
1767 	krb5_keytab_entry *entry,
1768 	krb5_kt_cursor *cursor));
1769 
1770 krb5_error_code
1771 krb5_kt_read_service_key __P((
1772 	krb5_context context,
1773 	krb5_pointer keyprocarg,
1774 	krb5_principal principal,
1775 	krb5_kvno vno,
1776 	krb5_enctype enctype,
1777 	krb5_keyblock **key));
1778 
1779 krb5_error_code
1780 krb5_kt_register __P((
1781 	krb5_context context,
1782 	const krb5_kt_ops *ops));
1783 
1784 krb5_error_code
1785 krb5_kt_remove_entry __P((
1786 	krb5_context context,
1787 	krb5_keytab id,
1788 	krb5_keytab_entry *entry));
1789 
1790 krb5_error_code
1791 krb5_kt_resolve __P((
1792 	krb5_context context,
1793 	const char *name,
1794 	krb5_keytab *id));
1795 
1796 krb5_error_code
1797 krb5_kt_start_seq_get __P((
1798 	krb5_context context,
1799 	krb5_keytab id,
1800 	krb5_kt_cursor *cursor));
1801 
1802 krb5_boolean
1803 krb5_kuserok __P((
1804 	krb5_context context,
1805 	krb5_principal principal,
1806 	const char *luser));
1807 
1808 krb5_error_code
1809 krb5_log __P((
1810 	krb5_context context,
1811 	krb5_log_facility *fac,
1812 	int level,
1813 	const char *fmt,
1814 	...))
1815     __attribute__((format (printf, 4, 5)));
1816 
1817 krb5_error_code
1818 krb5_log_msg __P((
1819 	krb5_context context,
1820 	krb5_log_facility *fac,
1821 	int level,
1822 	char **reply,
1823 	const char *fmt,
1824 	...))
1825     __attribute__((format (printf, 5, 6)));
1826 
1827 krb5_error_code
1828 krb5_make_addrport __P((
1829 	krb5_context context,
1830 	krb5_address **res,
1831 	const krb5_address *addr,
1832 	int16_t port));
1833 
1834 krb5_error_code
1835 krb5_make_principal __P((
1836 	krb5_context context,
1837 	krb5_principal *principal,
1838 	krb5_const_realm realm,
1839 	...));
1840 
1841 size_t
1842 krb5_max_sockaddr_size __P((void));
1843 
1844 krb5_error_code
1845 krb5_mk_error __P((
1846 	krb5_context context,
1847 	krb5_error_code error_code,
1848 	const char *e_text,
1849 	const krb5_data *e_data,
1850 	const krb5_principal client,
1851 	const krb5_principal server,
1852 	time_t *ctime,
1853 	int *cusec,
1854 	krb5_data *reply));
1855 
1856 krb5_error_code
1857 krb5_mk_priv __P((
1858 	krb5_context context,
1859 	krb5_auth_context auth_context,
1860 	const krb5_data *userdata,
1861 	krb5_data *outbuf,
1862 	void *outdata));
1863 
1864 krb5_error_code
1865 krb5_mk_rep __P((
1866 	krb5_context context,
1867 	krb5_auth_context auth_context,
1868 	krb5_data *outbuf));
1869 
1870 krb5_error_code
1871 krb5_mk_req __P((
1872 	krb5_context context,
1873 	krb5_auth_context *auth_context,
1874 	const krb5_flags ap_req_options,
1875 	const char *service,
1876 	const char *hostname,
1877 	krb5_data *in_data,
1878 	krb5_ccache ccache,
1879 	krb5_data *outbuf));
1880 
1881 krb5_error_code
1882 krb5_mk_req_exact __P((
1883 	krb5_context context,
1884 	krb5_auth_context *auth_context,
1885 	const krb5_flags ap_req_options,
1886 	const krb5_principal server,
1887 	krb5_data *in_data,
1888 	krb5_ccache ccache,
1889 	krb5_data *outbuf));
1890 
1891 krb5_error_code
1892 krb5_mk_req_extended __P((
1893 	krb5_context context,
1894 	krb5_auth_context *auth_context,
1895 	const krb5_flags ap_req_options,
1896 	krb5_data *in_data,
1897 	krb5_creds *in_creds,
1898 	krb5_data *outbuf));
1899 
1900 krb5_error_code
1901 krb5_mk_req_internal __P((
1902 	krb5_context context,
1903 	krb5_auth_context *auth_context,
1904 	const krb5_flags ap_req_options,
1905 	krb5_data *in_data,
1906 	krb5_creds *in_creds,
1907 	krb5_data *outbuf,
1908 	krb5_key_usage checksum_usage,
1909 	krb5_key_usage encrypt_usage));
1910 
1911 krb5_error_code
1912 krb5_mk_safe __P((
1913 	krb5_context context,
1914 	krb5_auth_context auth_context,
1915 	const krb5_data *userdata,
1916 	krb5_data *outbuf,
1917 	void *outdata));
1918 
1919 ssize_t
1920 krb5_net_read __P((
1921 	krb5_context context,
1922 	void *p_fd,
1923 	void *buf,
1924 	size_t len));
1925 
1926 ssize_t
1927 krb5_net_write __P((
1928 	krb5_context context,
1929 	void *p_fd,
1930 	const void *buf,
1931 	size_t len));
1932 
1933 krb5_error_code
1934 krb5_openlog __P((
1935 	krb5_context context,
1936 	const char *program,
1937 	krb5_log_facility **fac));
1938 
1939 krb5_error_code
1940 krb5_parse_address __P((
1941 	krb5_context context,
1942 	const char *string,
1943 	krb5_addresses *addresses));
1944 
1945 krb5_error_code
1946 krb5_parse_name __P((
1947 	krb5_context context,
1948 	const char *name,
1949 	krb5_principal *principal));
1950 
1951 const char *
1952 krb5_passwd_result_to_string __P((
1953 	krb5_context context,
1954 	int result));
1955 
1956 krb5_error_code
1957 krb5_password_key_proc __P((
1958 	krb5_context context,
1959 	krb5_enctype type,
1960 	krb5_salt salt,
1961 	krb5_const_pointer keyseed,
1962 	krb5_keyblock **key));
1963 
1964 krb5_realm*
1965 krb5_princ_realm __P((
1966 	krb5_context context,
1967 	krb5_principal principal));
1968 
1969 void
1970 krb5_princ_set_realm __P((
1971 	krb5_context context,
1972 	krb5_principal principal,
1973 	krb5_realm *realm));
1974 
1975 krb5_error_code
1976 krb5_principal2principalname __P((
1977 	PrincipalName *p,
1978 	const krb5_principal from));
1979 
1980 krb5_boolean
1981 krb5_principal_compare __P((
1982 	krb5_context context,
1983 	krb5_const_principal princ1,
1984 	krb5_const_principal princ2));
1985 
1986 krb5_boolean
1987 krb5_principal_compare_any_realm __P((
1988 	krb5_context context,
1989 	krb5_const_principal princ1,
1990 	krb5_const_principal princ2));
1991 
1992 const char *
1993 krb5_principal_get_comp_string __P((
1994 	krb5_context context,
1995 	krb5_principal principal,
1996 	unsigned int component));
1997 
1998 const char *
1999 krb5_principal_get_realm __P((
2000 	krb5_context context,
2001 	krb5_principal principal));
2002 
2003 int
2004 krb5_principal_get_type __P((
2005 	krb5_context context,
2006 	krb5_principal principal));
2007 
2008 krb5_boolean
2009 krb5_principal_match __P((
2010 	krb5_context context,
2011 	krb5_const_principal princ,
2012 	krb5_const_principal pattern));
2013 
2014 krb5_error_code
2015 krb5_print_address __P((
2016 	const krb5_address *addr,
2017 	char *str,
2018 	size_t len,
2019 	size_t *ret_len));
2020 
2021 int
2022 krb5_program_setup __P((
2023 	krb5_context *context,
2024 	int argc,
2025 	char **argv,
2026 	struct getargs *args,
2027 	int num_args,
2028 	void (*usage)(int, struct getargs*, int)));
2029 
2030 int
2031 krb5_prompter_posix __P((
2032 	krb5_context context,
2033 	void *data,
2034 	const char *name,
2035 	const char *banner,
2036 	int num_prompts,
2037 	krb5_prompt prompts[]));
2038 
2039 krb5_error_code
2040 krb5_rc_close __P((
2041 	krb5_context context,
2042 	krb5_rcache id));
2043 
2044 krb5_error_code
2045 krb5_rc_default __P((
2046 	krb5_context context,
2047 	krb5_rcache *id));
2048 
2049 const char *
2050 krb5_rc_default_name __P((krb5_context context));
2051 
2052 const char *
2053 krb5_rc_default_type __P((krb5_context context));
2054 
2055 krb5_error_code
2056 krb5_rc_destroy __P((
2057 	krb5_context context,
2058 	krb5_rcache id));
2059 
2060 krb5_error_code
2061 krb5_rc_expunge __P((
2062 	krb5_context context,
2063 	krb5_rcache id));
2064 
2065 krb5_error_code
2066 krb5_rc_get_lifespan __P((
2067 	krb5_context context,
2068 	krb5_rcache id,
2069 	krb5_deltat *auth_lifespan));
2070 
2071 const char*
2072 krb5_rc_get_name __P((
2073 	krb5_context context,
2074 	krb5_rcache id));
2075 
2076 const char*
2077 krb5_rc_get_type __P((
2078 	krb5_context context,
2079 	krb5_rcache id));
2080 
2081 krb5_error_code
2082 krb5_rc_initialize __P((
2083 	krb5_context context,
2084 	krb5_rcache id,
2085 	krb5_deltat auth_lifespan));
2086 
2087 krb5_error_code
2088 krb5_rc_recover __P((
2089 	krb5_context context,
2090 	krb5_rcache id));
2091 
2092 krb5_error_code
2093 krb5_rc_resolve __P((
2094 	krb5_context context,
2095 	krb5_rcache id,
2096 	const char *name));
2097 
2098 krb5_error_code
2099 krb5_rc_resolve_full __P((
2100 	krb5_context context,
2101 	krb5_rcache *id,
2102 	const char *string_name));
2103 
2104 krb5_error_code
2105 krb5_rc_resolve_type __P((
2106 	krb5_context context,
2107 	krb5_rcache *id,
2108 	const char *type));
2109 
2110 krb5_error_code
2111 krb5_rc_store __P((
2112 	krb5_context context,
2113 	krb5_rcache id,
2114 	krb5_donot_replay *rep));
2115 
2116 krb5_error_code
2117 krb5_rd_cred __P((
2118 	krb5_context context,
2119 	krb5_auth_context auth_context,
2120 	krb5_data *in_data,
2121 	krb5_creds ***ret_creds,
2122 	krb5_replay_data *out_data));
2123 
2124 krb5_error_code
2125 krb5_rd_cred2 __P((
2126 	krb5_context context,
2127 	krb5_auth_context auth_context,
2128 	krb5_ccache ccache,
2129 	krb5_data *in_data));
2130 
2131 krb5_error_code
2132 krb5_rd_error __P((
2133 	krb5_context context,
2134 	krb5_data *msg,
2135 	KRB_ERROR *result));
2136 
2137 krb5_error_code
2138 krb5_rd_priv __P((
2139 	krb5_context context,
2140 	krb5_auth_context auth_context,
2141 	const krb5_data *inbuf,
2142 	krb5_data *outbuf,
2143 	void *outdata));
2144 
2145 krb5_error_code
2146 krb5_rd_rep __P((
2147 	krb5_context context,
2148 	krb5_auth_context auth_context,
2149 	const krb5_data *inbuf,
2150 	krb5_ap_rep_enc_part **repl));
2151 
2152 krb5_error_code
2153 krb5_rd_req __P((
2154 	krb5_context context,
2155 	krb5_auth_context *auth_context,
2156 	const krb5_data *inbuf,
2157 	krb5_const_principal server,
2158 	krb5_keytab keytab,
2159 	krb5_flags *ap_req_options,
2160 	krb5_ticket **ticket));
2161 
2162 krb5_error_code
2163 krb5_rd_req_with_keyblock __P((
2164 	krb5_context context,
2165 	krb5_auth_context *auth_context,
2166 	const krb5_data *inbuf,
2167 	krb5_const_principal server,
2168 	krb5_keyblock *keyblock,
2169 	krb5_flags *ap_req_options,
2170 	krb5_ticket **ticket));
2171 
2172 krb5_error_code
2173 krb5_rd_safe __P((
2174 	krb5_context context,
2175 	krb5_auth_context auth_context,
2176 	const krb5_data *inbuf,
2177 	krb5_data *outbuf,
2178 	void *outdata));
2179 
2180 krb5_error_code
2181 krb5_read_message __P((
2182 	krb5_context context,
2183 	krb5_pointer p_fd,
2184 	krb5_data *data));
2185 
2186 krb5_error_code
2187 krb5_read_priv_message __P((
2188 	krb5_context context,
2189 	krb5_auth_context ac,
2190 	krb5_pointer p_fd,
2191 	krb5_data *data));
2192 
2193 krb5_error_code
2194 krb5_read_safe_message __P((
2195 	krb5_context context,
2196 	krb5_auth_context ac,
2197 	krb5_pointer p_fd,
2198 	krb5_data *data));
2199 
2200 krb5_boolean
2201 krb5_realm_compare __P((
2202 	krb5_context context,
2203 	krb5_const_principal princ1,
2204 	krb5_const_principal princ2));
2205 
2206 krb5_error_code
2207 krb5_recvauth __P((
2208 	krb5_context context,
2209 	krb5_auth_context *auth_context,
2210 	krb5_pointer p_fd,
2211 	char *appl_version,
2212 	krb5_principal server,
2213 	int32_t flags,
2214 	krb5_keytab keytab,
2215 	krb5_ticket **ticket));
2216 
2217 krb5_error_code
2218 krb5_recvauth_match_version __P((
2219 	krb5_context context,
2220 	krb5_auth_context *auth_context,
2221 	krb5_pointer p_fd,
2222 	krb5_boolean (*match_appl_version)(void *, const char*),
2223 	void *match_data,
2224 	krb5_principal server,
2225 	int32_t flags,
2226 	krb5_keytab keytab,
2227 	krb5_ticket **ticket));
2228 
2229 krb5_error_code
2230 krb5_ret_address __P((
2231 	krb5_storage *sp,
2232 	krb5_address *adr));
2233 
2234 krb5_error_code
2235 krb5_ret_addrs __P((
2236 	krb5_storage *sp,
2237 	krb5_addresses *adr));
2238 
2239 krb5_error_code
2240 krb5_ret_authdata __P((
2241 	krb5_storage *sp,
2242 	krb5_authdata *auth));
2243 
2244 krb5_error_code
2245 krb5_ret_creds __P((
2246 	krb5_storage *sp,
2247 	krb5_creds *creds));
2248 
2249 krb5_error_code
2250 krb5_ret_data __P((
2251 	krb5_storage *sp,
2252 	krb5_data *data));
2253 
2254 krb5_error_code
2255 krb5_ret_int16 __P((
2256 	krb5_storage *sp,
2257 	int16_t *value));
2258 
2259 krb5_error_code
2260 krb5_ret_int32 __P((
2261 	krb5_storage *sp,
2262 	int32_t *value));
2263 
2264 krb5_error_code
2265 krb5_ret_int8 __P((
2266 	krb5_storage *sp,
2267 	int8_t *value));
2268 
2269 krb5_error_code
2270 krb5_ret_keyblock __P((
2271 	krb5_storage *sp,
2272 	krb5_keyblock *p));
2273 
2274 krb5_error_code
2275 krb5_ret_principal __P((
2276 	krb5_storage *sp,
2277 	krb5_principal *princ));
2278 
2279 krb5_error_code
2280 krb5_ret_string __P((
2281 	krb5_storage *sp,
2282 	char **string));
2283 
2284 krb5_error_code
2285 krb5_ret_stringz __P((
2286 	krb5_storage *sp,
2287 	char **string));
2288 
2289 krb5_error_code
2290 krb5_ret_times __P((
2291 	krb5_storage *sp,
2292 	krb5_times *times));
2293 
2294 krb5_error_code
2295 krb5_salttype_to_string __P((
2296 	krb5_context context,
2297 	krb5_enctype etype,
2298 	krb5_salttype stype,
2299 	char **string));
2300 
2301 krb5_error_code
2302 krb5_sendauth __P((
2303 	krb5_context context,
2304 	krb5_auth_context *auth_context,
2305 	krb5_pointer p_fd,
2306 	const char *appl_version,
2307 	krb5_principal client,
2308 	krb5_principal server,
2309 	krb5_flags ap_req_options,
2310 	krb5_data *in_data,
2311 	krb5_creds *in_creds,
2312 	krb5_ccache ccache,
2313 	krb5_error **ret_error,
2314 	krb5_ap_rep_enc_part **rep_result,
2315 	krb5_creds **out_creds));
2316 
2317 krb5_error_code
2318 krb5_sendto __P((
2319 	krb5_context context,
2320 	const krb5_data *send,
2321 	krb5_krbhst_handle handle,
2322 	krb5_data *receive));
2323 
2324 krb5_error_code
2325 krb5_sendto_kdc __P((
2326 	krb5_context context,
2327 	const krb5_data *send,
2328 	const krb5_realm *realm,
2329 	krb5_data *receive));
2330 
2331 krb5_error_code
2332 krb5_sendto_kdc2 __P((
2333 	krb5_context context,
2334 	const krb5_data *send,
2335 	const krb5_realm *realm,
2336 	krb5_data *receive,
2337 	krb5_boolean master));
2338 
2339 krb5_error_code
2340 krb5_set_default_in_tkt_etypes __P((
2341 	krb5_context context,
2342 	const krb5_enctype *etypes));
2343 
2344 krb5_error_code
2345 krb5_set_default_realm __P((
2346 	krb5_context context,
2347 	const char *realm));
2348 
2349 krb5_error_code
2350 krb5_set_error_string __P((
2351 	krb5_context context,
2352 	const char *fmt,
2353 	...))
2354     __attribute__((format (printf, 2, 3)));
2355 
2356 krb5_error_code
2357 krb5_set_extra_addresses __P((
2358 	krb5_context context,
2359 	const krb5_addresses *addresses));
2360 
2361 krb5_error_code
2362 krb5_set_fcache_version __P((
2363 	krb5_context context,
2364 	int version));
2365 
2366 krb5_error_code
2367 krb5_set_ignore_addresses __P((
2368 	krb5_context context,
2369 	const krb5_addresses *addresses));
2370 
2371 void
2372 krb5_set_use_admin_kdc __P((
2373 	krb5_context context,
2374 	krb5_boolean flag));
2375 
2376 krb5_error_code
2377 krb5_set_warn_dest __P((
2378 	krb5_context context,
2379 	krb5_log_facility *fac));
2380 
2381 krb5_error_code
2382 krb5_sname_to_principal __P((
2383 	krb5_context context,
2384 	const char *hostname,
2385 	const char *sname,
2386 	int32_t type,
2387 	krb5_principal *ret_princ));
2388 
2389 krb5_error_code
2390 krb5_sock_to_principal __P((
2391 	krb5_context context,
2392 	int sock,
2393 	const char *sname,
2394 	int32_t type,
2395 	krb5_principal *ret_princ));
2396 
2397 krb5_error_code
2398 krb5_sockaddr2address __P((
2399 	krb5_context context,
2400 	const struct sockaddr *sa,
2401 	krb5_address *addr));
2402 
2403 krb5_error_code
2404 krb5_sockaddr2port __P((
2405 	krb5_context context,
2406 	const struct sockaddr *sa,
2407 	int16_t *port));
2408 
2409 krb5_boolean
2410 krb5_sockaddr_uninteresting __P((const struct sockaddr *sa));
2411 
2412 void
2413 krb5_std_usage __P((
2414 	int code,
2415 	struct getargs *args,
2416 	int num_args));
2417 
2418 void
2419 krb5_storage_clear_flags __P((
2420 	krb5_storage *sp,
2421 	krb5_flags flags));
2422 
2423 krb5_storage *
2424 krb5_storage_emem __P((void));
2425 
2426 krb5_error_code
2427 krb5_storage_free __P((krb5_storage *sp));
2428 
2429 krb5_storage *
2430 krb5_storage_from_data __P((krb5_data *data));
2431 
2432 krb5_storage *
2433 krb5_storage_from_fd __P((int fd));
2434 
2435 krb5_storage *
2436 krb5_storage_from_mem __P((
2437 	void *buf,
2438 	size_t len));
2439 
2440 krb5_flags
2441 krb5_storage_get_byteorder __P((
2442 	krb5_storage *sp,
2443 	krb5_flags byteorder));
2444 
2445 krb5_boolean
2446 krb5_storage_is_flags __P((
2447 	krb5_storage *sp,
2448 	krb5_flags flags));
2449 
2450 void
2451 krb5_storage_set_byteorder __P((
2452 	krb5_storage *sp,
2453 	krb5_flags byteorder));
2454 
2455 void
2456 krb5_storage_set_flags __P((
2457 	krb5_storage *sp,
2458 	krb5_flags flags));
2459 
2460 krb5_error_code
2461 krb5_storage_to_data __P((
2462 	krb5_storage *sp,
2463 	krb5_data *data));
2464 
2465 krb5_error_code
2466 krb5_store_address __P((
2467 	krb5_storage *sp,
2468 	krb5_address p));
2469 
2470 krb5_error_code
2471 krb5_store_addrs __P((
2472 	krb5_storage *sp,
2473 	krb5_addresses p));
2474 
2475 krb5_error_code
2476 krb5_store_authdata __P((
2477 	krb5_storage *sp,
2478 	krb5_authdata auth));
2479 
2480 krb5_error_code
2481 krb5_store_creds __P((
2482 	krb5_storage *sp,
2483 	krb5_creds *creds));
2484 
2485 krb5_error_code
2486 krb5_store_data __P((
2487 	krb5_storage *sp,
2488 	krb5_data data));
2489 
2490 krb5_error_code
2491 krb5_store_int16 __P((
2492 	krb5_storage *sp,
2493 	int16_t value));
2494 
2495 krb5_error_code
2496 krb5_store_int32 __P((
2497 	krb5_storage *sp,
2498 	int32_t value));
2499 
2500 krb5_error_code
2501 krb5_store_int8 __P((
2502 	krb5_storage *sp,
2503 	int8_t value));
2504 
2505 krb5_error_code
2506 krb5_store_keyblock __P((
2507 	krb5_storage *sp,
2508 	krb5_keyblock p));
2509 
2510 krb5_error_code
2511 krb5_store_principal __P((
2512 	krb5_storage *sp,
2513 	krb5_principal p));
2514 
2515 krb5_error_code
2516 krb5_store_string __P((
2517 	krb5_storage *sp,
2518 	const char *s));
2519 
2520 krb5_error_code
2521 krb5_store_stringz __P((
2522 	krb5_storage *sp,
2523 	const char *s));
2524 
2525 krb5_error_code
2526 krb5_store_times __P((
2527 	krb5_storage *sp,
2528 	krb5_times times));
2529 
2530 krb5_error_code
2531 krb5_string_to_deltat __P((
2532 	const char *string,
2533 	krb5_deltat *deltat));
2534 
2535 krb5_error_code
2536 krb5_string_to_enctype __P((
2537 	krb5_context context,
2538 	const char *string,
2539 	krb5_enctype *etype));
2540 
2541 krb5_error_code
2542 krb5_string_to_key __P((
2543 	krb5_context context,
2544 	krb5_enctype enctype,
2545 	const char *password,
2546 	krb5_principal principal,
2547 	krb5_keyblock *key));
2548 
2549 krb5_error_code
2550 krb5_string_to_key_data __P((
2551 	krb5_context context,
2552 	krb5_enctype enctype,
2553 	krb5_data password,
2554 	krb5_principal principal,
2555 	krb5_keyblock *key));
2556 
2557 krb5_error_code
2558 krb5_string_to_key_data_salt __P((
2559 	krb5_context context,
2560 	krb5_enctype enctype,
2561 	krb5_data password,
2562 	krb5_salt salt,
2563 	krb5_keyblock *key));
2564 
2565 krb5_error_code
2566 krb5_string_to_key_derived __P((
2567 	krb5_context context,
2568 	const void *str,
2569 	size_t len,
2570 	krb5_enctype etype,
2571 	krb5_keyblock *key));
2572 
2573 krb5_error_code
2574 krb5_string_to_key_salt __P((
2575 	krb5_context context,
2576 	krb5_enctype enctype,
2577 	const char *password,
2578 	krb5_salt salt,
2579 	krb5_keyblock *key));
2580 
2581 krb5_error_code
2582 krb5_string_to_keytype __P((
2583 	krb5_context context,
2584 	const char *string,
2585 	krb5_keytype *keytype));
2586 
2587 krb5_error_code
2588 krb5_string_to_salttype __P((
2589 	krb5_context context,
2590 	krb5_enctype etype,
2591 	const char *string,
2592 	krb5_salttype *salttype));
2593 
2594 krb5_error_code
2595 krb5_timeofday __P((
2596 	krb5_context context,
2597 	krb5_timestamp *timeret));
2598 
2599 krb5_error_code
2600 krb5_unparse_name __P((
2601 	krb5_context context,
2602 	krb5_const_principal principal,
2603 	char **name));
2604 
2605 krb5_error_code
2606 krb5_unparse_name_fixed __P((
2607 	krb5_context context,
2608 	krb5_const_principal principal,
2609 	char *name,
2610 	size_t len));
2611 
2612 krb5_error_code
2613 krb5_unparse_name_fixed_short __P((
2614 	krb5_context context,
2615 	krb5_const_principal principal,
2616 	char *name,
2617 	size_t len));
2618 
2619 krb5_error_code
2620 krb5_unparse_name_short __P((
2621 	krb5_context context,
2622 	krb5_const_principal principal,
2623 	char **name));
2624 
2625 krb5_error_code
2626 krb5_us_timeofday __P((
2627 	krb5_context context,
2628 	int32_t *sec,
2629 	int32_t *usec));
2630 
2631 krb5_error_code
2632 krb5_vabort __P((
2633 	krb5_context context,
2634 	krb5_error_code code,
2635 	const char *fmt,
2636 	va_list ap))
2637     __attribute__ ((noreturn, format (printf, 3, 0)));
2638 
2639 krb5_error_code
2640 krb5_vabortx __P((
2641 	krb5_context context,
2642 	const char *fmt,
2643 	va_list ap))
2644     __attribute__ ((noreturn, format (printf, 2, 0)));
2645 
2646 krb5_error_code
2647 krb5_verify_ap_req __P((
2648 	krb5_context context,
2649 	krb5_auth_context *auth_context,
2650 	krb5_ap_req *ap_req,
2651 	krb5_const_principal server,
2652 	krb5_keyblock *keyblock,
2653 	krb5_flags flags,
2654 	krb5_flags *ap_req_options,
2655 	krb5_ticket **ticket));
2656 
2657 krb5_error_code
2658 krb5_verify_ap_req2 __P((
2659 	krb5_context context,
2660 	krb5_auth_context *auth_context,
2661 	krb5_ap_req *ap_req,
2662 	krb5_const_principal server,
2663 	krb5_keyblock *keyblock,
2664 	krb5_flags flags,
2665 	krb5_flags *ap_req_options,
2666 	krb5_ticket **ticket,
2667 	krb5_key_usage usage));
2668 
2669 krb5_error_code
2670 krb5_verify_authenticator_checksum __P((
2671 	krb5_context context,
2672 	krb5_auth_context ac,
2673 	void *data,
2674 	size_t len));
2675 
2676 krb5_error_code
2677 krb5_verify_checksum __P((
2678 	krb5_context context,
2679 	krb5_crypto crypto,
2680 	krb5_key_usage usage,
2681 	void *data,
2682 	size_t len,
2683 	Checksum *cksum));
2684 
2685 krb5_error_code
2686 krb5_verify_init_creds __P((
2687 	krb5_context context,
2688 	krb5_creds *creds,
2689 	krb5_principal ap_req_server,
2690 	krb5_keytab ap_req_keytab,
2691 	krb5_ccache *ccache,
2692 	krb5_verify_init_creds_opt *options));
2693 
2694 void
2695 krb5_verify_init_creds_opt_init __P((krb5_verify_init_creds_opt *options));
2696 
2697 void
2698 krb5_verify_init_creds_opt_set_ap_req_nofail __P((
2699 	krb5_verify_init_creds_opt *options,
2700 	int ap_req_nofail));
2701 
2702 void
2703 krb5_verify_opt_init __P((krb5_verify_opt *opt));
2704 
2705 void
2706 krb5_verify_opt_set_ccache __P((
2707 	krb5_verify_opt *opt,
2708 	krb5_ccache ccache));
2709 
2710 void
2711 krb5_verify_opt_set_flags __P((
2712 	krb5_verify_opt *opt,
2713 	unsigned int flags));
2714 
2715 void
2716 krb5_verify_opt_set_keytab __P((
2717 	krb5_verify_opt *opt,
2718 	krb5_keytab keytab));
2719 
2720 void
2721 krb5_verify_opt_set_secure __P((
2722 	krb5_verify_opt *opt,
2723 	krb5_boolean secure));
2724 
2725 void
2726 krb5_verify_opt_set_service __P((
2727 	krb5_verify_opt *opt,
2728 	const char *service));
2729 
2730 krb5_error_code
2731 krb5_verify_user __P((
2732 	krb5_context context,
2733 	krb5_principal principal,
2734 	krb5_ccache ccache,
2735 	const char *password,
2736 	krb5_boolean secure,
2737 	const char *service));
2738 
2739 krb5_error_code
2740 krb5_verify_user_lrealm __P((
2741 	krb5_context context,
2742 	krb5_principal principal,
2743 	krb5_ccache ccache,
2744 	const char *password,
2745 	krb5_boolean secure,
2746 	const char *service));
2747 
2748 krb5_error_code
2749 krb5_verify_user_opt __P((
2750 	krb5_context context,
2751 	krb5_principal principal,
2752 	const char *password,
2753 	krb5_verify_opt *opt));
2754 
2755 krb5_error_code
2756 krb5_verr __P((
2757 	krb5_context context,
2758 	int eval,
2759 	krb5_error_code code,
2760 	const char *fmt,
2761 	va_list ap))
2762     __attribute__ ((noreturn, format (printf, 4, 0)));
2763 
2764 krb5_error_code
2765 krb5_verrx __P((
2766 	krb5_context context,
2767 	int eval,
2768 	const char *fmt,
2769 	va_list ap))
2770     __attribute__ ((noreturn, format (printf, 3, 0)));
2771 
2772 krb5_error_code
2773 krb5_vlog __P((
2774 	krb5_context context,
2775 	krb5_log_facility *fac,
2776 	int level,
2777 	const char *fmt,
2778 	va_list ap))
2779     __attribute__((format (printf, 4, 0)));
2780 
2781 krb5_error_code
2782 krb5_vlog_msg __P((
2783 	krb5_context context,
2784 	krb5_log_facility *fac,
2785 	char **reply,
2786 	int level,
2787 	const char *fmt,
2788 	va_list ap))
2789     __attribute__((format (printf, 5, 0)));
2790 
2791 krb5_error_code
2792 krb5_vset_error_string __P((
2793 	krb5_context context,
2794 	const char *fmt,
2795 	va_list args))
2796     __attribute__ ((format (printf, 2, 0)));
2797 
2798 krb5_error_code
2799 krb5_vwarn __P((
2800 	krb5_context context,
2801 	krb5_error_code code,
2802 	const char *fmt,
2803 	va_list ap))
2804     __attribute__ ((format (printf, 3, 0)));
2805 
2806 krb5_error_code
2807 krb5_vwarnx __P((
2808 	krb5_context context,
2809 	const char *fmt,
2810 	va_list ap))
2811     __attribute__ ((format (printf, 2, 0)));
2812 
2813 krb5_error_code
2814 krb5_warn __P((
2815 	krb5_context context,
2816 	krb5_error_code code,
2817 	const char *fmt,
2818 	...))
2819     __attribute__ ((format (printf, 3, 4)));
2820 
2821 krb5_error_code
2822 krb5_warnx __P((
2823 	krb5_context context,
2824 	const char *fmt,
2825 	...))
2826     __attribute__ ((format (printf, 2, 3)));
2827 
2828 krb5_error_code
2829 krb5_write_message __P((
2830 	krb5_context context,
2831 	krb5_pointer p_fd,
2832 	krb5_data *data));
2833 
2834 krb5_error_code
2835 krb5_write_priv_message __P((
2836 	krb5_context context,
2837 	krb5_auth_context ac,
2838 	krb5_pointer p_fd,
2839 	krb5_data *data));
2840 
2841 krb5_error_code
2842 krb5_write_safe_message __P((
2843 	krb5_context context,
2844 	krb5_auth_context ac,
2845 	krb5_pointer p_fd,
2846 	krb5_data *data));
2847 
2848 krb5_error_code
2849 krb5_xfree __P((void *ptr));
2850 
2851 krb5_error_code
2852 principalname2krb5_principal __P((
2853 	krb5_principal *principal,
2854 	const PrincipalName from,
2855 	const Realm realm));
2856 
2857 #endif /* __krb5_protos_h__ */
2858