From 97e90d7b8928f49c00ff8109a371e0613821fbc1 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Fri, 12 Dec 2014 21:40:09 +0000 Subject: [PATCH] ntlm: Allow NTLM2Session messages when USE_NTRESPONSES manually defined Previously USE_NTLM2SESSION would only be defined automatically when USE_NTRESPONSES wasn't already defined. Separated the two definitions so that the user can manually set USE_NTRESPONSES themselves but USE_NTLM2SESSION is defined automatically if they don't define it. --- lib/curl_ntlm_core.h | 21 ++++++++++----------- lib/curl_ntlm_msgs.c | 4 ++-- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/curl_ntlm_core.h b/lib/curl_ntlm_core.h index a600f0a7f..c9dde7e4c 100644 --- a/lib/curl_ntlm_core.h +++ b/lib/curl_ntlm_core.h @@ -39,18 +39,17 @@ # endif #endif -/* - * Define USE_NTRESPONSES to 1 in order to make the type-3 message include - * the NT response message. Define USE_NTLM2SESSION to 1 in order to make - * the type-3 message include the NTLM2Session response message, requires - * USE_NTRESPONSES defined to 1. - */ - +/* Define USE_NTRESPONSES to 1 in order to make the type-3 message include + * the NT response message. */ #ifndef USE_NTRESPONSES -# define USE_NTRESPONSES 1 -# ifndef USE_WIN32_CRYPTO -# define USE_NTLM2SESSION 1 -# endif +#define USE_NTRESPONSES 1 +#endif + +/* Define USE_NTLM2SESSION to 1 in order to make the type-3 message include the + NTLM2Session response message, requires USE_NTRESPONSES defined to 1 and a + Crypto engine that we have curl_ssl_md5sum() for. */ +#if !defined(USE_NTLM2SESSION) && USE_NTRESPONSES && !defined(USE_WIN32_CRYPTO) +#define USE_NTLM2SESSION 1 #endif void Curl_ntlm_core_lm_resp(const unsigned char *keys, diff --git a/lib/curl_ntlm_msgs.c b/lib/curl_ntlm_msgs.c index 1abcc8533..b31952138 100644 --- a/lib/curl_ntlm_msgs.c +++ b/lib/curl_ntlm_msgs.c @@ -396,7 +396,7 @@ CURLcode Curl_sasl_create_ntlm_type1_message(const char *userp, /* Clean up any former leftovers and initialise to defaults */ Curl_sasl_ntlm_cleanup(ntlm); -#if USE_NTLM2SESSION +#if USE_NTRESPONSES && USE_NTLM2SESSION #define NTLM2FLAG NTLMFLAG_NEGOTIATE_NTLM2_KEY #else #define NTLM2FLAG 0 @@ -591,7 +591,7 @@ CURLcode Curl_sasl_create_ntlm_type3_message(struct SessionHandle *data, else #endif -#if USE_NTLM2SESSION +#if USE_NTRESPONSES && USE_NTLM2SESSION /* We don't support NTLM2 if we don't have USE_NTRESPONSES */ if(ntlm->flags & NTLMFLAG_NEGOTIATE_NTLM2_KEY) { unsigned char ntbuffer[0x18];