Skip to content

Commit

Permalink
ntlm: Disable NTLM v2 when 64-bit integers are not supported
Browse files Browse the repository at this point in the history
This fixes compilation issues with compilers that don't support 64-bit
integers through long long or __int64 which was introduced in commit
07b66cb.
  • Loading branch information
captain-caveman2k committed Dec 12, 2014
1 parent 97e90d7 commit 82fdb87
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 4 deletions.
4 changes: 3 additions & 1 deletion lib/curl_ntlm_core.c
Expand Up @@ -472,6 +472,7 @@ static void write32_le(const int value, unsigned char *buffer)
buffer[3] = (char)((value & 0xFF000000) >> 24);
}

#if (CURL_SIZEOF_CURL_OFF_T > 4)
#if defined(HAVE_LONGLONG)
static void write64_le(const long long value, unsigned char *buffer)
#else
Expand All @@ -481,6 +482,7 @@ static void write64_le(const __int64 value, unsigned char *buffer)
write32_le((int)value, buffer);
write32_le((int)(value >> 32), buffer + 4);
}
#endif

/*
* Set up nt hashed passwords
Expand Down Expand Up @@ -550,7 +552,7 @@ CURLcode Curl_ntlm_core_mk_nt_hash(struct SessionHandle *data,
return CURLE_OK;
}

#ifndef USE_WINDOWS_SSPI
#if USE_NTLM_V2 && !defined(USE_WINDOWS_SSPI)

/* This returns the HMAC MD5 digest */
CURLcode Curl_hmac_md5(const unsigned char *key, unsigned int keylen,
Expand Down
12 changes: 10 additions & 2 deletions lib/curl_ntlm_core.h
Expand Up @@ -36,6 +36,7 @@
# ifdef OPENSSL_NO_MD4
# define USE_NTRESPONSES 0
# define USE_NTLM2SESSION 0
# define USE_NTLM_V2 0
# endif
#endif

Expand All @@ -52,6 +53,13 @@
#define USE_NTLM2SESSION 1
#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,
const unsigned char *plaintext,
unsigned char *results);
Expand All @@ -65,7 +73,7 @@ CURLcode Curl_ntlm_core_mk_nt_hash(struct SessionHandle *data,
const char *password,
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,
const unsigned char *data, unsigned int datalen,
Expand All @@ -87,7 +95,7 @@ CURLcode Curl_ntlm_core_mk_lmv2_resp(unsigned char *ntlmv2hash,
unsigned char *challenge_server,
unsigned char *lmresp);

#endif /* !USE_WINDOWS_SSPI */
#endif /* USE_NTLM_V2 && !USE_WINDOWS_SSPI */

#endif /* USE_NTRESPONSES */

Expand Down
2 changes: 1 addition & 1 deletion lib/curl_ntlm_msgs.c
Expand Up @@ -554,7 +554,7 @@ CURLcode Curl_sasl_create_ntlm_type3_message(struct SessionHandle *data,
hostlen = strlen(host);
}

#if USE_NTRESPONSES
#if USE_NTRESPONSES && USE_NTLM_V2
if(ntlm->target_info_len) {
unsigned char ntbuffer[0x18];
unsigned int entropy[2];
Expand Down

0 comments on commit 82fdb87

Please sign in to comment.