1/* This is a generated file */
2#ifndef __krb5_private_h__
3#define __krb5_private_h__
4
5#include <stdarg.h>
6
7#ifndef HEIMDAL_NORETURN_ATTRIBUTE
8#if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1 )))
9#define HEIMDAL_NORETURN_ATTRIBUTE __attribute__((noreturn))
10#else
11#define HEIMDAL_NORETURN_ATTRIBUTE
12#endif
13#endif
14
15#ifndef HEIMDAL_PRINTF_ATTRIBUTE
16#if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1 )))
17#define HEIMDAL_PRINTF_ATTRIBUTE(x) __attribute__((format x))
18#else
19#define HEIMDAL_PRINTF_ATTRIBUTE(x)
20#endif
21#endif
22
23#ifndef KRB5_DEPRECATED_FUNCTION
24#ifndef __has_extension
25#define __has_extension(x) 0
26#define KRB5_DEPRECATED_FUNCTIONhas_extension 1
27#endif
28#if __has_extension(attribute_deprecated_with_message)
29#define KRB5_DEPRECATED_FUNCTION(x) __attribute__((__deprecated__(x)))
30#elif defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1 )))
31#define KRB5_DEPRECATED_FUNCTION(X) __attribute__((__deprecated__))
32#else
33#define KRB5_DEPRECATED_FUNCTION(X)
34#endif
35#ifdef KRB5_DEPRECATED_FUNCTIONhas_extension
36#undef __has_extension
37#undef KRB5_DEPRECATED_FUNCTIONhas_extension
38#endif
39#endif /* KRB5_DEPRECATED_FUNCTION */
40
41
42void
43_heim_krb5_ipc_client_clear_target (void);
44
45void
46_heim_krb5_ipc_client_set_target_uid (uid_t uid);
47
48void
49_krb5_DES3_random_to_key (
50	krb5_context context,
51	krb5_keyblock *key,
52	const void *data,
53	size_t size);
54
55krb5_error_code
56_krb5_HMAC_MD5_checksum (
57	krb5_context context,
58	struct _krb5_key_data *key,
59	const void *data,
60	size_t len,
61	unsigned usage,
62	Checksum *result);
63
64krb5_error_code
65_krb5_SP_HMAC_SHA1_checksum (
66	krb5_context context,
67	struct _krb5_key_data *key,
68	const void *data,
69	size_t len,
70	unsigned usage,
71	Checksum *result);
72
73krb5_error_code
74_krb5_array_to_realms (
75	krb5_context context,
76	heim_array_t array,
77	krb5_realm **realms);
78
79krb5_error_code
80_krb5_auth_con_setup_pfs (
81	krb5_context context,
82	krb5_auth_context auth_context);
83
84KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
85_krb5_build_authenticator (
86	krb5_context context,
87	krb5_auth_context auth_context,
88	krb5_enctype enctype,
89	krb5_creds *cred,
90	Checksum *cksum,
91	krb5_data *result,
92	krb5_key_usage usage);
93
94krb5_error_code
95_krb5_cc_allocate (
96	krb5_context context,
97	const krb5_cc_ops *ops,
98	krb5_ccache *id);
99
100KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
101_krb5_config_copy (
102	krb5_context context,
103	krb5_config_section *c,
104	krb5_config_section **head);
105
106KRB5_LIB_FUNCTION const void * KRB5_LIB_CALL
107_krb5_config_get (
108	krb5_context context,
109	const krb5_config_section *c,
110	int type,
111	...);
112
113krb5_config_section *
114_krb5_config_get_entry (
115	krb5_config_section **parent,
116	const char *name,
117	int type);
118
119KRB5_LIB_FUNCTION const void * KRB5_LIB_CALL
120_krb5_config_get_next (
121	krb5_context context,
122	const krb5_config_section *c,
123	const krb5_config_binding **pointer,
124	int type,
125	...);
126
127const void *
128_krb5_config_vget (
129	krb5_context context,
130	const krb5_config_section *c,
131	int type,
132	va_list args);
133
134KRB5_LIB_FUNCTION const void * KRB5_LIB_CALL
135_krb5_config_vget_next (
136	krb5_context context,
137	const krb5_config_section *c,
138	const krb5_config_binding **pointer,
139	int type,
140	va_list args);
141
142KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
143_krb5_copy_send_to_kdc_func (
144	krb5_context context,
145	krb5_context to);
146
147void
148_krb5_crc_init_table (void);
149
150uint32_t
151_krb5_crc_update (
152	const char *p,
153	size_t len,
154	uint32_t res);
155
156void KRB5_LIB_FUNCTION
157_krb5_debug (
158	krb5_context context,
159	int level,
160	krb5_error_code ret,
161	const char *fmt,
162	...)
163     HEIMDAL_PRINTF_ATTRIBUTE((printf, 4, 5));
164
165void
166_krb5_debug_backtrace (krb5_context context);
167
168void
169_krb5_debug_keyblock (
170	krb5_context context,
171	int level,
172	const char *name,
173	krb5_keyblock *keyblock);
174
175void KRB5_LIB_FUNCTION
176_krb5_debugx (
177	krb5_context context,
178	int level,
179	const char *fmt,
180	...)
181     HEIMDAL_PRINTF_ATTRIBUTE((printf, 3, 4));
182
183krb5_error_code KRB5_CALLCONV
184_krb5_decrypt_tkt_with_subkey (
185	krb5_context context,
186	krb5_keyblock *key,
187	krb5_key_usage usage,
188	krb5_const_pointer skey,
189	krb5_kdc_rep *dec_rep);
190
191krb5_error_code
192_krb5_derive_key (
193	krb5_context context,
194	struct _krb5_encryption_type *et,
195	struct _krb5_key_data *key,
196	const void *constant,
197	size_t len);
198
199krb5_error_code
200_krb5_des_checksum (
201	krb5_context context,
202	CCDigestAlg alg,
203	struct _krb5_key_data *key,
204	const void *data,
205	size_t len,
206	Checksum *cksum);
207
208krb5_error_code
209_krb5_des_verify (
210	krb5_context context,
211	CCDigestAlg alg,
212	struct _krb5_key_data *key,
213	const void *data,
214	size_t len,
215	Checksum *C);
216
217krb5_error_code
218_krb5_dh_group_ok (
219	krb5_context context,
220	unsigned long bits,
221	heim_integer *p,
222	heim_integer *g,
223	heim_integer *q,
224	struct krb5_dh_moduli **moduli,
225	char **name);
226
227krb5_error_code
228_krb5_einval (
229	krb5_context context,
230	const char *func,
231	unsigned long argn);
232
233krb5_error_code
234_krb5_erase_file (
235	krb5_context context,
236	const char *filename);
237
238void
239_krb5_evp_cleanup (
240	krb5_context context,
241	struct _krb5_key_data *kd);
242
243krb5_error_code
244_krb5_evp_encrypt (
245	krb5_context context,
246	struct _krb5_key_data *key,
247	void *data,
248	size_t len,
249	krb5_boolean encryptp,
250	int usage,
251	void *ivec);
252
253krb5_error_code
254_krb5_evp_encrypt_cts (
255	krb5_context context,
256	struct _krb5_key_data *key,
257	void *data,
258	size_t len,
259	krb5_boolean encryptp,
260	int usage,
261	void *ivec);
262
263void
264_krb5_evp_schedule (
265	krb5_context context,
266	struct _krb5_key_type *kt,
267	struct _krb5_key_data *kd);
268
269krb5_error_code
270_krb5_expand_default_cc_name (
271	krb5_context context,
272	const char *str,
273	char **res);
274
275KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
276_krb5_expand_path_tokens (
277	krb5_context context,
278	const char *path_in,
279	char **ppath_out);
280
281int
282_krb5_extract_ticket (
283	krb5_context context,
284	krb5_kdc_rep *rep,
285	krb5_creds *creds,
286	krb5_keyblock *key,
287	krb5_key_usage key_usage,
288	krb5_addresses *addrs,
289	unsigned nonce,
290	unsigned flags,
291	krb5_data *request,
292	krb5_decrypt_proc decrypt_proc,
293	krb5_const_pointer decryptarg);
294
295krb5_error_code
296_krb5_fast_armor_key (
297	krb5_context context,
298	krb5_keyblock *subkey,
299	krb5_keyblock *sessionkey,
300	krb5_keyblock *armorkey,
301	krb5_crypto *armor_crypto);
302
303krb5_error_code
304_krb5_fast_cf2 (
305	krb5_context context,
306	krb5_keyblock *key1,
307	const char *pepper1,
308	krb5_keyblock *key2,
309	const char *pepper2,
310	krb5_keyblock *armorkey,
311	krb5_crypto *armor_crypto);
312
313krb5_error_code
314_krb5_fast_create_armor (
315	krb5_context context,
316	struct krb5_fast_state *state,
317	const char *realm);
318
319void
320_krb5_fast_free (
321	krb5_context context,
322	struct krb5_fast_state *state);
323
324krb5_error_code
325_krb5_fast_tgs_strengthen_key (
326	krb5_context context,
327	struct krb5_fast_state *state,
328	krb5_keyblock *reply_key,
329	krb5_keyblock *extract_key);
330
331krb5_error_code
332_krb5_fast_unwrap_error (
333	krb5_context context,
334	struct krb5_fast_state *state,
335	METHOD_DATA *md,
336	KRB_ERROR *error);
337
338krb5_error_code
339_krb5_fast_unwrap_kdc_rep (
340	krb5_context context,
341	int32_t nonce,
342	krb5_data *chksumdata,
343	struct krb5_fast_state *state,
344	AS_REP *rep);
345
346krb5_error_code
347_krb5_fast_wrap_req (
348	krb5_context context,
349	struct krb5_fast_state *state,
350	krb5_data *checksum_data,
351	KDC_REQ *req);
352
353struct _krb5_checksum_type *
354_krb5_find_checksum (krb5_cksumtype type);
355
356struct _krb5_encryption_type *
357_krb5_find_enctype (krb5_enctype type);
358
359void
360_krb5_free_key_data (
361	krb5_context context,
362	struct _krb5_key_data *key,
363	struct _krb5_encryption_type *et);
364
365void
366_krb5_free_krbhst_info (krb5_krbhst_info *hi);
367
368void
369_krb5_free_moduli (struct krb5_dh_moduli **moduli);
370
371KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
372_krb5_get_ad (
373	krb5_context context,
374	const AuthorizationData *ad,
375	krb5_keyblock *sessionkey,
376	int type,
377	krb5_data *data);
378
379krb5_error_code
380_krb5_get_cred_kdc_any (
381	krb5_context context,
382	krb5_kdc_flags flags,
383	krb5_ccache ccache,
384	struct krb5_fast_state *fast_state,
385	krb5_creds *in_creds,
386	krb5_principal impersonate_principal,
387	Ticket *second_ticket,
388	krb5_creds **out_creds,
389	krb5_creds ***ret_tgts);
390
391char *
392_krb5_get_default_cc_name_from_registry (krb5_context context);
393
394char *
395_krb5_get_default_config_config_files_from_registry (void);
396
397krb5_error_code
398_krb5_get_default_principal_local (
399	krb5_context context,
400	krb5_principal *princ);
401
402KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
403_krb5_get_host_realm_int (
404	krb5_context context,
405	const char *host,
406	krb5_boolean use_dns,
407	krb5_realm **realms);
408
409KRB5_LIB_FUNCTION void KRB5_LIB_CALL
410_krb5_get_init_creds_opt_free_pkinit (krb5_get_init_creds_opt *opt);
411
412KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
413_krb5_get_init_creds_opt_set_pkinit_user_cert (
414	krb5_context context,
415	krb5_get_init_creds_opt *opt,
416	krb5_principal principal,
417	const char *user_id,
418	const char *x509_anchors,
419	char * const * pool,
420	char * const * pki_revoke,
421	int flags,
422	krb5_prompter_fct prompter,
423	void *prompter_data,
424	char *password);
425
426KRB5_LIB_FUNCTION krb5_ssize_t KRB5_LIB_CALL
427_krb5_get_int (
428	void *buffer,
429	unsigned long *value,
430	size_t size);
431
432krb5_error_code
433_krb5_get_krbtgt (
434	krb5_context context,
435	krb5_ccache id,
436	krb5_realm realm,
437	krb5_creds **cred);
438
439krb5_boolean KRB5_LIB_FUNCTION
440_krb5_have_debug (
441	krb5_context context,
442	int level);
443
444KRB5_LIB_FUNCTION krb5_principal KRB5_LIB_CALL
445_krb5_init_creds_get_cred_client (
446	krb5_context context,
447	krb5_init_creds_context ctx);
448
449KRB5_LIB_FUNCTION krb5_timestamp KRB5_LIB_CALL
450_krb5_init_creds_get_cred_endtime (
451	krb5_context context,
452	krb5_init_creds_context ctx);
453
454krb5_error_code KRB5_LIB_FUNCTION
455_krb5_init_creds_set_pku2u (
456	krb5_context context,
457	krb5_init_creds_context ctx,
458	krb5_data *data);
459
460KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
461_krb5_init_etype (
462	krb5_context context,
463	krb5_pdu pdu_type,
464	unsigned *len,
465	krb5_enctype **val,
466	const krb5_enctype *etypes);
467
468krb5_error_code
469_krb5_init_tgs_req (
470	krb5_context context,
471	krb5_ccache ccache,
472	struct krb5_fast_state *state,
473	krb5_addresses *addresses,
474	krb5_kdc_flags flags,
475	krb5_const_principal impersonate_principal,
476	Ticket *second_ticket,
477	krb5_creds *in_creds,
478	krb5_creds *krbtgt,
479	unsigned nonce,
480	METHOD_DATA *padata,
481	krb5_keyblock **subkey,
482	TGS_REQ *t);
483
484krb5_error_code
485_krb5_internal_hmac (
486	krb5_context context,
487	struct _krb5_checksum_type *cm,
488	const void *data,
489	size_t len,
490	unsigned usage,
491	struct _krb5_key_data *keyblock,
492	Checksum *result);
493
494KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
495_krb5_kcm_get_initial_ticket (
496	krb5_context context,
497	krb5_ccache id,
498	krb5_principal client,
499	krb5_principal server,
500	const char *password);
501
502KRB5_LIB_FUNCTION const char * KRB5_LIB_CALL
503_krb5_kcm_get_status (int status);
504
505KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
506_krb5_kcm_get_ticket (
507	krb5_context context,
508	krb5_ccache id,
509	krb5_kdc_flags flags,
510	krb5_enctype enctype,
511	krb5_principal server);
512
513KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL
514_krb5_kcm_is_running (krb5_context context);
515
516KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
517_krb5_kcm_noop (
518	krb5_context context,
519	krb5_ccache id);
520
521krb5_error_code
522_krb5_kcm_ntlm_challenge (
523	krb5_context context,
524	int op __attribute((__unused__)),
525	uint8_t chal[8]);
526
527krb5_error_code
528_krb5_kdc_retry (
529	krb5_context context,
530	krb5_sendto_ctx ctx,
531	void *data,
532	const krb5_data *reply,
533	int *action);
534
535krb5_error_code
536_krb5_kkdcp_request (
537	krb5_context context,
538	const char *realm,
539	const char *url,
540	const krb5_data *data,
541	krb5_data *retdata);
542
543krb5_error_code
544_krb5_krbhost_info_move (
545	krb5_context context,
546	krb5_krbhst_info *from,
547	krb5_krbhst_info **to);
548
549KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
550_krb5_krbhst_async (
551	krb5_context context,
552	krb5_krbhst_handle handle,
553	heim_queue_t queue,
554	void *userctx,
555	void (*callback)(void *userctx, krb5_krbhst_info *host));
556
557KRB5_LIB_FUNCTION void KRB5_LIB_CALL
558_krb5_krbhst_cancel (
559	krb5_context context,
560	krb5_krbhst_handle handle);
561
562const char *
563_krb5_krbhst_get_realm (krb5_krbhst_handle handle);
564
565krb5_error_code
566_krb5_kt_principal_not_found (
567	krb5_context context,
568	krb5_error_code ret,
569	krb5_keytab id,
570	krb5_const_principal principal,
571	krb5_enctype enctype,
572	int kvno);
573
574krb5_error_code
575_krb5_load_ccache_plugins (krb5_context context);
576
577krb5_error_code
578_krb5_make_fast_ap_fxarmor (
579	krb5_context context,
580	krb5_ccache armor_ccache,
581	krb5_data *armor_value,
582	krb5_keyblock *armor_key,
583	krb5_crypto *armor_crypto);
584
585krb5_error_code
586_krb5_make_pa_enc_challange (
587	krb5_context context,
588	krb5_crypto crypto,
589	krb5_key_usage usage,
590	METHOD_DATA *md);
591
592krb5_error_code
593_krb5_mk_req_internal (
594	krb5_context context,
595	krb5_auth_context *auth_context,
596	const krb5_flags ap_req_options,
597	krb5_data *in_data,
598	krb5_ccache ccache,
599	krb5_creds *in_creds,
600	krb5_data *outbuf,
601	krb5_key_usage checksum_usage,
602	krb5_key_usage encrypt_usage);
603
604KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
605_krb5_n_fold (
606	const void *str,
607	size_t len,
608	void *key,
609	size_t size);
610
611krb5_error_code
612_krb5_pac_sign (
613	krb5_context context,
614	krb5_pac p,
615	time_t authtime,
616	krb5_principal principal,
617	const krb5_keyblock *server_key,
618	const krb5_keyblock *priv_key,
619	krb5_data *data);
620
621krb5_error_code
622_krb5_parse_moduli (
623	krb5_context context,
624	const char *file,
625	struct krb5_dh_moduli ***moduli);
626
627krb5_error_code
628_krb5_parse_moduli_line (
629	krb5_context context,
630	const char *file,
631	int lineno,
632	char *p,
633	struct krb5_dh_moduli **m);
634
635krb5_error_code
636_krb5_pfs_proccess_md (
637	krb5_context context,
638	krb5_auth_context auth_context,
639	AuthorizationData *inad,
640	AuthorizationData **outad);
641
642krb5_error_code
643_krb5_pfs_updates_keys (
644	krb5_context context,
645	krb5_auth_context auth_context,
646	krb5_enctype enctype,
647	const void *session_key,
648	size_t session_key_length,
649	krb5_const_principal client,
650	krb5_const_principal server,
651	Ticket *ticket,
652	krb5_keyblock *reply_key);
653
654void
655_krb5_pk_copy_error (
656	krb5_context context,
657	int hxret,
658	const char *fmt,
659	...)
660     HEIMDAL_PRINTF_ATTRIBUTE((printf, 3, 4));
661
662KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
663_krb5_pk_enterprise_cert (
664	krb5_context context,
665	const char *user_id,
666	krb5_const_realm realm,
667	krb5_principal *principal,
668	struct hx509_cert_data **res);
669
670krb5_error_code
671_krb5_pk_find_cert (
672	krb5_context context,
673	int mme,
674	struct hx509_certs_data *certs,
675	struct hx509_query_data *q,
676	struct hx509_cert_data **cert);
677
678krb5_error_code
679_krb5_pk_kdf (
680	krb5_context context,
681	const struct AlgorithmIdentifier *ai,
682	const void *dhdata,
683	size_t dhsize,
684	krb5_const_principal client,
685	krb5_const_principal server,
686	krb5_enctype enctype,
687	const krb5_data *as_req,
688	const krb5_data *pk_as_rep,
689	const Ticket *ticket,
690	krb5_keyblock *key);
691
692KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
693_krb5_pk_load_id (
694	krb5_context context,
695	struct krb5_pk_identity **ret_id,
696	const char *user_id,
697	const char *anchor_id,
698	char * const *chain_list,
699	char * const *revoke_list,
700	krb5_prompter_fct prompter,
701	void *prompter_data,
702	char *password);
703
704krb5_error_code KRB5_LIB_FUNCTION
705_krb5_pk_match_cert (
706	krb5_context context,
707	krb5_principal principal,
708	struct hx509_cert_data *cert,
709	int match_realm);
710
711KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
712_krb5_pk_mk_ContentInfo (
713	krb5_context context,
714	const krb5_data *buf,
715	const heim_oid *oid,
716	struct ContentInfo *content_info);
717
718KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
719_krb5_pk_mk_padata (
720	krb5_context context,
721	void *c,
722	int ic_flags,
723	int win2k,
724	const KDC_REQ_BODY *req_body,
725	unsigned nonce,
726	METHOD_DATA *md);
727
728krb5_error_code
729_krb5_pk_octetstring2key (
730	krb5_context context,
731	krb5_enctype type,
732	const void *dhdata,
733	size_t dhsize,
734	const heim_octet_string *c_n,
735	const heim_octet_string *k_n,
736	krb5_keyblock *key);
737
738KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
739_krb5_pk_rd_pa_reply (
740	krb5_context context,
741	const char *realm,
742	struct krb5_pk_init_ctx_data *ctx,
743	krb5_enctype etype,
744	const krb5_krbhst_info *hi,
745	unsigned nonce,
746	const krb5_data *req_buffer,
747	PA_DATA *pa,
748	krb5_keyblock **key);
749
750krb5_error_code
751_krb5_pk_set_user_id (
752	krb5_context context,
753	struct krb5_pk_init_ctx_data *ctx,
754	struct hx509_cert_data *cert);
755
756krb5_error_code
757_krb5_plugin_find (
758	krb5_context context,
759	enum krb5_plugin_type type,
760	const char *name,
761	struct krb5_plugin **list);
762
763void
764_krb5_plugin_free (struct krb5_plugin *list);
765
766struct krb5_plugin *
767_krb5_plugin_get_next (struct krb5_plugin *p);
768
769void *
770_krb5_plugin_get_symbol (struct krb5_plugin *p);
771
772KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
773_krb5_principal2principalname (
774	PrincipalName *p,
775	const krb5_principal from);
776
777KRB5_LIB_FUNCTION krb5_boolean KRB5_LIB_CALL
778_krb5_principal_compare_PrincipalName (
779	krb5_context context,
780	krb5_const_principal princ1,
781	PrincipalName *princ2);
782
783KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
784_krb5_principalname2krb5_principal (
785	krb5_context context,
786	krb5_principal *principal,
787	const PrincipalName from,
788	const Realm realm);
789
790KRB5_LIB_FUNCTION krb5_ssize_t KRB5_LIB_CALL
791_krb5_put_int (
792	void *buffer,
793	unsigned long value,
794	size_t size);
795
796KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
797_krb5_s4u2self_to_checksumdata (
798	krb5_context context,
799	const PA_S4U2Self *self,
800	krb5_data *data);
801
802KRB5_LIB_FUNCTION void KRB5_LIB_CALL
803_krb5_sendto_ctx_set_krb5hst (
804	krb5_context context,
805	krb5_sendto_ctx ctx,
806	krb5_krbhst_handle handle);
807
808KRB5_LIB_FUNCTION void KRB5_LIB_CALL
809_krb5_sendto_ctx_set_prexmit (
810	krb5_sendto_ctx ctx,
811	krb5_sendto_prexmit prexmit,
812	void *data);
813
814KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
815_krb5_set_cf_error_message (
816	krb5_context context,
817	krb5_error_code ret,
818	CFErrorRef error,
819	const char *fmt,
820	...)
821     HEIMDAL_PRINTF_ATTRIBUTE((printf, 4, 5));
822
823int
824_krb5_set_default_cc_name_to_registry (
825	krb5_context context,
826	krb5_ccache id);
827
828struct _krb5_srp *
829_krb5_srp_create (const struct _krb5_srp_group *group);
830
831krb5_error_code
832_krb5_srp_create_pa (
833	krb5_context context,
834	const struct _krb5_srp_group *group,
835	krb5_const_principal principal,
836	const char *password,
837	const KRB5_SRP_PA *spa,
838	krb5_data *verifier);
839
840size_t
841_krb5_srp_keysize (const struct _krb5_srp_group *group);
842
843size_t
844_krb5_srp_pkisize (const struct _krb5_srp_group *group);
845
846krb5_error_code
847_krb5_srp_reply_key (
848	krb5_context context,
849	const struct _krb5_srp_group *srpgroup,
850	krb5_enctype enctype,
851	const void *session_key,
852	size_t session_key_length,
853	krb5_const_principal client,
854	krb5_data *req_buffer,
855	krb5_data *announce,
856	krb5_keyblock *reply_key);
857
858const struct _krb5_srp_group *
859_krb5_srp_validate_group (KRB5_SRP_GROUP group);
860
861void
862_krb5_state_srv_sort (struct _krb5_srv_query_ctx *query);
863
864void
865_krb5_unload_plugins (
866	krb5_context context,
867	const char *name);
868
869krb5_error_code
870_krb5_usage2arcfour (
871	krb5_context context,
872	unsigned *usage);
873
874krb5_error_code
875_krb5_validate_pa_enc_challange (
876	krb5_context context,
877	krb5_crypto crypto,
878	krb5_key_usage usage,
879	EncryptedData *enc_data,
880	const char *peer_name);
881
882KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL
883_krb5_vset_cf_error_message (
884	krb5_context context,
885	krb5_error_code ret,
886	CFErrorRef error,
887	const char *fmt,
888	va_list args)
889     HEIMDAL_PRINTF_ATTRIBUTE((printf, 4, 0));
890
891int
892_krb5_xlock (
893	krb5_context context,
894	int fd,
895	krb5_boolean exclusive,
896	const char *filename);
897
898void
899_krb5_xor (
900	unsigned char *key,
901	const unsigned char *b);
902
903int
904_krb5_xunlock (
905	krb5_context context,
906	int fd);
907
908#undef KRB5_DEPRECATED_FUNCTION
909#define KRB5_DEPRECATED_FUNCTION(X)
910
911#endif /* __krb5_private_h__ */
912