import cyrus-sasl-2.1.23
[cyrus-sasl.git] / mac / krb4_sources / krb-protos.h
1 /*
2  * Copyright (c) 1997, 1998 Kungliga Tekniska H\9agskolan
3  * (Royal Institute of Technology, Stockholm, Sweden). 
4  * All rights reserved. 
5  *
6  * Redistribution and use in source and binary forms, with or without 
7  * modification, are permitted provided that the following conditions 
8  * are met: 
9  *
10  * 1. Redistributions of source code must retain the above copyright 
11  *    notice, this list of conditions and the following disclaimer. 
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright 
14  *    notice, this list of conditions and the following disclaimer in the 
15  *    documentation and/or other materials provided with the distribution. 
16  *
17  * 3. All advertising materials mentioning features or use of this software 
18  *    must display the following acknowledgement: 
19  *      This product includes software developed by Kungliga Tekniska 
20  *      H\9agskolan and its contributors. 
21  *
22  * 4. Neither the name of the Institute nor the names of its contributors 
23  *    may be used to endorse or promote products derived from this software 
24  *    without specific prior written permission. 
25  *
26  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND 
27  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
28  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
29  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE 
30  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
31  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
32  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
33  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
34  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 
35  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
36  * SUCH DAMAGE. 
37  */
38
39 /* $Id: krb-protos.h,v 1.2 2001/12/04 02:06:08 rjs3 Exp $ */
40
41 #ifndef __krb_protos_h__
42 #define __krb_protos_h__
43
44 #if defined (__STDC__) || defined (_MSC_VER)
45 #include <stdarg.h>
46 #ifndef __P
47 #define __P(x) x
48 #endif
49 #else
50 #ifndef __P
51 #define __P(x) ()
52 #endif
53 #endif
54
55 #ifdef __STDC__
56 struct in_addr;
57 struct sockaddr_in;
58 struct timeval;
59 #endif
60
61 #ifndef KRB_LIB_FUNCTION
62 #if defined(__BORLANDC__)
63 #define KRB_LIB_FUNCTION /* not-ready-definition-yet */
64 #elif defined(_MSC_VER)
65 #define KRB_LIB_FUNCTION /* not-ready-definition-yet2 */
66 #else
67 #define KRB_LIB_FUNCTION
68 #endif
69 #endif
70
71 void KRB_LIB_FUNCTION
72 afs_string_to_key __P((
73         char *str,
74         char *cell,
75         des_cblock *key));
76
77 int KRB_LIB_FUNCTION
78 create_ciph __P((
79         KTEXT c,
80         unsigned char *session,
81         char *service,
82         char *instance,
83         char *realm,
84         u_int32_t life,
85         int kvno,
86         KTEXT tkt,
87         u_int32_t kdc_time,
88         des_cblock *key));
89
90 int KRB_LIB_FUNCTION
91 cr_err_reply __P((
92         KTEXT pkt,
93         char *pname,
94         char *pinst,
95         char *prealm,
96         u_int32_t time_ws,
97         u_int32_t e,
98         char *e_string));
99
100 int KRB_LIB_FUNCTION
101 decomp_ticket __P((
102         KTEXT tkt,
103         unsigned char *flags,
104         char *pname,
105         char *pinstance,
106         char *prealm,
107         u_int32_t *paddress,
108         unsigned char *session,
109         int *life,
110         u_int32_t *time_sec,
111         char *sname,
112         char *sinstance,
113         des_cblock *key,
114         des_key_schedule schedule));
115
116 int KRB_LIB_FUNCTION
117 dest_tkt __P((void));
118
119 int KRB_LIB_FUNCTION
120 get_ad_tkt __P((
121         char *service,
122         char *sinstance,
123         char *realm,
124         int lifetime));
125
126 int KRB_LIB_FUNCTION
127 getst __P((
128         int fd,
129         char *s,
130         int n));
131
132 int KRB_LIB_FUNCTION
133 in_tkt __P((
134         char *pname,
135         char *pinst));
136
137 int KRB_LIB_FUNCTION
138 k_get_all_addrs __P((struct in_addr **l));
139
140 int KRB_LIB_FUNCTION
141 k_gethostname __P((
142         char *name,
143         int namelen));
144
145 int KRB_LIB_FUNCTION
146 k_getportbyname __P((
147         const char *service,
148         const char *proto,
149         int default_port));
150
151 int KRB_LIB_FUNCTION
152 k_getsockinst __P((
153         int fd,
154         char *inst,
155         size_t inst_size));
156
157 int KRB_LIB_FUNCTION
158 k_isinst __P((char *s));
159
160 int KRB_LIB_FUNCTION
161 k_isname __P((char *s));
162
163 int KRB_LIB_FUNCTION
164 k_isrealm __P((char *s));
165
166 struct tm * KRB_LIB_FUNCTION
167 k_localtime __P((u_int32_t *tp));
168
169 int KRB_LIB_FUNCTION
170 kname_parse __P((
171         char *np,
172         char *ip,
173         char *rp,
174         char *fullname));
175
176 int KRB_LIB_FUNCTION
177 krb_atime_to_life __P((char *atime));
178
179 int KRB_LIB_FUNCTION
180 krb_check_auth __P((
181         KTEXT packet,
182         u_int32_t checksum,
183         MSG_DAT *msg_data,
184         des_cblock *session,
185         struct des_ks_struct *schedule,
186         struct sockaddr_in *laddr,
187         struct sockaddr_in *faddr));
188
189 int KRB_LIB_FUNCTION
190 krb_check_tm __P((struct tm tm));
191
192 KTEXT KRB_LIB_FUNCTION
193 krb_create_death_packet __P((char *a_name));
194
195 int KRB_LIB_FUNCTION
196 krb_create_ticket __P((
197         KTEXT tkt,
198         unsigned char flags,
199         char *pname,
200         char *pinstance,
201         char *prealm,
202         int32_t paddress,
203         void *session,
204         int16_t life,
205         int32_t time_sec,
206         char *sname,
207         char *sinstance,
208         des_cblock *key));
209
210 int KRB_LIB_FUNCTION
211 krb_decode_as_rep __P((
212         char *user,
213         char *instance,
214         char *realm,
215         char *service,
216         char *sinstance,
217         key_proc_t key_proc,
218         decrypt_proc_t decrypt_proc,
219         void *arg,
220         KTEXT as_rep,
221         CREDENTIALS *cred));
222
223 int KRB_LIB_FUNCTION
224 krb_enable_debug __P((void));
225
226 int KRB_LIB_FUNCTION
227 krb_equiv __P((
228         u_int32_t a,
229         u_int32_t b));
230
231 int KRB_LIB_FUNCTION
232 krb_get_address __P((
233         void *from,
234         u_int32_t *to));
235
236 int KRB_LIB_FUNCTION
237 krb_get_admhst __P((
238         char *host,
239         char *realm,
240         int nth));
241
242 int KRB_LIB_FUNCTION
243 krb_get_config_bool __P((const char *variable));
244
245 const char * KRB_LIB_FUNCTION
246 krb_get_config_string __P((const char *variable));
247
248 int KRB_LIB_FUNCTION
249 krb_get_cred __P((
250         char *service,
251         char *instance,
252         char *realm,
253         CREDENTIALS *c));
254
255 int KRB_LIB_FUNCTION
256 krb_get_default_principal __P((
257         char *name,
258         char *instance,
259         char *realm));
260
261 char * KRB_LIB_FUNCTION
262 krb_get_default_realm __P((void));
263
264 const char * KRB_LIB_FUNCTION
265 krb_get_err_text __P((int code));
266
267 struct krb_host* KRB_LIB_FUNCTION
268 krb_get_host __P((
269         int nth,
270         char *realm,
271         int admin));
272
273 int KRB_LIB_FUNCTION
274 krb_get_in_tkt __P((
275         char *user,
276         char *instance,
277         char *realm,
278         char *service,
279         char *sinstance,
280         int life,
281         key_proc_t key_proc,
282         decrypt_proc_t decrypt_proc,
283         void *arg));
284
285 int KRB_LIB_FUNCTION
286 krb_get_int __P((
287         void *f,
288         u_int32_t *to,
289         int size,
290         int lsb));
291
292 int KRB_LIB_FUNCTION
293 krb_get_kdc_time_diff __P((void));
294
295 int KRB_LIB_FUNCTION
296 krb_get_krbconf __P((
297         int num,
298         char *buf,
299         size_t len));
300
301 int KRB_LIB_FUNCTION
302 krb_get_krbextra __P((
303         int num,
304         char *buf,
305         size_t len));
306
307 int KRB_LIB_FUNCTION
308 krb_get_krbhst __P((
309         char *host,
310         char *realm,
311         int nth));
312
313 int KRB_LIB_FUNCTION
314 krb_get_krbrealms __P((
315         int num,
316         char *buf,
317         size_t len));
318
319 int KRB_LIB_FUNCTION
320 krb_get_lrealm __P((
321         char *r,
322         int n));
323
324 int KRB_LIB_FUNCTION
325 krb_get_nir __P((
326         void *from,
327         char *name,
328         char *instance,
329         char *realm));
330
331 char * KRB_LIB_FUNCTION
332 krb_get_phost __P((const char *alias));
333
334 int KRB_LIB_FUNCTION
335 krb_get_pw_in_tkt __P((
336         char *user,
337         char *instance,
338         char *realm,
339         char *service,
340         char *sinstance,
341         int life,
342         char *password));
343
344 int KRB_LIB_FUNCTION
345 krb_get_pw_in_tkt2 __P((
346         char *user,
347         char *instance,
348         char *realm,
349         char *service,
350         char *sinstance,
351         int life,
352         char *password,
353         des_cblock *key));
354
355 int KRB_LIB_FUNCTION
356 krb_get_string __P((
357         void *from,
358         char *to,
359         size_t to_size));
360
361 int KRB_LIB_FUNCTION
362 krb_get_svc_in_tkt __P((
363         char *user,
364         char *instance,
365         char *realm,
366         char *service,
367         char *sinstance,
368         int life,
369         char *srvtab));
370
371 int KRB_LIB_FUNCTION
372 krb_get_tf_fullname __P((
373         char *ticket_file,
374         char *name,
375         char *instance,
376         char *realm));
377
378 int KRB_LIB_FUNCTION
379 krb_get_tf_realm __P((
380         char *ticket_file,
381         char *realm));
382
383 void KRB_LIB_FUNCTION
384 krb_kdctimeofday __P((struct timeval *tv));
385
386 int KRB_LIB_FUNCTION
387 krb_kntoln __P((
388         AUTH_DAT *ad,
389         char *lname));
390
391 int KRB_LIB_FUNCTION
392 krb_kuserok __P((
393         char *name,
394         char *instance,
395         char *realm,
396         char *luser));
397
398 char * KRB_LIB_FUNCTION
399 krb_life_to_atime __P((int life));
400
401 u_int32_t KRB_LIB_FUNCTION
402 krb_life_to_time __P((
403         u_int32_t start,
404         int life_));
405
406 int KRB_LIB_FUNCTION
407 krb_lsb_antinet_ulong_cmp __P((
408         u_int32_t x,
409         u_int32_t y));
410
411 int KRB_LIB_FUNCTION
412 krb_lsb_antinet_ushort_cmp __P((
413         u_int16_t x,
414         u_int16_t y));
415
416 int KRB_LIB_FUNCTION
417 krb_mk_as_req __P((
418         char *user,
419         char *instance,
420         char *realm,
421         char *service,
422         char *sinstance,
423         int life,
424         KTEXT cip));
425
426 int KRB_LIB_FUNCTION
427 krb_mk_auth __P((
428         int32_t options,
429         KTEXT ticket,
430         char *service,
431         char *instance,
432         char *realm,
433         u_int32_t checksum,
434         char *version,
435         KTEXT buf));
436
437 int32_t KRB_LIB_FUNCTION
438 krb_mk_err __P((
439         u_char *p,
440         int32_t e,
441         char *e_string));
442
443 int32_t KRB_LIB_FUNCTION
444 krb_mk_priv __P((
445         void *in,
446         void *out,
447         u_int32_t length,
448         struct des_ks_struct *schedule,
449         des_cblock *key,
450         struct sockaddr_in *sender,
451         struct sockaddr_in *receiver));
452
453 int KRB_LIB_FUNCTION
454 krb_mk_req __P((
455         KTEXT authent,
456         char *service,
457         char *instance,
458         char *realm,
459         int32_t checksum));
460
461 int32_t KRB_LIB_FUNCTION
462 krb_mk_safe __P((
463         void *in,
464         void *out,
465         u_int32_t length,
466         des_cblock *key,
467         struct sockaddr_in *sender,
468         struct sockaddr_in *receiver));
469
470 int KRB_LIB_FUNCTION
471 krb_net_read __P((
472         int fd,
473         void *v,
474         size_t len));
475
476 int KRB_LIB_FUNCTION
477 krb_net_write __P((
478         int fd,
479         const void *v,
480         size_t len));
481
482 int KRB_LIB_FUNCTION
483 krb_parse_name __P((
484         const char *fullname,
485         krb_principal *principal));
486
487 int KRB_LIB_FUNCTION
488 krb_put_address __P((
489         u_int32_t addr,
490         void *to,
491         size_t rem));
492
493 int KRB_LIB_FUNCTION
494 krb_put_int __P((
495         u_int32_t from,
496         void *to,
497         size_t rem,
498         int size));
499
500 int KRB_LIB_FUNCTION
501 krb_put_nir __P((
502         char *name,
503         char *instance,
504         char *realm,
505         void *to,
506         size_t rem));
507
508 int KRB_LIB_FUNCTION
509 krb_put_string __P((
510         char *from,
511         void *to,
512         size_t rem));
513
514 int KRB_LIB_FUNCTION
515 krb_rd_err __P((
516         u_char *in,
517         u_int32_t in_length,
518         int32_t *code,
519         MSG_DAT *m_data));
520
521 int32_t KRB_LIB_FUNCTION
522 krb_rd_priv __P((
523         void *in,
524         u_int32_t in_length,
525         struct des_ks_struct *schedule,
526         des_cblock *key,
527         struct sockaddr_in *sender,
528         struct sockaddr_in *receiver,
529         MSG_DAT *m_data));
530
531 int KRB_LIB_FUNCTION
532 krb_rd_req __P((
533         KTEXT authent,
534         char *service,
535         char *instance,
536         int32_t from_addr,
537         AUTH_DAT *ad,
538         char *fn));
539
540 int32_t KRB_LIB_FUNCTION
541 krb_rd_safe __P((
542         void *in,
543         u_int32_t in_length,
544         des_cblock *key,
545         struct sockaddr_in *sender,
546         struct sockaddr_in *receiver,
547         MSG_DAT *m_data));
548
549 int KRB_LIB_FUNCTION
550 krb_realm_parse __P((
551         char *realm,
552         int length));
553
554 char * KRB_LIB_FUNCTION
555 krb_realmofhost __P((const char *host));
556
557 int KRB_LIB_FUNCTION
558 krb_recvauth __P((
559         int32_t options,
560         int fd,
561         KTEXT ticket,
562         char *service,
563         char *instance,
564         struct sockaddr_in *faddr,
565         struct sockaddr_in *laddr,
566         AUTH_DAT *kdata,
567         char *filename,
568         struct des_ks_struct *schedule,
569         char *version));
570
571 int KRB_LIB_FUNCTION
572 krb_sendauth __P((
573         int32_t options,
574         int fd,
575         KTEXT ticket,
576         char *service,
577         char *instance,
578         char *realm,
579         u_int32_t checksum,
580         MSG_DAT *msg_data,
581         CREDENTIALS *cred,
582         struct des_ks_struct *schedule,
583         struct sockaddr_in *laddr,
584         struct sockaddr_in *faddr,
585         char *version));
586
587 void KRB_LIB_FUNCTION
588 krb_set_kdc_time_diff __P((int diff));
589
590 int KRB_LIB_FUNCTION
591 krb_set_key __P((
592         void *key,
593         int cvt));
594
595 int KRB_LIB_FUNCTION
596 krb_set_lifetime __P((int newval));
597
598 void KRB_LIB_FUNCTION
599 krb_set_tkt_string __P((const char *val));
600
601 const char * KRB_LIB_FUNCTION
602 krb_stime __P((time_t *t));
603
604 int KRB_LIB_FUNCTION
605 krb_time_to_life __P((
606         u_int32_t start,
607         u_int32_t end));
608
609 char * KRB_LIB_FUNCTION
610 krb_unparse_name __P((krb_principal *pr));
611
612 char * KRB_LIB_FUNCTION
613 krb_unparse_name_long __P((
614         char *name,
615         char *instance,
616         char *realm));
617
618 char * KRB_LIB_FUNCTION
619 krb_unparse_name_long_r __P((
620         char *name,
621         char *instance,
622         char *realm,
623         char *fullname));
624
625 char * KRB_LIB_FUNCTION
626 krb_unparse_name_r __P((
627         krb_principal *pr,
628         char *fullname));
629
630 int KRB_LIB_FUNCTION
631 krb_use_admin_server __P((int flag));
632
633 int KRB_LIB_FUNCTION
634 krb_verify_user __P((
635         char *name,
636         char *instance,
637         char *realm,
638         char *password,
639         int secure,
640         char *linstance));
641
642 int KRB_LIB_FUNCTION
643 krb_verify_user_srvtab __P((
644         char *name,
645         char *instance,
646         char *realm,
647         char *password,
648         int secure,
649         char *linstance,
650         char *srvtab));
651
652 int KRB_LIB_FUNCTION
653 kuserok __P((
654         AUTH_DAT *auth,
655         char *luser));
656
657 u_int32_t KRB_LIB_FUNCTION
658 lsb_time __P((
659         time_t t,
660         struct sockaddr_in *src,
661         struct sockaddr_in *dst));
662
663 const char * KRB_LIB_FUNCTION
664 month_sname __P((int n));
665
666 int KRB_LIB_FUNCTION
667 passwd_to_5key __P((
668         char *user,
669         char *instance,
670         char *realm,
671         void *passwd,
672         des_cblock *key));
673
674 int KRB_LIB_FUNCTION
675 passwd_to_afskey __P((
676         char *user,
677         char *instance,
678         char *realm,
679         void *passwd,
680         des_cblock *key));
681
682 int KRB_LIB_FUNCTION
683 passwd_to_key __P((
684         char *user,
685         char *instance,
686         char *realm,
687         void *passwd,
688         des_cblock *key));
689
690 int KRB_LIB_FUNCTION
691 read_service_key __P((
692         char *service,
693         char *instance,
694         char *realm,
695         int kvno,
696         char *file,
697         char *key));
698
699 int KRB_LIB_FUNCTION
700 save_credentials __P((
701         char *service,
702         char *instance,
703         char *realm,
704         unsigned char *session,
705         int lifetime,
706         int kvno,
707         KTEXT ticket,
708         int32_t issue_date));
709
710 int KRB_LIB_FUNCTION
711 send_to_kdc __P((
712         KTEXT pkt,
713         KTEXT rpkt,
714         char *realm));
715
716 int KRB_LIB_FUNCTION
717 srvtab_to_key __P((
718         char *user,
719         char *instance,
720         char *realm,
721         void *srvtab,
722         des_cblock *key));
723
724 void KRB_LIB_FUNCTION
725 tf_close __P((void));
726
727 int KRB_LIB_FUNCTION
728 tf_create __P((char *tf_name));
729
730 int KRB_LIB_FUNCTION
731 tf_get_cred __P((CREDENTIALS *c));
732
733 int KRB_LIB_FUNCTION
734 tf_get_pinst __P((char *inst));
735
736 int KRB_LIB_FUNCTION
737 tf_get_pname __P((char *p));
738
739 int KRB_LIB_FUNCTION
740 tf_init __P((
741         char *tf_name,
742         int rw));
743
744 int KRB_LIB_FUNCTION
745 tf_put_pinst __P((char *inst));
746
747 int KRB_LIB_FUNCTION
748 tf_put_pname __P((char *p));
749
750 int KRB_LIB_FUNCTION
751 tf_save_cred __P((
752         char *service,
753         char *instance,
754         char *realm,
755         unsigned char *session,
756         int lifetime,
757         int kvno,
758         KTEXT ticket,
759         u_int32_t issue_date));
760
761 int KRB_LIB_FUNCTION
762 tf_setup __P((
763         CREDENTIALS *cred,
764         char *pname,
765         char *pinst));
766
767 char * KRB_LIB_FUNCTION
768 tkt_string __P((void));
769
770 #endif /* __krb_protos_h__ */