diff options
author | Steve Holme <steve_holme@hotmail.com> | 2014-08-07 20:07:46 +0100 |
---|---|---|
committer | Steve Holme <steve_holme@hotmail.com> | 2014-08-07 20:15:17 +0100 |
commit | 03d34b683d79dd42463fd26d5f0dd1d7cc192036 (patch) | |
tree | 5e2c74295999787b9c83184ce0b3875ad6754c3f | |
parent | dc61480c541093b859c52f6993e9013b0f5993b0 (diff) |
ntlm: Added support for SSPI package info query
Just as with the SSPI implementations of Digest and Negotiate added a
package info query so that libcurl can a) return a more appropriate
error code when the NTLM package is not supported and b) it can be of
use later to allocate a dynamic buffer for the Type-1 and Type-3
output tokens rather than use a fixed buffer of 1024 bytes.
-rw-r--r-- | lib/curl_ntlm_msgs.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/curl_ntlm_msgs.c b/lib/curl_ntlm_msgs.c index 42bab2e59..8d33e9d0b 100644 --- a/lib/curl_ntlm_msgs.c +++ b/lib/curl_ntlm_msgs.c @@ -414,6 +414,7 @@ CURLcode Curl_ntlm_create_type1_message(const char *userp, #ifdef USE_WINDOWS_SSPI + PSecPkgInfo SecurityPackage; SecBuffer type_1_buf; SecBufferDesc type_1_desc; SECURITY_STATUS status; @@ -422,6 +423,15 @@ CURLcode Curl_ntlm_create_type1_message(const char *userp, Curl_ntlm_sspi_cleanup(ntlm); + /* Query the security package for NTLM */ + status = s_pSecFn->QuerySecurityPackageInfo((TCHAR *) TEXT("NTLM"), + &SecurityPackage); + if(status != SEC_E_OK) + return CURLE_NOT_BUILT_IN; + + /* Release the package buffer as it is not required anymore */ + s_pSecFn->FreeContextBuffer(SecurityPackage); + if(userp && *userp) { CURLcode result; |