1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-21 23:58:49 -05:00

NTLM: check for features with #ifdef instead of #if

Feature defines are normally checked with #ifdef instead of #if in the rest of
the codebase. Additionally, some compilers warn when a macro is implicitly
evaluated to 0 because it is not defined, which was the case here.

Ref: https://github.com/curl/curl/pull/1362#discussion_r108605101
Closes https://github.com/curl/curl/pull/1367
This commit is contained in:
Marcel Raad 2017-03-29 13:16:25 +02:00
parent aced311d18
commit 9bc92eeb0e
No known key found for this signature in database
GPG Key ID: B7F13D981BBF1607
4 changed files with 24 additions and 29 deletions

View File

@ -501,7 +501,7 @@ CURLcode Curl_ntlm_core_mk_lm_hash(struct Curl_easy *data,
return CURLE_OK; return CURLE_OK;
} }
#if USE_NTRESPONSES #ifdef USE_NTRESPONSES
static void ascii_to_unicode_le(unsigned char *dest, const char *src, static void ascii_to_unicode_le(unsigned char *dest, const char *src,
size_t srclen) size_t srclen)
{ {
@ -512,7 +512,7 @@ static void ascii_to_unicode_le(unsigned char *dest, const char *src,
} }
} }
#if USE_NTLM_V2 && !defined(USE_WINDOWS_SSPI) #if defined(USE_NTLM_V2) && !defined(USE_WINDOWS_SSPI)
static void ascii_uppercase_to_unicode_le(unsigned char *dest, static void ascii_uppercase_to_unicode_le(unsigned char *dest,
const char *src, size_t srclen) const char *src, size_t srclen)
@ -597,7 +597,7 @@ CURLcode Curl_ntlm_core_mk_nt_hash(struct Curl_easy *data,
return CURLE_OK; return CURLE_OK;
} }
#if USE_NTLM_V2 && !defined(USE_WINDOWS_SSPI) #if defined(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

@ -33,31 +33,26 @@
!defined(HEADER_SSL_H) && !defined(HEADER_MD5_H) !defined(HEADER_SSL_H) && !defined(HEADER_MD5_H)
# error "curl_ntlm_core.h shall not be included before OpenSSL headers." # error "curl_ntlm_core.h shall not be included before OpenSSL headers."
# endif # endif
# ifdef OPENSSL_NO_MD4
# define USE_NTRESPONSES 0
# define USE_NTLM2SESSION 0
# define USE_NTLM_V2 0
# endif
#endif #endif
/* Define USE_NTRESPONSES to 1 in order to make the type-3 message include /* Define USE_NTRESPONSES in order to make the type-3 message include
* the NT response message. */ * the NT response message. */
#ifndef USE_NTRESPONSES #if !defined(USE_OPENSSL) || !defined(OPENSSL_NO_MD4)
#define USE_NTRESPONSES 1 #define USE_NTRESPONSES
#endif #endif
/* Define USE_NTLM2SESSION to 1 in order to make the type-3 message include the /* Define USE_NTLM2SESSION in order to make the type-3 message include the
NTLM2Session response message, requires USE_NTRESPONSES defined to 1 and a NTLM2Session response message, requires USE_NTRESPONSES defined to 1 and a
Crypto engine that we have curl_ssl_md5sum() for. */ Crypto engine that we have curl_ssl_md5sum() for. */
#if !defined(USE_NTLM2SESSION) && USE_NTRESPONSES && !defined(USE_WIN32_CRYPTO) #if defined(USE_NTRESPONSES) && !defined(USE_WIN32_CRYPTO)
#define USE_NTLM2SESSION 1 #define USE_NTLM2SESSION
#endif #endif
/* Define USE_NTLM_V2 to 1 in order to allow the type-3 message to include the /* Define USE_NTLM_V2 in order to allow the type-3 message to include the
LMv2 and NTLMv2 response messages, requires USE_NTRESPONSES defined to 1 LMv2 and NTLMv2 response messages, requires USE_NTRESPONSES defined to 1
and support for 64-bit integers. */ and support for 64-bit integers. */
#if !defined(USE_NTLM_V2) && USE_NTRESPONSES && (CURL_SIZEOF_CURL_OFF_T > 4) #if defined(USE_NTRESPONSES) && (CURL_SIZEOF_CURL_OFF_T > 4)
#define USE_NTLM_V2 1 #define USE_NTLM_V2
#endif #endif
void Curl_ntlm_core_lm_resp(const unsigned char *keys, void Curl_ntlm_core_lm_resp(const unsigned char *keys,
@ -68,12 +63,12 @@ CURLcode Curl_ntlm_core_mk_lm_hash(struct Curl_easy *data,
const char *password, const char *password,
unsigned char *lmbuffer /* 21 bytes */); unsigned char *lmbuffer /* 21 bytes */);
#if USE_NTRESPONSES #ifdef USE_NTRESPONSES
CURLcode Curl_ntlm_core_mk_nt_hash(struct Curl_easy *data, CURLcode Curl_ntlm_core_mk_nt_hash(struct Curl_easy *data,
const char *password, const char *password,
unsigned char *ntbuffer /* 21 bytes */); unsigned char *ntbuffer /* 21 bytes */);
#if USE_NTLM_V2 && !defined(USE_WINDOWS_SSPI) #if defined(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,

View File

@ -446,7 +446,7 @@ static CURLcode smb_send_setup(struct connectdata *conn)
Curl_ntlm_core_mk_lm_hash(conn->data, conn->passwd, lm_hash); Curl_ntlm_core_mk_lm_hash(conn->data, conn->passwd, lm_hash);
Curl_ntlm_core_lm_resp(lm_hash, smbc->challenge, lm); Curl_ntlm_core_lm_resp(lm_hash, smbc->challenge, lm);
#if USE_NTRESPONSES #ifdef USE_NTRESPONSES
Curl_ntlm_core_mk_nt_hash(conn->data, conn->passwd, nt_hash); Curl_ntlm_core_mk_nt_hash(conn->data, conn->passwd, nt_hash);
Curl_ntlm_core_lm_resp(nt_hash, smbc->challenge, nt); Curl_ntlm_core_lm_resp(nt_hash, smbc->challenge, nt);
#else #else

View File

@ -394,7 +394,7 @@ CURLcode Curl_auth_create_ntlm_type1_message(const char *userp,
/* Clean up any former leftovers and initialise to defaults */ /* Clean up any former leftovers and initialise to defaults */
Curl_auth_ntlm_cleanup(ntlm); Curl_auth_ntlm_cleanup(ntlm);
#if USE_NTRESPONSES && USE_NTLM2SESSION #if defined(USE_NTRESPONSES) && defined(USE_NTLM2SESSION)
#define NTLM2FLAG NTLMFLAG_NEGOTIATE_NTLM2_KEY #define NTLM2FLAG NTLMFLAG_NEGOTIATE_NTLM2_KEY
#else #else
#define NTLM2FLAG 0 #define NTLM2FLAG 0
@ -509,7 +509,7 @@ CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data,
unsigned char ntlmbuf[NTLM_BUFSIZE]; unsigned char ntlmbuf[NTLM_BUFSIZE];
int lmrespoff; int lmrespoff;
unsigned char lmresp[24]; /* fixed-size */ unsigned char lmresp[24]; /* fixed-size */
#if USE_NTRESPONSES #ifdef USE_NTRESPONSES
int ntrespoff; int ntrespoff;
unsigned int ntresplen = 24; unsigned int ntresplen = 24;
unsigned char ntresp[24]; /* fixed-size */ unsigned char ntresp[24]; /* fixed-size */
@ -552,7 +552,7 @@ CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data,
hostlen = strlen(host); hostlen = strlen(host);
} }
#if USE_NTRESPONSES && USE_NTLM_V2 #if defined(USE_NTRESPONSES) && defined(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];
@ -590,7 +590,7 @@ CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data,
else else
#endif #endif
#if USE_NTRESPONSES && USE_NTLM2SESSION #if defined(USE_NTRESPONSES) && defined(USE_NTLM2SESSION)
/* We don't support NTLM2 if we don't have USE_NTRESPONSES */ /* We don't support NTLM2 if we don't have USE_NTRESPONSES */
if(ntlm->flags & NTLMFLAG_NEGOTIATE_NTLM2_KEY) { if(ntlm->flags & NTLMFLAG_NEGOTIATE_NTLM2_KEY) {
unsigned char ntbuffer[0x18]; unsigned char ntbuffer[0x18];
@ -630,12 +630,12 @@ CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data,
#endif #endif
{ {
#if USE_NTRESPONSES #ifdef USE_NTRESPONSES
unsigned char ntbuffer[0x18]; unsigned char ntbuffer[0x18];
#endif #endif
unsigned char lmbuffer[0x18]; unsigned char lmbuffer[0x18];
#if USE_NTRESPONSES #ifdef USE_NTRESPONSES
result = Curl_ntlm_core_mk_nt_hash(data, passwdp, ntbuffer); result = Curl_ntlm_core_mk_nt_hash(data, passwdp, ntbuffer);
if(result) if(result)
return result; return result;
@ -661,7 +661,7 @@ CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data,
} }
lmrespoff = 64; /* size of the message header */ lmrespoff = 64; /* size of the message header */
#if USE_NTRESPONSES #ifdef USE_NTRESPONSES
ntrespoff = lmrespoff + 0x18; ntrespoff = lmrespoff + 0x18;
domoff = ntrespoff + ntresplen; domoff = ntrespoff + ntresplen;
#else #else
@ -721,7 +721,7 @@ CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data,
SHORTPAIR(lmrespoff), SHORTPAIR(lmrespoff),
0x0, 0x0, 0x0, 0x0,
#if USE_NTRESPONSES #ifdef USE_NTRESPONSES
SHORTPAIR(ntresplen), /* NT-response length, twice */ SHORTPAIR(ntresplen), /* NT-response length, twice */
SHORTPAIR(ntresplen), SHORTPAIR(ntresplen),
SHORTPAIR(ntrespoff), SHORTPAIR(ntrespoff),
@ -768,7 +768,7 @@ CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data,
ntlm_print_hex(stderr, (char *)&ntlmbuf[lmrespoff], 0x18); ntlm_print_hex(stderr, (char *)&ntlmbuf[lmrespoff], 0x18);
}); });
#if USE_NTRESPONSES #ifdef USE_NTRESPONSES
if(size < (NTLM_BUFSIZE - ntresplen)) { if(size < (NTLM_BUFSIZE - ntresplen)) {
DEBUGASSERT(size == (size_t)ntrespoff); DEBUGASSERT(size == (size_t)ntrespoff);
memcpy(&ntlmbuf[size], ptr_ntresp, ntresplen); memcpy(&ntlmbuf[size], ptr_ntresp, ntresplen);