1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 08:08:50 -05:00

ntlm: Disable NTLM v2 when 64-bit integers are not supported

This fixes compilation issues with compilers that don't support 64-bit
integers through long long or __int64 which was introduced in commit
07b66cbfa4.
This commit is contained in:
Steve Holme 2014-12-12 21:57:59 +00:00
parent 97e90d7b89
commit 82fdb87b27
3 changed files with 14 additions and 4 deletions

View File

@ -472,6 +472,7 @@ static void write32_le(const int value, unsigned char *buffer)
buffer[3] = (char)((value & 0xFF000000) >> 24); buffer[3] = (char)((value & 0xFF000000) >> 24);
} }
#if (CURL_SIZEOF_CURL_OFF_T > 4)
#if defined(HAVE_LONGLONG) #if defined(HAVE_LONGLONG)
static void write64_le(const long long value, unsigned char *buffer) static void write64_le(const long long value, unsigned char *buffer)
#else #else
@ -481,6 +482,7 @@ static void write64_le(const __int64 value, unsigned char *buffer)
write32_le((int)value, buffer); write32_le((int)value, buffer);
write32_le((int)(value >> 32), buffer + 4); write32_le((int)(value >> 32), buffer + 4);
} }
#endif
/* /*
* Set up nt hashed passwords * Set up nt hashed passwords
@ -550,7 +552,7 @@ CURLcode Curl_ntlm_core_mk_nt_hash(struct SessionHandle *data,
return CURLE_OK; return CURLE_OK;
} }
#ifndef USE_WINDOWS_SSPI #if USE_NTLM_V2 && !defined(USE_WINDOWS_SSPI)
/* This returns the HMAC MD5 digest */ /* This returns the HMAC MD5 digest */
CURLcode Curl_hmac_md5(const unsigned char *key, unsigned int keylen, CURLcode Curl_hmac_md5(const unsigned char *key, unsigned int keylen,

View File

@ -36,6 +36,7 @@
# ifdef OPENSSL_NO_MD4 # ifdef OPENSSL_NO_MD4
# define USE_NTRESPONSES 0 # define USE_NTRESPONSES 0
# define USE_NTLM2SESSION 0 # define USE_NTLM2SESSION 0
# define USE_NTLM_V2 0
# endif # endif
#endif #endif
@ -52,6 +53,13 @@
#define USE_NTLM2SESSION 1 #define USE_NTLM2SESSION 1
#endif #endif
/* Define USE_NTLM_V2 to 1 in order to allow the type-3 message to include the
LMv2 and NTLMv2 response messages, requires USE_NTRESPONSES defined to 1
and support for 64-bit integers. */
#if !defined(USE_NTLM_V2) && USE_NTRESPONSES && (CURL_SIZEOF_CURL_OFF_T > 4)
#define USE_NTLM_V2 1
#endif
void Curl_ntlm_core_lm_resp(const unsigned char *keys, void Curl_ntlm_core_lm_resp(const unsigned char *keys,
const unsigned char *plaintext, const unsigned char *plaintext,
unsigned char *results); unsigned char *results);
@ -65,7 +73,7 @@ CURLcode Curl_ntlm_core_mk_nt_hash(struct SessionHandle *data,
const char *password, const char *password,
unsigned char *ntbuffer /* 21 bytes */); unsigned char *ntbuffer /* 21 bytes */);
#ifndef USE_WINDOWS_SSPI #if USE_NTLM_V2 && !defined(USE_WINDOWS_SSPI)
CURLcode Curl_hmac_md5(const unsigned char *key, unsigned int keylen, CURLcode Curl_hmac_md5(const unsigned char *key, unsigned int keylen,
const unsigned char *data, unsigned int datalen, const unsigned char *data, unsigned int datalen,
@ -87,7 +95,7 @@ CURLcode Curl_ntlm_core_mk_lmv2_resp(unsigned char *ntlmv2hash,
unsigned char *challenge_server, unsigned char *challenge_server,
unsigned char *lmresp); unsigned char *lmresp);
#endif /* !USE_WINDOWS_SSPI */ #endif /* USE_NTLM_V2 && !USE_WINDOWS_SSPI */
#endif /* USE_NTRESPONSES */ #endif /* USE_NTRESPONSES */

View File

@ -554,7 +554,7 @@ CURLcode Curl_sasl_create_ntlm_type3_message(struct SessionHandle *data,
hostlen = strlen(host); hostlen = strlen(host);
} }
#if USE_NTRESPONSES #if USE_NTRESPONSES && USE_NTLM_V2
if(ntlm->target_info_len) { if(ntlm->target_info_len) {
unsigned char ntbuffer[0x18]; unsigned char ntbuffer[0x18];
unsigned int entropy[2]; unsigned int entropy[2];