diff options
author | Steve Holme <steve_holme@hotmail.com> | 2014-11-06 10:39:37 +0000 |
---|---|---|
committer | Steve Holme <steve_holme@hotmail.com> | 2014-11-06 11:10:10 +0000 |
commit | 3d6b865654798de387015261664f52d88ea4e939 (patch) | |
tree | 4b66a66bc484bb2acd1e92a901a0522784d05f8b | |
parent | 1033acd92db83c3c87d071ef6debe9b1d0628b46 (diff) | |
download | curl-3d6b865654798de387015261664f52d88ea4e939.tar.gz |
http_digest: Added SSPI based authentication functions
This temporarily breaks HTTP digest authentication in SSPI based builds,
causing CURLE_NOT_BUILT_IN to be returned. A follow up commit will
resume normal operation.
-rw-r--r-- | lib/curl_sasl.c | 3 | ||||
-rw-r--r-- | lib/curl_sasl_sspi.c | 77 |
2 files changed, 79 insertions, 1 deletions
diff --git a/lib/curl_sasl.c b/lib/curl_sasl.c index 5ef7151da..70e5db3ef 100644 --- a/lib/curl_sasl.c +++ b/lib/curl_sasl.c @@ -711,7 +711,6 @@ CURLcode Curl_sasl_create_digest_md5_message(struct SessionHandle *data, return result; } -#endif /* !USE_WINDOWS_SSPI */ /* * Curl_sasl_decode_digest_http_message() @@ -1100,6 +1099,8 @@ void Curl_sasl_digest_cleanup(struct digestdata *digest) digest->algo = CURLDIGESTALGO_MD5; /* default algorithm */ digest->stale = FALSE; /* default means normal, not stale */ } +#endif /* !USE_WINDOWS_SSPI */ + #endif /* CURL_DISABLE_CRYPTO_AUTH */ #ifdef USE_NTLM diff --git a/lib/curl_sasl_sspi.c b/lib/curl_sasl_sspi.c index 9dc2749a8..3fcfbbf19 100644 --- a/lib/curl_sasl_sspi.c +++ b/lib/curl_sasl_sspi.c @@ -271,6 +271,83 @@ CURLcode Curl_sasl_create_digest_md5_message(struct SessionHandle *data, return result; } + +/* + * Curl_sasl_decode_digest_http_message() + * + * This is used to decode a HTTP DIGEST challenge message into the seperate + * attributes. + * + * Parameters: + * + * chlg [in] - Pointer to the challenge message. + * digest [in/out] - The digest data struct being used and modified. + * + * Returns CURLE_OK on success. + */ +CURLcode Curl_sasl_decode_digest_http_message(const char *chlg, + struct digestdata *digest) +{ + (void) chlg; + (void) digest; + + return CURLE_NOT_BUILT_IN; +} + +/* + * Curl_sasl_create_digest_http_message() + * + * This is used to generate a HTTP DIGEST response message ready for sending + * to the recipient. + * + * Parameters: + * + * data [in] - The session handle. + * userp [in] - The user name. + * passdwp [in] - The user's password. + * request [in] - The HTTP request. + * uripath [in] - The path of the HTTP uri. + * digest [in/out] - The digest data struct being used and modified. + * outptr [in/out] - The address where a pointer to newly allocated memory + * holding the result will be stored upon completion. + * outlen [out] - The length of the output message. + * + * Returns CURLE_OK on success. + */ +CURLcode Curl_sasl_create_digest_http_message(struct SessionHandle *data, + const char *userp, + const char *passwdp, + const unsigned char *request, + const unsigned char *uripath, + struct digestdata *digest, + char **outptr, size_t *outlen) +{ + (void) data; + (void) userp; + (void) passwdp; + (void) request; + (void) uripath; + (void) digest; + (void) outptr; + (void) outlen; + + return CURLE_NOT_BUILT_IN; +} + +/* + * Curl_sasl_digest_cleanup() + * + * This is used to clean up the digest specific data. + * + * Parameters: + * + * digest [in/out] - The digest data struct being cleaned up. + * + */ +void Curl_sasl_digest_cleanup(struct digestdata *digest) +{ + (void) digest; +} #endif /* !CURL_DISABLE_CRYPTO_AUTH */ #if defined(USE_KRB5) |