ce1c9280b07e062979c8859c6b6f5e76a4ccb4d6
[krb5.git] / src / include / krb5 / func-proto.h
1 /*
2  * include/krb5/func-proto.h
3  *
4  * Copyright 1990,1991 by the Massachusetts Institute of Technology.
5  * All Rights Reserved.
6  *
7  * Export of this software from the United States of America may
8  *   require a specific license from the United States Government.
9  *   It is the responsibility of any person or organization contemplating
10  *   export to obtain such a license before exporting.
11  * 
12  * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
13  * distribute this software and its documentation for any purpose and
14  * without fee is hereby granted, provided that the above copyright
15  * notice appear in all copies and that both that copyright notice and
16  * this permission notice appear in supporting documentation, and that
17  * the name of M.I.T. not be used in advertising or publicity pertaining
18  * to distribution of the software without specific, written prior
19  * permission.  M.I.T. makes no representations about the suitability of
20  * this software for any purpose.  It is provided "as is" without express
21  * or implied warranty.
22  * 
23  *
24  * Function prototypes for Kerberos V5 library.
25  */
26
27 #ifndef KRB5_FUNC_PROTO__
28 #define KRB5_FUNC_PROTO__
29
30 krb5_error_code INTERFACE krb5_init_context
31         PROTOTYPE((krb5_context FAR *));
32 void INTERFACE krb5_free_context
33         PROTOTYPE((krb5_context));
34
35 krb5_error_code INTERFACE krb5_set_default_in_tkt_etypes
36         PROTOTYPE((krb5_context,
37                    const krb5_enctype *));
38 krb5_error_code INTERFACE krb5_get_default_in_tkt_etypes
39         PROTOTYPE((krb5_context,
40                    krb5_enctype **));
41
42 /* This is a hack to find what needs fixing later, when we've all forgotten
43  which rotuines still need fixing */
44 extern krb5_context global_context;
45
46 /* libkrb.spec */
47 krb5_error_code INTERFACE krb5_kdc_rep_decrypt_proc
48         PROTOTYPE((krb5_context,
49                    const krb5_keyblock *,
50                    krb5_const_pointer,
51                    krb5_kdc_rep * ));
52 krb5_error_code INTERFACE krb5_encode_ticket
53         PROTOTYPE((krb5_context,
54                    const krb5_ticket *,
55                    krb5_data ** ));
56 krb5_error_code INTERFACE krb5_encrypt_tkt_part
57         PROTOTYPE((krb5_context,
58                    krb5_encrypt_block *,
59                    const krb5_keyblock *,
60                    krb5_ticket * ));
61 krb5_error_code INTERFACE krb5_decrypt_tkt_part
62         PROTOTYPE((krb5_context,
63                    const krb5_keyblock *,
64                    krb5_ticket * ));
65 krb5_error_code INTERFACE krb5_get_cred_from_kdc
66         PROTOTYPE((krb5_context,
67                    krb5_ccache,         /* not const, as reading may save
68                                            state */
69                    krb5_creds *,
70                    krb5_creds **,
71                    krb5_creds *** ));
72 void INTERFACE krb5_free_tgt_creds
73         PROTOTYPE((krb5_context,
74                    krb5_creds ** ));    /* XXX too hard to do with const */
75
76 #define KRB5_GC_USER_USER       1       /* want user-user ticket */
77 #define KRB5_GC_CACHED          2       /* want cached ticket only */
78
79 krb5_error_code INTERFACE krb5_get_credentials
80         PROTOTYPE((krb5_context,
81                    const krb5_flags,
82                    krb5_ccache,
83                    krb5_creds FAR *,
84                    krb5_creds FAR * FAR *));
85 krb5_error_code INTERFACE krb5_get_for_creds
86         PROTOTYPE((krb5_context,
87                    const krb5_cksumtype,
88                    char *,
89                    krb5_principal,
90                    krb5_keyblock *,
91                    int,
92                    krb5_data * ));
93 krb5_error_code INTERFACE krb5_mk_req
94         PROTOTYPE((krb5_context,
95                    krb5_auth_context **,
96                    const krb5_flags,
97                    char *,
98                    char *,
99                    krb5_data *,
100                    krb5_ccache,
101                    krb5_data * ));
102 krb5_error_code INTERFACE krb5_mk_req_extended
103         PROTOTYPE((krb5_context,
104                    krb5_auth_context FAR * FAR *,
105                    const krb5_flags,
106                    krb5_data FAR *,
107                    krb5_creds FAR *,
108                    krb5_data FAR * ));
109 krb5_error_code INTERFACE krb5_mk_rep
110         PROTOTYPE((krb5_context,
111                    krb5_auth_context *,
112                    krb5_data *));
113 krb5_error_code INTERFACE krb5_rd_rep
114         PROTOTYPE((krb5_context,
115                    krb5_auth_context FAR *,
116                    const krb5_data FAR *,
117                    krb5_ap_rep_enc_part FAR * FAR *));
118 krb5_error_code INTERFACE krb5_mk_error
119         PROTOTYPE((krb5_context,
120                    const krb5_error *,
121                    krb5_data * ));
122 krb5_error_code INTERFACE krb5_rd_error
123         PROTOTYPE((krb5_context,
124                    const krb5_data *,
125                    krb5_error ** ));
126 krb5_error_code INTERFACE krb5_rd_safe
127         PROTOTYPE((krb5_context,
128                    krb5_auth_context *,
129                    const krb5_data *,
130                    krb5_data *,
131                    krb5_replay_data *));
132 krb5_error_code INTERFACE krb5_rd_priv
133         PROTOTYPE((krb5_context,
134                    krb5_auth_context *,
135                    const krb5_data *,
136                    krb5_data *,
137                    krb5_replay_data *));
138 krb5_error_code INTERFACE krb5_parse_name
139         PROTOTYPE((krb5_context,
140                    const char FAR *,
141                    krb5_principal FAR * ));
142 krb5_error_code INTERFACE krb5_unparse_name
143         PROTOTYPE((krb5_context,
144                    krb5_const_principal,
145                    char FAR * FAR * ));
146 krb5_error_code INTERFACE krb5_unparse_name_ext
147         PROTOTYPE((krb5_context,
148                    krb5_const_principal,
149                    char **,
150                    int *));
151 krb5_boolean INTERFACE krb5_address_search
152         PROTOTYPE((krb5_context,
153                    const krb5_address *,
154                    krb5_address * const *));
155 krb5_boolean INTERFACE krb5_address_compare
156         PROTOTYPE((krb5_context,
157                    const krb5_address *,
158                    const krb5_address *));
159 int INTERFACE krb5_address_order
160         PROTOTYPE((krb5_context,
161                    const krb5_address *,
162                    const krb5_address *));
163 krb5_boolean INTERFACE krb5_realm_compare
164         PROTOTYPE((krb5_context,
165                    krb5_const_principal,
166                    krb5_const_principal));
167 krb5_boolean INTERFACE krb5_principal_compare
168         PROTOTYPE((krb5_context,
169                    krb5_const_principal,
170                    krb5_const_principal));
171 int INTERFACE krb5_fulladdr_order
172         PROTOTYPE((krb5_context,
173                    const krb5_fulladdr *,
174                    const krb5_fulladdr *));
175 krb5_error_code INTERFACE krb5_copy_keyblock
176         PROTOTYPE((krb5_context,
177                    const krb5_keyblock *,
178                krb5_keyblock **));
179 krb5_error_code INTERFACE krb5_copy_keyblock_contents
180         PROTOTYPE((krb5_context,
181                    const krb5_keyblock *,
182                krb5_keyblock *));
183 krb5_error_code INTERFACE krb5_copy_creds
184         PROTOTYPE((krb5_context,
185                    const krb5_creds *,
186                krb5_creds **));
187 krb5_error_code INTERFACE krb5_copy_data
188         PROTOTYPE((krb5_context,
189                    const krb5_data *,
190                krb5_data **));
191 krb5_error_code INTERFACE krb5_copy_principal
192         PROTOTYPE((krb5_context,
193                    krb5_const_principal,
194                krb5_principal *));
195 krb5_error_code INTERFACE krb5_copy_addresses
196         PROTOTYPE((krb5_context,
197                    krb5_address * const *,
198                krb5_address ***));
199 krb5_error_code INTERFACE krb5_copy_ticket
200         PROTOTYPE((krb5_context,
201                    const krb5_ticket *, krb5_ticket **));
202 krb5_error_code INTERFACE krb5_copy_authdata
203         PROTOTYPE((krb5_context,
204                    krb5_authdata * const *,
205                krb5_authdata ***));
206 krb5_error_code INTERFACE krb5_copy_authenticator
207         PROTOTYPE((krb5_context,
208                    const krb5_authenticator *,
209                krb5_authenticator **));
210 krb5_error_code INTERFACE krb5_copy_checksum
211         PROTOTYPE((krb5_context,
212                    const krb5_checksum *,
213                krb5_checksum **));
214 void INTERFACE krb5_init_ets PROTOTYPE((krb5_context));
215 krb5_error_code INTERFACE krb5_generate_subkey
216         PROTOTYPE((krb5_context,
217                    const krb5_keyblock *, krb5_keyblock **));
218 krb5_error_code INTERFACE krb5_generate_seq_number
219         PROTOTYPE((krb5_context,
220                    const krb5_keyblock *, krb5_int32 *));
221 krb5_error_code INTERFACE krb5_get_server_rcache
222         PROTOTYPE((krb5_context,
223                    const krb5_data *, krb5_rcache *));
224 krb5_error_code INTERFACE_C krb5_build_principal_ext
225         STDARG_P((krb5_context, krb5_principal FAR *, int, const char FAR *, ...));
226 krb5_error_code INTERFACE_C krb5_build_principal
227         STDARG_P((krb5_context, krb5_principal *, int, const char *, ...));
228 #ifdef va_start
229 /* XXX depending on varargs include file defining va_start... */
230 krb5_error_code INTERFACE_C krb5_build_principal_va
231         PROTOTYPE((krb5_context,
232                    krb5_principal *, int, const char *, va_list));
233 #endif
234
235 krb5_error_code INTERFACE krb5_425_conv_principal
236         PROTOTYPE((krb5_context,
237                    const char *name, const char *instance, const char *realm,
238                    krb5_principal *princ));
239
240 krb5_error_code INTERFACE krb5_obtain_padata
241         PROTOTYPE((krb5_context,
242                    int type, krb5_principal client, krb5_address **src_addr,
243                    krb5_keyblock *encrypt_key, krb5_pa_data **data));
244
245 krb5_error_code INTERFACE krb5_verify_padata
246         PROTOTYPE((krb5_context,
247                    krb5_pa_data * data, krb5_principal client,
248                krb5_address **src_addr, krb5_keyblock *decrypt_key,
249                int *req_id, int *flags));
250
251 /* libkt.spec */
252 krb5_error_code INTERFACE krb5_kt_register
253         PROTOTYPE((krb5_context,
254                    krb5_kt_ops * ));
255 krb5_error_code INTERFACE krb5_kt_resolve
256         PROTOTYPE((krb5_context,
257                    const char *,
258                    krb5_keytab * ));
259 krb5_error_code INTERFACE krb5_kt_default_name
260         PROTOTYPE((krb5_context,
261                    char *,
262                    int ));
263 krb5_error_code INTERFACE krb5_kt_default
264         PROTOTYPE((krb5_context,
265                    krb5_keytab * ));
266 krb5_error_code INTERFACE krb5_kt_free_entry
267         PROTOTYPE((krb5_context,
268                    krb5_keytab_entry * ));
269 /* remove and add are functions, so that they can return NOWRITE
270    if not a writable keytab */
271 krb5_error_code INTERFACE krb5_kt_remove_entry
272         PROTOTYPE((krb5_context,
273                    krb5_keytab,
274                    krb5_keytab_entry * ));
275 krb5_error_code INTERFACE krb5_kt_add_entry
276         PROTOTYPE((krb5_context,
277                    krb5_keytab,
278                    krb5_keytab_entry * ));
279 krb5_error_code INTERFACE krb5_principal2salt
280         PROTOTYPE((krb5_context,
281                    krb5_const_principal, krb5_data *));
282 krb5_error_code INTERFACE krb5_principal2salt_norealm
283         PROTOTYPE((krb5_context,
284                    krb5_const_principal, krb5_data *));
285
286 /* librc.spec--see rcache.h */
287
288 /* libcc.spec */
289 krb5_error_code INTERFACE krb5_cc_resolve
290         PROTOTYPE((krb5_context,
291                    char *,
292                    krb5_ccache * ));
293 krb5_error_code INTERFACE krb5_cc_generate_new
294         PROTOTYPE((krb5_context,
295                    krb5_cc_ops *,
296                    krb5_ccache * ));
297 char * INTERFACE krb5_cc_default_name
298         PROTOTYPE((krb5_context));
299 krb5_error_code INTERFACE krb5_cc_default
300         PROTOTYPE((krb5_context,
301                    krb5_ccache FAR *));
302 unsigned int INTERFACE krb5_get_notification_message
303    PROTOTYPE((void));
304
305 /* chk_trans.c */
306 krb5_error_code INTERFACE krb5_check_transited_list
307     PROTOTYPE((krb5_context,
308                    krb5_data *trans, krb5_data *realm1, krb5_data *realm2));
309
310 /* free_rtree.c */
311 void INTERFACE krb5_free_realm_tree
312         PROTOTYPE((krb5_context,
313                    krb5_principal *));
314
315 /* krb5_free.c */
316 void INTERFACE krb5_free_principal
317         PROTOTYPE((krb5_context,
318                    krb5_principal ));
319 void INTERFACE krb5_free_authenticator
320         PROTOTYPE((krb5_context,
321                    krb5_authenticator * ));
322 void INTERFACE krb5_free_authenticator_contents
323         PROTOTYPE((krb5_context,
324                    krb5_authenticator * ));
325 void INTERFACE krb5_free_addresses
326         PROTOTYPE((krb5_context,
327                    krb5_address FAR * FAR * ));
328 void INTERFACE krb5_free_address
329         PROTOTYPE((krb5_context,
330                    krb5_address * ));
331 void INTERFACE krb5_free_authdata
332         PROTOTYPE((krb5_context,
333                    krb5_authdata ** ));
334 void INTERFACE krb5_free_enc_tkt_part
335         PROTOTYPE((krb5_context,
336                    krb5_enc_tkt_part * ));
337 void INTERFACE krb5_free_ticket
338         PROTOTYPE((krb5_context,
339                    krb5_ticket * ));
340 void INTERFACE krb5_free_tickets
341         PROTOTYPE((krb5_context,
342                    krb5_ticket ** ));
343 void INTERFACE krb5_free_kdc_req
344         PROTOTYPE((krb5_context,
345                    krb5_kdc_req * ));
346 void INTERFACE krb5_free_kdc_rep
347         PROTOTYPE((krb5_context,
348                    krb5_kdc_rep * ));
349 void INTERFACE krb5_free_last_req
350         PROTOTYPE((krb5_context,
351                    krb5_last_req_entry ** ));
352 void INTERFACE krb5_free_enc_kdc_rep_part
353         PROTOTYPE((krb5_context,
354                    krb5_enc_kdc_rep_part * ));
355 void INTERFACE krb5_free_error
356         PROTOTYPE((krb5_context,
357                    krb5_error * ));
358 void INTERFACE krb5_free_ap_req
359         PROTOTYPE((krb5_context,
360                    krb5_ap_req * ));
361 void INTERFACE krb5_free_ap_rep
362         PROTOTYPE((krb5_context,
363                    krb5_ap_rep * ));
364 void INTERFACE krb5_free_safe
365         PROTOTYPE((krb5_context,
366                    krb5_safe * ));
367 void INTERFACE krb5_free_priv
368         PROTOTYPE((krb5_context,
369                    krb5_priv * ));
370 void INTERFACE krb5_free_priv_enc_part
371         PROTOTYPE((krb5_context,
372                    krb5_priv_enc_part * ));
373 void INTERFACE krb5_free_kdc_req
374         PROTOTYPE((krb5_context,
375                    krb5_kdc_req * ));
376 void INTERFACE krb5_free_cred
377    PROTOTYPE((krb5_context, 
378          krb5_cred *));
379 void INTERFACE krb5_free_creds
380         PROTOTYPE((krb5_context,
381                    krb5_creds FAR *));
382 void INTERFACE krb5_free_cred_contents
383         PROTOTYPE((krb5_context,
384                    krb5_creds FAR *));
385 void INTERFACE krb5_free_cred_enc_part
386    PROTOTYPE((krb5_context,
387          krb5_cred_enc_part *));
388 void INTERFACE krb5_free_checksum
389         PROTOTYPE((krb5_context,
390                    krb5_checksum *));
391 void INTERFACE krb5_free_keyblock
392         PROTOTYPE((krb5_context,
393                    krb5_keyblock *));
394 void INTERFACE krb5_free_pa_data
395         PROTOTYPE((krb5_context,
396                    krb5_pa_data **));
397 void INTERFACE krb5_free_ap_rep_enc_part
398         PROTOTYPE((krb5_context,
399                    krb5_ap_rep_enc_part FAR *));
400 void INTERFACE krb5_free_tkt_authent
401         PROTOTYPE((krb5_context,
402                    krb5_tkt_authent *));
403 void INTERFACE krb5_free_pwd_data
404    PROTOTYPE((krb5_context,
405          krb5_pwd_data *));
406 void INTERFACE krb5_free_pwd_sequences
407    PROTOTYPE((krb5_context,
408          passwd_phrase_element **));
409
410 /* From krb5/os but needed but by the outside world */
411 krb5_error_code INTERFACE krb5_us_timeofday
412         PROTOTYPE((krb5_context,
413                    krb5_int32 FAR *,
414                    krb5_int32 FAR * ));
415 krb5_error_code INTERFACE krb5_timeofday
416         PROTOTYPE((krb5_context,
417                    krb5_int32 FAR * ));
418                  /* get all the addresses of this host */
419 krb5_error_code INTERFACE krb5_os_localaddr
420         PROTOTYPE((krb5_address FAR * FAR * FAR *));
421 krb5_error_code INTERFACE krb5_get_default_realm
422         PROTOTYPE((krb5_context,
423                     char FAR * FAR * ));
424 krb5_error_code INTERFACE krb5_sname_to_principal
425         PROTOTYPE((krb5_context,
426                    const char FAR *,
427                    const char FAR *,
428                    krb5_int32,
429                    krb5_principal FAR *));
430
431 /* Only put things which don't have pointers to the narrow types in this
432    section */
433
434 krb5_error_code INTERFACE krb5_encode_kdc_rep
435         PROTOTYPE((krb5_context,
436                    const krb5_msgtype,
437                    const krb5_enc_kdc_rep_part *,
438                    krb5_encrypt_block *,
439                    const krb5_keyblock *,
440                    krb5_kdc_rep *,
441                    krb5_data ** ));
442
443 krb5_error_code INTERFACE krb5_send_tgs
444         PROTOTYPE((krb5_context,
445                    const krb5_flags,
446                    const krb5_ticket_times *,
447                    const krb5_enctype *,
448                    const krb5_cksumtype,
449                    krb5_const_principal,
450                    krb5_address * const *,
451                    krb5_authdata * const *,
452                    krb5_pa_data * const *,
453                    const krb5_data *,
454                    krb5_creds *,
455                    krb5_response * ));
456
457 krb5_error_code INTERFACE krb5_get_in_tkt
458         PROTOTYPE((krb5_context,
459                    const krb5_flags,
460                    krb5_address * const *,
461                    krb5_enctype *,
462                    krb5_preauthtype *,
463                    krb5_error_code (INTERFACE * )(krb5_context,
464                                         const krb5_keytype,
465                                         krb5_data *,
466                                         krb5_const_pointer,
467                                         krb5_keyblock **),
468                    krb5_const_pointer,
469                    krb5_error_code (INTERFACE * )(krb5_context,
470                                         const krb5_keyblock *,
471                                         krb5_const_pointer,
472                                         krb5_kdc_rep * ),
473                    krb5_const_pointer,
474                    krb5_creds *,
475                    krb5_ccache,
476                    krb5_kdc_rep ** ));
477
478 krb5_error_code INTERFACE krb5_get_in_tkt_with_password
479         PROTOTYPE((krb5_context,
480                    const krb5_flags,
481                    krb5_address FAR * const FAR *,
482                    krb5_enctype FAR *,
483                    krb5_preauthtype FAR *,
484                    const char FAR *,
485                    krb5_ccache,
486                    krb5_creds FAR *,
487                    krb5_kdc_rep FAR * FAR * ));
488
489 krb5_error_code INTERFACE krb5_get_in_tkt_with_skey
490         PROTOTYPE((krb5_context,
491                    const krb5_flags,
492                    krb5_address * const *,
493                    krb5_enctype *,
494                    krb5_preauthtype *,
495                    const krb5_keyblock *,
496                    krb5_ccache,
497                    krb5_creds *,
498                    krb5_kdc_rep ** ));
499
500 krb5_error_code INTERFACE krb5_get_in_tkt_with_keytab
501         PROTOTYPE((krb5_context,
502                    const krb5_flags,
503                    krb5_address * const *,
504                    krb5_enctype *,
505                    krb5_preauthtype *,
506                    const krb5_keytab,
507                    krb5_ccache,
508                    krb5_creds *,
509                    krb5_kdc_rep ** ));
510
511
512 krb5_error_code INTERFACE krb5_decode_kdc_rep
513         PROTOTYPE((krb5_context,
514                    krb5_data *,
515                    const krb5_keyblock *,
516                    const krb5_enctype,
517                    krb5_kdc_rep ** ));
518
519 krb5_error_code INTERFACE krb5_rd_req
520         PROTOTYPE((krb5_context,
521                    krb5_auth_context **,
522                    const krb5_data *,
523                    krb5_const_principal,
524                    krb5_keytab,
525                    krb5_flags *,
526                    krb5_ticket **));
527
528 krb5_error_code INTERFACE krb5_rd_req_decoded
529         PROTOTYPE((krb5_context,
530                    krb5_auth_context **,
531                    const krb5_ap_req *,
532                    krb5_const_principal,
533                    krb5_keytab,
534                    krb5_flags *,
535                    krb5_ticket **));
536
537 krb5_error_code INTERFACE krb5_kt_read_service_key
538         PROTOTYPE((krb5_context,
539                    krb5_pointer,
540                    krb5_principal,
541                    krb5_kvno,
542                    krb5_keytype,
543                    krb5_keyblock **));
544 krb5_error_code INTERFACE krb5_mk_safe
545         PROTOTYPE((krb5_context,
546                    krb5_auth_context *,
547                    const krb5_data *,
548                    krb5_data *,
549                    krb5_replay_data *));
550 krb5_error_code INTERFACE krb5_mk_priv
551         PROTOTYPE((krb5_context,
552                    krb5_auth_context *,
553                    const krb5_data *,
554                    krb5_data *,
555                    krb5_replay_data *));
556 krb5_error_code INTERFACE krb5_cc_register
557         PROTOTYPE((krb5_context,
558                    krb5_cc_ops *,
559                    krb5_boolean ));
560
561 krb5_error_code INTERFACE krb5_sendauth 
562         PROTOTYPE((krb5_context,
563                    krb5_auth_context **,
564                    krb5_pointer,
565                    char *,
566                    krb5_principal,
567                    krb5_principal,
568                    krb5_flags,
569                    krb5_data *,
570                    krb5_creds *,
571                    krb5_ccache,
572                    krb5_error **,
573                    krb5_ap_rep_enc_part **,
574                    krb5_creds **));
575         
576 krb5_error_code INTERFACE krb5_recvauth PROTOTYPE((krb5_context,
577                    krb5_auth_context **,
578                    krb5_pointer,
579                    char *,
580                    krb5_principal,
581                    char *,
582                    krb5_int32, 
583                    krb5_keytab,
584                    krb5_ticket **));
585
586 krb5_error_code INTERFACE krb5_walk_realm_tree
587         PROTOTYPE((krb5_context,
588                    const krb5_data *,
589                const krb5_data *,
590                krb5_principal **,
591                int));
592
593 krb5_error_code INTERFACE krb5_mk_cred
594         PROTOTYPE((krb5_context,
595                    krb5_kdc_rep *,
596                    krb5_enctype,
597                    krb5_keyblock *,
598                    krb5_address *,
599                    krb5_address *,
600                    krb5_data *));
601
602 krb5_error_code INTERFACE krb5_auth_con_init
603         PROTOTYPE((krb5_context,
604                    krb5_auth_context **));
605
606 krb5_error_code INTERFACE krb5_auth_con_free
607         PROTOTYPE((krb5_context,
608                    krb5_auth_context *));
609
610 krb5_error_code INTERFACE krb5_auth_con_setflags
611         PROTOTYPE((krb5_context,
612                    krb5_auth_context *,
613                    krb5_int32));
614
615 krb5_error_code INTERFACE krb5_auth_con_getflags
616         PROTOTYPE((krb5_context,
617                    krb5_auth_context *,
618                    krb5_int32 *));
619
620 krb5_error_code INTERFACE krb5_auth_con_setaddrs
621         PROTOTYPE((krb5_context,
622                    krb5_auth_context *,
623                    krb5_address *,
624                    krb5_address *));
625
626 krb5_error_code INTERFACE krb5_auth_con_getaddrs
627         PROTOTYPE((krb5_context,
628                    krb5_auth_context *,
629                    krb5_address **,
630                    krb5_address **));
631
632 krb5_error_code INTERFACE krb5_auth_con_setuseruserkey
633         PROTOTYPE((krb5_context,
634                    krb5_auth_context *,
635                    krb5_keyblock *));
636
637 krb5_error_code INTERFACE krb5_auth_con_getlocalsubkey
638         PROTOTYPE((krb5_context,
639                    krb5_auth_context *,
640                    krb5_keyblock **));
641
642 krb5_error_code INTERFACE krb5_auth_con_setcksumtype
643         PROTOTYPE((krb5_context,
644                    krb5_auth_context *,
645                    krb5_cksumtype));
646
647 krb5_error_code INTERFACE krb5_auth_con_getcksumtype
648         PROTOTYPE((krb5_context,
649                    krb5_auth_context *,
650                    krb5_cksumtype *));
651
652 krb5_error_code INTERFACE krb5_auth_con_getlocalseqnumber
653         PROTOTYPE((krb5_context,
654                    krb5_auth_context *,
655                    krb5_int32 *));
656
657 krb5_error_code INTERFACE krb5_auth_con_getremoteseqnumber
658         PROTOTYPE((krb5_context,
659                    krb5_auth_context *,
660                    krb5_int32 *));
661
662 krb5_error_code INTERFACE krb5_auth_con_setivector
663         PROTOTYPE((krb5_context,
664                    krb5_auth_context *,
665                    krb5_pointer));
666
667 krb5_error_code INTERFACE krb5_auth_con_getivector
668         PROTOTYPE((krb5_context,
669                    krb5_auth_context *,
670                    krb5_pointer *));
671
672 krb5_error_code INTERFACE krb5_auth_con_setrcache
673         PROTOTYPE((krb5_context,
674                    krb5_auth_context *,
675                    krb5_rcache));
676
677 krb5_error_code INTERFACE krb5_auth_con_getrcache
678         PROTOTYPE((krb5_context,
679                    krb5_auth_context *,
680                    krb5_rcache *));
681
682 krb5_error_code INTERFACE krb5_auth_con_getauthenticator
683    PROTOTYPE((krb5_context,
684          krb5_auth_context *,
685          krb5_authenticator **));
686
687 krb5_error_code INTERFACE krb5_auth_con_getremotesubkey
688    PROTOTYPE((krb5_context,
689          krb5_auth_context *,
690          krb5_keyblock **));
691
692 #define KRB5_REALM_BRANCH_CHAR '.'
693
694 #endif /* KRB5_FUNC_PROTO__ */