Initial import from FreeBSD RELENG_4:
[dragonfly.git] / crypto / kerberosIV / appl / ftp / ftpd / auth.h
1 /*
2  * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
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 the Kungliga Tekniska
20  *      Högskolan 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: auth.h,v 1.9 1997/05/11 11:04:28 assar Exp $ */
40
41 #ifndef __AUTH_H__
42 #define __AUTH_H__
43
44 #include <stdarg.h>
45
46 struct at {
47   char *name;
48   int (*auth)(char*);
49   int (*adat)(char*);
50   int (*pbsz)(int);
51   int (*prot)(int);
52   int (*ccc)(void);
53   int (*mic)(char*);
54   int (*conf)(char*);
55   int (*enc)(char*);
56   int (*read)(int, void*, int);
57   int (*write)(int, void*, int);
58   int (*userok)(char*);
59   int (*vprintf)(const char*, va_list);
60 };
61
62 extern struct at *ct;
63
64 enum protection_levels {
65   prot_clear, prot_safe, prot_confidential, prot_private
66 };
67
68 extern char *protection_names[];
69
70 extern char *ftp_command;
71 extern int prot_level;
72
73 void delete_ftp_command(void);
74
75 extern int data_protection;
76 extern int buffer_size;
77 extern unsigned char *data_buffer;
78 extern int auth_complete;
79
80 void auth_init(void);
81
82 int auth_ok(void);
83
84 void auth(char*);
85 void adat(char*);
86 void pbsz(int);
87 void prot(char*);
88 void ccc(void);
89 void mic(char*);
90 void conf(char*);
91 void enc(char*);
92
93 int auth_read(int, void*, int);
94 int auth_write(int, void*, int);
95
96 void auth_vprintf(const char *fmt, va_list ap)
97 #ifdef __GNUC__
98 __attribute__ ((format (printf, 1, 0)))
99 #endif
100 ;
101 void auth_printf(const char *fmt, ...)
102 #ifdef __GNUC__
103 __attribute__ ((format (printf, 1, 2)))
104 #endif
105 ;
106
107 void new_ftp_command(char *command);
108
109 #endif /* __AUTH_H__ */