1/* This is a generated file */
2#ifndef __gsskrb5_private_h__
3#define __gsskrb5_private_h__
4
5#include <stdarg.h>
6
7#ifndef HEIMDAL_PRINTF_ATTRIBUTE
8#if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1 )))
9#define HEIMDAL_PRINTF_ATTRIBUTE(x) __attribute__((format x))
10#else
11#define HEIMDAL_PRINTF_ATTRIBUTE(x)
12#endif
13#endif
14
15gssapi_mech_interface
16__gss_iakerb_initialize (void);
17
18gssapi_mech_interface
19__gss_krb5_initialize (void);
20
21gssapi_mech_interface
22__gss_pku2u_initialize (void);
23
24OM_uint32
25__gsskrb5_ccache_lifetime (
26	OM_uint32 *minor_status,
27	krb5_context context,
28	krb5_ccache id,
29	krb5_principal principal,
30	time_t *endtime);
31
32OM_uint32 GSSAPI_CALLCONV
33_gk_unwrap_iov (
34	OM_uint32 *minor_status,
35	gss_ctx_id_t context_handle,
36	int *conf_state,
37	gss_qop_t *qop_state,
38	gss_iov_buffer_desc *iov,
39	int iov_count);
40
41OM_uint32
42_gk_verify_buffers (
43	OM_uint32 *minor_status,
44	struct gsskrb5_crypto *ctx,
45	const gss_iov_buffer_desc *header,
46	const gss_iov_buffer_desc *padding,
47	const gss_iov_buffer_desc *trailer);
48
49OM_uint32 GSSAPI_CALLCONV
50_gk_wrap_iov (
51	OM_uint32 * minor_status,
52	gss_ctx_id_t context_handle,
53	int conf_req_flag,
54	gss_qop_t qop_req,
55	int * conf_state,
56	gss_iov_buffer_desc *iov,
57	int iov_count);
58
59OM_uint32 GSSAPI_CALLCONV
60_gk_wrap_iov_length (
61	OM_uint32 * minor_status,
62	gss_ctx_id_t context_handle,
63	int conf_req_flag,
64	gss_qop_t qop_req,
65	int *conf_state,
66	gss_iov_buffer_desc *iov,
67	int iov_count);
68
69OM_uint32
70_gss_DES3_get_mic_compat (
71	OM_uint32 *minor_status,
72	gsskrb5_ctx ctx,
73	krb5_context context);
74
75OM_uint32
76_gss_iakerb_acquire_cred_ext (
77	OM_uint32 * minor_status,
78	const gss_name_t desired_name,
79	gss_const_OID credential_type,
80	const void *credential_data,
81	OM_uint32 time_req,
82	gss_const_OID desired_mech,
83	gss_cred_usage_t cred_usage,
84	gss_cred_id_t * output_cred_handle);
85
86void
87_gss_iakerb_iter_creds_f (
88	OM_uint32 flags,
89	void *userctx ,
90	void (*cred_iter)(void *, gss_OID, gss_cred_id_t));
91
92OM_uint32 GSSAPI_CALLCONV
93_gss_krb5_acquire_cred_ext (
94	OM_uint32 * minor_status,
95	const gss_name_t desired_name,
96	gss_const_OID credential_type,
97	const void *credential_data,
98	OM_uint32 time_req,
99	gss_const_OID desired_mech,
100	gss_cred_usage_t cred_usage,
101	gss_cred_id_t * output_cred_handle);
102
103void
104_gss_krb5_iter_creds_f (
105	OM_uint32 flags,
106	void *userctx ,
107	void (*cred_iter)(void *, gss_OID, gss_cred_id_t));
108
109void
110_gss_pku2u_iter_creds_f (
111	OM_uint32 flags,
112	void *userctx ,
113	void (*cred_iter)(void *, gss_OID, gss_cred_id_t));
114
115OM_uint32
116_gssapi_decapsulate (
117	OM_uint32 *minor_status,
118	gss_buffer_t input_token_buffer,
119	uint8_t type[2],
120	krb5_data *out_data,
121	const gss_OID mech);
122
123void
124_gssapi_encap_length (
125	size_t data_len,
126	size_t *len,
127	size_t *total_len,
128	const gss_OID mech);
129
130OM_uint32
131_gssapi_encapsulate (
132	 OM_uint32 *minor_status,
133	const krb5_data *in_data,
134	gss_buffer_t output_token,
135	const gss_OID mech );
136
137OM_uint32
138_gssapi_get_mic_arcfour (
139	OM_uint32 * minor_status,
140	const gsskrb5_ctx context_handle,
141	krb5_context context,
142	gss_qop_t qop_req,
143	const gss_buffer_t message_buffer,
144	gss_buffer_t message_token,
145	krb5_keyblock *key);
146
147void *
148_gssapi_make_mech_header (
149	void *ptr,
150	size_t len,
151	const gss_OID mech);
152
153OM_uint32
154_gssapi_mic_cfx (
155	OM_uint32 *minor_status,
156	struct gsskrb5_crypto *ctx,
157	krb5_context context,
158	gss_qop_t qop_req,
159	const gss_buffer_t message_buffer,
160	gss_buffer_t message_token);
161
162OM_uint32
163_gssapi_msg_order_check (
164	struct gss_msg_order *o,
165	OM_uint32 seq_num);
166
167OM_uint32
168_gssapi_msg_order_create (
169	OM_uint32 *minor_status,
170	struct gss_msg_order **o,
171	OM_uint32 flags,
172	OM_uint32 seq_num,
173	OM_uint32 jitter_window,
174	int use_64);
175
176OM_uint32
177_gssapi_msg_order_destroy (struct gss_msg_order **m);
178
179krb5_error_code
180_gssapi_msg_order_export (
181	krb5_storage *sp,
182	struct gss_msg_order *o);
183
184OM_uint32
185_gssapi_msg_order_f (OM_uint32 flags);
186
187OM_uint32
188_gssapi_msg_order_import (
189	OM_uint32 *minor_status,
190	krb5_storage *sp,
191	struct gss_msg_order **o);
192
193OM_uint32
194_gssapi_unwrap_arcfour (
195	OM_uint32 *minor_status,
196	const gsskrb5_ctx context_handle,
197	krb5_context context,
198	const gss_buffer_t input_message_buffer,
199	gss_buffer_t output_message_buffer,
200	int *conf_state,
201	gss_qop_t *qop_state,
202	krb5_keyblock *key);
203
204OM_uint32
205_gssapi_unwrap_cfx (
206	OM_uint32 *minor_status,
207	struct gsskrb5_crypto *ctx,
208	krb5_context context,
209	const gss_buffer_t input_message_buffer,
210	gss_buffer_t output_message_buffer,
211	int *conf_state,
212	gss_qop_t *qop_state);
213
214OM_uint32
215_gssapi_unwrap_cfx_iov (
216	OM_uint32 *minor_status,
217	struct gsskrb5_crypto *ctx,
218	krb5_context context,
219	int *conf_state,
220	gss_qop_t *qop_state,
221	gss_iov_buffer_desc *iov,
222	int iov_count);
223
224OM_uint32
225_gssapi_verify_mech_header (
226	u_char **str,
227	size_t total_len,
228	gss_OID mech);
229
230OM_uint32
231_gssapi_verify_mic_arcfour (
232	OM_uint32 * minor_status,
233	const gsskrb5_ctx context_handle,
234	krb5_context context,
235	const gss_buffer_t message_buffer,
236	const gss_buffer_t token_buffer,
237	gss_qop_t * qop_state,
238	krb5_keyblock *key,
239	const char *type);
240
241OM_uint32
242_gssapi_verify_mic_cfx (
243	OM_uint32 *minor_status,
244	struct gsskrb5_crypto *ctx,
245	krb5_context context,
246	const gss_buffer_t message_buffer,
247	const gss_buffer_t token_buffer,
248	gss_qop_t *qop_state);
249
250OM_uint32
251_gssapi_verify_pad (
252	gss_buffer_t wrapped_token,
253	size_t datalen,
254	size_t *padlen);
255
256OM_uint32
257_gssapi_wrap_arcfour (
258	OM_uint32 * minor_status,
259	const gsskrb5_ctx context_handle,
260	krb5_context context,
261	int conf_req_flag,
262	gss_qop_t qop_req,
263	const gss_buffer_t input_message_buffer,
264	int * conf_state,
265	gss_buffer_t output_message_buffer,
266	krb5_keyblock *key);
267
268OM_uint32
269_gssapi_wrap_cfx (
270	OM_uint32 *minor_status,
271	struct gsskrb5_crypto *ctx,
272	krb5_context context,
273	int conf_req_flag,
274	const gss_buffer_t input_message_buffer,
275	int *conf_state,
276	gss_buffer_t output_message_buffer);
277
278OM_uint32
279_gssapi_wrap_cfx_iov (
280	OM_uint32 *minor_status,
281	struct gsskrb5_crypto *ctx,
282	krb5_context context,
283	int conf_req_flag,
284	int *conf_state,
285	gss_iov_buffer_desc *iov,
286	int iov_count);
287
288OM_uint32
289_gssapi_wrap_iov_length_cfx (
290	OM_uint32 *minor_status,
291	struct gsskrb5_crypto *ctx,
292	krb5_context context,
293	int conf_req_flag,
294	gss_qop_t qop_req,
295	int *conf_state,
296	gss_iov_buffer_desc *iov,
297	int iov_count);
298
299OM_uint32
300_gssapi_wrap_size_arcfour (
301	OM_uint32 *minor_status,
302	const gsskrb5_ctx ctx,
303	krb5_context context,
304	int conf_req_flag,
305	gss_qop_t qop_req,
306	OM_uint32 req_output_size,
307	OM_uint32 *max_input_size,
308	krb5_keyblock *key);
309
310OM_uint32
311_gssapi_wrap_size_cfx (
312	OM_uint32 *minor_status,
313	struct gsskrb5_crypto *ctx,
314	krb5_context context,
315	int conf_req_flag,
316	gss_qop_t qop_req,
317	OM_uint32 req_output_size,
318	OM_uint32 *max_input_size);
319
320OM_uint32
321_gssiakerb_accept_sec_context (
322	OM_uint32 * minor_status,
323	gss_ctx_id_t * context_handle,
324	const gss_cred_id_t acceptor_cred_handle,
325	const gss_buffer_t input_token_buffer,
326	const gss_channel_bindings_t input_chan_bindings,
327	gss_name_t * src_name,
328	gss_OID * mech_type,
329	gss_buffer_t output_token,
330	OM_uint32 * ret_flags,
331	OM_uint32 * time_rec,
332	gss_cred_id_t * delegated_cred_handle);
333
334OM_uint32
335_gssiakerb_acquire_cred (
336	OM_uint32 * minor_status,
337	const gss_name_t desired_name,
338	OM_uint32 time_req,
339	const gss_OID_set desired_mechs,
340	gss_cred_usage_t cred_usage,
341	gss_cred_id_t * output_cred_handle,
342	gss_OID_set * actual_mechs,
343	OM_uint32 * time_rec);
344
345OM_uint32
346_gssiakerb_export_name (
347	OM_uint32 * minor_status,
348	const gss_name_t input_name,
349	gss_buffer_t exported_name);
350
351OM_uint32
352_gssiakerb_import_name (
353	OM_uint32 * minor_status,
354	const gss_buffer_t input_name_buffer,
355	gss_const_OID input_name_type,
356	gss_name_t * output_name);
357
358OM_uint32
359_gssiakerb_inquire_names_for_mech (
360	OM_uint32 * minor_status,
361	gss_const_OID mechanism,
362	gss_OID_set * name_types);
363
364OM_uint32
365_gsskrb5_accept_sec_context (
366	OM_uint32 * minor_status,
367	gss_ctx_id_t * context_handle,
368	const gss_cred_id_t acceptor_cred_handle,
369	const gss_buffer_t input_token_buffer,
370	const gss_channel_bindings_t input_chan_bindings,
371	gss_name_t * src_name,
372	gss_OID * mech_type,
373	gss_buffer_t output_token,
374	OM_uint32 * ret_flags,
375	OM_uint32 * time_rec,
376	gss_cred_id_t * delegated_cred_handle);
377
378OM_uint32 GSSAPI_CALLCONV
379_gsskrb5_acquire_cred (
380	OM_uint32 * minor_status,
381	const gss_name_t desired_name,
382	OM_uint32 time_req,
383	const gss_OID_set desired_mechs,
384	gss_cred_usage_t cred_usage,
385	gss_cred_id_t * output_cred_handle,
386	gss_OID_set * actual_mechs,
387	OM_uint32 * time_rec);
388
389OM_uint32 GSSAPI_CALLCONV
390_gsskrb5_add_cred (
391	 OM_uint32 *minor_status,
392	const gss_cred_id_t input_cred_handle,
393	const gss_name_t desired_name,
394	const gss_OID desired_mech,
395	gss_cred_usage_t cred_usage,
396	OM_uint32 initiator_time_req,
397	OM_uint32 acceptor_time_req,
398	gss_cred_id_t *output_cred_handle,
399	gss_OID_set *actual_mechs,
400	OM_uint32 *initiator_time_rec,
401	OM_uint32 *acceptor_time_rec);
402
403OM_uint32
404_gsskrb5_appl_change_password (
405	OM_uint32 *minor_status,
406	gss_name_t name,
407	const char *oldpw,
408	const char *newpw);
409
410OM_uint32 GSSAPI_CALLCONV
411_gsskrb5_authorize_localname (
412	OM_uint32 *minor_status,
413	const gss_name_t input_name,
414	gss_const_buffer_t user_name,
415	gss_const_OID user_name_type);
416
417OM_uint32
418_gsskrb5_canon_name (
419	OM_uint32 *minor_status,
420	krb5_context context,
421	int use_dns,
422	krb5_const_principal sourcename,
423	gss_name_t targetname,
424	krb5_principal *out);
425
426OM_uint32 GSSAPI_CALLCONV
427_gsskrb5_canonicalize_name (
428	 OM_uint32 * minor_status,
429	const gss_name_t input_name,
430	const gss_OID mech_type,
431	gss_name_t * output_name );
432
433void
434_gsskrb5_clear_status (void);
435
436OM_uint32 GSSAPI_CALLCONV
437_gsskrb5_compare_name (
438	OM_uint32 * minor_status,
439	const gss_name_t name1,
440	const gss_name_t name2,
441	int * name_equal );
442
443OM_uint32 GSSAPI_CALLCONV
444_gsskrb5_context_time (
445	OM_uint32 * minor_status,
446	const gss_ctx_id_t context_handle,
447	OM_uint32 * time_rec );
448
449OM_uint32
450_gsskrb5_create_8003_checksum (
451	OM_uint32 *minor_status,
452	krb5_context context,
453	krb5_crypto crypto,
454	const gss_channel_bindings_t input_chan_bindings,
455	OM_uint32 flags,
456	krb5_data *fwd_data,
457	krb5_data *pkt_cksum,
458	Checksum *result);
459
460OM_uint32
461_gsskrb5_create_ctx (
462	OM_uint32 * minor_status,
463	gss_ctx_id_t * context_handle,
464	krb5_context context,
465	const gss_channel_bindings_t input_chan_bindings,
466	gss_OID mech);
467
468OM_uint32
469_gsskrb5_cred_hold (
470	OM_uint32 *minor_status,
471	gss_cred_id_t cred);
472
473OM_uint32
474_gsskrb5_cred_label_get (
475	OM_uint32 *minor_status,
476	gss_cred_id_t cred_handle,
477	const char *label,
478	gss_buffer_t value);
479
480OM_uint32
481_gsskrb5_cred_label_set (
482	OM_uint32 *minor_status,
483	gss_cred_id_t cred_handle,
484	const char *label,
485	gss_buffer_t value);
486
487OM_uint32
488_gsskrb5_cred_unhold (
489	OM_uint32 *minor_status,
490	gss_cred_id_t cred);
491
492OM_uint32
493_gsskrb5_decapsulate (
494	OM_uint32 *minor_status,
495	gss_buffer_t input_token_buffer,
496	krb5_data *out_data,
497	const void *type,
498	gss_OID oid);
499
500krb5_error_code
501_gsskrb5_decode_be_om_uint32 (
502	const void *ptr,
503	OM_uint32 *n);
504
505OM_uint32 GSSAPI_CALLCONV
506_gsskrb5_delete_sec_context (
507	OM_uint32 * minor_status,
508	gss_ctx_id_t * context_handle,
509	gss_buffer_t output_token);
510
511OM_uint32
512_gsskrb5_destroy_cred (
513	OM_uint32 *minor_status,
514	gss_cred_id_t *cred_handle);
515
516OM_uint32 GSSAPI_CALLCONV
517_gsskrb5_display_name (
518	OM_uint32 * minor_status,
519	const gss_name_t input_name,
520	gss_buffer_t output_name_buffer,
521	gss_OID * output_name_type );
522
523OM_uint32 GSSAPI_CALLCONV
524_gsskrb5_display_status (
525	OM_uint32 *minor_status,
526	OM_uint32 status_value,
527	int status_type,
528	const gss_OID mech_type,
529	OM_uint32 *message_context,
530	gss_buffer_t status_string);
531
532OM_uint32 GSSAPI_CALLCONV
533_gsskrb5_duplicate_name (
534	 OM_uint32 * minor_status,
535	const gss_name_t src_name,
536	gss_name_t * dest_name );
537
538void
539_gsskrb5_encap_length (
540	size_t data_len,
541	size_t *len,
542	size_t *total_len,
543	const gss_OID mech);
544
545OM_uint32
546_gsskrb5_encapsulate (
547	 OM_uint32 *minor_status,
548	const krb5_data *in_data,
549	gss_buffer_t output_token,
550	const void *type,
551	const gss_OID mech );
552
553OM_uint32
554_gsskrb5_error_token (
555	OM_uint32 *minor_status,
556	gss_OID mech,
557	krb5_context context,
558	krb5_error_code error_code,
559	krb5_data *e_data,
560	krb5_principal server,
561	gss_buffer_t output_token);
562
563OM_uint32 GSSAPI_CALLCONV
564_gsskrb5_export_cred (
565	OM_uint32 *minor_status,
566	gss_cred_id_t cred_handle,
567	gss_buffer_t cred_token);
568
569OM_uint32
570_gsskrb5_export_name (
571	OM_uint32 * minor_status,
572	const gss_name_t input_name,
573	gss_buffer_t exported_name);
574
575OM_uint32 GSSAPI_CALLCONV
576_gsskrb5_export_sec_context (
577	 OM_uint32 * minor_status,
578	gss_ctx_id_t * context_handle,
579	gss_buffer_t interprocess_token );
580
581ssize_t
582_gsskrb5_get_mech (
583	const u_char *ptr,
584	size_t total_len,
585	const u_char **mech_ret);
586
587OM_uint32 GSSAPI_CALLCONV
588_gsskrb5_get_mic (
589	OM_uint32 * minor_status,
590	const gss_ctx_id_t context_handle,
591	gss_qop_t qop_req,
592	const gss_buffer_t message_buffer,
593	gss_buffer_t message_token );
594
595OM_uint32
596_gsskrb5_get_tkt_flags (
597	OM_uint32 *minor_status,
598	gsskrb5_ctx ctx,
599	OM_uint32 *tkt_flags);
600
601OM_uint32
602_gsskrb5_iakerb_make_header (
603	OM_uint32 *minor_status,
604	krb5_context context,
605	gsskrb5_ctx ctx,
606	krb5_realm realm,
607	krb5_data *kdata,
608	gss_buffer_t output_token);
609
610OM_uint32
611_gsskrb5_iakerb_parse_header (
612	OM_uint32 *minor_status,
613	krb5_context context,
614	gsskrb5_ctx ctx,
615	const gss_buffer_t input_token,
616	krb5_data *data);
617
618OM_uint32 GSSAPI_CALLCONV
619_gsskrb5_import_cred (
620	OM_uint32 * minor_status,
621	gss_buffer_t cred_token,
622	gss_cred_id_t * cred_handle);
623
624OM_uint32 GSSAPI_CALLCONV
625_gsskrb5_import_name (
626	OM_uint32 * minor_status,
627	const gss_buffer_t input_name_buffer,
628	gss_const_OID input_name_type,
629	gss_name_t * output_name );
630
631OM_uint32 GSSAPI_CALLCONV
632_gsskrb5_import_sec_context (
633	 OM_uint32 * minor_status,
634	const gss_buffer_t interprocess_token,
635	gss_ctx_id_t * context_handle );
636
637OM_uint32 GSSAPI_CALLCONV
638_gsskrb5_indicate_mechs (
639	OM_uint32 * minor_status,
640	gss_OID_set * mech_set );
641
642krb5_error_code
643_gsskrb5_init (krb5_context *context);
644
645OM_uint32 GSSAPI_CALLCONV
646_gsskrb5_init_sec_context (
647	OM_uint32 * minor_status,
648	const gss_cred_id_t cred_handle,
649	gss_ctx_id_t * context_handle,
650	const gss_name_t target_name,
651	const gss_OID mech_type,
652	OM_uint32 req_flags,
653	OM_uint32 time_req,
654	const gss_channel_bindings_t input_chan_bindings,
655	const gss_buffer_t input_token,
656	gss_OID * actual_mech_type,
657	gss_buffer_t output_token,
658	OM_uint32 * ret_flags,
659	OM_uint32 * time_rec );
660
661OM_uint32 GSSAPI_CALLCONV
662_gsskrb5_inquire_context (
663	 OM_uint32 * minor_status,
664	const gss_ctx_id_t context_handle,
665	gss_name_t * src_name,
666	gss_name_t * targ_name,
667	OM_uint32 * lifetime_rec,
668	gss_OID * mech_type,
669	OM_uint32 * ctx_flags,
670	int * locally_initiated,
671	int * open_context );
672
673OM_uint32 GSSAPI_CALLCONV
674_gsskrb5_inquire_cred (
675	OM_uint32 * minor_status,
676	const gss_cred_id_t cred_handle,
677	gss_name_t * output_name,
678	OM_uint32 * lifetime,
679	gss_cred_usage_t * cred_usage,
680	gss_OID_set * mechanisms );
681
682OM_uint32 GSSAPI_CALLCONV
683_gsskrb5_inquire_cred_by_mech (
684	 OM_uint32 * minor_status,
685	const gss_cred_id_t cred_handle,
686	const gss_OID mech_type,
687	gss_name_t * name,
688	OM_uint32 * initiator_lifetime,
689	OM_uint32 * acceptor_lifetime,
690	gss_cred_usage_t * cred_usage );
691
692OM_uint32 GSSAPI_CALLCONV
693_gsskrb5_inquire_cred_by_oid (
694	OM_uint32 * minor_status,
695	const gss_cred_id_t cred_handle,
696	const gss_OID desired_object,
697	gss_buffer_set_t *data_set);
698
699OM_uint32 GSSAPI_CALLCONV
700_gsskrb5_inquire_mechs_for_name (
701	 OM_uint32 * minor_status,
702	const gss_name_t input_name,
703	gss_OID_set * mech_types );
704
705OM_uint32 GSSAPI_CALLCONV
706_gsskrb5_inquire_names_for_mech (
707	 OM_uint32 * minor_status,
708	gss_const_OID mechanism,
709	gss_OID_set * name_types );
710
711OM_uint32 GSSAPI_CALLCONV
712_gsskrb5_inquire_sec_context_by_oid (
713	OM_uint32 *minor_status,
714	const gss_ctx_id_t context_handle,
715	const gss_OID desired_object,
716	gss_buffer_set_t *data_set);
717
718OM_uint32
719_gsskrb5_krb5_ccache_name (
720	OM_uint32 *minor_status,
721	const char *name,
722	const char **out_name);
723
724OM_uint32
725_gsskrb5_krb5_import_cred (
726	OM_uint32 *minor_status,
727	krb5_ccache id,
728	krb5_principal keytab_principal,
729	krb5_keytab keytab,
730	gss_cred_id_t *cred);
731
732OM_uint32
733_gsskrb5_lifetime_left (
734	OM_uint32 *minor_status,
735	krb5_context context,
736	time_t endtime,
737	OM_uint32 *lifetime);
738
739void *
740_gsskrb5_make_header (
741	void *ptr,
742	size_t len,
743	const void *type,
744	const gss_OID mech);
745
746OM_uint32 GSSAPI_CALLCONV
747_gsskrb5_pname_to_uid (
748	OM_uint32 *minor_status,
749	const gss_name_t pname,
750	const gss_OID mech_type,
751	uid_t *uidp);
752
753OM_uint32 GSSAPI_CALLCONV
754_gsskrb5_process_context_token (
755	 OM_uint32 *minor_status,
756	const gss_ctx_id_t context_handle,
757	const gss_buffer_t token_buffer );
758
759OM_uint32 GSSAPI_CALLCONV
760_gsskrb5_pseudo_random (
761	OM_uint32 *minor_status,
762	gss_ctx_id_t context_handle,
763	int prf_key,
764	const gss_buffer_t prf_in,
765	ssize_t desired_output_len,
766	gss_buffer_t prf_out);
767
768OM_uint32
769_gsskrb5_register_acceptor_identity (
770	OM_uint32 *min_stat,
771	const char *identity);
772
773OM_uint32
774_gsskrb5_release_buffer (
775	OM_uint32 * minor_status,
776	gss_buffer_t buffer );
777
778OM_uint32 GSSAPI_CALLCONV
779_gsskrb5_release_cred (
780	OM_uint32 * minor_status,
781	gss_cred_id_t * cred_handle );
782
783OM_uint32 GSSAPI_CALLCONV
784_gsskrb5_release_name (
785	OM_uint32 * minor_status,
786	gss_name_t * input_name );
787
788OM_uint32 GSSAPI_CALLCONV
789_gsskrb5_set_cred_option (
790	OM_uint32 *minor_status,
791	gss_cred_id_t *cred_handle,
792	const gss_OID desired_object,
793	const gss_buffer_t value);
794
795OM_uint32 GSSAPI_CALLCONV
796_gsskrb5_set_sec_context_option (
797	OM_uint32 *minor_status,
798	gss_ctx_id_t *context_handle,
799	const gss_OID desired_object,
800	const gss_buffer_t value);
801
802void
803_gsskrb5_set_status (
804	int ret,
805	const char *fmt,
806	...)
807     HEIMDAL_PRINTF_ATTRIBUTE((printf, 2, 3));
808
809OM_uint32 GSSAPI_CALLCONV
810_gsskrb5_store_cred (
811	OM_uint32 *minor_status,
812	gss_cred_id_t input_cred_handle,
813	gss_cred_usage_t cred_usage,
814	const gss_OID desired_mech,
815	OM_uint32 overwrite_cred,
816	OM_uint32 default_cred,
817	gss_OID_set *elements_stored,
818	gss_cred_usage_t *cred_usage_stored);
819
820OM_uint32 GSSAPI_CALLCONV
821_gsskrb5_unwrap (
822	OM_uint32 * minor_status,
823	const gss_ctx_id_t context_handle,
824	const gss_buffer_t input_message_buffer,
825	gss_buffer_t output_message_buffer,
826	int * conf_state,
827	gss_qop_t * qop_state );
828
829OM_uint32
830_gsskrb5_verify_8003_checksum (
831	OM_uint32 *minor_status,
832	krb5_context context,
833	krb5_crypto crypto,
834	const gss_channel_bindings_t input_chan_bindings,
835	const Checksum *cksum,
836	OM_uint32 *flags,
837	krb5_data *fwd_data,
838	krb5_data *finished);
839
840OM_uint32
841_gsskrb5_verify_header (
842	u_char **str,
843	size_t total_len,
844	const void *type,
845	gss_OID oid);
846
847OM_uint32 GSSAPI_CALLCONV
848_gsskrb5_verify_mic (
849	OM_uint32 * minor_status,
850	const gss_ctx_id_t context_handle,
851	const gss_buffer_t message_buffer,
852	const gss_buffer_t token_buffer,
853	gss_qop_t * qop_state );
854
855OM_uint32
856_gsskrb5_verify_mic_internal (
857	OM_uint32 * minor_status,
858	const gsskrb5_ctx ctx,
859	krb5_context context,
860	const gss_buffer_t message_buffer,
861	const gss_buffer_t token_buffer,
862	gss_qop_t * qop_state,
863	const char * type );
864
865OM_uint32 GSSAPI_CALLCONV
866_gsskrb5_wrap (
867	OM_uint32 * minor_status,
868	const gss_ctx_id_t context_handle,
869	int conf_req_flag,
870	gss_qop_t qop_req,
871	const gss_buffer_t input_message_buffer,
872	int * conf_state,
873	gss_buffer_t output_message_buffer );
874
875OM_uint32 GSSAPI_CALLCONV
876_gsskrb5_wrap_size_limit (
877	 OM_uint32 * minor_status,
878	const gss_ctx_id_t context_handle,
879	int conf_req_flag,
880	gss_qop_t qop_req,
881	OM_uint32 req_output_size,
882	OM_uint32 * max_input_size );
883
884krb5_error_code
885_gsskrb5cfx_wrap_length_cfx (
886	krb5_context context,
887	struct gsskrb5_crypto *ctx,
888	int conf_req_flag,
889	size_t input_length,
890	size_t *output_length,
891	size_t *cksumsize,
892	uint16_t *padlength);
893
894krb5_error_code
895_gsskrb5i_address_to_krb5addr (
896	krb5_context context,
897	OM_uint32 gss_addr_type,
898	gss_buffer_desc *gss_addr,
899	int16_t port,
900	krb5_address *address);
901
902krb5_error_code
903_gsskrb5i_get_acceptor_subkey (
904	const gsskrb5_ctx ctx,
905	krb5_context context,
906	krb5_keyblock **key);
907
908krb5_error_code
909_gsskrb5i_get_initiator_subkey (
910	const gsskrb5_ctx ctx,
911	krb5_context context,
912	krb5_keyblock **key);
913
914OM_uint32
915_gsskrb5i_get_token_key (
916	const gsskrb5_ctx ctx,
917	krb5_context context,
918	krb5_keyblock **key);
919
920void
921_gsskrb5i_is_cfx (
922	krb5_context context,
923	gsskrb5_ctx ctx,
924	int acceptor);
925
926OM_uint32
927_gsspku2u_accept_sec_context (
928	OM_uint32 * minor_status,
929	gss_ctx_id_t * context_handle,
930	const gss_cred_id_t acceptor_cred_handle,
931	const gss_buffer_t input_token_buffer,
932	const gss_channel_bindings_t input_chan_bindings,
933	gss_name_t * src_name,
934	gss_OID * mech_type,
935	gss_buffer_t output_token,
936	OM_uint32 * ret_flags,
937	OM_uint32 * time_rec,
938	gss_cred_id_t * delegated_cred_handle);
939
940OM_uint32
941_gsspku2u_acquire_cred (
942	OM_uint32 * minor_status,
943	const gss_name_t desired_name,
944	OM_uint32 time_req,
945	const gss_OID_set desired_mechs,
946	gss_cred_usage_t cred_usage,
947	gss_cred_id_t * output_cred_handle,
948	gss_OID_set * actual_mechs,
949	OM_uint32 * time_rec);
950
951OM_uint32
952_gsspku2u_export_name (
953	OM_uint32 * minor_status,
954	const gss_name_t input_name,
955	gss_buffer_t exported_name);
956
957OM_uint32
958_gsspku2u_import_name (
959	OM_uint32 * minor_status,
960	const gss_buffer_t input_name_buffer,
961	gss_const_OID input_name_type,
962	gss_name_t * output_name );
963
964OM_uint32
965_gsspku2u_inquire_names_for_mech (
966	OM_uint32 * minor_status,
967	gss_const_OID mechanism,
968	gss_OID_set * name_types);
969
970krb5_error_code
971_gsspku2u_principal (
972	krb5_context context,
973	struct hx509_cert_data *cert,
974	krb5_principal *principal);
975
976#endif /* __gsskrb5_private_h__ */
977