1/*
2 * Copyright (c) 2008-2010 Kungliga Tekniska Högskolan
3 * (Royal Institute of Technology, Stockholm, Sweden).
4 * All rights reserved.
5 *
6 * Portions Copyright (c) 2008-2010 Apple Inc. All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * 1. Redistributions of source code must retain the above copyright
13 *    notice, this list of conditions and the following disclaimer.
14 *
15 * 2. Redistributions in binary form must reproduce the above copyright
16 *    notice, this list of conditions and the following disclaimer in the
17 *    documentation and/or other materials provided with the distribution.
18 *
19 * 3. Neither the name of the Institute nor the names of its contributors
20 *    may be used to endorse or promote products derived from this software
21 *    without specific prior written permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 */
35
36/* override heimdals own prototypes */
37#define __krb5_protos_h__
38
39#define KRB5_LIB_VARIABLE
40#define KRB5_LIB_FUNCTION
41
42#include <Heimdal/krb5.h>
43
44extern krb5_context milcontext;
45
46#include "mit-krb5.h"
47
48#include <syslog.h>
49
50#define LOG_UNIMPLEMENTED() mshim_log_function_missing(__func__)
51#define LOG_ENTRY() mshim_log_entry("MITKerberosShim: %s entered", __func__)
52#define LOG_FAILURE(_r, _s) mshim_failure(__func__, _r, _s)
53
54void
55mshim_log_entry(const char *func, ...);
56
57int
58mshim_failure(const char *func, int error, const char *subsystem);
59
60krb5_context mshim_ctx(void);
61
62#define milcontext mshim_ctx()
63
64
65
66/* this might not work, lets try it out, if anyone uses krb5_build_principal_va we are smoked */
67struct comb_principal {
68    struct mit_krb5_principal_data mit;
69    krb5_principal heim;
70};
71
72#define HC(x) ((krb5_context)x)
73
74struct mshim_map_flags {
75    unsigned long in;
76    unsigned long out;
77};
78
79unsigned long
80	mshim_remap_flags(unsigned long, const struct mshim_map_flags *);
81
82
83void	mshim_log_function_missing(const char *);
84void	mshim_init_context(void);
85
86/* mapping functions */
87void	mshim_mcred2hcred(krb5_context, mit_krb5_creds *, krb5_creds *);
88void	mshim_hcred2mcred(krb5_context, krb5_creds *, mit_krb5_creds *);
89mit_krb5_principal
90	mshim_hprinc2mprinc(krb5_context, krb5_principal);
91krb5_error_code
92	mshim_hdata2mdata(const krb5_data *, mit_krb5_data *);
93krb5_error_code
94	mshim_mdata2hdata(const mit_krb5_data *m, krb5_data *h);
95void
96	mshim_hkeyblock2mkeyblock(const krb5_keyblock *, mit_krb5_keyblock *);
97void
98	mshim_mkeyblock2hkeyblock(const mit_krb5_keyblock *m, krb5_keyblock *h);
99
100void	mshim_haprepencpart2maprepencpart(const krb5_ap_rep_enc_part *,
101					  mit_krb5_ap_rep_enc_part *);
102void	mshim_herror2merror(krb5_context, const krb5_error *, mit_krb5_error *);
103void	mshim_hreplay2mreplay(const krb5_replay_data *, mit_krb5_replay_data *);
104void *	mshim_malloc(size_t);
105
106
107
108enum {
109    klPromptMechanism_Autodetect = 0,
110    klPromptMechanism_GUI = 1,
111    klPromptMechanism_CLI = 2,
112    klPromptMechanism_None = 0xFFFFFFFF
113};
114
115/* krb5-protos.h + sed */
116
117krb5_error_code KRB5_LIB_FUNCTION
118heim_krb524_convert_creds_kdc (
119	krb5_context /*context*/,
120	krb5_creds */*in_cred*/,
121	struct credentials */*v4creds*/);
122
123krb5_error_code KRB5_LIB_FUNCTION
124heim_krb524_convert_creds_kdc_ccache (
125	krb5_context /*context*/,
126	krb5_ccache /*ccache*/,
127	krb5_creds */*in_cred*/,
128	struct credentials */*v4creds*/);
129
130krb5_error_code KRB5_LIB_FUNCTION
131heim_krb5_425_conv_principal (
132	krb5_context /*context*/,
133	const char */*name*/,
134	const char */*instance*/,
135	const char */*realm*/,
136	krb5_principal */*princ*/)
137     KRB5_DEPRECATED;
138
139krb5_error_code KRB5_LIB_FUNCTION
140heim_krb5_425_conv_principal_ext (
141	krb5_context /*context*/,
142	const char */*name*/,
143	const char */*instance*/,
144	const char */*realm*/,
145	krb5_boolean (*/*func*/)(krb5_context, krb5_principal),
146	krb5_boolean /*resolve*/,
147	krb5_principal */*principal*/)
148     KRB5_DEPRECATED;
149
150krb5_error_code KRB5_LIB_FUNCTION
151heim_krb5_425_conv_principal_ext2 (
152	krb5_context /*context*/,
153	const char */*name*/,
154	const char */*instance*/,
155	const char */*realm*/,
156	krb5_boolean (*/*func*/)(krb5_context, void *, krb5_principal),
157	void */*funcctx*/,
158	krb5_boolean /*resolve*/,
159	krb5_principal */*princ*/);
160
161krb5_error_code KRB5_LIB_FUNCTION
162heim_krb5_524_conv_principal (
163	krb5_context /*context*/,
164	const krb5_principal /*principal*/,
165	char */*name*/,
166	char */*instance*/,
167	char */*realm*/);
168
169krb5_error_code KRB5_LIB_FUNCTION
170heim_krb5_abort (
171	krb5_context /*context*/,
172	krb5_error_code /*code*/,
173	const char */*fmt*/,
174	...)
175     __attribute__ ((noreturn, format (printf, 3, 4)));
176
177krb5_error_code KRB5_LIB_FUNCTION
178heim_krb5_abortx (
179	krb5_context /*context*/,
180	const char */*fmt*/,
181	...)
182     __attribute__ ((noreturn, format (printf, 2, 3)));
183
184krb5_error_code KRB5_LIB_FUNCTION
185heim_krb5_acl_match_file (
186	krb5_context /*context*/,
187	const char */*file*/,
188	const char */*format*/,
189	...);
190
191krb5_error_code KRB5_LIB_FUNCTION
192heim_krb5_acl_match_string (
193	krb5_context /*context*/,
194	const char */*string*/,
195	const char */*format*/,
196	...);
197
198krb5_error_code KRB5_LIB_FUNCTION
199heim_krb5_add_et_list (
200	krb5_context /*context*/,
201	void (*/*func*/)(struct et_list **));
202
203krb5_error_code KRB5_LIB_FUNCTION
204heim_krb5_add_extra_addresses (
205	krb5_context /*context*/,
206	krb5_addresses */*addresses*/);
207
208krb5_error_code KRB5_LIB_FUNCTION
209heim_krb5_add_ignore_addresses (
210	krb5_context /*context*/,
211	krb5_addresses */*addresses*/);
212
213krb5_error_code KRB5_LIB_FUNCTION
214heim_krb5_addlog_dest (
215	krb5_context /*context*/,
216	krb5_log_facility */*f*/,
217	const char */*orig*/);
218
219krb5_error_code KRB5_LIB_FUNCTION
220heim_krb5_addlog_func (
221	krb5_context /*context*/,
222	krb5_log_facility */*fac*/,
223	int /*min*/,
224	int /*max*/,
225	krb5_log_log_func_t /*log_func*/,
226	krb5_log_close_func_t /*close_func*/,
227	void */*data*/);
228
229krb5_error_code KRB5_LIB_FUNCTION
230heim_krb5_addr2sockaddr (
231	krb5_context /*context*/,
232	const krb5_address */*addr*/,
233	struct sockaddr */*sa*/,
234	krb5_socklen_t */*sa_size*/,
235	int /*port*/);
236
237krb5_boolean KRB5_LIB_FUNCTION
238heim_krb5_address_compare (
239	krb5_context /*context*/,
240	const krb5_address */*addr1*/,
241	const krb5_address */*addr2*/);
242
243int KRB5_LIB_FUNCTION
244heim_krb5_address_order (
245	krb5_context /*context*/,
246	const krb5_address */*addr1*/,
247	const krb5_address */*addr2*/);
248
249krb5_error_code KRB5_LIB_FUNCTION
250heim_krb5_address_prefixlen_boundary (
251	krb5_context /*context*/,
252	const krb5_address */*inaddr*/,
253	unsigned long /*prefixlen*/,
254	krb5_address */*low*/,
255	krb5_address */*high*/);
256
257krb5_boolean KRB5_LIB_FUNCTION
258heim_krb5_address_search (
259	krb5_context /*context*/,
260	const krb5_address */*addr*/,
261	const krb5_addresses */*addrlist*/);
262
263krb5_error_code KRB5_LIB_FUNCTION
264heim_krb5_aname_to_localname (
265	krb5_context /*context*/,
266	krb5_const_principal /*aname*/,
267	size_t /*lnsize*/,
268	char */*lname*/);
269
270krb5_error_code KRB5_LIB_FUNCTION
271heim_krb5_anyaddr (
272	krb5_context /*context*/,
273	int /*af*/,
274	struct sockaddr */*sa*/,
275	krb5_socklen_t */*sa_size*/,
276	int /*port*/);
277
278void KRB5_LIB_FUNCTION
279heim_krb5_appdefault_boolean (
280	krb5_context /*context*/,
281	const char */*appname*/,
282	krb5_const_realm /*realm*/,
283	const char */*option*/,
284	krb5_boolean /*def_val*/,
285	krb5_boolean */*ret_val*/);
286
287void KRB5_LIB_FUNCTION
288heim_krb5_appdefault_string (
289	krb5_context /*context*/,
290	const char */*appname*/,
291	krb5_const_realm /*realm*/,
292	const char */*option*/,
293	const char */*def_val*/,
294	char **/*ret_val*/);
295
296void KRB5_LIB_FUNCTION
297heim_krb5_appdefault_time (
298	krb5_context /*context*/,
299	const char */*appname*/,
300	krb5_const_realm /*realm*/,
301	const char */*option*/,
302	time_t /*def_val*/,
303	time_t */*ret_val*/);
304
305krb5_error_code KRB5_LIB_FUNCTION
306heim_krb5_append_addresses (
307	krb5_context /*context*/,
308	krb5_addresses */*dest*/,
309	const krb5_addresses */*source*/);
310
311krb5_error_code KRB5_LIB_FUNCTION
312heim_krb5_auth_con_addflags (
313	krb5_context /*context*/,
314	krb5_auth_context /*auth_context*/,
315	int32_t /*addflags*/,
316	int32_t */*flags*/);
317
318krb5_error_code KRB5_LIB_FUNCTION
319heim_krb5_auth_con_free (
320	krb5_context /*context*/,
321	krb5_auth_context /*auth_context*/);
322
323krb5_error_code KRB5_LIB_FUNCTION
324heim_krb5_auth_con_genaddrs (
325	krb5_context /*context*/,
326	krb5_auth_context /*auth_context*/,
327	int /*fd*/,
328	int /*flags*/);
329
330krb5_error_code KRB5_LIB_FUNCTION
331heim_krb5_auth_con_generatelocalsubkey (
332	krb5_context /*context*/,
333	krb5_auth_context /*auth_context*/,
334	krb5_keyblock */*key*/);
335
336krb5_error_code KRB5_LIB_FUNCTION
337heim_krb5_auth_con_getaddrs (
338	krb5_context /*context*/,
339	krb5_auth_context /*auth_context*/,
340	krb5_address **/*local_addr*/,
341	krb5_address **/*remote_addr*/);
342
343krb5_error_code KRB5_LIB_FUNCTION
344heim_krb5_auth_con_getauthenticator (
345	krb5_context /*context*/,
346	krb5_auth_context /*auth_context*/,
347	krb5_authenticator */*authenticator*/);
348
349krb5_error_code KRB5_LIB_FUNCTION
350heim_krb5_auth_con_getcksumtype (
351	krb5_context /*context*/,
352	krb5_auth_context /*auth_context*/,
353	krb5_cksumtype */*cksumtype*/);
354
355krb5_error_code KRB5_LIB_FUNCTION
356heim_krb5_auth_con_getflags (
357	krb5_context /*context*/,
358	krb5_auth_context /*auth_context*/,
359	int32_t */*flags*/);
360
361krb5_error_code KRB5_LIB_FUNCTION
362heim_krb5_auth_con_getkey (
363	krb5_context /*context*/,
364	krb5_auth_context /*auth_context*/,
365	krb5_keyblock **/*keyblock*/);
366
367krb5_error_code KRB5_LIB_FUNCTION
368heim_krb5_auth_con_getkeytype (
369	krb5_context /*context*/,
370	krb5_auth_context /*auth_context*/,
371	krb5_keytype */*keytype*/);
372
373krb5_error_code KRB5_LIB_FUNCTION
374heim_krb5_auth_con_getlocalseqnumber (
375	krb5_context /*context*/,
376	krb5_auth_context /*auth_context*/,
377	int32_t */*seqnumber*/);
378
379krb5_error_code KRB5_LIB_FUNCTION
380heim_krb5_auth_con_getlocalsubkey (
381	krb5_context /*context*/,
382	krb5_auth_context /*auth_context*/,
383	krb5_keyblock **/*keyblock*/);
384
385krb5_error_code KRB5_LIB_FUNCTION
386heim_krb5_auth_con_getrcache (
387	krb5_context /*context*/,
388	krb5_auth_context /*auth_context*/,
389	krb5_rcache */*rcache*/);
390
391krb5_error_code KRB5_LIB_FUNCTION
392heim_krb5_auth_con_getremotesubkey (
393	krb5_context /*context*/,
394	krb5_auth_context /*auth_context*/,
395	krb5_keyblock **/*keyblock*/);
396
397krb5_error_code KRB5_LIB_FUNCTION
398heim_krb5_auth_con_init (
399	krb5_context /*context*/,
400	krb5_auth_context */*auth_context*/);
401
402krb5_error_code KRB5_LIB_FUNCTION
403heim_krb5_auth_con_removeflags (
404	krb5_context /*context*/,
405	krb5_auth_context /*auth_context*/,
406	int32_t /*removeflags*/,
407	int32_t */*flags*/);
408
409krb5_error_code KRB5_LIB_FUNCTION
410heim_krb5_auth_con_setaddrs (
411	krb5_context /*context*/,
412	krb5_auth_context /*auth_context*/,
413	krb5_address */*local_addr*/,
414	krb5_address */*remote_addr*/);
415
416krb5_error_code KRB5_LIB_FUNCTION
417heim_krb5_auth_con_setaddrs_from_fd (
418	krb5_context /*context*/,
419	krb5_auth_context /*auth_context*/,
420	void */*p_fd*/);
421
422krb5_error_code KRB5_LIB_FUNCTION
423heim_krb5_auth_con_setcksumtype (
424	krb5_context /*context*/,
425	krb5_auth_context /*auth_context*/,
426	krb5_cksumtype /*cksumtype*/);
427
428krb5_error_code KRB5_LIB_FUNCTION
429heim_krb5_auth_con_setflags (
430	krb5_context /*context*/,
431	krb5_auth_context /*auth_context*/,
432	int32_t /*flags*/);
433
434krb5_error_code KRB5_LIB_FUNCTION
435heim_krb5_auth_con_setkey (
436	krb5_context /*context*/,
437	krb5_auth_context /*auth_context*/,
438	krb5_keyblock */*keyblock*/);
439
440krb5_error_code KRB5_LIB_FUNCTION
441heim_krb5_auth_con_setkeytype (
442	krb5_context /*context*/,
443	krb5_auth_context /*auth_context*/,
444	krb5_keytype /*keytype*/);
445
446krb5_error_code KRB5_LIB_FUNCTION
447heim_krb5_auth_con_setlocalseqnumber (
448	krb5_context /*context*/,
449	krb5_auth_context /*auth_context*/,
450	int32_t /*seqnumber*/);
451
452krb5_error_code KRB5_LIB_FUNCTION
453heim_krb5_auth_con_setlocalsubkey (
454	krb5_context /*context*/,
455	krb5_auth_context /*auth_context*/,
456	krb5_keyblock */*keyblock*/);
457
458krb5_error_code KRB5_LIB_FUNCTION
459heim_krb5_auth_con_setrcache (
460	krb5_context /*context*/,
461	krb5_auth_context /*auth_context*/,
462	krb5_rcache /*rcache*/);
463
464krb5_error_code KRB5_LIB_FUNCTION
465heim_krb5_auth_con_setremoteseqnumber (
466	krb5_context /*context*/,
467	krb5_auth_context /*auth_context*/,
468	int32_t /*seqnumber*/);
469
470krb5_error_code KRB5_LIB_FUNCTION
471heim_krb5_auth_con_setremotesubkey (
472	krb5_context /*context*/,
473	krb5_auth_context /*auth_context*/,
474	krb5_keyblock */*keyblock*/);
475
476krb5_error_code KRB5_LIB_FUNCTION
477heim_krb5_auth_con_setuserkey (
478	krb5_context /*context*/,
479	krb5_auth_context /*auth_context*/,
480	krb5_keyblock */*keyblock*/);
481
482krb5_error_code KRB5_LIB_FUNCTION
483heim_krb5_auth_getremoteseqnumber (
484	krb5_context /*context*/,
485	krb5_auth_context /*auth_context*/,
486	int32_t */*seqnumber*/);
487
488krb5_error_code KRB5_LIB_FUNCTION
489heim_krb5_build_ap_req (
490	krb5_context /*context*/,
491	krb5_enctype /*enctype*/,
492	krb5_creds */*cred*/,
493	krb5_flags /*ap_options*/,
494	krb5_data /*authenticator*/,
495	krb5_data */*retdata*/);
496
497krb5_error_code KRB5_LIB_FUNCTION
498heim_krb5_build_authenticator (
499	krb5_context /*context*/,
500	krb5_auth_context /*auth_context*/,
501	krb5_enctype /*enctype*/,
502	krb5_creds */*cred*/,
503	Checksum */*cksum*/,
504	Authenticator **/*auth_result*/,
505	krb5_data */*result*/,
506	krb5_key_usage /*usage*/);
507
508krb5_error_code KRB5_LIB_FUNCTION
509heim_krb5_build_principal (
510	krb5_context /*context*/,
511	krb5_principal */*principal*/,
512	int /*rlen*/,
513	krb5_const_realm /*realm*/,
514	...);
515
516krb5_error_code KRB5_LIB_FUNCTION
517heim_krb5_build_principal_ext (
518	krb5_context /*context*/,
519	krb5_principal */*principal*/,
520	int /*rlen*/,
521	krb5_const_realm /*realm*/,
522	...);
523
524krb5_error_code KRB5_LIB_FUNCTION
525heim_krb5_build_principal_va (
526	krb5_context /*context*/,
527	krb5_principal */*principal*/,
528	int /*rlen*/,
529	krb5_const_realm /*realm*/,
530	va_list /*ap*/);
531
532krb5_error_code KRB5_LIB_FUNCTION
533heim_krb5_build_principal_va_ext (
534	krb5_context /*context*/,
535	krb5_principal */*principal*/,
536	int /*rlen*/,
537	krb5_const_realm /*realm*/,
538	va_list /*ap*/);
539
540krb5_error_code KRB5_LIB_FUNCTION
541heim_krb5_c_block_size (
542	krb5_context /*context*/,
543	krb5_enctype /*enctype*/,
544	size_t */*blocksize*/);
545
546krb5_error_code KRB5_LIB_FUNCTION
547heim_krb5_c_checksum_length (
548	krb5_context /*context*/,
549	krb5_cksumtype /*cksumtype*/,
550	size_t */*length*/);
551
552krb5_error_code KRB5_LIB_FUNCTION
553heim_krb5_c_decrypt (
554	krb5_context /*context*/,
555	const krb5_keyblock /*key*/,
556	krb5_keyusage /*usage*/,
557	const krb5_data */*ivec*/,
558	krb5_enc_data */*input*/,
559	krb5_data */*output*/);
560
561krb5_error_code KRB5_LIB_FUNCTION
562heim_krb5_c_encrypt (
563	krb5_context /*context*/,
564	const krb5_keyblock */*key*/,
565	krb5_keyusage /*usage*/,
566	const krb5_data */*ivec*/,
567	const krb5_data */*input*/,
568	krb5_enc_data */*output*/);
569
570krb5_error_code KRB5_LIB_FUNCTION
571heim_krb5_c_encrypt_length (
572	krb5_context /*context*/,
573	krb5_enctype /*enctype*/,
574	size_t /*inputlen*/,
575	size_t */*length*/);
576
577krb5_error_code KRB5_LIB_FUNCTION
578heim_krb5_c_enctype_compare (
579	krb5_context /*context*/,
580	krb5_enctype /*e1*/,
581	krb5_enctype /*e2*/,
582	krb5_boolean */*similar*/)
583     KRB5_DEPRECATED;
584
585krb5_error_code KRB5_LIB_FUNCTION
586heim_krb5_c_get_checksum (
587	krb5_context /*context*/,
588	const krb5_checksum */*cksum*/,
589	krb5_cksumtype */*type*/,
590	krb5_data **/*data*/);
591
592krb5_boolean KRB5_LIB_FUNCTION
593heim_krb5_c_is_coll_proof_cksum (krb5_cksumtype /*ctype*/);
594
595krb5_boolean KRB5_LIB_FUNCTION
596heim_krb5_c_is_keyed_cksum (krb5_cksumtype /*ctype*/);
597
598krb5_error_code KRB5_LIB_FUNCTION
599heim_krb5_c_keylengths (
600	krb5_context /*context*/,
601	krb5_enctype /*enctype*/,
602	size_t */*ilen*/,
603	size_t */*keylen*/);
604
605krb5_error_code KRB5_LIB_FUNCTION
606heim_krb5_c_make_checksum (
607	krb5_context /*context*/,
608	krb5_cksumtype /*cksumtype*/,
609	const krb5_keyblock */*key*/,
610	krb5_keyusage /*usage*/,
611	const krb5_data */*input*/,
612	krb5_checksum */*cksum*/);
613
614krb5_error_code KRB5_LIB_FUNCTION
615heim_krb5_c_make_random_key (
616	krb5_context /*context*/,
617	krb5_enctype /*enctype*/,
618	krb5_keyblock */*random_key*/);
619
620krb5_error_code KRB5_LIB_FUNCTION
621heim_krb5_c_prf (
622	krb5_context /*context*/,
623	const krb5_keyblock */*key*/,
624	const krb5_data */*input*/,
625	krb5_data */*output*/);
626
627krb5_error_code KRB5_LIB_FUNCTION
628heim_krb5_c_prf_length (
629	krb5_context /*context*/,
630	krb5_enctype /*type*/,
631	size_t */*length*/);
632
633krb5_error_code KRB5_LIB_FUNCTION
634heim_krb5_c_set_checksum (
635	krb5_context /*context*/,
636	krb5_checksum */*cksum*/,
637	krb5_cksumtype /*type*/,
638	const krb5_data */*data*/);
639
640krb5_boolean KRB5_LIB_FUNCTION
641heim_krb5_c_valid_cksumtype (krb5_cksumtype /*ctype*/);
642
643krb5_boolean KRB5_LIB_FUNCTION
644heim_krb5_c_valid_enctype (krb5_enctype /*etype*/);
645
646krb5_error_code KRB5_LIB_FUNCTION
647heim_krb5_c_verify_checksum (
648	krb5_context /*context*/,
649	const krb5_keyblock */*key*/,
650	krb5_keyusage /*usage*/,
651	const krb5_data */*data*/,
652	const krb5_checksum */*cksum*/,
653	krb5_boolean */*valid*/);
654
655krb5_error_code KRB5_LIB_FUNCTION
656heim_krb5_cc_cache_end_seq_get (
657	krb5_context /*context*/,
658	krb5_cc_cache_cursor /*cursor*/);
659
660krb5_error_code KRB5_LIB_FUNCTION
661heim_krb5_cc_cache_get_first (
662	krb5_context /*context*/,
663	const char */*type*/,
664	krb5_cc_cache_cursor */*cursor*/);
665
666krb5_error_code KRB5_LIB_FUNCTION
667heim_krb5_cc_cache_match (
668	krb5_context /*context*/,
669	krb5_principal /*client*/,
670	krb5_ccache */*id*/);
671
672krb5_error_code KRB5_LIB_FUNCTION
673heim_krb5_cc_cache_next (
674	krb5_context /*context*/,
675	krb5_cc_cache_cursor /*cursor*/,
676	krb5_ccache */*id*/);
677
678void KRB5_LIB_FUNCTION
679heim_krb5_cc_clear_mcred (krb5_creds */*mcred*/);
680
681krb5_error_code KRB5_LIB_FUNCTION
682heim_krb5_cc_close (
683	krb5_context /*context*/,
684	krb5_ccache /*id*/);
685
686krb5_error_code KRB5_LIB_FUNCTION
687heim_krb5_cc_copy_cache (
688	krb5_context /*context*/,
689	const krb5_ccache /*from*/,
690	krb5_ccache /*to*/);
691
692krb5_error_code KRB5_LIB_FUNCTION
693heim_krb5_cc_copy_creds (
694	krb5_context /*context*/,
695	const krb5_ccache /*from*/,
696	krb5_ccache /*to*/);
697
698krb5_error_code KRB5_LIB_FUNCTION
699heim_krb5_cc_copy_match_f (
700	krb5_context /*context*/,
701	const krb5_ccache /*from*/,
702	krb5_ccache /*to*/,
703	krb5_boolean (*/*match*/)(krb5_context, void *, const krb5_creds *),
704	void */*matchctx*/,
705	unsigned int */*matched*/);
706
707krb5_error_code KRB5_LIB_FUNCTION
708heim_krb5_cc_default (
709	krb5_context /*context*/,
710	krb5_ccache */*id*/);
711
712const char* KRB5_LIB_FUNCTION
713heim_krb5_cc_default_name (krb5_context /*context*/);
714
715krb5_error_code KRB5_LIB_FUNCTION
716heim_krb5_cc_destroy (
717	krb5_context /*context*/,
718	krb5_ccache /*id*/);
719
720krb5_error_code KRB5_LIB_FUNCTION
721heim_krb5_cc_end_seq_get (
722	krb5_context /*context*/,
723	const krb5_ccache /*id*/,
724	krb5_cc_cursor */*cursor*/);
725
726krb5_error_code KRB5_LIB_FUNCTION
727heim_krb5_cc_gen_new (
728	krb5_context /*context*/,
729	const krb5_cc_ops */*ops*/,
730	krb5_ccache */*id*/)
731     KRB5_DEPRECATED;
732
733krb5_error_code KRB5_LIB_FUNCTION
734heim_krb5_cc_get_config (
735	krb5_context /*context*/,
736	krb5_ccache /*id*/,
737	krb5_const_principal /*principal*/,
738	const char */*name*/,
739	krb5_data */*data*/);
740
741krb5_error_code KRB5_LIB_FUNCTION
742heim_krb5_cc_get_flags (
743	krb5_context /*context*/,
744	krb5_ccache /*id*/,
745	krb5_flags */*flags*/);
746
747krb5_error_code KRB5_LIB_FUNCTION
748heim_krb5_cc_get_friendly_name (
749	krb5_context /*context*/,
750	krb5_ccache /*id*/,
751	char **/*name*/);
752
753krb5_error_code KRB5_LIB_FUNCTION
754heim_krb5_cc_get_full_name (
755	krb5_context /*context*/,
756	krb5_ccache /*id*/,
757	char **/*str*/);
758
759krb5_error_code KRB5_LIB_FUNCTION
760heim_krb5_cc_get_lifetime (
761	krb5_context /*context*/,
762	krb5_ccache /*id*/,
763	time_t */*t*/);
764
765const char* KRB5_LIB_FUNCTION
766heim_krb5_cc_get_name (
767	krb5_context /*context*/,
768	krb5_ccache /*id*/);
769
770const krb5_cc_ops *
771heim_krb5_cc_get_ops (
772	krb5_context /*context*/,
773	krb5_ccache /*id*/);
774
775const krb5_cc_ops *
776heim_krb5_cc_get_prefix_ops (
777	krb5_context /*context*/,
778	const char */*prefix*/);
779
780krb5_error_code KRB5_LIB_FUNCTION
781heim_krb5_cc_get_principal (
782	krb5_context /*context*/,
783	krb5_ccache /*id*/,
784	krb5_principal */*principal*/);
785
786const char* KRB5_LIB_FUNCTION
787heim_krb5_cc_get_type (
788	krb5_context /*context*/,
789	krb5_ccache /*id*/);
790
791krb5_error_code KRB5_LIB_FUNCTION
792heim_krb5_cc_get_version (
793	krb5_context /*context*/,
794	const krb5_ccache /*id*/);
795
796krb5_error_code KRB5_LIB_FUNCTION
797heim_krb5_cc_initialize (
798	krb5_context /*context*/,
799	krb5_ccache /*id*/,
800	krb5_principal /*primary_principal*/);
801
802krb5_error_code KRB5_LIB_FUNCTION
803heim_krb5_cc_last_change_time (
804	krb5_context /*context*/,
805	krb5_ccache /*id*/,
806	krb5_timestamp */*mtime*/);
807
808krb5_error_code
809heim_krb5_cc_move (
810	krb5_context /*context*/,
811	krb5_ccache /*from*/,
812	krb5_ccache /*to*/);
813
814krb5_error_code KRB5_LIB_FUNCTION
815heim_krb5_cc_new_unique (
816	krb5_context /*context*/,
817	const char */*type*/,
818	const char */*hint*/,
819	krb5_ccache */*id*/);
820
821krb5_error_code KRB5_LIB_FUNCTION
822heim_krb5_cc_next_cred (
823	krb5_context /*context*/,
824	const krb5_ccache /*id*/,
825	krb5_cc_cursor */*cursor*/,
826	krb5_creds */*creds*/);
827
828krb5_error_code KRB5_LIB_FUNCTION
829heim_krb5_cc_register (
830	krb5_context /*context*/,
831	const krb5_cc_ops */*ops*/,
832	krb5_boolean /*override*/);
833
834krb5_error_code KRB5_LIB_FUNCTION
835heim_krb5_cc_remove_cred (
836	krb5_context /*context*/,
837	krb5_ccache /*id*/,
838	krb5_flags /*which*/,
839	krb5_creds */*cred*/);
840
841krb5_error_code KRB5_LIB_FUNCTION
842heim_krb5_cc_resolve (
843	krb5_context /*context*/,
844	const char */*name*/,
845	krb5_ccache */*id*/);
846
847krb5_error_code KRB5_LIB_FUNCTION
848heim_krb5_cc_retrieve_cred (
849	krb5_context /*context*/,
850	krb5_ccache /*id*/,
851	krb5_flags /*whichfields*/,
852	const krb5_creds */*mcreds*/,
853	krb5_creds */*creds*/);
854
855krb5_error_code KRB5_LIB_FUNCTION
856heim_krb5_cc_set_config (
857	krb5_context /*context*/,
858	krb5_ccache /*id*/,
859	krb5_const_principal /*principal*/,
860	const char */*name*/,
861	krb5_data */*data*/);
862
863krb5_error_code KRB5_LIB_FUNCTION
864heim_krb5_cc_set_default_name (
865	krb5_context /*context*/,
866	const char */*name*/);
867
868krb5_error_code KRB5_LIB_FUNCTION
869heim_krb5_cc_set_flags (
870	krb5_context /*context*/,
871	krb5_ccache /*id*/,
872	krb5_flags /*flags*/);
873
874krb5_error_code KRB5_LIB_FUNCTION
875heim_krb5_cc_set_friendly_name (
876	krb5_context /*context*/,
877	krb5_ccache /*id*/,
878	const char */*name*/);
879
880krb5_error_code KRB5_LIB_FUNCTION
881heim_krb5_cc_start_seq_get (
882	krb5_context /*context*/,
883	const krb5_ccache /*id*/,
884	krb5_cc_cursor */*cursor*/);
885
886krb5_error_code KRB5_LIB_FUNCTION
887heim_krb5_cc_store_cred (
888	krb5_context /*context*/,
889	krb5_ccache /*id*/,
890	krb5_creds */*creds*/);
891
892krb5_error_code
893heim_krb5_cc_switch (
894	krb5_context /*context*/,
895	krb5_ccache /*id*/);
896
897krb5_error_code KRB5_LIB_FUNCTION
898heim_krb5_cccol_cursor_free (
899	krb5_context /*context*/,
900	krb5_cccol_cursor */*cursor*/);
901
902krb5_error_code KRB5_LIB_FUNCTION
903heim_krb5_cccol_cursor_new (
904	krb5_context /*context*/,
905	krb5_cccol_cursor */*cursor*/);
906
907krb5_error_code KRB5_LIB_FUNCTION
908heim_krb5_cccol_cursor_next (
909	krb5_context /*context*/,
910	krb5_cccol_cursor /*cursor*/,
911	krb5_ccache */*cache*/);
912
913krb5_error_code KRB5_LIB_FUNCTION
914heim_krb5_cccol_last_change_time (
915	krb5_context /*context*/,
916	const char */*type*/,
917	krb5_timestamp */*mtime*/);
918
919krb5_error_code KRB5_LIB_FUNCTION
920heim_krb5_change_password (
921	krb5_context /*context*/,
922	krb5_creds */*creds*/,
923	const char */*newpw*/,
924	int */*result_code*/,
925	krb5_data */*result_code_string*/,
926	krb5_data */*result_string*/)
927     KRB5_DEPRECATED;
928
929krb5_error_code KRB5_LIB_FUNCTION
930heim_krb5_check_transited (
931	krb5_context /*context*/,
932	krb5_const_realm /*client_realm*/,
933	krb5_const_realm /*server_realm*/,
934	krb5_realm */*realms*/,
935	unsigned int /*num_realms*/,
936	int */*bad_realm*/);
937
938krb5_error_code KRB5_LIB_FUNCTION
939heim_krb5_check_transited_realms (
940	krb5_context /*context*/,
941	const char *const */*realms*/,
942	unsigned int /*num_realms*/,
943	int */*bad_realm*/);
944
945krb5_error_code KRB5_LIB_FUNCTION
946heim_krb5_checksum_disable (
947	krb5_context /*context*/,
948	krb5_cksumtype /*type*/);
949
950void KRB5_LIB_FUNCTION
951heim_krb5_checksum_free (
952	krb5_context /*context*/,
953	krb5_checksum */*cksum*/);
954
955krb5_boolean KRB5_LIB_FUNCTION
956heim_krb5_checksum_is_collision_proof (
957	krb5_context /*context*/,
958	krb5_cksumtype /*type*/);
959
960krb5_boolean KRB5_LIB_FUNCTION
961heim_krb5_checksum_is_keyed (
962	krb5_context /*context*/,
963	krb5_cksumtype /*type*/);
964
965krb5_error_code KRB5_LIB_FUNCTION
966heim_krb5_checksumsize (
967	krb5_context /*context*/,
968	krb5_cksumtype /*type*/,
969	size_t */*size*/);
970
971krb5_error_code KRB5_LIB_FUNCTION
972heim_krb5_cksumtype_to_enctype (
973	krb5_context /*context*/,
974	krb5_cksumtype /*ctype*/,
975	krb5_enctype */*etype*/);
976
977krb5_error_code KRB5_LIB_FUNCTION
978heim_krb5_cksumtype_valid (
979	krb5_context /*context*/,
980	krb5_cksumtype /*ctype*/);
981
982void KRB5_LIB_FUNCTION
983heim_krb5_clear_error_message (krb5_context /*context*/);
984
985void KRB5_LIB_FUNCTION
986heim_krb5_clear_error_string (krb5_context /*context*/)
987     KRB5_DEPRECATED;
988
989krb5_error_code KRB5_LIB_FUNCTION
990heim_krb5_closelog (
991	krb5_context /*context*/,
992	krb5_log_facility */*fac*/);
993
994krb5_boolean KRB5_LIB_FUNCTION
995heim_krb5_compare_creds (
996	krb5_context /*context*/,
997	krb5_flags /*whichfields*/,
998	const krb5_creds * /*mcreds*/,
999	const krb5_creds * /*creds*/);
1000
1001krb5_error_code KRB5_LIB_FUNCTION
1002heim_krb5_config_file_free (
1003	krb5_context /*context*/,
1004	krb5_config_section */*s*/);
1005
1006void KRB5_LIB_FUNCTION
1007heim_krb5_config_free_strings (char **/*strings*/);
1008
1009const void *
1010heim_krb5_config_get (
1011	krb5_context /*context*/,
1012	const krb5_config_section */*c*/,
1013	int /*type*/,
1014	...);
1015
1016krb5_boolean KRB5_LIB_FUNCTION
1017heim_krb5_config_get_bool (
1018	krb5_context /*context*/,
1019	const krb5_config_section */*c*/,
1020	...);
1021
1022krb5_boolean KRB5_LIB_FUNCTION
1023heim_krb5_config_get_bool_default (
1024	krb5_context /*context*/,
1025	const krb5_config_section */*c*/,
1026	krb5_boolean /*def_value*/,
1027	...);
1028
1029int KRB5_LIB_FUNCTION
1030heim_krb5_config_get_int (
1031	krb5_context /*context*/,
1032	const krb5_config_section */*c*/,
1033	...);
1034
1035int KRB5_LIB_FUNCTION
1036heim_krb5_config_get_int_default (
1037	krb5_context /*context*/,
1038	const krb5_config_section */*c*/,
1039	int /*def_value*/,
1040	...);
1041
1042const krb5_config_binding *
1043heim_krb5_config_get_list (
1044	krb5_context /*context*/,
1045	const krb5_config_section */*c*/,
1046	...);
1047
1048const void *
1049heim_krb5_config_get_next (
1050	krb5_context /*context*/,
1051	const krb5_config_section */*c*/,
1052	const krb5_config_binding **/*pointer*/,
1053	int /*type*/,
1054	...);
1055
1056const char* KRB5_LIB_FUNCTION
1057heim_krb5_config_get_string (
1058	krb5_context /*context*/,
1059	const krb5_config_section */*c*/,
1060	...);
1061
1062const char* KRB5_LIB_FUNCTION
1063heim_krb5_config_get_string_default (
1064	krb5_context /*context*/,
1065	const krb5_config_section */*c*/,
1066	const char */*def_value*/,
1067	...);
1068
1069char**
1070heim_krb5_config_get_strings (
1071	krb5_context /*context*/,
1072	const krb5_config_section */*c*/,
1073	...);
1074
1075int KRB5_LIB_FUNCTION
1076heim_krb5_config_get_time (
1077	krb5_context /*context*/,
1078	const krb5_config_section */*c*/,
1079	...);
1080
1081int KRB5_LIB_FUNCTION
1082heim_krb5_config_get_time_default (
1083	krb5_context /*context*/,
1084	const krb5_config_section */*c*/,
1085	int /*def_value*/,
1086	...);
1087
1088krb5_error_code KRB5_LIB_FUNCTION
1089heim_krb5_config_parse_file (
1090	krb5_context /*context*/,
1091	const char */*fname*/,
1092	krb5_config_section **/*res*/);
1093
1094krb5_error_code KRB5_LIB_FUNCTION
1095heim_krb5_config_parse_file_multi (
1096	krb5_context /*context*/,
1097	const char */*fname*/,
1098	krb5_config_section **/*res*/);
1099
1100krb5_error_code KRB5_LIB_FUNCTION
1101heim_krb5_config_parse_string_multi (
1102	krb5_context /*context*/,
1103	const char */*string*/,
1104	krb5_config_section **/*res*/);
1105
1106const void *
1107heim_krb5_config_vget (
1108	krb5_context /*context*/,
1109	const krb5_config_section */*c*/,
1110	int /*type*/,
1111	va_list /*args*/);
1112
1113krb5_boolean KRB5_LIB_FUNCTION
1114heim_krb5_config_vget_bool (
1115	krb5_context /*context*/,
1116	const krb5_config_section */*c*/,
1117	va_list /*args*/);
1118
1119krb5_boolean KRB5_LIB_FUNCTION
1120heim_krb5_config_vget_bool_default (
1121	krb5_context /*context*/,
1122	const krb5_config_section */*c*/,
1123	krb5_boolean /*def_value*/,
1124	va_list /*args*/);
1125
1126int KRB5_LIB_FUNCTION
1127heim_krb5_config_vget_int (
1128	krb5_context /*context*/,
1129	const krb5_config_section */*c*/,
1130	va_list /*args*/);
1131
1132int KRB5_LIB_FUNCTION
1133heim_krb5_config_vget_int_default (
1134	krb5_context /*context*/,
1135	const krb5_config_section */*c*/,
1136	int /*def_value*/,
1137	va_list /*args*/);
1138
1139const krb5_config_binding *
1140heim_krb5_config_vget_list (
1141	krb5_context /*context*/,
1142	const krb5_config_section */*c*/,
1143	va_list /*args*/);
1144
1145const void *
1146heim_krb5_config_vget_next (
1147	krb5_context /*context*/,
1148	const krb5_config_section */*c*/,
1149	const krb5_config_binding **/*pointer*/,
1150	int /*type*/,
1151	va_list /*args*/);
1152
1153const char* KRB5_LIB_FUNCTION
1154heim_krb5_config_vget_string (
1155	krb5_context /*context*/,
1156	const krb5_config_section */*c*/,
1157	va_list /*args*/);
1158
1159const char* KRB5_LIB_FUNCTION
1160heim_krb5_config_vget_string_default (
1161	krb5_context /*context*/,
1162	const krb5_config_section */*c*/,
1163	const char */*def_value*/,
1164	va_list /*args*/);
1165
1166char ** KRB5_LIB_FUNCTION
1167heim_krb5_config_vget_strings (
1168	krb5_context /*context*/,
1169	const krb5_config_section */*c*/,
1170	va_list /*args*/);
1171
1172int KRB5_LIB_FUNCTION
1173heim_krb5_config_vget_time (
1174	krb5_context /*context*/,
1175	const krb5_config_section */*c*/,
1176	va_list /*args*/);
1177
1178int KRB5_LIB_FUNCTION
1179heim_krb5_config_vget_time_default (
1180	krb5_context /*context*/,
1181	const krb5_config_section */*c*/,
1182	int /*def_value*/,
1183	va_list /*args*/);
1184
1185krb5_error_code KRB5_LIB_FUNCTION
1186heim_krb5_copy_address (
1187	krb5_context /*context*/,
1188	const krb5_address */*inaddr*/,
1189	krb5_address */*outaddr*/);
1190
1191krb5_error_code KRB5_LIB_FUNCTION
1192heim_krb5_copy_addresses (
1193	krb5_context /*context*/,
1194	const krb5_addresses */*inaddr*/,
1195	krb5_addresses */*outaddr*/);
1196
1197krb5_error_code KRB5_LIB_FUNCTION
1198heim_krb5_copy_checksum (
1199	krb5_context /*context*/,
1200	const krb5_checksum */*old*/,
1201	krb5_checksum **/*new*/);
1202
1203krb5_error_code KRB5_LIB_FUNCTION
1204heim_krb5_copy_context (
1205	krb5_context /*context*/,
1206	krb5_context */*out*/);
1207
1208krb5_error_code KRB5_LIB_FUNCTION
1209heim_krb5_copy_creds (
1210	krb5_context /*context*/,
1211	const krb5_creds */*incred*/,
1212	krb5_creds **/*outcred*/);
1213
1214krb5_error_code KRB5_LIB_FUNCTION
1215heim_krb5_copy_creds_contents (
1216	krb5_context /*context*/,
1217	const krb5_creds */*incred*/,
1218	krb5_creds */*c*/);
1219
1220krb5_error_code KRB5_LIB_FUNCTION
1221heim_krb5_copy_data (
1222	krb5_context /*context*/,
1223	const krb5_data */*indata*/,
1224	krb5_data **/*outdata*/);
1225
1226krb5_error_code KRB5_LIB_FUNCTION
1227heim_krb5_copy_host_realm (
1228	krb5_context /*context*/,
1229	const krb5_realm */*from*/,
1230	krb5_realm **/*to*/);
1231
1232krb5_error_code KRB5_LIB_FUNCTION
1233heim_krb5_copy_keyblock (
1234	krb5_context /*context*/,
1235	const krb5_keyblock */*inblock*/,
1236	krb5_keyblock **/*to*/);
1237
1238krb5_error_code KRB5_LIB_FUNCTION
1239heim_krb5_copy_keyblock_contents (
1240	krb5_context /*context*/,
1241	const krb5_keyblock */*inblock*/,
1242	krb5_keyblock */*to*/);
1243
1244krb5_error_code KRB5_LIB_FUNCTION
1245heim_krb5_copy_principal (
1246	krb5_context /*context*/,
1247	krb5_const_principal /*inprinc*/,
1248	krb5_principal */*outprinc*/);
1249
1250krb5_error_code KRB5_LIB_FUNCTION
1251heim_krb5_copy_ticket (
1252	krb5_context /*context*/,
1253	const krb5_ticket */*from*/,
1254	krb5_ticket **/*to*/);
1255
1256krb5_error_code KRB5_LIB_FUNCTION
1257heim_krb5_create_checksum (
1258	krb5_context /*context*/,
1259	krb5_crypto /*crypto*/,
1260	krb5_key_usage /*usage*/,
1261	int /*type*/,
1262	void */*data*/,
1263	size_t /*len*/,
1264	Checksum */*result*/);
1265
1266krb5_error_code KRB5_LIB_FUNCTION
1267heim_krb5_create_checksum_iov (
1268	krb5_context /*context*/,
1269	krb5_crypto /*crypto*/,
1270	unsigned /*usage*/,
1271	krb5_crypto_iov */*data*/,
1272	unsigned int /*num_data*/,
1273	krb5_cksumtype */*type*/);
1274
1275unsigned long
1276heim_krb5_creds_get_ticket_flags (krb5_creds */*creds*/);
1277
1278krb5_error_code KRB5_LIB_FUNCTION
1279heim_krb5_crypto_destroy (
1280	krb5_context /*context*/,
1281	krb5_crypto /*crypto*/);
1282
1283krb5_error_code KRB5_LIB_FUNCTION
1284heim_krb5_crypto_fx_cf2 (
1285	krb5_context /*context*/,
1286	const krb5_crypto /*crypto1*/,
1287	const krb5_crypto /*crypto2*/,
1288	krb5_data */*pepper1*/,
1289	krb5_data */*pepper2*/,
1290	krb5_enctype /*enctype*/,
1291	krb5_keyblock */*res*/);
1292
1293krb5_error_code KRB5_LIB_FUNCTION
1294heim_krb5_crypto_get_checksum_type (
1295	krb5_context /*context*/,
1296	krb5_crypto /*crypto*/,
1297	krb5_cksumtype */*type*/);
1298
1299krb5_error_code KRB5_LIB_FUNCTION
1300heim_krb5_crypto_getblocksize (
1301	krb5_context /*context*/,
1302	krb5_crypto /*crypto*/,
1303	size_t */*blocksize*/);
1304
1305krb5_error_code KRB5_LIB_FUNCTION
1306heim_krb5_crypto_getconfoundersize (
1307	krb5_context /*context*/,
1308	krb5_crypto /*crypto*/,
1309	size_t */*confoundersize*/);
1310
1311krb5_error_code KRB5_LIB_FUNCTION
1312heim_krb5_crypto_getenctype (
1313	krb5_context /*context*/,
1314	krb5_crypto /*crypto*/,
1315	krb5_enctype */*enctype*/);
1316
1317krb5_error_code KRB5_LIB_FUNCTION
1318heim_krb5_crypto_getpadsize (
1319	krb5_context /*context*/,
1320	krb5_crypto /*crypto*/,
1321	size_t */*padsize*/);
1322
1323krb5_error_code KRB5_LIB_FUNCTION
1324heim_krb5_crypto_init (
1325	krb5_context /*context*/,
1326	const krb5_keyblock */*key*/,
1327	krb5_enctype /*etype*/,
1328	krb5_crypto */*crypto*/);
1329
1330krb5_error_code KRB5_LIB_FUNCTION
1331heim_krb5_crypto_length (
1332	krb5_context /*context*/,
1333	krb5_crypto /*crypto*/,
1334	int /*type*/,
1335	size_t */*len*/);
1336
1337krb5_error_code KRB5_LIB_FUNCTION
1338heim_krb5_crypto_length_iov (
1339	krb5_context /*context*/,
1340	krb5_crypto /*crypto*/,
1341	krb5_crypto_iov */*data*/,
1342	unsigned int /*num_data*/);
1343
1344size_t
1345heim_krb5_crypto_overhead (
1346	krb5_context /*context*/,
1347	krb5_crypto /*crypto*/);
1348
1349krb5_error_code KRB5_LIB_FUNCTION
1350heim_krb5_crypto_prf (
1351	krb5_context /*context*/,
1352	const krb5_crypto /*crypto*/,
1353	const krb5_data */*input*/,
1354	krb5_data */*output*/);
1355
1356krb5_error_code KRB5_LIB_FUNCTION
1357heim_krb5_crypto_prf_length (
1358	krb5_context /*context*/,
1359	krb5_enctype /*type*/,
1360	size_t */*length*/);
1361
1362krb5_error_code KRB5_LIB_FUNCTION
1363heim_krb5_data_alloc (
1364	krb5_data */*p*/,
1365	int /*len*/);
1366
1367int KRB5_LIB_FUNCTION
1368heim_krb5_data_cmp (
1369	const krb5_data */*data1*/,
1370	const krb5_data */*data2*/);
1371
1372krb5_error_code KRB5_LIB_FUNCTION
1373heim_krb5_data_copy (
1374	krb5_data */*p*/,
1375	const void */*data*/,
1376	size_t /*len*/);
1377
1378void KRB5_LIB_FUNCTION
1379heim_krb5_data_free (krb5_data */*p*/);
1380
1381krb5_error_code KRB5_LIB_FUNCTION
1382heim_krb5_data_realloc (
1383	krb5_data */*p*/,
1384	int /*len*/);
1385
1386void KRB5_LIB_FUNCTION
1387heim_krb5_data_zero (krb5_data */*p*/);
1388
1389krb5_error_code KRB5_LIB_FUNCTION
1390heim_krb5_decode_Authenticator (
1391	krb5_context /*context*/,
1392	const void */*data*/,
1393	size_t /*length*/,
1394	Authenticator */*t*/,
1395	size_t */*len*/)
1396     KRB5_DEPRECATED;
1397
1398krb5_error_code KRB5_LIB_FUNCTION
1399heim_krb5_decode_ETYPE_INFO (
1400	krb5_context /*context*/,
1401	const void */*data*/,
1402	size_t /*length*/,
1403	ETYPE_INFO */*t*/,
1404	size_t */*len*/)
1405     KRB5_DEPRECATED;
1406
1407krb5_error_code KRB5_LIB_FUNCTION
1408heim_krb5_decode_ETYPE_INFO2 (
1409	krb5_context /*context*/,
1410	const void */*data*/,
1411	size_t /*length*/,
1412	ETYPE_INFO2 */*t*/,
1413	size_t */*len*/)
1414     KRB5_DEPRECATED;
1415
1416krb5_error_code KRB5_LIB_FUNCTION
1417heim_krb5_decode_EncAPRepPart (
1418	krb5_context /*context*/,
1419	const void */*data*/,
1420	size_t /*length*/,
1421	EncAPRepPart */*t*/,
1422	size_t */*len*/)
1423     KRB5_DEPRECATED;
1424
1425krb5_error_code KRB5_LIB_FUNCTION
1426heim_krb5_decode_EncASRepPart (
1427	krb5_context /*context*/,
1428	const void */*data*/,
1429	size_t /*length*/,
1430	EncASRepPart */*t*/,
1431	size_t */*len*/)
1432     KRB5_DEPRECATED;
1433
1434krb5_error_code KRB5_LIB_FUNCTION
1435heim_krb5_decode_EncKrbCredPart (
1436	krb5_context /*context*/,
1437	const void */*data*/,
1438	size_t /*length*/,
1439	EncKrbCredPart */*t*/,
1440	size_t */*len*/)
1441     KRB5_DEPRECATED;
1442
1443krb5_error_code KRB5_LIB_FUNCTION
1444heim_krb5_decode_EncTGSRepPart (
1445	krb5_context /*context*/,
1446	const void */*data*/,
1447	size_t /*length*/,
1448	EncTGSRepPart */*t*/,
1449	size_t */*len*/)
1450     KRB5_DEPRECATED;
1451
1452krb5_error_code KRB5_LIB_FUNCTION
1453heim_krb5_decode_EncTicketPart (
1454	krb5_context /*context*/,
1455	const void */*data*/,
1456	size_t /*length*/,
1457	EncTicketPart */*t*/,
1458	size_t */*len*/)
1459     KRB5_DEPRECATED;
1460
1461krb5_error_code KRB5_LIB_FUNCTION
1462heim_krb5_decode_ap_req (
1463	krb5_context /*context*/,
1464	const krb5_data */*inbuf*/,
1465	krb5_ap_req */*ap_req*/);
1466
1467krb5_error_code KRB5_LIB_FUNCTION
1468heim_krb5_decrypt (
1469	krb5_context /*context*/,
1470	krb5_crypto /*crypto*/,
1471	unsigned /*usage*/,
1472	void */*data*/,
1473	size_t /*len*/,
1474	krb5_data */*result*/);
1475
1476krb5_error_code KRB5_LIB_FUNCTION
1477heim_krb5_decrypt_EncryptedData (
1478	krb5_context /*context*/,
1479	krb5_crypto /*crypto*/,
1480	unsigned /*usage*/,
1481	const EncryptedData */*e*/,
1482	krb5_data */*result*/);
1483
1484krb5_error_code KRB5_LIB_FUNCTION
1485heim_krb5_decrypt_iov_ivec (
1486	krb5_context /*context*/,
1487	krb5_crypto /*crypto*/,
1488	unsigned /*usage*/,
1489	krb5_crypto_iov */*data*/,
1490	unsigned int /*num_data*/,
1491	void */*ivec*/);
1492
1493krb5_error_code KRB5_LIB_FUNCTION
1494heim_krb5_decrypt_ivec (
1495	krb5_context /*context*/,
1496	krb5_crypto /*crypto*/,
1497	unsigned /*usage*/,
1498	void */*data*/,
1499	size_t /*len*/,
1500	krb5_data */*result*/,
1501	void */*ivec*/);
1502
1503krb5_error_code KRB5_LIB_FUNCTION
1504heim_krb5_decrypt_ticket (
1505	krb5_context /*context*/,
1506	Ticket */*ticket*/,
1507	krb5_keyblock */*key*/,
1508	EncTicketPart */*out*/,
1509	krb5_flags /*flags*/);
1510
1511krb5_error_code KRB5_LIB_FUNCTION
1512heim_krb5_derive_key (
1513	krb5_context /*context*/,
1514	const krb5_keyblock */*key*/,
1515	krb5_enctype /*etype*/,
1516	const void */*constant*/,
1517	size_t /*constant_len*/,
1518	krb5_keyblock **/*derived_key*/);
1519
1520krb5_error_code
1521heim_krb5_digest_alloc (
1522	krb5_context /*context*/,
1523	krb5_digest */*digest*/);
1524
1525void
1526heim_krb5_digest_free (krb5_digest /*digest*/);
1527
1528krb5_error_code
1529heim_krb5_digest_get_client_binding (
1530	krb5_context /*context*/,
1531	krb5_digest /*digest*/,
1532	char **/*type*/,
1533	char **/*binding*/);
1534
1535const char *
1536heim_krb5_digest_get_identifier (
1537	krb5_context /*context*/,
1538	krb5_digest /*digest*/);
1539
1540const char *
1541heim_krb5_digest_get_opaque (
1542	krb5_context /*context*/,
1543	krb5_digest /*digest*/);
1544
1545const char *
1546heim_krb5_digest_get_rsp (
1547	krb5_context /*context*/,
1548	krb5_digest /*digest*/);
1549
1550const char *
1551heim_krb5_digest_get_server_nonce (
1552	krb5_context /*context*/,
1553	krb5_digest /*digest*/);
1554
1555krb5_error_code
1556heim_krb5_digest_get_session_key (
1557	krb5_context /*context*/,
1558	krb5_digest /*digest*/,
1559	krb5_data */*data*/);
1560
1561krb5_error_code
1562heim_krb5_digest_get_tickets (
1563	krb5_context /*context*/,
1564	krb5_digest /*digest*/,
1565	Ticket **/*tickets*/);
1566
1567krb5_error_code
1568heim_krb5_digest_init_request (
1569	krb5_context /*context*/,
1570	krb5_digest /*digest*/,
1571	krb5_realm /*realm*/,
1572	krb5_ccache /*ccache*/);
1573
1574krb5_error_code
1575heim_krb5_digest_probe (
1576	krb5_context /*context*/,
1577	krb5_realm /*realm*/,
1578	krb5_ccache /*ccache*/,
1579	unsigned */*flags*/);
1580
1581krb5_boolean
1582heim_krb5_digest_rep_get_status (
1583	krb5_context /*context*/,
1584	krb5_digest /*digest*/);
1585
1586krb5_error_code
1587heim_krb5_digest_request (
1588	krb5_context /*context*/,
1589	krb5_digest /*digest*/,
1590	krb5_realm /*realm*/,
1591	krb5_ccache /*ccache*/);
1592
1593krb5_error_code
1594heim_krb5_digest_set_authentication_user (
1595	krb5_context /*context*/,
1596	krb5_digest /*digest*/,
1597	krb5_principal /*authentication_user*/);
1598
1599krb5_error_code
1600heim_krb5_digest_set_authid (
1601	krb5_context /*context*/,
1602	krb5_digest /*digest*/,
1603	const char */*authid*/);
1604
1605krb5_error_code
1606heim_krb5_digest_set_client_nonce (
1607	krb5_context /*context*/,
1608	krb5_digest /*digest*/,
1609	const char */*nonce*/);
1610
1611krb5_error_code
1612heim_krb5_digest_set_digest (
1613	krb5_context /*context*/,
1614	krb5_digest /*digest*/,
1615	const char */*dgst*/);
1616
1617krb5_error_code
1618heim_krb5_digest_set_hostname (
1619	krb5_context /*context*/,
1620	krb5_digest /*digest*/,
1621	const char */*hostname*/);
1622
1623krb5_error_code
1624heim_krb5_digest_set_identifier (
1625	krb5_context /*context*/,
1626	krb5_digest /*digest*/,
1627	const char */*id*/);
1628
1629krb5_error_code
1630heim_krb5_digest_set_method (
1631	krb5_context /*context*/,
1632	krb5_digest /*digest*/,
1633	const char */*method*/);
1634
1635krb5_error_code
1636heim_krb5_digest_set_nonceCount (
1637	krb5_context /*context*/,
1638	krb5_digest /*digest*/,
1639	const char */*nonce_count*/);
1640
1641krb5_error_code
1642heim_krb5_digest_set_opaque (
1643	krb5_context /*context*/,
1644	krb5_digest /*digest*/,
1645	const char */*opaque*/);
1646
1647krb5_error_code
1648heim_krb5_digest_set_qop (
1649	krb5_context /*context*/,
1650	krb5_digest /*digest*/,
1651	const char */*qop*/);
1652
1653krb5_error_code
1654heim_krb5_digest_set_realm (
1655	krb5_context /*context*/,
1656	krb5_digest /*digest*/,
1657	const char */*realm*/);
1658
1659int
1660heim_krb5_digest_set_responseData (
1661	krb5_context /*context*/,
1662	krb5_digest /*digest*/,
1663	const char */*response*/);
1664
1665krb5_error_code
1666heim_krb5_digest_set_server_cb (
1667	krb5_context /*context*/,
1668	krb5_digest /*digest*/,
1669	const char */*type*/,
1670	const char */*binding*/);
1671
1672krb5_error_code
1673heim_krb5_digest_set_server_nonce (
1674	krb5_context /*context*/,
1675	krb5_digest /*digest*/,
1676	const char */*nonce*/);
1677
1678krb5_error_code
1679heim_krb5_digest_set_type (
1680	krb5_context /*context*/,
1681	krb5_digest /*digest*/,
1682	const char */*type*/);
1683
1684krb5_error_code
1685heim_krb5_digest_set_uri (
1686	krb5_context /*context*/,
1687	krb5_digest /*digest*/,
1688	const char */*uri*/);
1689
1690krb5_error_code
1691heim_krb5_digest_set_username (
1692	krb5_context /*context*/,
1693	krb5_digest /*digest*/,
1694	const char */*username*/);
1695
1696krb5_error_code KRB5_LIB_FUNCTION
1697heim_krb5_domain_x500_decode (
1698	krb5_context /*context*/,
1699	krb5_data /*tr*/,
1700	char ***/*realms*/,
1701	unsigned int */*num_realms*/,
1702	const char */*client_realm*/,
1703	const char */*server_realm*/);
1704
1705krb5_error_code KRB5_LIB_FUNCTION
1706heim_krb5_domain_x500_encode (
1707	char **/*realms*/,
1708	unsigned int /*num_realms*/,
1709	krb5_data */*encoding*/);
1710
1711krb5_error_code KRB5_LIB_FUNCTION
1712heim_krb5_eai_to_heim_errno (
1713	int /*eai_errno*/,
1714	int /*system_error*/);
1715
1716krb5_error_code KRB5_LIB_FUNCTION
1717heim_krb5_encode_Authenticator (
1718	krb5_context /*context*/,
1719	void */*data*/,
1720	size_t /*length*/,
1721	Authenticator */*t*/,
1722	size_t */*len*/)
1723     KRB5_DEPRECATED;
1724
1725krb5_error_code KRB5_LIB_FUNCTION
1726heim_krb5_encode_ETYPE_INFO (
1727	krb5_context /*context*/,
1728	void */*data*/,
1729	size_t /*length*/,
1730	ETYPE_INFO */*t*/,
1731	size_t */*len*/)
1732     KRB5_DEPRECATED;
1733
1734krb5_error_code KRB5_LIB_FUNCTION
1735heim_krb5_encode_ETYPE_INFO2 (
1736	krb5_context /*context*/,
1737	void */*data*/,
1738	size_t /*length*/,
1739	ETYPE_INFO2 */*t*/,
1740	size_t */*len*/)
1741     KRB5_DEPRECATED;
1742
1743krb5_error_code KRB5_LIB_FUNCTION
1744heim_krb5_encode_EncAPRepPart (
1745	krb5_context /*context*/,
1746	void */*data*/,
1747	size_t /*length*/,
1748	EncAPRepPart */*t*/,
1749	size_t */*len*/)
1750     KRB5_DEPRECATED;
1751
1752krb5_error_code KRB5_LIB_FUNCTION
1753heim_krb5_encode_EncASRepPart (
1754	krb5_context /*context*/,
1755	void */*data*/,
1756	size_t /*length*/,
1757	EncASRepPart */*t*/,
1758	size_t */*len*/)
1759     KRB5_DEPRECATED;
1760
1761krb5_error_code KRB5_LIB_FUNCTION
1762heim_krb5_encode_EncKrbCredPart (
1763	krb5_context /*context*/,
1764	void */*data*/,
1765	size_t /*length*/,
1766	EncKrbCredPart */*t*/,
1767	size_t */*len*/)
1768     KRB5_DEPRECATED;
1769
1770krb5_error_code KRB5_LIB_FUNCTION
1771heim_krb5_encode_EncTGSRepPart (
1772	krb5_context /*context*/,
1773	void */*data*/,
1774	size_t /*length*/,
1775	EncTGSRepPart */*t*/,
1776	size_t */*len*/)
1777     KRB5_DEPRECATED;
1778
1779krb5_error_code KRB5_LIB_FUNCTION
1780heim_krb5_encode_EncTicketPart (
1781	krb5_context /*context*/,
1782	void */*data*/,
1783	size_t /*length*/,
1784	EncTicketPart */*t*/,
1785	size_t */*len*/)
1786     KRB5_DEPRECATED;
1787
1788krb5_error_code KRB5_LIB_FUNCTION
1789heim_krb5_encrypt (
1790	krb5_context /*context*/,
1791	krb5_crypto /*crypto*/,
1792	unsigned /*usage*/,
1793	const void */*data*/,
1794	size_t /*len*/,
1795	krb5_data */*result*/);
1796
1797krb5_error_code KRB5_LIB_FUNCTION
1798heim_krb5_encrypt_EncryptedData (
1799	krb5_context /*context*/,
1800	krb5_crypto /*crypto*/,
1801	unsigned /*usage*/,
1802	void */*data*/,
1803	size_t /*len*/,
1804	int /*kvno*/,
1805	EncryptedData */*result*/);
1806
1807krb5_error_code KRB5_LIB_FUNCTION
1808heim_krb5_encrypt_iov_ivec (
1809	krb5_context /*context*/,
1810	krb5_crypto /*crypto*/,
1811	unsigned /*usage*/,
1812	krb5_crypto_iov */*data*/,
1813	int /*num_data*/,
1814	void */*ivec*/);
1815
1816krb5_error_code KRB5_LIB_FUNCTION
1817heim_krb5_encrypt_ivec (
1818	krb5_context /*context*/,
1819	krb5_crypto /*crypto*/,
1820	unsigned /*usage*/,
1821	const void */*data*/,
1822	size_t /*len*/,
1823	krb5_data */*result*/,
1824	void */*ivec*/);
1825
1826krb5_error_code KRB5_LIB_FUNCTION
1827heim_krb5_enctype_disable (
1828	krb5_context /*context*/,
1829	krb5_enctype /*enctype*/);
1830
1831krb5_error_code KRB5_LIB_FUNCTION
1832heim_krb5_enctype_enable (
1833	krb5_context /*context*/,
1834	krb5_enctype /*enctype*/);
1835
1836krb5_error_code KRB5_LIB_FUNCTION
1837heim_krb5_enctype_keybits (
1838	krb5_context /*context*/,
1839	krb5_enctype /*type*/,
1840	size_t */*keybits*/);
1841
1842krb5_error_code KRB5_LIB_FUNCTION
1843heim_krb5_enctype_keysize (
1844	krb5_context /*context*/,
1845	krb5_enctype /*type*/,
1846	size_t */*keysize*/);
1847
1848krb5_error_code KRB5_LIB_FUNCTION
1849heim_krb5_enctype_to_keytype (
1850	krb5_context /*context*/,
1851	krb5_enctype /*etype*/,
1852	krb5_keytype */*keytype*/);
1853
1854krb5_error_code KRB5_LIB_FUNCTION
1855heim_krb5_enctype_to_string (
1856	krb5_context /*context*/,
1857	krb5_enctype /*etype*/,
1858	char **/*string*/);
1859
1860krb5_error_code KRB5_LIB_FUNCTION
1861heim_krb5_enctype_valid (
1862	krb5_context /*context*/,
1863	krb5_enctype /*etype*/);
1864
1865krb5_boolean KRB5_LIB_FUNCTION
1866heim_krb5_enctypes_compatible_keys (
1867	krb5_context /*context*/,
1868	krb5_enctype /*etype1*/,
1869	krb5_enctype /*etype2*/)
1870     KRB5_DEPRECATED;
1871
1872krb5_error_code KRB5_LIB_FUNCTION
1873heim_krb5_err (
1874	krb5_context /*context*/,
1875	int /*eval*/,
1876	krb5_error_code /*code*/,
1877	const char */*fmt*/,
1878	...)
1879     __attribute__ ((noreturn, format (printf, 4, 5)));
1880
1881krb5_error_code KRB5_LIB_FUNCTION
1882heim_krb5_error_from_rd_error (
1883	krb5_context /*context*/,
1884	const krb5_error */*error*/,
1885	const krb5_creds */*creds*/);
1886
1887krb5_error_code KRB5_LIB_FUNCTION
1888heim_krb5_errx (
1889	krb5_context /*context*/,
1890	int /*eval*/,
1891	const char */*fmt*/,
1892	...)
1893     __attribute__ ((noreturn, format (printf, 3, 4)));
1894
1895krb5_error_code KRB5_LIB_FUNCTION
1896heim_krb5_expand_hostname (
1897	krb5_context /*context*/,
1898	const char */*orig_hostname*/,
1899	char **/*new_hostname*/);
1900
1901krb5_error_code KRB5_LIB_FUNCTION
1902heim_krb5_expand_hostname_realms (
1903	krb5_context /*context*/,
1904	const char */*orig_hostname*/,
1905	char **/*new_hostname*/,
1906	char ***/*realms*/);
1907
1908PA_DATA *
1909heim_krb5_find_padata (
1910	PA_DATA */*val*/,
1911	unsigned /*len*/,
1912	int /*type*/,
1913	int */*idx*/);
1914
1915krb5_error_code KRB5_LIB_FUNCTION
1916heim_krb5_format_time (
1917	krb5_context /*context*/,
1918	time_t /*t*/,
1919	char */*s*/,
1920	size_t /*len*/,
1921	krb5_boolean /*include_time*/);
1922
1923krb5_error_code KRB5_LIB_FUNCTION
1924heim_krb5_free_address (
1925	krb5_context /*context*/,
1926	krb5_address */*address*/);
1927
1928krb5_error_code KRB5_LIB_FUNCTION
1929heim_krb5_free_addresses (
1930	krb5_context /*context*/,
1931	krb5_addresses */*addresses*/);
1932
1933void KRB5_LIB_FUNCTION
1934heim_krb5_free_ap_rep_enc_part (
1935	krb5_context /*context*/,
1936	krb5_ap_rep_enc_part */*val*/);
1937
1938void KRB5_LIB_FUNCTION
1939heim_krb5_free_authenticator (
1940	krb5_context /*context*/,
1941	krb5_authenticator */*authenticator*/);
1942
1943void KRB5_LIB_FUNCTION
1944heim_krb5_free_checksum (
1945	krb5_context /*context*/,
1946	krb5_checksum */*cksum*/);
1947
1948void KRB5_LIB_FUNCTION
1949heim_krb5_free_checksum_contents (
1950	krb5_context /*context*/,
1951	krb5_checksum */*cksum*/);
1952
1953void KRB5_LIB_FUNCTION
1954heim_krb5_free_config_files (char **/*filenames*/);
1955
1956void KRB5_LIB_FUNCTION
1957heim_krb5_free_context (krb5_context /*context*/);
1958
1959krb5_error_code KRB5_LIB_FUNCTION
1960heim_krb5_free_cred_contents (
1961	krb5_context /*context*/,
1962	krb5_creds */*c*/);
1963
1964krb5_error_code KRB5_LIB_FUNCTION
1965heim_krb5_free_creds (
1966	krb5_context /*context*/,
1967	krb5_creds */*c*/);
1968
1969krb5_error_code KRB5_LIB_FUNCTION
1970heim_krb5_free_creds_contents (
1971	krb5_context /*context*/,
1972	krb5_creds */*c*/)
1973     KRB5_DEPRECATED;
1974
1975void KRB5_LIB_FUNCTION
1976heim_krb5_free_data (
1977	krb5_context /*context*/,
1978	krb5_data */*p*/);
1979
1980void KRB5_LIB_FUNCTION
1981heim_krb5_free_data_contents (
1982	krb5_context /*context*/,
1983	krb5_data */*data*/)
1984     KRB5_DEPRECATED;
1985
1986void KRB5_LIB_FUNCTION
1987heim_krb5_free_error (
1988	krb5_context /*context*/,
1989	krb5_error */*error*/);
1990
1991void KRB5_LIB_FUNCTION
1992heim_krb5_free_error_contents (
1993	krb5_context /*context*/,
1994	krb5_error */*error*/);
1995
1996void KRB5_LIB_FUNCTION
1997heim_krb5_free_error_message (
1998	krb5_context /*context*/,
1999	const char */*msg*/);
2000
2001void KRB5_LIB_FUNCTION
2002heim_krb5_free_error_string (
2003	krb5_context /*context*/,
2004	char */*str*/)
2005     KRB5_DEPRECATED;
2006
2007krb5_error_code KRB5_LIB_FUNCTION
2008heim_krb5_free_host_realm (
2009	krb5_context /*context*/,
2010	krb5_realm */*realmlist*/);
2011
2012krb5_error_code KRB5_LIB_FUNCTION
2013heim_krb5_free_kdc_rep (
2014	krb5_context /*context*/,
2015	krb5_kdc_rep */*rep*/);
2016
2017void KRB5_LIB_FUNCTION
2018heim_krb5_free_keyblock (
2019	krb5_context /*context*/,
2020	krb5_keyblock */*keyblock*/);
2021
2022void KRB5_LIB_FUNCTION
2023heim_krb5_free_keyblock_contents (
2024	krb5_context /*context*/,
2025	krb5_keyblock */*keyblock*/);
2026
2027krb5_error_code KRB5_LIB_FUNCTION
2028heim_krb5_free_krbhst (
2029	krb5_context /*context*/,
2030	char **/*hostlist*/);
2031
2032void KRB5_LIB_FUNCTION
2033heim_krb5_free_principal (
2034	krb5_context /*context*/,
2035	krb5_principal /*p*/);
2036
2037krb5_error_code KRB5_LIB_FUNCTION
2038heim_krb5_free_salt (
2039	krb5_context /*context*/,
2040	krb5_salt /*salt*/);
2041
2042krb5_error_code KRB5_LIB_FUNCTION
2043heim_krb5_free_ticket (
2044	krb5_context /*context*/,
2045	krb5_ticket */*ticket*/);
2046
2047krb5_error_code KRB5_LIB_FUNCTION
2048heim_krb5_fwd_tgt_creds (
2049	krb5_context /*context*/,
2050	krb5_auth_context /*auth_context*/,
2051	const char */*hostname*/,
2052	krb5_principal /*client*/,
2053	krb5_principal /*server*/,
2054	krb5_ccache /*ccache*/,
2055	int /*forwardable*/,
2056	krb5_data */*out_data*/);
2057
2058void KRB5_LIB_FUNCTION
2059heim_krb5_generate_random_block (
2060	void */*buf*/,
2061	size_t /*len*/);
2062
2063krb5_error_code KRB5_LIB_FUNCTION
2064heim_krb5_generate_random_keyblock (
2065	krb5_context /*context*/,
2066	krb5_enctype /*type*/,
2067	krb5_keyblock */*key*/);
2068
2069krb5_error_code KRB5_LIB_FUNCTION
2070heim_krb5_generate_seq_number (
2071	krb5_context /*context*/,
2072	const krb5_keyblock */*key*/,
2073	uint32_t */*seqno*/);
2074
2075krb5_error_code KRB5_LIB_FUNCTION
2076heim_krb5_generate_subkey (
2077	krb5_context /*context*/,
2078	const krb5_keyblock */*key*/,
2079	krb5_keyblock **/*subkey*/);
2080
2081krb5_error_code KRB5_LIB_FUNCTION
2082heim_krb5_generate_subkey_extended (
2083	krb5_context /*context*/,
2084	const krb5_keyblock */*key*/,
2085	krb5_enctype /*etype*/,
2086	krb5_keyblock **/*subkey*/);
2087
2088krb5_error_code KRB5_LIB_FUNCTION
2089heim_krb5_get_all_client_addrs (
2090	krb5_context /*context*/,
2091	krb5_addresses */*res*/);
2092
2093krb5_error_code KRB5_LIB_FUNCTION
2094heim_krb5_get_all_server_addrs (
2095	krb5_context /*context*/,
2096	krb5_addresses */*res*/);
2097
2098krb5_error_code KRB5_LIB_FUNCTION
2099heim_krb5_get_cred_from_kdc (
2100	krb5_context /*context*/,
2101	krb5_ccache /*ccache*/,
2102	krb5_creds */*in_creds*/,
2103	krb5_creds **/*out_creds*/,
2104	krb5_creds ***/*ret_tgts*/);
2105
2106krb5_error_code KRB5_LIB_FUNCTION
2107heim_krb5_get_cred_from_kdc_opt (
2108	krb5_context /*context*/,
2109	krb5_ccache /*ccache*/,
2110	krb5_creds */*in_creds*/,
2111	krb5_creds **/*out_creds*/,
2112	krb5_creds ***/*ret_tgts*/,
2113	krb5_flags /*flags*/);
2114
2115krb5_error_code KRB5_LIB_FUNCTION
2116heim_krb5_get_credentials (
2117	krb5_context /*context*/,
2118	krb5_flags /*options*/,
2119	krb5_ccache /*ccache*/,
2120	krb5_creds */*in_creds*/,
2121	krb5_creds **/*out_creds*/);
2122
2123krb5_error_code KRB5_LIB_FUNCTION
2124heim_krb5_get_credentials_with_flags (
2125	krb5_context /*context*/,
2126	krb5_flags /*options*/,
2127	krb5_kdc_flags /*flags*/,
2128	krb5_ccache /*ccache*/,
2129	krb5_creds */*in_creds*/,
2130	krb5_creds **/*out_creds*/);
2131
2132krb5_error_code KRB5_LIB_FUNCTION
2133heim_krb5_get_creds (
2134	krb5_context /*context*/,
2135	krb5_get_creds_opt /*opt*/,
2136	krb5_ccache /*ccache*/,
2137	krb5_const_principal /*inprinc*/,
2138	krb5_creds **/*out_creds*/);
2139
2140void KRB5_LIB_FUNCTION
2141heim_krb5_get_creds_opt_add_options (
2142	krb5_context /*context*/,
2143	krb5_get_creds_opt /*opt*/,
2144	krb5_flags /*options*/);
2145
2146krb5_error_code KRB5_LIB_FUNCTION
2147heim_krb5_get_creds_opt_alloc (
2148	krb5_context /*context*/,
2149	krb5_get_creds_opt */*opt*/);
2150
2151void KRB5_LIB_FUNCTION
2152heim_krb5_get_creds_opt_free (
2153	krb5_context /*context*/,
2154	krb5_get_creds_opt /*opt*/);
2155
2156void KRB5_LIB_FUNCTION
2157heim_krb5_get_creds_opt_set_enctype (
2158	krb5_context /*context*/,
2159	krb5_get_creds_opt /*opt*/,
2160	krb5_enctype /*enctype*/);
2161
2162krb5_error_code KRB5_LIB_FUNCTION
2163heim_krb5_get_creds_opt_set_impersonate (
2164	krb5_context /*context*/,
2165	krb5_get_creds_opt /*opt*/,
2166	krb5_const_principal /*self*/);
2167
2168void KRB5_LIB_FUNCTION
2169heim_krb5_get_creds_opt_set_options (
2170	krb5_context /*context*/,
2171	krb5_get_creds_opt /*opt*/,
2172	krb5_flags /*options*/);
2173
2174krb5_error_code KRB5_LIB_FUNCTION
2175heim_krb5_get_creds_opt_set_ticket (
2176	krb5_context /*context*/,
2177	krb5_get_creds_opt /*opt*/,
2178	const Ticket */*ticket*/);
2179
2180krb5_error_code KRB5_LIB_FUNCTION
2181heim_krb5_get_default_config_files (char ***/*pfilenames*/);
2182
2183krb5_error_code KRB5_LIB_FUNCTION
2184heim_krb5_get_default_in_tkt_etypes (
2185	krb5_context /*context*/,
2186	krb5_enctype **/*etypes*/);
2187
2188krb5_error_code KRB5_LIB_FUNCTION
2189heim_krb5_get_default_principal (
2190	krb5_context /*context*/,
2191	krb5_principal */*princ*/);
2192
2193krb5_error_code KRB5_LIB_FUNCTION
2194heim_krb5_get_default_realm (
2195	krb5_context /*context*/,
2196	krb5_realm */*realm*/);
2197
2198krb5_error_code KRB5_LIB_FUNCTION
2199heim_krb5_get_default_realms (
2200	krb5_context /*context*/,
2201	krb5_realm **/*realms*/);
2202
2203krb5_boolean KRB5_LIB_FUNCTION
2204heim_krb5_get_dns_canonicalize_hostname (krb5_context /*context*/);
2205
2206const char* KRB5_LIB_FUNCTION
2207heim_krb5_get_err_text (
2208	krb5_context /*context*/,
2209	krb5_error_code /*code*/);
2210
2211const char * KRB5_LIB_FUNCTION
2212heim_krb5_get_error_message (
2213	krb5_context /*context*/,
2214	krb5_error_code /*code*/);
2215
2216char * KRB5_LIB_FUNCTION
2217heim_krb5_get_error_string (krb5_context /*context*/);
2218
2219krb5_error_code KRB5_LIB_FUNCTION
2220heim_krb5_get_extra_addresses (
2221	krb5_context /*context*/,
2222	krb5_addresses */*addresses*/);
2223
2224krb5_error_code KRB5_LIB_FUNCTION
2225heim_krb5_get_fcache_version (
2226	krb5_context /*context*/,
2227	int */*version*/);
2228
2229krb5_error_code KRB5_LIB_FUNCTION
2230heim_krb5_get_forwarded_creds (
2231	krb5_context /*context*/,
2232	krb5_auth_context /*auth_context*/,
2233	krb5_ccache /*ccache*/,
2234	krb5_flags /*flags*/,
2235	const char */*hostname*/,
2236	krb5_creds */*in_creds*/,
2237	krb5_data */*out_data*/);
2238
2239krb5_error_code KRB5_LIB_FUNCTION
2240heim_krb5_get_host_realm (
2241	krb5_context /*context*/,
2242	const char */*targethost*/,
2243	krb5_realm **/*realms*/);
2244
2245krb5_error_code KRB5_LIB_FUNCTION
2246heim_krb5_get_ignore_addresses (
2247	krb5_context /*context*/,
2248	krb5_addresses */*addresses*/);
2249
2250krb5_error_code KRB5_LIB_FUNCTION
2251heim_krb5_get_in_cred (
2252	krb5_context /*context*/,
2253	krb5_flags /*options*/,
2254	const krb5_addresses */*addrs*/,
2255	const krb5_enctype */*etypes*/,
2256	const krb5_preauthtype */*ptypes*/,
2257	const krb5_preauthdata */*preauth*/,
2258	krb5_key_proc /*key_proc*/,
2259	krb5_const_pointer /*keyseed*/,
2260	krb5_decrypt_proc /*decrypt_proc*/,
2261	krb5_const_pointer /*decryptarg*/,
2262	krb5_creds */*creds*/,
2263	krb5_kdc_rep */*ret_as_reply*/)
2264     KRB5_DEPRECATED;
2265
2266krb5_error_code KRB5_LIB_FUNCTION
2267heim_krb5_get_in_tkt (
2268	krb5_context /*context*/,
2269	krb5_flags /*options*/,
2270	const krb5_addresses */*addrs*/,
2271	const krb5_enctype */*etypes*/,
2272	const krb5_preauthtype */*ptypes*/,
2273	krb5_key_proc /*key_proc*/,
2274	krb5_const_pointer /*keyseed*/,
2275	krb5_decrypt_proc /*decrypt_proc*/,
2276	krb5_const_pointer /*decryptarg*/,
2277	krb5_creds */*creds*/,
2278	krb5_ccache /*ccache*/,
2279	krb5_kdc_rep */*ret_as_reply*/)
2280     KRB5_DEPRECATED;
2281
2282krb5_error_code KRB5_LIB_FUNCTION
2283heim_krb5_get_in_tkt_with_keytab (
2284	krb5_context /*context*/,
2285	krb5_flags /*options*/,
2286	krb5_addresses */*addrs*/,
2287	const krb5_enctype */*etypes*/,
2288	const krb5_preauthtype */*pre_auth_types*/,
2289	krb5_keytab /*keytab*/,
2290	krb5_ccache /*ccache*/,
2291	krb5_creds */*creds*/,
2292	krb5_kdc_rep */*ret_as_reply*/)
2293     KRB5_DEPRECATED;
2294
2295krb5_error_code KRB5_LIB_FUNCTION
2296heim_krb5_get_in_tkt_with_password (
2297	krb5_context /*context*/,
2298	krb5_flags /*options*/,
2299	krb5_addresses */*addrs*/,
2300	const krb5_enctype */*etypes*/,
2301	const krb5_preauthtype */*pre_auth_types*/,
2302	const char */*password*/,
2303	krb5_ccache /*ccache*/,
2304	krb5_creds */*creds*/,
2305	krb5_kdc_rep */*ret_as_reply*/)
2306     KRB5_DEPRECATED;
2307
2308krb5_error_code KRB5_LIB_FUNCTION
2309heim_krb5_get_in_tkt_with_skey (
2310	krb5_context /*context*/,
2311	krb5_flags /*options*/,
2312	krb5_addresses */*addrs*/,
2313	const krb5_enctype */*etypes*/,
2314	const krb5_preauthtype */*pre_auth_types*/,
2315	const krb5_keyblock */*key*/,
2316	krb5_ccache /*ccache*/,
2317	krb5_creds */*creds*/,
2318	krb5_kdc_rep */*ret_as_reply*/)
2319     KRB5_DEPRECATED;
2320
2321krb5_error_code KRB5_LIB_FUNCTION
2322heim_krb5_get_init_creds_keyblock (
2323	krb5_context /*context*/,
2324	krb5_creds */*creds*/,
2325	krb5_principal /*client*/,
2326	krb5_keyblock */*keyblock*/,
2327	krb5_deltat /*start_time*/,
2328	const char */*in_tkt_service*/,
2329	krb5_get_init_creds_opt */*options*/);
2330
2331krb5_error_code KRB5_LIB_FUNCTION
2332heim_krb5_get_init_creds_keytab (
2333	krb5_context /*context*/,
2334	krb5_creds */*creds*/,
2335	krb5_principal /*client*/,
2336	krb5_keytab /*keytab*/,
2337	krb5_deltat /*start_time*/,
2338	const char */*in_tkt_service*/,
2339	krb5_get_init_creds_opt */*options*/);
2340
2341krb5_error_code KRB5_LIB_FUNCTION
2342heim_krb5_get_init_creds_opt_alloc (
2343	krb5_context /*context*/,
2344	krb5_get_init_creds_opt **/*opt*/);
2345
2346void KRB5_LIB_FUNCTION
2347heim_krb5_get_init_creds_opt_free (
2348	krb5_context /*context*/,
2349	krb5_get_init_creds_opt */*opt*/);
2350
2351krb5_error_code KRB5_LIB_FUNCTION
2352heim_krb5_get_init_creds_opt_get_error (
2353	krb5_context /*context*/,
2354	krb5_get_init_creds_opt */*opt*/,
2355	KRB_ERROR **/*error*/)
2356     KRB5_DEPRECATED;
2357
2358void KRB5_LIB_FUNCTION
2359heim_krb5_get_init_creds_opt_init (krb5_get_init_creds_opt */*opt*/)
2360     KRB5_DEPRECATED;
2361
2362void KRB5_LIB_FUNCTION
2363heim_krb5_get_init_creds_opt_set_address_list (
2364	krb5_get_init_creds_opt */*opt*/,
2365	krb5_addresses */*addresses*/);
2366
2367krb5_error_code KRB5_LIB_FUNCTION
2368heim_krb5_get_init_creds_opt_set_addressless (
2369	krb5_context /*context*/,
2370	krb5_get_init_creds_opt */*opt*/,
2371	krb5_boolean /*addressless*/);
2372
2373void KRB5_LIB_FUNCTION
2374heim_krb5_get_init_creds_opt_set_anonymous (
2375	krb5_get_init_creds_opt */*opt*/,
2376	int /*anonymous*/);
2377
2378krb5_error_code KRB5_LIB_FUNCTION
2379heim_krb5_get_init_creds_opt_set_canonicalize (
2380	krb5_context /*context*/,
2381	krb5_get_init_creds_opt */*opt*/,
2382	krb5_boolean /*req*/);
2383
2384void KRB5_LIB_FUNCTION
2385heim_krb5_get_init_creds_opt_set_default_flags (
2386	krb5_context /*context*/,
2387	const char */*appname*/,
2388	krb5_const_realm /*realm*/,
2389	krb5_get_init_creds_opt */*opt*/);
2390
2391void KRB5_LIB_FUNCTION
2392heim_krb5_get_init_creds_opt_set_etype_list (
2393	krb5_get_init_creds_opt */*opt*/,
2394	krb5_enctype */*etype_list*/,
2395	int /*etype_list_length*/);
2396
2397void KRB5_LIB_FUNCTION
2398heim_krb5_get_init_creds_opt_set_forwardable (
2399	krb5_get_init_creds_opt */*opt*/,
2400	int /*forwardable*/);
2401
2402krb5_error_code KRB5_LIB_FUNCTION
2403heim_krb5_get_init_creds_opt_set_pa_password (
2404	krb5_context /*context*/,
2405	krb5_get_init_creds_opt */*opt*/,
2406	const char */*password*/,
2407	krb5_s2k_proc /*key_proc*/);
2408
2409krb5_error_code KRB5_LIB_FUNCTION
2410heim_krb5_get_init_creds_opt_set_pac_request (
2411	krb5_context /*context*/,
2412	krb5_get_init_creds_opt */*opt*/,
2413	krb5_boolean /*req_pac*/);
2414
2415krb5_error_code KRB5_LIB_FUNCTION
2416heim_krb5_get_init_creds_opt_set_pkinit (
2417	krb5_context /*context*/,
2418	krb5_get_init_creds_opt */*opt*/,
2419	krb5_principal /*principal*/,
2420	const char */*user_id*/,
2421	const char */*x509_anchors*/,
2422	char * const * /*pool*/,
2423	char * const * /*pki_revoke*/,
2424	int /*flags*/,
2425	krb5_prompter_fct /*prompter*/,
2426	void */*prompter_data*/,
2427	char */*password*/);
2428
2429void KRB5_LIB_FUNCTION
2430heim_krb5_get_init_creds_opt_set_preauth_list (
2431	krb5_get_init_creds_opt */*opt*/,
2432	krb5_preauthtype */*preauth_list*/,
2433	int /*preauth_list_length*/);
2434
2435krb5_error_code KRB5_LIB_FUNCTION
2436heim_krb5_get_init_creds_opt_set_process_last_req (
2437	krb5_context /*context*/,
2438	krb5_get_init_creds_opt */*opt*/,
2439	krb5_gic_process_last_req /*func*/,
2440	void */*ctx*/);
2441
2442void KRB5_LIB_FUNCTION
2443heim_krb5_get_init_creds_opt_set_proxiable (
2444	krb5_get_init_creds_opt */*opt*/,
2445	int /*proxiable*/);
2446
2447void KRB5_LIB_FUNCTION
2448heim_krb5_get_init_creds_opt_set_renew_life (
2449	krb5_get_init_creds_opt */*opt*/,
2450	krb5_deltat /*renew_life*/);
2451
2452void KRB5_LIB_FUNCTION
2453heim_krb5_get_init_creds_opt_set_salt (
2454	krb5_get_init_creds_opt */*opt*/,
2455	krb5_data */*salt*/);
2456
2457void KRB5_LIB_FUNCTION
2458heim_krb5_get_init_creds_opt_set_tkt_life (
2459	krb5_get_init_creds_opt */*opt*/,
2460	krb5_deltat /*tkt_life*/);
2461
2462krb5_error_code KRB5_LIB_FUNCTION
2463heim_krb5_get_init_creds_opt_set_win2k (
2464	krb5_context /*context*/,
2465	krb5_get_init_creds_opt */*opt*/,
2466	krb5_boolean /*req*/);
2467
2468krb5_error_code KRB5_LIB_FUNCTION
2469heim_krb5_get_init_creds_password (
2470	krb5_context /*context*/,
2471	krb5_creds */*creds*/,
2472	krb5_principal /*client*/,
2473	const char */*password*/,
2474	krb5_prompter_fct /*prompter*/,
2475	void */*data*/,
2476	krb5_deltat /*start_time*/,
2477	const char */*in_tkt_service*/,
2478	krb5_get_init_creds_opt */*options*/);
2479
2480krb5_error_code KRB5_LIB_FUNCTION
2481heim_krb5_get_kdc_cred (
2482	krb5_context /*context*/,
2483	krb5_ccache /*id*/,
2484	krb5_kdc_flags /*flags*/,
2485	krb5_addresses */*addresses*/,
2486	Ticket */*second_ticket*/,
2487	krb5_creds */*in_creds*/,
2488	krb5_creds **out_creds );
2489
2490krb5_error_code KRB5_LIB_FUNCTION
2491heim_krb5_get_kdc_sec_offset (
2492	krb5_context /*context*/,
2493	int32_t */*sec*/,
2494	int32_t */*usec*/);
2495
2496krb5_error_code KRB5_LIB_FUNCTION
2497heim_krb5_get_krb524hst (
2498	krb5_context /*context*/,
2499	const krb5_realm */*realm*/,
2500	char ***/*hostlist*/);
2501
2502krb5_error_code KRB5_LIB_FUNCTION
2503heim_krb5_get_krb_admin_hst (
2504	krb5_context /*context*/,
2505	const krb5_realm */*realm*/,
2506	char ***/*hostlist*/);
2507
2508krb5_error_code KRB5_LIB_FUNCTION
2509heim_krb5_get_krb_changepw_hst (
2510	krb5_context /*context*/,
2511	const krb5_realm */*realm*/,
2512	char ***/*hostlist*/);
2513
2514krb5_error_code KRB5_LIB_FUNCTION
2515heim_krb5_get_krbhst (
2516	krb5_context /*context*/,
2517	const krb5_realm */*realm*/,
2518	char ***/*hostlist*/);
2519
2520time_t KRB5_LIB_FUNCTION
2521heim_krb5_get_max_time_skew (krb5_context /*context*/);
2522
2523krb5_error_code KRB5_LIB_FUNCTION
2524heim_krb5_get_pw_salt (
2525	krb5_context /*context*/,
2526	krb5_const_principal /*principal*/,
2527	krb5_salt */*salt*/);
2528
2529krb5_error_code KRB5_LIB_FUNCTION
2530heim_krb5_get_renewed_creds (
2531	krb5_context /*context*/,
2532	krb5_creds */*creds*/,
2533	krb5_const_principal /*client*/,
2534	krb5_ccache /*ccache*/,
2535	const char */*in_tkt_service*/);
2536
2537krb5_error_code KRB5_LIB_FUNCTION
2538heim_krb5_get_server_rcache (
2539	krb5_context /*context*/,
2540	const krb5_data */*piece*/,
2541	krb5_rcache */*id*/);
2542
2543krb5_boolean KRB5_LIB_FUNCTION
2544heim_krb5_get_use_admin_kdc (krb5_context /*context*/);
2545
2546krb5_error_code KRB5_LIB_FUNCTION
2547heim_krb5_get_validated_creds (
2548	krb5_context /*context*/,
2549	krb5_creds */*creds*/,
2550	krb5_principal /*client*/,
2551	krb5_ccache /*ccache*/,
2552	char */*service*/);
2553
2554krb5_log_facility * KRB5_LIB_FUNCTION
2555heim_krb5_get_warn_dest (krb5_context /*context*/);
2556
2557size_t
2558heim_krb5_get_wrapped_length (
2559	krb5_context /*context*/,
2560	krb5_crypto /*crypto*/,
2561	size_t /*data_len*/);
2562
2563int KRB5_LIB_FUNCTION
2564heim_krb5_getportbyname (
2565	krb5_context /*context*/,
2566	const char */*service*/,
2567	const char */*proto*/,
2568	int /*default_port*/);
2569
2570krb5_error_code KRB5_LIB_FUNCTION
2571heim_krb5_h_addr2addr (
2572	krb5_context /*context*/,
2573	int /*af*/,
2574	const char */*haddr*/,
2575	krb5_address */*addr*/);
2576
2577krb5_error_code KRB5_LIB_FUNCTION
2578heim_krb5_h_addr2sockaddr (
2579	krb5_context /*context*/,
2580	int /*af*/,
2581	const char */*addr*/,
2582	struct sockaddr */*sa*/,
2583	krb5_socklen_t */*sa_size*/,
2584	int /*port*/);
2585
2586krb5_error_code KRB5_LIB_FUNCTION
2587heim_krb5_h_errno_to_heim_errno (int /*eai_errno*/);
2588
2589krb5_boolean KRB5_LIB_FUNCTION
2590heim_krb5_have_error_string (krb5_context /*context*/);
2591
2592krb5_error_code KRB5_LIB_FUNCTION
2593heim_krb5_hmac (
2594	krb5_context /*context*/,
2595	krb5_cksumtype /*cktype*/,
2596	const void */*data*/,
2597	size_t /*len*/,
2598	unsigned /*usage*/,
2599	krb5_keyblock */*key*/,
2600	Checksum */*result*/);
2601
2602krb5_error_code KRB5_LIB_FUNCTION
2603heim_krb5_init_context (krb5_context */*context*/);
2604
2605krb5_error_code KRB5_LIB_FUNCTION
2606heim_krb5_init_context_flags(unsigned int /*flags*/, krb5_context */*context*/);
2607
2608void KRB5_LIB_FUNCTION
2609heim_krb5_init_creds_free (
2610	krb5_context /*context*/,
2611	krb5_init_creds_context /*ctx*/);
2612
2613krb5_error_code KRB5_LIB_FUNCTION
2614heim_krb5_init_creds_get (
2615	krb5_context /*context*/,
2616	krb5_init_creds_context /*ctx*/);
2617
2618krb5_error_code KRB5_LIB_FUNCTION
2619heim_krb5_init_creds_get_creds (
2620	krb5_context /*context*/,
2621	krb5_init_creds_context /*ctx*/,
2622	krb5_creds */*cred*/);
2623
2624krb5_error_code KRB5_LIB_FUNCTION
2625heim_krb5_init_creds_get_error (
2626	krb5_context /*context*/,
2627	krb5_init_creds_context /*ctx*/,
2628	KRB_ERROR */*error*/);
2629
2630krb5_error_code KRB5_LIB_FUNCTION
2631heim_krb5_init_creds_init (
2632	krb5_context /*context*/,
2633	krb5_principal /*client*/,
2634	krb5_prompter_fct /*prompter*/,
2635	void */*prompter_data*/,
2636	krb5_deltat /*start_time*/,
2637	krb5_get_init_creds_opt */*options*/,
2638	krb5_init_creds_context */*rctx*/);
2639
2640krb5_error_code KRB5_LIB_FUNCTION
2641heim_krb5_init_creds_set_keyblock (
2642	krb5_context /*context*/,
2643	krb5_init_creds_context /*ctx*/,
2644	krb5_keyblock */*keyblock*/);
2645
2646krb5_error_code KRB5_LIB_FUNCTION
2647heim_krb5_init_creds_set_keytab (
2648	krb5_context /*context*/,
2649	krb5_init_creds_context /*ctx*/,
2650	krb5_keytab /*keytab*/);
2651
2652krb5_error_code KRB5_LIB_FUNCTION
2653heim_krb5_init_creds_set_password (
2654	krb5_context /*context*/,
2655	krb5_init_creds_context /*ctx*/,
2656	const char */*password*/);
2657
2658krb5_error_code KRB5_LIB_FUNCTION
2659heim_krb5_init_creds_set_service (
2660	krb5_context /*context*/,
2661	krb5_init_creds_context /*ctx*/,
2662	const char */*service*/);
2663
2664krb5_error_code KRB5_LIB_FUNCTION
2665heim_krb5_init_creds_step (
2666	krb5_context /*context*/,
2667	krb5_init_creds_context /*ctx*/,
2668	krb5_data */*in*/,
2669	krb5_data */*out*/,
2670	krb5_krbhst_info */*hostinfo*/,
2671	unsigned int */*flags*/);
2672
2673void KRB5_LIB_FUNCTION
2674heim_krb5_init_ets (krb5_context /*context*/);
2675
2676krb5_error_code KRB5_LIB_FUNCTION
2677heim_krb5_init_etype (
2678	krb5_context /*context*/,
2679	unsigned */*len*/,
2680	krb5_enctype **/*val*/,
2681	const krb5_enctype */*etypes*/);
2682
2683krb5_error_code KRB5_LIB_FUNCTION
2684heim_krb5_initlog (
2685	krb5_context /*context*/,
2686	const char */*program*/,
2687	krb5_log_facility **/*fac*/);
2688
2689krb5_boolean KRB5_LIB_FUNCTION
2690heim_krb5_is_config_principal (
2691	krb5_context /*context*/,
2692	krb5_const_principal /*principal*/);
2693
2694krb5_boolean KRB5_LIB_FUNCTION
2695heim_krb5_is_thread_safe (void);
2696
2697const krb5_enctype * KRB5_LIB_FUNCTION
2698heim_krb5_kerberos_enctypes (krb5_context /*context*/);
2699
2700krb5_enctype
2701heim_krb5_keyblock_get_enctype (const krb5_keyblock */*block*/);
2702
2703krb5_error_code KRB5_LIB_FUNCTION
2704heim_krb5_keyblock_init (
2705	krb5_context /*context*/,
2706	krb5_enctype /*type*/,
2707	const void */*data*/,
2708	size_t /*size*/,
2709	krb5_keyblock */*key*/);
2710
2711krb5_error_code KRB5_LIB_FUNCTION
2712heim_krb5_keyblock_key_proc (
2713	krb5_context /*context*/,
2714	krb5_keytype /*type*/,
2715	krb5_data */*salt*/,
2716	krb5_const_pointer /*keyseed*/,
2717	krb5_keyblock **/*key*/);
2718
2719void KRB5_LIB_FUNCTION
2720heim_krb5_keyblock_zero (krb5_keyblock */*keyblock*/);
2721
2722krb5_error_code KRB5_LIB_FUNCTION
2723heim_krb5_keytab_key_proc (
2724	krb5_context /*context*/,
2725	krb5_enctype /*enctype*/,
2726	krb5_salt /*salt*/,
2727	krb5_const_pointer /*keyseed*/,
2728	krb5_keyblock **/*key*/)
2729     KRB5_DEPRECATED;
2730
2731krb5_error_code KRB5_LIB_FUNCTION
2732heim_krb5_keytype_to_enctypes (
2733	krb5_context /*context*/,
2734	krb5_keytype /*keytype*/,
2735	unsigned */*len*/,
2736	krb5_enctype **/*val*/)
2737     KRB5_DEPRECATED;
2738
2739krb5_error_code KRB5_LIB_FUNCTION
2740heim_krb5_keytype_to_enctypes_default (
2741	krb5_context /*context*/,
2742	krb5_keytype /*keytype*/,
2743	unsigned */*len*/,
2744	krb5_enctype **/*val*/)
2745     KRB5_DEPRECATED;
2746
2747krb5_error_code KRB5_LIB_FUNCTION
2748heim_krb5_keytype_to_string (
2749	krb5_context /*context*/,
2750	krb5_keytype /*keytype*/,
2751	char **/*string*/)
2752     KRB5_DEPRECATED;
2753
2754krb5_error_code KRB5_LIB_FUNCTION
2755heim_krb5_krbhst_format_string (
2756	krb5_context /*context*/,
2757	const krb5_krbhst_info */*host*/,
2758	char */*hostname*/,
2759	size_t /*hostlen*/);
2760
2761void KRB5_LIB_FUNCTION
2762heim_krb5_krbhst_free (
2763	krb5_context /*context*/,
2764	krb5_krbhst_handle /*handle*/);
2765
2766krb5_error_code KRB5_LIB_FUNCTION
2767heim_krb5_krbhst_get_addrinfo (
2768	krb5_context /*context*/,
2769	krb5_krbhst_info */*host*/,
2770	struct addrinfo **/*ai*/);
2771
2772krb5_error_code KRB5_LIB_FUNCTION
2773heim_krb5_krbhst_init (
2774	krb5_context /*context*/,
2775	const char */*realm*/,
2776	unsigned int /*type*/,
2777	krb5_krbhst_handle */*handle*/);
2778
2779krb5_error_code KRB5_LIB_FUNCTION
2780heim_krb5_krbhst_init_flags (
2781	krb5_context /*context*/,
2782	const char */*realm*/,
2783	unsigned int /*type*/,
2784	int /*flags*/,
2785	krb5_krbhst_handle */*handle*/);
2786
2787krb5_error_code KRB5_LIB_FUNCTION
2788heim_krb5_krbhst_next (
2789	krb5_context /*context*/,
2790	krb5_krbhst_handle /*handle*/,
2791	krb5_krbhst_info **/*host*/);
2792
2793krb5_error_code KRB5_LIB_FUNCTION
2794heim_krb5_krbhst_next_as_string (
2795	krb5_context /*context*/,
2796	krb5_krbhst_handle /*handle*/,
2797	char */*hostname*/,
2798	size_t /*hostlen*/);
2799
2800void KRB5_LIB_FUNCTION
2801heim_krb5_krbhst_reset (
2802	krb5_context /*context*/,
2803	krb5_krbhst_handle /*handle*/);
2804
2805krb5_error_code KRB5_LIB_FUNCTION
2806heim_krb5_kt_add_entry (
2807	krb5_context /*context*/,
2808	krb5_keytab /*id*/,
2809	krb5_keytab_entry */*entry*/);
2810
2811krb5_error_code KRB5_LIB_FUNCTION
2812heim_krb5_kt_close (
2813	krb5_context /*context*/,
2814	krb5_keytab /*id*/);
2815
2816krb5_boolean KRB5_LIB_FUNCTION
2817heim_krb5_kt_compare (
2818	krb5_context /*context*/,
2819	krb5_keytab_entry */*entry*/,
2820	krb5_const_principal /*principal*/,
2821	krb5_kvno /*vno*/,
2822	krb5_enctype /*enctype*/);
2823
2824krb5_error_code KRB5_LIB_FUNCTION
2825heim_krb5_kt_copy_entry_contents (
2826	krb5_context /*context*/,
2827	const krb5_keytab_entry */*in*/,
2828	krb5_keytab_entry */*out*/);
2829
2830krb5_error_code KRB5_LIB_FUNCTION
2831heim_krb5_kt_default (
2832	krb5_context /*context*/,
2833	krb5_keytab */*id*/);
2834
2835krb5_error_code KRB5_LIB_FUNCTION
2836heim_krb5_kt_default_modify_name (
2837	krb5_context /*context*/,
2838	char */*name*/,
2839	size_t /*namesize*/);
2840
2841krb5_error_code KRB5_LIB_FUNCTION
2842heim_krb5_kt_default_name (
2843	krb5_context /*context*/,
2844	char */*name*/,
2845	size_t /*namesize*/);
2846
2847krb5_error_code KRB5_LIB_FUNCTION
2848heim_krb5_kt_destroy (
2849	krb5_context /*context*/,
2850	krb5_keytab /*id*/);
2851
2852krb5_error_code KRB5_LIB_FUNCTION
2853heim_krb5_kt_end_seq_get (
2854	krb5_context /*context*/,
2855	krb5_keytab /*id*/,
2856	krb5_kt_cursor */*cursor*/);
2857
2858krb5_error_code KRB5_LIB_FUNCTION
2859heim_krb5_kt_free_entry (
2860	krb5_context /*context*/,
2861	krb5_keytab_entry */*entry*/);
2862
2863krb5_error_code KRB5_LIB_FUNCTION
2864heim_krb5_kt_get_entry (
2865	krb5_context /*context*/,
2866	krb5_keytab /*id*/,
2867	krb5_const_principal /*principal*/,
2868	krb5_kvno /*kvno*/,
2869	krb5_enctype /*enctype*/,
2870	krb5_keytab_entry */*entry*/);
2871
2872krb5_error_code KRB5_LIB_FUNCTION
2873heim_krb5_kt_get_full_name (
2874	krb5_context /*context*/,
2875	krb5_keytab /*keytab*/,
2876	char **/*str*/);
2877
2878krb5_error_code KRB5_LIB_FUNCTION
2879heim_krb5_kt_get_name (
2880	krb5_context /*context*/,
2881	krb5_keytab /*keytab*/,
2882	char */*name*/,
2883	size_t /*namesize*/);
2884
2885krb5_error_code KRB5_LIB_FUNCTION
2886heim_krb5_kt_get_type (
2887	krb5_context /*context*/,
2888	krb5_keytab /*keytab*/,
2889	char */*prefix*/,
2890	size_t /*prefixsize*/);
2891
2892krb5_error_code KRB5_LIB_FUNCTION
2893heim_krb5_kt_next_entry (
2894	krb5_context /*context*/,
2895	krb5_keytab /*id*/,
2896	krb5_keytab_entry */*entry*/,
2897	krb5_kt_cursor */*cursor*/);
2898
2899krb5_error_code KRB5_LIB_FUNCTION
2900heim_krb5_kt_read_service_key (
2901	krb5_context /*context*/,
2902	krb5_pointer /*keyprocarg*/,
2903	krb5_principal /*principal*/,
2904	krb5_kvno /*vno*/,
2905	krb5_enctype /*enctype*/,
2906	krb5_keyblock **/*key*/);
2907
2908krb5_error_code KRB5_LIB_FUNCTION
2909heim_krb5_kt_register (
2910	krb5_context /*context*/,
2911	const krb5_kt_ops */*ops*/);
2912
2913krb5_error_code KRB5_LIB_FUNCTION
2914heim_krb5_kt_remove_entry (
2915	krb5_context /*context*/,
2916	krb5_keytab /*id*/,
2917	krb5_keytab_entry */*entry*/);
2918
2919krb5_error_code KRB5_LIB_FUNCTION
2920heim_krb5_kt_resolve (
2921	krb5_context /*context*/,
2922	const char */*name*/,
2923	krb5_keytab */*id*/);
2924
2925krb5_error_code KRB5_LIB_FUNCTION
2926heim_krb5_kt_start_seq_get (
2927	krb5_context /*context*/,
2928	krb5_keytab /*id*/,
2929	krb5_kt_cursor */*cursor*/);
2930
2931krb5_boolean KRB5_LIB_FUNCTION
2932heim_krb5_kuserok (
2933	krb5_context /*context*/,
2934	krb5_principal /*principal*/,
2935	const char */*luser*/);
2936
2937krb5_error_code KRB5_LIB_FUNCTION
2938heim_krb5_log (
2939	krb5_context /*context*/,
2940	krb5_log_facility */*fac*/,
2941	int /*level*/,
2942	const char */*fmt*/,
2943	...)
2944     __attribute__((format (printf, 4, 5)));
2945
2946krb5_error_code KRB5_LIB_FUNCTION
2947heim_krb5_log_msg (
2948	krb5_context /*context*/,
2949	krb5_log_facility */*fac*/,
2950	int /*level*/,
2951	char **/*reply*/,
2952	const char */*fmt*/,
2953	...)
2954     __attribute__((format (printf, 5, 6)));
2955
2956krb5_error_code KRB5_LIB_FUNCTION
2957heim_krb5_make_addrport (
2958	krb5_context /*context*/,
2959	krb5_address **/*res*/,
2960	const krb5_address */*addr*/,
2961	int16_t /*port*/);
2962
2963krb5_error_code KRB5_LIB_FUNCTION
2964heim_krb5_make_principal (
2965	krb5_context /*context*/,
2966	krb5_principal */*principal*/,
2967	krb5_const_realm /*realm*/,
2968	...);
2969
2970size_t KRB5_LIB_FUNCTION
2971heim_krb5_max_sockaddr_size (void);
2972
2973krb5_error_code KRB5_LIB_FUNCTION
2974heim_krb5_mk_error (
2975	krb5_context /*context*/,
2976	krb5_error_code /*error_code*/,
2977	const char */*e_text*/,
2978	const krb5_data */*e_data*/,
2979	const krb5_principal /*client*/,
2980	const krb5_principal /*server*/,
2981	time_t */*client_time*/,
2982	int */*client_usec*/,
2983	krb5_data */*reply*/);
2984
2985krb5_error_code KRB5_LIB_FUNCTION
2986heim_krb5_mk_priv (
2987	krb5_context /*context*/,
2988	krb5_auth_context /*auth_context*/,
2989	const krb5_data */*userdata*/,
2990	krb5_data */*outbuf*/,
2991	krb5_replay_data */*outdata*/);
2992
2993krb5_error_code KRB5_LIB_FUNCTION
2994heim_krb5_mk_rep (
2995	krb5_context /*context*/,
2996	krb5_auth_context /*auth_context*/,
2997	krb5_data */*outbuf*/);
2998
2999krb5_error_code KRB5_LIB_FUNCTION
3000heim_krb5_mk_req (
3001	krb5_context /*context*/,
3002	krb5_auth_context */*auth_context*/,
3003	const krb5_flags /*ap_req_options*/,
3004	const char */*service*/,
3005	const char */*hostname*/,
3006	krb5_data */*in_data*/,
3007	krb5_ccache /*ccache*/,
3008	krb5_data */*outbuf*/);
3009
3010krb5_error_code KRB5_LIB_FUNCTION
3011heim_krb5_mk_req_exact (
3012	krb5_context /*context*/,
3013	krb5_auth_context */*auth_context*/,
3014	const krb5_flags /*ap_req_options*/,
3015	const krb5_principal /*server*/,
3016	krb5_data */*in_data*/,
3017	krb5_ccache /*ccache*/,
3018	krb5_data */*outbuf*/);
3019
3020krb5_error_code KRB5_LIB_FUNCTION
3021heim_krb5_mk_req_extended (
3022	krb5_context /*context*/,
3023	krb5_auth_context */*auth_context*/,
3024	const krb5_flags /*ap_req_options*/,
3025	krb5_data */*in_data*/,
3026	krb5_creds */*in_creds*/,
3027	krb5_data */*outbuf*/);
3028
3029krb5_error_code KRB5_LIB_FUNCTION
3030heim_krb5_mk_safe (
3031	krb5_context /*context*/,
3032	krb5_auth_context /*auth_context*/,
3033	const krb5_data */*userdata*/,
3034	krb5_data */*outbuf*/,
3035	krb5_replay_data */*outdata*/);
3036
3037krb5_ssize_t KRB5_LIB_FUNCTION
3038heim_krb5_net_read (
3039	krb5_context /*context*/,
3040	void */*p_fd*/,
3041	void */*buf*/,
3042	size_t /*len*/);
3043
3044krb5_ssize_t KRB5_LIB_FUNCTION
3045heim_krb5_net_write (
3046	krb5_context /*context*/,
3047	void */*p_fd*/,
3048	const void */*buf*/,
3049	size_t /*len*/);
3050
3051krb5_ssize_t KRB5_LIB_FUNCTION
3052heim_krb5_net_write_block (
3053	krb5_context /*context*/,
3054	void */*p_fd*/,
3055	const void */*buf*/,
3056	size_t /*len*/,
3057	time_t /*timeout*/);
3058
3059krb5_error_code
3060heim_krb5_ntlm_alloc (
3061	krb5_context /*context*/,
3062	krb5_ntlm */*ntlm*/);
3063
3064krb5_error_code
3065heim_krb5_ntlm_free (
3066	krb5_context /*context*/,
3067	krb5_ntlm /*ntlm*/);
3068
3069krb5_error_code
3070heim_krb5_ntlm_init_get_challange (
3071	krb5_context /*context*/,
3072	krb5_ntlm /*ntlm*/,
3073	krb5_data */*challange*/);
3074
3075krb5_error_code
3076heim_krb5_ntlm_init_get_flags (
3077	krb5_context /*context*/,
3078	krb5_ntlm /*ntlm*/,
3079	uint32_t */*flags*/);
3080
3081krb5_error_code
3082heim_krb5_ntlm_init_get_opaque (
3083	krb5_context /*context*/,
3084	krb5_ntlm /*ntlm*/,
3085	krb5_data */*opaque*/);
3086
3087krb5_error_code
3088heim_krb5_ntlm_init_get_targetinfo (
3089	krb5_context /*context*/,
3090	krb5_ntlm /*ntlm*/,
3091	krb5_data */*data*/);
3092
3093krb5_error_code
3094heim_krb5_ntlm_init_get_targetname (
3095	krb5_context /*context*/,
3096	krb5_ntlm /*ntlm*/,
3097	char **/*name*/);
3098
3099krb5_error_code
3100heim_krb5_ntlm_init_request (
3101	krb5_context /*context*/,
3102	krb5_ntlm /*ntlm*/,
3103	krb5_realm /*realm*/,
3104	krb5_ccache /*ccache*/,
3105	uint32_t /*flags*/,
3106	const char */*hostname*/,
3107	const char */*domainname*/);
3108
3109krb5_error_code
3110heim_krb5_ntlm_rep_get_sessionkey (
3111	krb5_context /*context*/,
3112	krb5_ntlm /*ntlm*/,
3113	krb5_data */*data*/);
3114
3115krb5_boolean
3116heim_krb5_ntlm_rep_get_status (
3117	krb5_context /*context*/,
3118	krb5_ntlm /*ntlm*/);
3119
3120krb5_error_code
3121heim_krb5_ntlm_req_set_flags (
3122	krb5_context /*context*/,
3123	krb5_ntlm /*ntlm*/,
3124	uint32_t /*flags*/);
3125
3126krb5_error_code
3127heim_krb5_ntlm_req_set_lm (
3128	krb5_context /*context*/,
3129	krb5_ntlm /*ntlm*/,
3130	void */*hash*/,
3131	size_t /*len*/);
3132
3133krb5_error_code
3134heim_krb5_ntlm_req_set_ntlm (
3135	krb5_context /*context*/,
3136	krb5_ntlm /*ntlm*/,
3137	void */*hash*/,
3138	size_t /*len*/);
3139
3140krb5_error_code
3141heim_krb5_ntlm_req_set_opaque (
3142	krb5_context /*context*/,
3143	krb5_ntlm /*ntlm*/,
3144	krb5_data */*opaque*/);
3145
3146krb5_error_code
3147heim_krb5_ntlm_req_set_session (
3148	krb5_context /*context*/,
3149	krb5_ntlm /*ntlm*/,
3150	void */*sessionkey*/,
3151	size_t /*length*/);
3152
3153krb5_error_code
3154heim_krb5_ntlm_req_set_targetname (
3155	krb5_context /*context*/,
3156	krb5_ntlm /*ntlm*/,
3157	const char */*targetname*/);
3158
3159krb5_error_code
3160heim_krb5_ntlm_req_set_username (
3161	krb5_context /*context*/,
3162	krb5_ntlm /*ntlm*/,
3163	const char */*username*/);
3164
3165krb5_error_code
3166heim_krb5_ntlm_request (
3167	krb5_context /*context*/,
3168	krb5_ntlm /*ntlm*/,
3169	krb5_realm /*realm*/,
3170	krb5_ccache /*ccache*/);
3171
3172krb5_error_code KRB5_LIB_FUNCTION
3173heim_krb5_openlog (
3174	krb5_context /*context*/,
3175	const char */*program*/,
3176	krb5_log_facility **/*fac*/);
3177
3178krb5_error_code
3179heim_krb5_pac_add_buffer (
3180	krb5_context /*context*/,
3181	krb5_pac /*p*/,
3182	uint32_t /*type*/,
3183	const krb5_data */*data*/);
3184
3185void
3186heim_krb5_pac_free (
3187	krb5_context /*context*/,
3188	krb5_pac /*pac*/);
3189
3190krb5_error_code
3191heim_krb5_pac_get_buffer (
3192	krb5_context /*context*/,
3193	krb5_pac /*p*/,
3194	uint32_t /*type*/,
3195	krb5_data */*data*/);
3196
3197krb5_error_code
3198heim_krb5_pac_get_types (
3199	krb5_context /*context*/,
3200	krb5_pac /*p*/,
3201	size_t */*len*/,
3202	uint32_t **/*types*/);
3203
3204krb5_error_code
3205heim_krb5_pac_init (
3206	krb5_context /*context*/,
3207	krb5_pac */*pac*/);
3208
3209krb5_error_code
3210heim_krb5_pac_parse (
3211	krb5_context /*context*/,
3212	const void */*ptr*/,
3213	size_t /*len*/,
3214	krb5_pac */*pac*/);
3215
3216krb5_error_code
3217heim_krb5_pac_verify (
3218	krb5_context /*context*/,
3219	const krb5_pac /*pac*/,
3220	time_t /*authtime*/,
3221	krb5_const_principal /*principal*/,
3222	const krb5_keyblock */*server*/,
3223	const krb5_keyblock */*privsvr*/);
3224
3225int KRB5_LIB_FUNCTION
3226heim_krb5_padata_add (
3227	krb5_context /*context*/,
3228	METHOD_DATA */*md*/,
3229	int /*type*/,
3230	void */*buf*/,
3231	size_t /*len*/);
3232
3233krb5_error_code KRB5_LIB_FUNCTION
3234heim_krb5_parse_address (
3235	krb5_context /*context*/,
3236	const char */*string*/,
3237	krb5_addresses */*addresses*/);
3238
3239krb5_error_code KRB5_LIB_FUNCTION
3240heim_krb5_parse_name (
3241	krb5_context /*context*/,
3242	const char */*name*/,
3243	krb5_principal */*principal*/);
3244
3245krb5_error_code KRB5_LIB_FUNCTION
3246heim_krb5_parse_name_flags (
3247	krb5_context /*context*/,
3248	const char */*name*/,
3249	int /*flags*/,
3250	krb5_principal */*principal*/);
3251
3252krb5_error_code
3253heim_krb5_parse_nametype (
3254	krb5_context /*context*/,
3255	const char */*str*/,
3256	int32_t */*nametype*/);
3257
3258const char* KRB5_LIB_FUNCTION
3259heim_krb5_passwd_result_to_string (
3260	krb5_context /*context*/,
3261	int /*result*/);
3262
3263krb5_error_code KRB5_LIB_FUNCTION
3264heim_krb5_password_key_proc (
3265	krb5_context /*context*/,
3266	krb5_enctype /*type*/,
3267	krb5_salt /*salt*/,
3268	krb5_const_pointer /*keyseed*/,
3269	krb5_keyblock **/*key*/)
3270     KRB5_DEPRECATED;
3271
3272krb5_error_code
3273heim_krb5_plugin_register (
3274	krb5_context /*context*/,
3275	enum krb5_plugin_type /*type*/,
3276	const char */*name*/,
3277	void */*symbol*/);
3278
3279krb5_error_code KRB5_LIB_FUNCTION
3280heim_krb5_prepend_config_files (
3281	const char */*filelist*/,
3282	char **/*pq*/,
3283	char ***/*ret_pp*/);
3284
3285krb5_error_code KRB5_LIB_FUNCTION
3286heim_krb5_prepend_config_files_default (
3287	const char */*filelist*/,
3288	char ***/*pfilenames*/);
3289
3290krb5_realm * KRB5_LIB_FUNCTION
3291heim_krb5_princ_realm (
3292	krb5_context /*context*/,
3293	krb5_principal /*principal*/)
3294     KRB5_DEPRECATED;
3295
3296void KRB5_LIB_FUNCTION
3297heim_krb5_princ_set_realm (
3298	krb5_context /*context*/,
3299	krb5_principal /*principal*/,
3300	krb5_realm */*realm*/)
3301     KRB5_DEPRECATED;
3302
3303krb5_boolean KRB5_LIB_FUNCTION
3304heim_krb5_principal_compare (
3305	krb5_context /*context*/,
3306	krb5_const_principal /*princ1*/,
3307	krb5_const_principal /*princ2*/);
3308
3309krb5_boolean KRB5_LIB_FUNCTION
3310heim_krb5_principal_compare_any_realm (
3311	krb5_context /*context*/,
3312	krb5_const_principal /*princ1*/,
3313	krb5_const_principal /*princ2*/);
3314
3315const char* KRB5_LIB_FUNCTION
3316heim_krb5_principal_get_comp_string (
3317	krb5_context /*context*/,
3318	krb5_const_principal /*principal*/,
3319	unsigned int /*component*/);
3320
3321unsigned int KRB5_LIB_FUNCTION
3322heim_krb5_principal_get_num_comp (
3323	krb5_context /*context*/,
3324	krb5_const_principal /*principal*/);
3325
3326const char* KRB5_LIB_FUNCTION
3327heim_krb5_principal_get_realm (
3328	krb5_context /*context*/,
3329	krb5_const_principal /*principal*/);
3330
3331int KRB5_LIB_FUNCTION
3332heim_krb5_principal_get_type (
3333	krb5_context /*context*/,
3334	krb5_const_principal /*principal*/);
3335
3336krb5_boolean KRB5_LIB_FUNCTION
3337heim_krb5_principal_match (
3338	krb5_context /*context*/,
3339	krb5_const_principal /*princ*/,
3340	krb5_const_principal /*pattern*/);
3341
3342krb5_error_code KRB5_LIB_FUNCTION
3343heim_krb5_principal_set_realm (
3344	krb5_context /*context*/,
3345	krb5_principal /*principal*/,
3346	krb5_const_realm /*realm*/);
3347
3348void KRB5_LIB_FUNCTION
3349heim_krb5_principal_set_type (
3350	krb5_context /*context*/,
3351	krb5_principal /*principal*/,
3352	int /*type*/);
3353
3354krb5_error_code KRB5_LIB_FUNCTION
3355heim_krb5_print_address (
3356	const krb5_address */*addr*/,
3357	char */*str*/,
3358	size_t /*len*/,
3359	size_t */*ret_len*/);
3360
3361int KRB5_LIB_FUNCTION
3362heim_krb5_program_setup (
3363	krb5_context */*context*/,
3364	int /*argc*/,
3365	char **/*argv*/,
3366	struct getargs */*args*/,
3367	int /*num_args*/,
3368	void (*/*usage*/)(int, struct getargs*, int));
3369
3370int KRB5_LIB_FUNCTION
3371heim_krb5_prompter_posix (
3372	krb5_context /*context*/,
3373	void */*data*/,
3374	const char */*name*/,
3375	const char */*banner*/,
3376	int /*num_prompts*/,
3377	krb5_prompt prompts[]);
3378
3379krb5_error_code KRB5_LIB_FUNCTION
3380heim_krb5_random_to_key (
3381	krb5_context /*context*/,
3382	krb5_enctype /*type*/,
3383	const void */*data*/,
3384	size_t /*size*/,
3385	krb5_keyblock */*key*/);
3386
3387krb5_error_code KRB5_LIB_FUNCTION
3388heim_krb5_rc_close (
3389	krb5_context /*context*/,
3390	krb5_rcache /*id*/);
3391
3392krb5_error_code KRB5_LIB_FUNCTION
3393heim_krb5_rc_default (
3394	krb5_context /*context*/,
3395	krb5_rcache */*id*/);
3396
3397const char* KRB5_LIB_FUNCTION
3398heim_krb5_rc_default_name (krb5_context /*context*/);
3399
3400const char* KRB5_LIB_FUNCTION
3401heim_krb5_rc_default_type (krb5_context /*context*/);
3402
3403krb5_error_code KRB5_LIB_FUNCTION
3404heim_krb5_rc_destroy (
3405	krb5_context /*context*/,
3406	krb5_rcache /*id*/);
3407
3408krb5_error_code KRB5_LIB_FUNCTION
3409heim_krb5_rc_expunge (
3410	krb5_context /*context*/,
3411	krb5_rcache /*id*/);
3412
3413krb5_error_code KRB5_LIB_FUNCTION
3414heim_krb5_rc_get_lifespan (
3415	krb5_context /*context*/,
3416	krb5_rcache /*id*/,
3417	krb5_deltat */*auth_lifespan*/);
3418
3419const char* KRB5_LIB_FUNCTION
3420heim_krb5_rc_get_name (
3421	krb5_context /*context*/,
3422	krb5_rcache /*id*/);
3423
3424const char* KRB5_LIB_FUNCTION
3425heim_krb5_rc_get_type (
3426	krb5_context /*context*/,
3427	krb5_rcache /*id*/);
3428
3429krb5_error_code KRB5_LIB_FUNCTION
3430heim_krb5_rc_initialize (
3431	krb5_context /*context*/,
3432	krb5_rcache /*id*/,
3433	krb5_deltat /*auth_lifespan*/);
3434
3435krb5_error_code KRB5_LIB_FUNCTION
3436heim_krb5_rc_recover (
3437	krb5_context /*context*/,
3438	krb5_rcache /*id*/);
3439
3440krb5_error_code KRB5_LIB_FUNCTION
3441heim_krb5_rc_resolve (
3442	krb5_context /*context*/,
3443	krb5_rcache /*id*/,
3444	const char */*name*/);
3445
3446krb5_error_code KRB5_LIB_FUNCTION
3447heim_krb5_rc_resolve_full (
3448	krb5_context /*context*/,
3449	krb5_rcache */*id*/,
3450	const char */*string_name*/);
3451
3452krb5_error_code KRB5_LIB_FUNCTION
3453heim_krb5_rc_resolve_type (
3454	krb5_context /*context*/,
3455	krb5_rcache */*id*/,
3456	const char */*type*/);
3457
3458krb5_error_code KRB5_LIB_FUNCTION
3459heim_krb5_rc_store (
3460	krb5_context /*context*/,
3461	krb5_rcache /*id*/,
3462	krb5_donot_replay */*rep*/);
3463
3464krb5_error_code KRB5_LIB_FUNCTION
3465heim_krb5_rd_cred (
3466	krb5_context /*context*/,
3467	krb5_auth_context /*auth_context*/,
3468	krb5_data */*in_data*/,
3469	krb5_creds ***/*ret_creds*/,
3470	krb5_replay_data */*outdata*/);
3471
3472krb5_error_code KRB5_LIB_FUNCTION
3473heim_krb5_rd_cred2 (
3474	krb5_context /*context*/,
3475	krb5_auth_context /*auth_context*/,
3476	krb5_ccache /*ccache*/,
3477	krb5_data */*in_data*/);
3478
3479krb5_error_code KRB5_LIB_FUNCTION
3480heim_krb5_rd_error (
3481	krb5_context /*context*/,
3482	const krb5_data */*msg*/,
3483	KRB_ERROR */*result*/);
3484
3485krb5_error_code KRB5_LIB_FUNCTION
3486heim_krb5_rd_priv (
3487	krb5_context /*context*/,
3488	krb5_auth_context /*auth_context*/,
3489	const krb5_data */*inbuf*/,
3490	krb5_data */*outbuf*/,
3491	krb5_replay_data */*outdata*/);
3492
3493krb5_error_code KRB5_LIB_FUNCTION
3494heim_krb5_rd_rep (
3495	krb5_context /*context*/,
3496	krb5_auth_context /*auth_context*/,
3497	const krb5_data */*inbuf*/,
3498	krb5_ap_rep_enc_part **/*repl*/);
3499
3500krb5_error_code KRB5_LIB_FUNCTION
3501heim_krb5_rd_req (
3502	krb5_context /*context*/,
3503	krb5_auth_context */*auth_context*/,
3504	const krb5_data */*inbuf*/,
3505	krb5_const_principal /*server*/,
3506	krb5_keytab /*keytab*/,
3507	krb5_flags */*ap_req_options*/,
3508	krb5_ticket **/*ticket*/);
3509
3510krb5_error_code KRB5_LIB_FUNCTION
3511heim_krb5_rd_req_ctx (
3512	krb5_context /*context*/,
3513	krb5_auth_context */*auth_context*/,
3514	const krb5_data */*inbuf*/,
3515	krb5_const_principal /*server*/,
3516	krb5_rd_req_in_ctx /*inctx*/,
3517	krb5_rd_req_out_ctx */*outctx*/);
3518
3519krb5_error_code KRB5_LIB_FUNCTION
3520heim_krb5_rd_req_in_ctx_alloc (
3521	krb5_context /*context*/,
3522	krb5_rd_req_in_ctx */*ctx*/);
3523
3524void KRB5_LIB_FUNCTION
3525heim_krb5_rd_req_in_ctx_free (
3526	krb5_context /*context*/,
3527	krb5_rd_req_in_ctx /*ctx*/);
3528
3529krb5_error_code KRB5_LIB_FUNCTION
3530heim_krb5_rd_req_in_set_keyblock (
3531	krb5_context /*context*/,
3532	krb5_rd_req_in_ctx /*in*/,
3533	krb5_keyblock */*keyblock*/);
3534
3535krb5_error_code KRB5_LIB_FUNCTION
3536heim_krb5_rd_req_in_set_keytab (
3537	krb5_context /*context*/,
3538	krb5_rd_req_in_ctx /*in*/,
3539	krb5_keytab /*keytab*/);
3540
3541krb5_error_code KRB5_LIB_FUNCTION
3542heim_krb5_rd_req_in_set_pac_check (
3543	krb5_context /*context*/,
3544	krb5_rd_req_in_ctx /*in*/,
3545	krb5_boolean /*flag*/);
3546
3547void KRB5_LIB_FUNCTION
3548heim_krb5_rd_req_out_ctx_free (
3549	krb5_context /*context*/,
3550	krb5_rd_req_out_ctx /*ctx*/);
3551
3552krb5_error_code KRB5_LIB_FUNCTION
3553heim_krb5_rd_req_out_get_ap_req_options (
3554	krb5_context /*context*/,
3555	krb5_rd_req_out_ctx /*out*/,
3556	krb5_flags */*ap_req_options*/);
3557
3558krb5_error_code KRB5_LIB_FUNCTION
3559heim_krb5_rd_req_out_get_keyblock (
3560	krb5_context /*context*/,
3561	krb5_rd_req_out_ctx /*out*/,
3562	krb5_keyblock **/*keyblock*/);
3563
3564krb5_error_code KRB5_LIB_FUNCTION
3565heim_krb5_rd_req_out_get_server (
3566	krb5_context /*context*/,
3567	krb5_rd_req_out_ctx /*out*/,
3568	krb5_principal */*principal*/);
3569
3570krb5_error_code KRB5_LIB_FUNCTION
3571heim_krb5_rd_req_out_get_ticket (
3572	krb5_context /*context*/,
3573	krb5_rd_req_out_ctx /*out*/,
3574	krb5_ticket **/*ticket*/);
3575
3576krb5_error_code KRB5_LIB_FUNCTION
3577heim_krb5_rd_req_with_keyblock (
3578	krb5_context /*context*/,
3579	krb5_auth_context */*auth_context*/,
3580	const krb5_data */*inbuf*/,
3581	krb5_const_principal /*server*/,
3582	krb5_keyblock */*keyblock*/,
3583	krb5_flags */*ap_req_options*/,
3584	krb5_ticket **/*ticket*/);
3585
3586krb5_error_code KRB5_LIB_FUNCTION
3587heim_krb5_rd_safe (
3588	krb5_context /*context*/,
3589	krb5_auth_context /*auth_context*/,
3590	const krb5_data */*inbuf*/,
3591	krb5_data */*outbuf*/,
3592	krb5_replay_data */*outdata*/);
3593
3594krb5_error_code KRB5_LIB_FUNCTION
3595heim_krb5_read_message (
3596	krb5_context /*context*/,
3597	krb5_pointer /*p_fd*/,
3598	krb5_data */*data*/);
3599
3600krb5_error_code KRB5_LIB_FUNCTION
3601heim_krb5_read_priv_message (
3602	krb5_context /*context*/,
3603	krb5_auth_context /*ac*/,
3604	krb5_pointer /*p_fd*/,
3605	krb5_data */*data*/);
3606
3607krb5_error_code KRB5_LIB_FUNCTION
3608heim_krb5_read_safe_message (
3609	krb5_context /*context*/,
3610	krb5_auth_context /*ac*/,
3611	krb5_pointer /*p_fd*/,
3612	krb5_data */*data*/);
3613
3614krb5_boolean KRB5_LIB_FUNCTION
3615heim_krb5_realm_compare (
3616	krb5_context /*context*/,
3617	krb5_const_principal /*princ1*/,
3618	krb5_const_principal /*princ2*/);
3619
3620krb5_error_code KRB5_LIB_FUNCTION
3621heim_krb5_recvauth (
3622	krb5_context /*context*/,
3623	krb5_auth_context */*auth_context*/,
3624	krb5_pointer /*p_fd*/,
3625	const char */*appl_version*/,
3626	krb5_principal /*server*/,
3627	int32_t /*flags*/,
3628	krb5_keytab /*keytab*/,
3629	krb5_ticket **/*ticket*/);
3630
3631krb5_error_code KRB5_LIB_FUNCTION
3632heim_krb5_recvauth_match_version (
3633	krb5_context /*context*/,
3634	krb5_auth_context */*auth_context*/,
3635	krb5_pointer /*p_fd*/,
3636	krb5_boolean (*/*match_appl_version*/)(const void *, const char*),
3637	const void */*match_data*/,
3638	krb5_principal /*server*/,
3639	int32_t /*flags*/,
3640	krb5_keytab /*keytab*/,
3641	krb5_ticket **/*ticket*/);
3642
3643krb5_error_code KRB5_LIB_FUNCTION
3644heim_krb5_ret_address (
3645	krb5_storage */*sp*/,
3646	krb5_address */*adr*/);
3647
3648krb5_error_code KRB5_LIB_FUNCTION
3649heim_krb5_ret_addrs (
3650	krb5_storage */*sp*/,
3651	krb5_addresses */*adr*/);
3652
3653krb5_error_code KRB5_LIB_FUNCTION
3654heim_krb5_ret_authdata (
3655	krb5_storage */*sp*/,
3656	krb5_authdata */*auth*/);
3657
3658krb5_error_code KRB5_LIB_FUNCTION
3659heim_krb5_ret_creds (
3660	krb5_storage */*sp*/,
3661	krb5_creds */*creds*/);
3662
3663krb5_error_code KRB5_LIB_FUNCTION
3664heim_krb5_ret_creds_tag (
3665	krb5_storage */*sp*/,
3666	krb5_creds */*creds*/);
3667
3668krb5_error_code KRB5_LIB_FUNCTION
3669heim_krb5_ret_data (
3670	krb5_storage */*sp*/,
3671	krb5_data */*data*/);
3672
3673krb5_error_code KRB5_LIB_FUNCTION
3674heim_krb5_ret_int16 (
3675	krb5_storage */*sp*/,
3676	int16_t */*value*/);
3677
3678krb5_error_code KRB5_LIB_FUNCTION
3679heim_krb5_ret_int32 (
3680	krb5_storage */*sp*/,
3681	int32_t */*value*/);
3682
3683krb5_error_code KRB5_LIB_FUNCTION
3684heim_krb5_ret_int8 (
3685	krb5_storage */*sp*/,
3686	int8_t */*value*/);
3687
3688krb5_error_code KRB5_LIB_FUNCTION
3689heim_krb5_ret_keyblock (
3690	krb5_storage */*sp*/,
3691	krb5_keyblock */*p*/);
3692
3693krb5_error_code KRB5_LIB_FUNCTION
3694heim_krb5_ret_principal (
3695	krb5_storage */*sp*/,
3696	krb5_principal */*princ*/);
3697
3698krb5_error_code KRB5_LIB_FUNCTION
3699heim_krb5_ret_string (
3700	krb5_storage */*sp*/,
3701	char **/*string*/);
3702
3703krb5_error_code KRB5_LIB_FUNCTION
3704heim_krb5_ret_stringnl (
3705	krb5_storage */*sp*/,
3706	char **/*string*/);
3707
3708krb5_error_code KRB5_LIB_FUNCTION
3709heim_krb5_ret_stringz (
3710	krb5_storage */*sp*/,
3711	char **/*string*/);
3712
3713krb5_error_code KRB5_LIB_FUNCTION
3714heim_krb5_ret_times (
3715	krb5_storage */*sp*/,
3716	krb5_times */*times*/);
3717
3718krb5_error_code KRB5_LIB_FUNCTION
3719heim_krb5_ret_uint16 (
3720	krb5_storage */*sp*/,
3721	uint16_t */*value*/);
3722
3723krb5_error_code KRB5_LIB_FUNCTION
3724heim_krb5_ret_uint32 (
3725	krb5_storage */*sp*/,
3726	uint32_t */*value*/);
3727
3728krb5_error_code KRB5_LIB_FUNCTION
3729heim_krb5_ret_uint8 (
3730	krb5_storage */*sp*/,
3731	uint8_t */*value*/);
3732
3733krb5_error_code KRB5_LIB_FUNCTION
3734heim_krb5_salttype_to_string (
3735	krb5_context /*context*/,
3736	krb5_enctype /*etype*/,
3737	krb5_salttype /*stype*/,
3738	char **/*string*/);
3739
3740krb5_error_code KRB5_LIB_FUNCTION
3741heim_krb5_sendauth (
3742	krb5_context /*context*/,
3743	krb5_auth_context */*auth_context*/,
3744	krb5_pointer /*p_fd*/,
3745	const char */*appl_version*/,
3746	krb5_principal /*client*/,
3747	krb5_principal /*server*/,
3748	krb5_flags /*ap_req_options*/,
3749	krb5_data */*in_data*/,
3750	krb5_creds */*in_creds*/,
3751	krb5_ccache /*ccache*/,
3752	krb5_error **/*ret_error*/,
3753	krb5_ap_rep_enc_part **/*rep_result*/,
3754	krb5_creds **/*out_creds*/);
3755
3756krb5_error_code KRB5_LIB_FUNCTION
3757heim_krb5_sendto (
3758	krb5_context /*context*/,
3759	const krb5_data */*send_data*/,
3760	krb5_krbhst_handle /*handle*/,
3761	krb5_data */*receive*/);
3762
3763krb5_error_code KRB5_LIB_FUNCTION
3764heim_krb5_sendto_context (
3765	krb5_context /*context*/,
3766	krb5_sendto_ctx /*ctx*/,
3767	const krb5_data */*send_data*/,
3768	const krb5_realm /*realm*/,
3769	krb5_data */*receive*/);
3770
3771void KRB5_LIB_FUNCTION
3772heim_krb5_sendto_ctx_add_flags (
3773	krb5_sendto_ctx /*ctx*/,
3774	int /*flags*/);
3775
3776krb5_error_code KRB5_LIB_FUNCTION
3777heim_krb5_sendto_ctx_alloc (
3778	krb5_context /*context*/,
3779	krb5_sendto_ctx */*ctx*/);
3780
3781void KRB5_LIB_FUNCTION
3782heim_krb5_sendto_ctx_free (
3783	krb5_context /*context*/,
3784	krb5_sendto_ctx /*ctx*/);
3785
3786int KRB5_LIB_FUNCTION
3787heim_krb5_sendto_ctx_get_flags (krb5_sendto_ctx /*ctx*/);
3788
3789void KRB5_LIB_FUNCTION
3790heim_krb5_sendto_ctx_set_func (
3791	krb5_sendto_ctx /*ctx*/,
3792	krb5_sendto_ctx_func /*func*/,
3793	void */*data*/);
3794
3795void KRB5_LIB_FUNCTION
3796heim_krb5_sendto_ctx_set_type (
3797	krb5_sendto_ctx /*ctx*/,
3798	int /*type*/);
3799
3800krb5_error_code KRB5_LIB_FUNCTION
3801heim_krb5_sendto_kdc (
3802	krb5_context /*context*/,
3803	const krb5_data */*send_data*/,
3804	const krb5_realm */*realm*/,
3805	krb5_data */*receive*/);
3806
3807krb5_error_code KRB5_LIB_FUNCTION
3808heim_krb5_sendto_kdc_flags (
3809	krb5_context /*context*/,
3810	const krb5_data */*send_data*/,
3811	const krb5_realm */*realm*/,
3812	krb5_data */*receive*/,
3813	int /*flags*/);
3814
3815krb5_error_code KRB5_LIB_FUNCTION
3816heim_krb5_set_config_files (
3817	krb5_context /*context*/,
3818	char **/*filenames*/);
3819
3820krb5_error_code KRB5_LIB_FUNCTION
3821heim_krb5_set_default_in_tkt_etypes (
3822	krb5_context /*context*/,
3823	const krb5_enctype */*etypes*/);
3824
3825krb5_error_code KRB5_LIB_FUNCTION
3826heim_krb5_set_default_realm (
3827	krb5_context /*context*/,
3828	const char */*realm*/);
3829
3830void KRB5_LIB_FUNCTION
3831heim_krb5_set_dns_canonicalize_hostname (
3832	krb5_context /*context*/,
3833	krb5_boolean /*flag*/);
3834
3835void KRB5_LIB_FUNCTION
3836heim_krb5_set_error_message (
3837	krb5_context /*context*/,
3838	krb5_error_code /*ret*/,
3839	const char */*fmt*/,
3840	...)
3841     __attribute__ ((format (printf, 3, 4)));
3842
3843krb5_error_code KRB5_LIB_FUNCTION
3844heim_krb5_set_error_string (
3845	krb5_context /*context*/,
3846	const char */*fmt*/,
3847	...)
3848     __attribute__((format (printf, 2, 3)));
3849
3850krb5_error_code KRB5_LIB_FUNCTION
3851heim_krb5_set_extra_addresses (
3852	krb5_context /*context*/,
3853	const krb5_addresses */*addresses*/);
3854
3855krb5_error_code KRB5_LIB_FUNCTION
3856heim_krb5_set_fcache_version (
3857	krb5_context /*context*/,
3858	int /*version*/);
3859
3860krb5_boolean
3861heim_krb5_set_home_dir_access (
3862	krb5_context /*context*/,
3863	krb5_boolean /*allow*/);
3864
3865krb5_error_code KRB5_LIB_FUNCTION
3866heim_krb5_set_ignore_addresses (
3867	krb5_context /*context*/,
3868	const krb5_addresses */*addresses*/);
3869
3870krb5_error_code KRB5_LIB_FUNCTION
3871heim_krb5_set_kdc_sec_offset (
3872	krb5_context /*context*/,
3873	int32_t /*sec*/,
3874	int32_t /*usec*/);
3875
3876void KRB5_LIB_FUNCTION
3877heim_krb5_set_max_time_skew (
3878	krb5_context /*context*/,
3879	time_t /*t*/);
3880
3881krb5_error_code KRB5_LIB_FUNCTION
3882heim_krb5_set_password (
3883	krb5_context /*context*/,
3884	krb5_creds */*creds*/,
3885	const char */*newpw*/,
3886	krb5_principal /*targprinc*/,
3887	int */*result_code*/,
3888	krb5_data */*result_code_string*/,
3889	krb5_data */*result_string*/);
3890
3891krb5_error_code KRB5_LIB_FUNCTION
3892heim_krb5_set_password_using_ccache (
3893	krb5_context /*context*/,
3894	krb5_ccache /*ccache*/,
3895	const char */*newpw*/,
3896	krb5_principal /*targprinc*/,
3897	int */*result_code*/,
3898	krb5_data */*result_code_string*/,
3899	krb5_data */*result_string*/);
3900
3901krb5_error_code KRB5_LIB_FUNCTION
3902heim_krb5_set_real_time (
3903	krb5_context /*context*/,
3904	krb5_timestamp /*sec*/,
3905	int32_t /*usec*/);
3906
3907krb5_error_code KRB5_LIB_FUNCTION
3908heim_krb5_set_send_to_kdc_func (
3909	krb5_context /*context*/,
3910	krb5_send_to_kdc_func /*func*/,
3911	void */*data*/);
3912
3913void KRB5_LIB_FUNCTION
3914heim_krb5_set_use_admin_kdc (
3915	krb5_context /*context*/,
3916	krb5_boolean /*flag*/);
3917
3918krb5_error_code KRB5_LIB_FUNCTION
3919heim_krb5_set_warn_dest (
3920	krb5_context /*context*/,
3921	krb5_log_facility */*fac*/);
3922
3923krb5_error_code KRB5_LIB_FUNCTION
3924heim_krb5_sname_to_principal (
3925	krb5_context /*context*/,
3926	const char */*hostname*/,
3927	const char */*sname*/,
3928	int32_t /*type*/,
3929	krb5_principal */*ret_princ*/);
3930
3931krb5_error_code KRB5_LIB_FUNCTION
3932heim_krb5_sock_to_principal (
3933	krb5_context /*context*/,
3934	int /*sock*/,
3935	const char */*sname*/,
3936	int32_t /*type*/,
3937	krb5_principal */*ret_princ*/);
3938
3939krb5_error_code KRB5_LIB_FUNCTION
3940heim_krb5_sockaddr2address (
3941	krb5_context /*context*/,
3942	const struct sockaddr */*sa*/,
3943	krb5_address */*addr*/);
3944
3945krb5_error_code KRB5_LIB_FUNCTION
3946heim_krb5_sockaddr2port (
3947	krb5_context /*context*/,
3948	const struct sockaddr */*sa*/,
3949	int16_t */*port*/);
3950
3951krb5_boolean KRB5_LIB_FUNCTION
3952heim_krb5_sockaddr_uninteresting (const struct sockaddr */*sa*/);
3953
3954void KRB5_LIB_FUNCTION
3955heim_krb5_std_usage (
3956	int /*code*/,
3957	struct getargs */*args*/,
3958	int /*num_args*/);
3959
3960void KRB5_LIB_FUNCTION
3961heim_krb5_storage_clear_flags (
3962	krb5_storage */*sp*/,
3963	krb5_flags /*flags*/);
3964
3965krb5_storage * KRB5_LIB_FUNCTION
3966heim_krb5_storage_emem (void);
3967
3968krb5_error_code KRB5_LIB_FUNCTION
3969heim_krb5_storage_free (krb5_storage */*sp*/);
3970
3971krb5_storage * KRB5_LIB_FUNCTION
3972heim_krb5_storage_from_data (krb5_data */*data*/);
3973
3974krb5_storage * KRB5_LIB_FUNCTION
3975heim_krb5_storage_from_fd (int /*fd*/);
3976
3977krb5_storage * KRB5_LIB_FUNCTION
3978heim_krb5_storage_from_mem (
3979	void */*buf*/,
3980	size_t /*len*/);
3981
3982krb5_storage * KRB5_LIB_FUNCTION
3983heim_krb5_storage_from_readonly_mem (
3984	const void */*buf*/,
3985	size_t /*len*/);
3986
3987krb5_flags KRB5_LIB_FUNCTION
3988heim_krb5_storage_get_byteorder (krb5_storage */*sp*/);
3989
3990int KRB5_LIB_FUNCTION
3991heim_krb5_storage_get_eof_code (krb5_storage */*sp*/);
3992
3993krb5_boolean KRB5_LIB_FUNCTION
3994heim_krb5_storage_is_flags (
3995	krb5_storage */*sp*/,
3996	krb5_flags /*flags*/);
3997
3998krb5_ssize_t KRB5_LIB_FUNCTION
3999heim_krb5_storage_read (
4000	krb5_storage */*sp*/,
4001	void */*buf*/,
4002	size_t /*len*/);
4003
4004off_t KRB5_LIB_FUNCTION
4005heim_krb5_storage_seek (
4006	krb5_storage */*sp*/,
4007	off_t /*offset*/,
4008	int /*whence*/);
4009
4010void KRB5_LIB_FUNCTION
4011heim_krb5_storage_set_byteorder (
4012	krb5_storage */*sp*/,
4013	krb5_flags /*byteorder*/);
4014
4015void KRB5_LIB_FUNCTION
4016heim_krb5_storage_set_eof_code (
4017	krb5_storage */*sp*/,
4018	int /*code*/);
4019
4020void KRB5_LIB_FUNCTION
4021heim_krb5_storage_set_flags (
4022	krb5_storage */*sp*/,
4023	krb5_flags /*flags*/);
4024
4025krb5_error_code KRB5_LIB_FUNCTION
4026heim_krb5_storage_to_data (
4027	krb5_storage */*sp*/,
4028	krb5_data */*data*/);
4029
4030int KRB5_LIB_FUNCTION
4031heim_krb5_storage_truncate (
4032	krb5_storage */*sp*/,
4033	off_t /*offset*/);
4034
4035krb5_ssize_t KRB5_LIB_FUNCTION
4036heim_krb5_storage_write (
4037	krb5_storage */*sp*/,
4038	const void */*buf*/,
4039	size_t /*len*/);
4040
4041krb5_error_code KRB5_LIB_FUNCTION
4042heim_krb5_store_address (
4043	krb5_storage */*sp*/,
4044	krb5_address /*p*/);
4045
4046krb5_error_code KRB5_LIB_FUNCTION
4047heim_krb5_store_addrs (
4048	krb5_storage */*sp*/,
4049	krb5_addresses /*p*/);
4050
4051krb5_error_code KRB5_LIB_FUNCTION
4052heim_krb5_store_authdata (
4053	krb5_storage */*sp*/,
4054	krb5_authdata /*auth*/);
4055
4056krb5_error_code KRB5_LIB_FUNCTION
4057heim_krb5_store_creds (
4058	krb5_storage */*sp*/,
4059	krb5_creds */*creds*/);
4060
4061krb5_error_code KRB5_LIB_FUNCTION
4062heim_krb5_store_creds_tag (
4063	krb5_storage */*sp*/,
4064	krb5_creds */*creds*/);
4065
4066krb5_error_code KRB5_LIB_FUNCTION
4067heim_krb5_store_data (
4068	krb5_storage */*sp*/,
4069	krb5_data /*data*/);
4070
4071krb5_error_code KRB5_LIB_FUNCTION
4072heim_krb5_store_int16 (
4073	krb5_storage */*sp*/,
4074	int16_t /*value*/);
4075
4076krb5_error_code KRB5_LIB_FUNCTION
4077heim_krb5_store_int32 (
4078	krb5_storage */*sp*/,
4079	int32_t /*value*/);
4080
4081krb5_error_code KRB5_LIB_FUNCTION
4082heim_krb5_store_int8 (
4083	krb5_storage */*sp*/,
4084	int8_t /*value*/);
4085
4086krb5_error_code KRB5_LIB_FUNCTION
4087heim_krb5_store_keyblock (
4088	krb5_storage */*sp*/,
4089	krb5_keyblock /*p*/);
4090
4091krb5_error_code KRB5_LIB_FUNCTION
4092heim_krb5_store_principal (
4093	krb5_storage */*sp*/,
4094	krb5_const_principal /*p*/);
4095
4096krb5_error_code KRB5_LIB_FUNCTION
4097heim_krb5_store_string (
4098	krb5_storage */*sp*/,
4099	const char */*s*/);
4100
4101krb5_error_code KRB5_LIB_FUNCTION
4102heim_krb5_store_stringnl (
4103	krb5_storage */*sp*/,
4104	const char */*s*/);
4105
4106krb5_error_code KRB5_LIB_FUNCTION
4107heim_krb5_store_stringz (
4108	krb5_storage */*sp*/,
4109	const char */*s*/);
4110
4111krb5_error_code KRB5_LIB_FUNCTION
4112heim_krb5_store_times (
4113	krb5_storage */*sp*/,
4114	krb5_times /*times*/);
4115
4116krb5_error_code KRB5_LIB_FUNCTION
4117heim_krb5_store_uint16 (
4118	krb5_storage */*sp*/,
4119	uint16_t /*value*/);
4120
4121krb5_error_code KRB5_LIB_FUNCTION
4122heim_krb5_store_uint32 (
4123	krb5_storage */*sp*/,
4124	uint32_t /*value*/);
4125
4126krb5_error_code KRB5_LIB_FUNCTION
4127heim_krb5_store_uint8 (
4128	krb5_storage */*sp*/,
4129	uint8_t /*value*/);
4130
4131krb5_error_code KRB5_LIB_FUNCTION
4132heim_krb5_string_to_deltat (
4133	const char */*string*/,
4134	krb5_deltat */*deltat*/);
4135
4136krb5_error_code KRB5_LIB_FUNCTION
4137heim_krb5_string_to_enctype (
4138	krb5_context /*context*/,
4139	const char */*string*/,
4140	krb5_enctype */*etype*/);
4141
4142krb5_error_code KRB5_LIB_FUNCTION
4143heim_krb5_string_to_key (
4144	krb5_context /*context*/,
4145	krb5_enctype /*enctype*/,
4146	const char */*password*/,
4147	krb5_principal /*principal*/,
4148	krb5_keyblock */*key*/);
4149
4150krb5_error_code KRB5_LIB_FUNCTION
4151heim_krb5_string_to_key_data (
4152	krb5_context /*context*/,
4153	krb5_enctype /*enctype*/,
4154	krb5_data /*password*/,
4155	krb5_principal /*principal*/,
4156	krb5_keyblock */*key*/);
4157
4158krb5_error_code KRB5_LIB_FUNCTION
4159heim_krb5_string_to_key_data_salt (
4160	krb5_context /*context*/,
4161	krb5_enctype /*enctype*/,
4162	krb5_data /*password*/,
4163	krb5_salt /*salt*/,
4164	krb5_keyblock */*key*/);
4165
4166krb5_error_code KRB5_LIB_FUNCTION
4167heim_krb5_string_to_key_data_salt_opaque (
4168	krb5_context /*context*/,
4169	krb5_enctype /*enctype*/,
4170	krb5_data /*password*/,
4171	krb5_salt /*salt*/,
4172	krb5_data /*opaque*/,
4173	krb5_keyblock */*key*/);
4174
4175krb5_error_code KRB5_LIB_FUNCTION
4176heim_krb5_string_to_key_derived (
4177	krb5_context /*context*/,
4178	const void */*str*/,
4179	size_t /*len*/,
4180	krb5_enctype /*etype*/,
4181	krb5_keyblock */*key*/);
4182
4183krb5_error_code KRB5_LIB_FUNCTION
4184heim_krb5_string_to_key_salt (
4185	krb5_context /*context*/,
4186	krb5_enctype /*enctype*/,
4187	const char */*password*/,
4188	krb5_salt /*salt*/,
4189	krb5_keyblock */*key*/);
4190
4191krb5_error_code KRB5_LIB_FUNCTION
4192heim_krb5_string_to_key_salt_opaque (
4193	krb5_context /*context*/,
4194	krb5_enctype /*enctype*/,
4195	const char */*password*/,
4196	krb5_salt /*salt*/,
4197	krb5_data /*opaque*/,
4198	krb5_keyblock */*key*/);
4199
4200krb5_error_code KRB5_LIB_FUNCTION
4201heim_krb5_string_to_keytype (
4202	krb5_context /*context*/,
4203	const char */*string*/,
4204	krb5_keytype */*keytype*/)
4205     KRB5_DEPRECATED;
4206
4207krb5_error_code KRB5_LIB_FUNCTION
4208heim_krb5_string_to_salttype (
4209	krb5_context /*context*/,
4210	krb5_enctype /*etype*/,
4211	const char */*string*/,
4212	krb5_salttype */*salttype*/);
4213
4214krb5_error_code KRB5_LIB_FUNCTION
4215heim_krb5_ticket_get_authorization_data_type (
4216	krb5_context /*context*/,
4217	krb5_ticket */*ticket*/,
4218	int /*type*/,
4219	krb5_data */*data*/);
4220
4221krb5_error_code KRB5_LIB_FUNCTION
4222heim_krb5_ticket_get_client (
4223	krb5_context /*context*/,
4224	const krb5_ticket */*ticket*/,
4225	krb5_principal */*client*/);
4226
4227time_t KRB5_LIB_FUNCTION
4228heim_krb5_ticket_get_endtime (
4229	krb5_context /*context*/,
4230	const krb5_ticket */*ticket*/);
4231
4232unsigned long
4233heim_krb5_ticket_get_flags (
4234	krb5_context /*context*/,
4235	const krb5_ticket */*ticket*/);
4236
4237krb5_error_code KRB5_LIB_FUNCTION
4238heim_krb5_ticket_get_server (
4239	krb5_context /*context*/,
4240	const krb5_ticket */*ticket*/,
4241	krb5_principal */*server*/);
4242
4243krb5_error_code KRB5_LIB_FUNCTION
4244heim_krb5_timeofday (
4245	krb5_context /*context*/,
4246	krb5_timestamp */*timeret*/);
4247
4248krb5_error_code KRB5_LIB_FUNCTION
4249heim_krb5_unparse_name (
4250	krb5_context /*context*/,
4251	krb5_const_principal /*principal*/,
4252	char **/*name*/);
4253
4254krb5_error_code KRB5_LIB_FUNCTION
4255heim_krb5_unparse_name_fixed (
4256	krb5_context /*context*/,
4257	krb5_const_principal /*principal*/,
4258	char */*name*/,
4259	size_t /*len*/);
4260
4261krb5_error_code KRB5_LIB_FUNCTION
4262heim_krb5_unparse_name_fixed_flags (
4263	krb5_context /*context*/,
4264	krb5_const_principal /*principal*/,
4265	int /*flags*/,
4266	char */*name*/,
4267	size_t /*len*/);
4268
4269krb5_error_code KRB5_LIB_FUNCTION
4270heim_krb5_unparse_name_fixed_short (
4271	krb5_context /*context*/,
4272	krb5_const_principal /*principal*/,
4273	char */*name*/,
4274	size_t /*len*/);
4275
4276krb5_error_code KRB5_LIB_FUNCTION
4277heim_krb5_unparse_name_flags (
4278	krb5_context /*context*/,
4279	krb5_const_principal /*principal*/,
4280	int /*flags*/,
4281	char **/*name*/);
4282
4283krb5_error_code KRB5_LIB_FUNCTION
4284heim_krb5_unparse_name_short (
4285	krb5_context /*context*/,
4286	krb5_const_principal /*principal*/,
4287	char **/*name*/);
4288
4289krb5_error_code KRB5_LIB_FUNCTION
4290heim_krb5_us_timeofday (
4291	krb5_context /*context*/,
4292	krb5_timestamp */*sec*/,
4293	int32_t */*usec*/);
4294
4295krb5_error_code KRB5_LIB_FUNCTION
4296heim_krb5_vabort (
4297	krb5_context /*context*/,
4298	krb5_error_code /*code*/,
4299	const char */*fmt*/,
4300	va_list /*ap*/)
4301     __attribute__ ((noreturn, format (printf, 3, 0)));
4302
4303krb5_error_code KRB5_LIB_FUNCTION
4304heim_krb5_vabortx (
4305	krb5_context /*context*/,
4306	const char */*fmt*/,
4307	va_list /*ap*/)
4308     __attribute__ ((noreturn, format (printf, 2, 0)));
4309
4310krb5_error_code KRB5_LIB_FUNCTION
4311heim_krb5_verify_ap_req (
4312	krb5_context /*context*/,
4313	krb5_auth_context */*auth_context*/,
4314	krb5_ap_req */*ap_req*/,
4315	krb5_const_principal /*server*/,
4316	krb5_keyblock */*keyblock*/,
4317	krb5_flags /*flags*/,
4318	krb5_flags */*ap_req_options*/,
4319	krb5_ticket **/*ticket*/);
4320
4321krb5_error_code KRB5_LIB_FUNCTION
4322heim_krb5_verify_ap_req2 (
4323	krb5_context /*context*/,
4324	krb5_auth_context */*auth_context*/,
4325	krb5_ap_req */*ap_req*/,
4326	krb5_const_principal /*server*/,
4327	krb5_keyblock */*keyblock*/,
4328	krb5_flags /*flags*/,
4329	krb5_flags */*ap_req_options*/,
4330	krb5_ticket **/*ticket*/,
4331	krb5_key_usage /*usage*/);
4332
4333krb5_error_code KRB5_LIB_FUNCTION
4334heim_krb5_verify_authenticator_checksum (
4335	krb5_context /*context*/,
4336	krb5_auth_context /*ac*/,
4337	void */*data*/,
4338	size_t /*len*/);
4339
4340krb5_error_code KRB5_LIB_FUNCTION
4341heim_krb5_verify_checksum (
4342	krb5_context /*context*/,
4343	krb5_crypto /*crypto*/,
4344	krb5_key_usage /*usage*/,
4345	void */*data*/,
4346	size_t /*len*/,
4347	Checksum */*cksum*/);
4348
4349krb5_error_code KRB5_LIB_FUNCTION
4350heim_krb5_verify_checksum_iov (
4351	krb5_context /*context*/,
4352	krb5_crypto /*crypto*/,
4353	unsigned /*usage*/,
4354	krb5_crypto_iov */*data*/,
4355	unsigned int /*num_data*/,
4356	krb5_cksumtype */*type*/);
4357
4358krb5_error_code KRB5_LIB_FUNCTION
4359heim_krb5_verify_init_creds (
4360	krb5_context /*context*/,
4361	krb5_creds */*creds*/,
4362	krb5_principal /*ap_req_server*/,
4363	krb5_keytab /*ap_req_keytab*/,
4364	krb5_ccache */*ccache*/,
4365	krb5_verify_init_creds_opt */*options*/);
4366
4367void KRB5_LIB_FUNCTION
4368heim_krb5_verify_init_creds_opt_init (krb5_verify_init_creds_opt */*options*/);
4369
4370void KRB5_LIB_FUNCTION
4371heim_krb5_verify_init_creds_opt_set_ap_req_nofail (
4372	krb5_verify_init_creds_opt */*options*/,
4373	int /*ap_req_nofail*/);
4374
4375int KRB5_LIB_FUNCTION
4376heim_krb5_verify_opt_alloc (
4377	krb5_context /*context*/,
4378	krb5_verify_opt **/*opt*/);
4379
4380void KRB5_LIB_FUNCTION
4381heim_krb5_verify_opt_free (krb5_verify_opt */*opt*/);
4382
4383void KRB5_LIB_FUNCTION
4384heim_krb5_verify_opt_init (krb5_verify_opt */*opt*/);
4385
4386void KRB5_LIB_FUNCTION
4387heim_krb5_verify_opt_set_ccache (
4388	krb5_verify_opt */*opt*/,
4389	krb5_ccache /*ccache*/);
4390
4391void KRB5_LIB_FUNCTION
4392heim_krb5_verify_opt_set_flags (
4393	krb5_verify_opt */*opt*/,
4394	unsigned int /*flags*/);
4395
4396void KRB5_LIB_FUNCTION
4397heim_krb5_verify_opt_set_keytab (
4398	krb5_verify_opt */*opt*/,
4399	krb5_keytab /*keytab*/);
4400
4401void KRB5_LIB_FUNCTION
4402heim_krb5_verify_opt_set_secure (
4403	krb5_verify_opt */*opt*/,
4404	krb5_boolean /*secure*/);
4405
4406void KRB5_LIB_FUNCTION
4407heim_krb5_verify_opt_set_service (
4408	krb5_verify_opt */*opt*/,
4409	const char */*service*/);
4410
4411krb5_error_code KRB5_LIB_FUNCTION
4412heim_krb5_verify_user (
4413	krb5_context /*context*/,
4414	krb5_principal /*principal*/,
4415	krb5_ccache /*ccache*/,
4416	const char */*password*/,
4417	krb5_boolean /*secure*/,
4418	const char */*service*/);
4419
4420krb5_error_code KRB5_LIB_FUNCTION
4421heim_krb5_verify_user_lrealm (
4422	krb5_context /*context*/,
4423	krb5_principal /*principal*/,
4424	krb5_ccache /*ccache*/,
4425	const char */*password*/,
4426	krb5_boolean /*secure*/,
4427	const char */*service*/);
4428
4429krb5_error_code KRB5_LIB_FUNCTION
4430heim_krb5_verify_user_opt (
4431	krb5_context /*context*/,
4432	krb5_principal /*principal*/,
4433	const char */*password*/,
4434	krb5_verify_opt */*opt*/);
4435
4436krb5_error_code KRB5_LIB_FUNCTION
4437heim_krb5_verr (
4438	krb5_context /*context*/,
4439	int /*eval*/,
4440	krb5_error_code /*code*/,
4441	const char */*fmt*/,
4442	va_list /*ap*/)
4443     __attribute__ ((noreturn, format (printf, 4, 0)));
4444
4445krb5_error_code KRB5_LIB_FUNCTION
4446heim_krb5_verrx (
4447	krb5_context /*context*/,
4448	int /*eval*/,
4449	const char */*fmt*/,
4450	va_list /*ap*/)
4451     __attribute__ ((noreturn, format (printf, 3, 0)));
4452
4453krb5_error_code KRB5_LIB_FUNCTION
4454heim_krb5_vlog (
4455	krb5_context /*context*/,
4456	krb5_log_facility */*fac*/,
4457	int /*level*/,
4458	const char */*fmt*/,
4459	va_list /*ap*/)
4460     __attribute__((format (printf, 4, 0)));
4461
4462krb5_error_code KRB5_LIB_FUNCTION
4463heim_krb5_vlog_msg (
4464	krb5_context /*context*/,
4465	krb5_log_facility */*fac*/,
4466	char **/*reply*/,
4467	int /*level*/,
4468	const char */*fmt*/,
4469	va_list /*ap*/)
4470     __attribute__((format (printf, 5, 0)));
4471
4472void KRB5_LIB_FUNCTION
4473heim_krb5_vset_error_message (
4474	krb5_context /*context*/,
4475	krb5_error_code /*ret*/,
4476	const char */*fmt*/,
4477	va_list /*args*/)
4478     __attribute__ ((format (printf, 3, 0)));
4479
4480krb5_error_code KRB5_LIB_FUNCTION
4481heim_krb5_vset_error_string (
4482	krb5_context /*context*/,
4483	const char */*fmt*/,
4484	va_list /*args*/)
4485     __attribute__ ((format (printf, 2, 0)));
4486
4487krb5_error_code KRB5_LIB_FUNCTION
4488heim_krb5_vwarn (
4489	krb5_context /*context*/,
4490	krb5_error_code /*code*/,
4491	const char */*fmt*/,
4492	va_list /*ap*/)
4493     __attribute__ ((format (printf, 3, 0)));
4494
4495krb5_error_code KRB5_LIB_FUNCTION
4496heim_krb5_vwarnx (
4497	krb5_context /*context*/,
4498	const char */*fmt*/,
4499	va_list /*ap*/)
4500     __attribute__ ((format (printf, 2, 0)));
4501
4502krb5_error_code KRB5_LIB_FUNCTION
4503heim_krb5_warn (
4504	krb5_context /*context*/,
4505	krb5_error_code /*code*/,
4506	const char */*fmt*/,
4507	...)
4508     __attribute__ ((format (printf, 3, 4)));
4509
4510krb5_error_code KRB5_LIB_FUNCTION
4511heim_krb5_warnx (
4512	krb5_context /*context*/,
4513	const char */*fmt*/,
4514	...)
4515     __attribute__ ((format (printf, 2, 3)));
4516
4517krb5_error_code KRB5_LIB_FUNCTION
4518heim_krb5_write_message (
4519	krb5_context /*context*/,
4520	krb5_pointer /*p_fd*/,
4521	krb5_data */*data*/);
4522
4523krb5_error_code KRB5_LIB_FUNCTION
4524heim_krb5_write_priv_message (
4525	krb5_context /*context*/,
4526	krb5_auth_context /*ac*/,
4527	krb5_pointer /*p_fd*/,
4528	krb5_data */*data*/);
4529
4530krb5_error_code KRB5_LIB_FUNCTION
4531heim_krb5_write_safe_message (
4532	krb5_context /*context*/,
4533	krb5_auth_context /*ac*/,
4534	krb5_pointer /*p_fd*/,
4535	krb5_data */*data*/);
4536
4537krb5_error_code KRB5_LIB_FUNCTION
4538heim_krb5_xfree (void */*ptr*/);
4539
4540krb5_error_code
4541heim_krb5_cc_set_kdc_offset(krb5_context context, krb5_ccache id, krb5_deltat offset);
4542
4543krb5_error_code
4544heim_krb5_cc_get_kdc_offset(krb5_context context, krb5_ccache id, krb5_deltat *offset);
4545
4546const char *
4547com_right (struct et_list */*list*/,
4548	   long /*code*/);
4549
4550const char *
4551heim_com_right_r(struct et_list */*list*/,
4552		 long /*code*/,
4553		 char */*str*/,
4554		 size_t /*len*/);
4555