1 #ifndef HEADER_CURL_SASL_H 2 #define HEADER_CURL_SASL_H 25 #include <curl/curl.h> 30 #if !defined(CURL_DISABLE_CRYPTO_AUTH) 38 #if defined(USE_KERBEROS5) 43 #define SASL_MECH_LOGIN (1 << 0) 44 #define SASL_MECH_PLAIN (1 << 1) 45 #define SASL_MECH_CRAM_MD5 (1 << 2) 46 #define SASL_MECH_DIGEST_MD5 (1 << 3) 47 #define SASL_MECH_GSSAPI (1 << 4) 48 #define SASL_MECH_EXTERNAL (1 << 5) 49 #define SASL_MECH_NTLM (1 << 6) 50 #define SASL_MECH_XOAUTH2 (1 << 7) 51 #define SASL_MECH_OAUTHBEARER (1 << 8) 54 #define SASL_AUTH_NONE 0 55 #define SASL_AUTH_ANY ~0U 56 #define SASL_AUTH_DEFAULT (SASL_AUTH_ANY & ~SASL_MECH_EXTERNAL) 59 #define SASL_MECH_STRING_LOGIN "LOGIN" 60 #define SASL_MECH_STRING_PLAIN "PLAIN" 61 #define SASL_MECH_STRING_CRAM_MD5 "CRAM-MD5" 62 #define SASL_MECH_STRING_DIGEST_MD5 "DIGEST-MD5" 63 #define SASL_MECH_STRING_GSSAPI "GSSAPI" 64 #define SASL_MECH_STRING_EXTERNAL "EXTERNAL" 65 #define SASL_MECH_STRING_NTLM "NTLM" 66 #define SASL_MECH_STRING_XOAUTH2 "XOAUTH2" 67 #define SASL_MECH_STRING_OAUTHBEARER "OAUTHBEARER" 69 #if !defined(CURL_DISABLE_CRYPTO_AUTH) 70 #define DIGEST_MAX_VALUE_LENGTH 256 71 #define DIGEST_MAX_CONTENT_LENGTH 1024 76 CURLDIGESTALGO_MD5SESS
114 const char *mech,
const char *ir);
116 CURLcode (*sendcont)(
struct connectdata *conn,
const char *contauth);
118 void (*getmessage)(
char *buffer,
char **outptr);
126 unsigned int authmechs;
127 unsigned int prefmech;
128 unsigned int authused;
135 #define sasl_mech_equal(line, wordlen, mech) \ 136 (wordlen == (sizeof(mech) - 1) / sizeof(char) && \ 137 !memcmp(line, mech, wordlen)) 140 #if !defined(USE_WINDOWS_SSPI) 141 char *Curl_sasl_build_spn(
const char *service,
const char *instance);
143 TCHAR *Curl_sasl_build_spn(
const char *service,
const char *instance);
146 #if defined(HAVE_GSSAPI) 147 char *Curl_sasl_build_gssapi_spn(
const char *service,
const char *instance);
150 #ifndef CURL_DISABLE_CRYPTO_AUTH 152 int Curl_sasl_digest_get_pair(
const char *str,
char *value,
char *content,
153 const char **endptr);
156 CURLcode Curl_sasl_create_digest_md5_message(
struct SessionHandle *data,
161 char **outptr,
size_t *outlen);
164 CURLcode Curl_sasl_decode_digest_http_message(
const char *chlg,
168 CURLcode Curl_sasl_create_digest_http_message(
struct SessionHandle *data,
171 const unsigned char *request,
172 const unsigned char *uri,
174 char **outptr,
size_t *outlen);
177 void Curl_sasl_digest_cleanup(
struct digestdata *digest);
182 CURLcode Curl_sasl_create_ntlm_type1_message(
const char *userp,
184 struct ntlmdata *ntlm,
189 CURLcode Curl_sasl_decode_ntlm_type2_message(
struct SessionHandle *data,
190 const char *type2msg,
191 struct ntlmdata *ntlm);
194 CURLcode Curl_sasl_create_ntlm_type3_message(
struct SessionHandle *data,
197 struct ntlmdata *ntlm,
198 char **outptr,
size_t *outlen);
201 void Curl_sasl_ntlm_cleanup(
struct ntlmdata *ntlm);
205 #if defined(USE_KERBEROS5) 208 CURLcode Curl_sasl_create_gssapi_user_message(
struct SessionHandle *data,
214 struct kerberos5data *krb5,
215 char **outptr,
size_t *outlen);
219 CURLcode Curl_sasl_create_gssapi_security_message(
struct SessionHandle *data,
221 struct kerberos5data *krb5,
226 void Curl_sasl_gssapi_cleanup(
struct kerberos5data *krb5);
231 void Curl_sasl_cleanup(
struct connectdata *conn,
unsigned int authused);
234 unsigned int Curl_sasl_decode_mech(
const char *ptr,
235 size_t maxlen,
size_t *len);
238 CURLcode Curl_sasl_parse_url_auth_option(
struct SASL *sasl,
239 const char *value,
size_t len);
242 void Curl_sasl_init(
struct SASL *sasl,
const struct SASLproto *params);
245 bool Curl_sasl_can_authenticate(
struct SASL *sasl,
struct connectdata *conn);
249 bool force_ir, saslprogress *progress);
252 CURLcode Curl_sasl_continue(
struct SASL *sasl,
struct connectdata *conn,
253 int code, saslprogress *progress);
Definition: urldata.h:1670
Definition: curl_sasl.h:108
Definition: urldata.h:385
Definition: inftrees.h:24
Definition: curl_sasl.h:123
Definition: urldata.h:831