3 /***************************************************************************
5 * Project ___| | | | _ \| |
7 * | (__| |_| | _ <| |___
8 * \___|\___/|_| \_\_____|
10 * Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel@haxx.se>, et al.
12 * This software is licensed as described in the file COPYING, which
13 * you should have received as part of this distribution. The terms
14 * are also available at http://curl.haxx.se/docs/copyright.html.
16 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
17 * copies of the Software, and permit persons to whom the Software is
18 * furnished to do so, under the terms of the COPYING file.
20 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21 * KIND, either express or implied.
23 * $Id: krb4.h,v 1.2 2007-03-15 19:22:13 andy Exp $
24 ***************************************************************************/
26 struct Curl_sec_client_mech
{
30 int (*auth
)(void *, struct connectdata
*);
32 int (*check_prot
)(void *, int);
33 int (*overhead
)(void *, int, int);
34 int (*encode
)(void *, void*, int, int, void**, struct connectdata
*);
35 int (*decode
)(void *, void*, int, int, struct connectdata
*);
40 #define AUTH_CONTINUE 1
43 extern struct Curl_sec_client_mech Curl_krb4_client_mech
;
45 CURLcode
Curl_krb_kauth(struct connectdata
*conn
);
46 int Curl_sec_fflush_fd(struct connectdata
*conn
, int fd
);
47 int Curl_sec_fprintf (struct connectdata
*, FILE *, const char *, ...);
48 int Curl_sec_getc (struct connectdata
*conn
, FILE *);
49 int Curl_sec_putc (struct connectdata
*conn
, int, FILE *);
50 int Curl_sec_read (struct connectdata
*conn
, int, void *, int);
51 int Curl_sec_read_msg (struct connectdata
*conn
, char *, int);
53 int Curl_sec_vfprintf(struct connectdata
*, FILE *, const char *, va_list);
54 int Curl_sec_fprintf2(struct connectdata
*conn
, FILE *f
, const char *fmt
, ...);
55 int Curl_sec_vfprintf2(struct connectdata
*conn
, FILE *, const char *, va_list);
56 ssize_t
Curl_sec_send(struct connectdata
*conn
, int, char *, int);
57 int Curl_sec_write(struct connectdata
*conn
, int, char *, int);
59 void Curl_sec_end (struct connectdata
*);
60 int Curl_sec_login (struct connectdata
*);
61 void Curl_sec_prot (int, char **);
62 int Curl_sec_request_prot (struct connectdata
*conn
, const char *level
);
63 void Curl_sec_set_protection_level(struct connectdata
*conn
);
64 void Curl_sec_status (void);
66 enum protection_level
Curl_set_command_prot(struct connectdata
*,
67 enum protection_level
);