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