00001
00002
00003
00004
00005 #ifndef __KRB4_H
00006 #define __KRB4_H
00007
00008 struct Curl_sec_client_mech {
00009 const char *name;
00010 size_t size;
00011 int (*init)(void *);
00012 int (*auth)(void *, struct connectdata *);
00013 void (*end)(void *);
00014 int (*check_prot)(void *, int);
00015 int (*overhead)(void *, int, int);
00016 int (*encode)(void *, void*, int, int, void**, struct connectdata *);
00017 int (*decode)(void *, void*, int, int, struct connectdata *);
00018 };
00019
00020 #define AUTH_OK 0
00021 #define AUTH_CONTINUE 1
00022 #define AUTH_ERROR 2
00023
00024 #ifdef HAVE_KRB4
00025 extern struct Curl_sec_client_mech Curl_krb4_client_mech;
00026 #endif
00027 #ifdef HAVE_GSSAPI
00028 extern struct Curl_sec_client_mech Curl_krb5_client_mech;
00029 #endif
00030
00031 CURLcode Curl_krb_kauth(struct connectdata *conn);
00032 int Curl_sec_fflush_fd(struct connectdata *conn, int fd);
00033 int Curl_sec_fprintf (struct connectdata *, FILE *, const char *, ...);
00034 int Curl_sec_getc (struct connectdata *conn, FILE *);
00035 int Curl_sec_putc (struct connectdata *conn, int, FILE *);
00036 int Curl_sec_read (struct connectdata *conn, int, void *, int);
00037 int Curl_sec_read_msg (struct connectdata *conn, char *, int);
00038
00039 int Curl_sec_vfprintf(struct connectdata *, FILE *, const char *, va_list);
00040 int Curl_sec_fprintf2(struct connectdata *conn, FILE *f, const char *fmt, ...);
00041 int Curl_sec_vfprintf2(struct connectdata *conn, FILE *, const char *, va_list);
00042 ssize_t Curl_sec_send(struct connectdata *conn, int, char *, int);
00043 int Curl_sec_write(struct connectdata *conn, int, char *, int);
00044
00045 void Curl_sec_end (struct connectdata *);
00046 int Curl_sec_login (struct connectdata *);
00047 void Curl_sec_prot (int, char **);
00048 int Curl_sec_request_prot (struct connectdata *conn, const char *level);
00049 void Curl_sec_set_protection_level(struct connectdata *conn);
00050 void Curl_sec_status (void);
00051
00052 enum protection_level Curl_set_command_prot(struct connectdata *,
00053 enum protection_level);
00054
00055 #endif