Commit 05ef2451 authored by Yang Tse's avatar Yang Tse
Browse files

NTLM: header inclusion cleanup

parent 662c1d87
Loading
Loading
Loading
Loading
+7 −25
Original line number Diff line number Diff line
@@ -22,42 +22,24 @@

#include "setup.h"

/* NTLM details:
#ifdef USE_NTLM

   http://davenport.sourceforge.net/ntlm.html
   http://www.innovation.ch/java/ntlm.html
/*
 * NTLM details:
 *
 * http://davenport.sourceforge.net/ntlm.html
 * http://www.innovation.ch/java/ntlm.html
 */

#ifdef USE_NTLM

#define DEBUG_ME 0

#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_SYS_WAIT_H
#include <sys/wait.h>
#endif
#ifdef HAVE_SIGNAL_H
#include <signal.h>
#endif

#if (defined(NETWARE) && !defined(__NOVELL_LIBC__))
#include <netdb.h>
#endif

#include "urldata.h"
#include "non-ascii.h"  /* for Curl_convert_... prototypes */
#include "sendf.h"
#include "select.h"
#include "rawstr.h"
#include "curl_base64.h"
#include "curl_ntlm.h"
#include "curl_ntlm_msgs.h"
#include "curl_ntlm_wb.h"
#include "url.h"
#include "strerror.h"
#include "curl_gethostname.h"
#include "curl_memory.h"

#define _MPRINTF_REPLACE /* use our functions only */
+2 −0
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@
 *
 ***************************************************************************/

#include "setup.h"

#ifdef USE_NTLM

/* this is for ntlm header input */
+53 −86
Original line number Diff line number Diff line
@@ -22,23 +22,17 @@

#include "setup.h"

/* NTLM details:
#if defined(USE_NTLM) && !defined(USE_WINDOWS_SSPI)

   http://davenport.sourceforge.net/ntlm.html
   http://www.innovation.ch/java/ntlm.html
/*
 * NTLM details:
 *
 * http://davenport.sourceforge.net/ntlm.html
 * http://www.innovation.ch/java/ntlm.html
 */

#ifdef USE_NTLM

#include "non-ascii.h"
#include "rawstr.h"
#include "curl_memory.h"

#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>

#ifdef USE_SSLEAY
#include "ssluse.h"

#  ifdef USE_OPENSSL
#    include <openssl/des.h>
#    ifndef OPENSSL_NO_MD4
@@ -56,74 +50,49 @@
#    include <ssl.h>
#    include <rand.h>
#  endif

#ifndef OPENSSL_VERSION_NUMBER
#error "OPENSSL_VERSION_NUMBER not defined"
#endif

#if OPENSSL_VERSION_NUMBER < 0x00907001L
#  if (OPENSSL_VERSION_NUMBER < 0x00907001L)
#    define DES_key_schedule des_key_schedule
#    define DES_cblock des_cblock
#    define DES_set_odd_parity des_set_odd_parity
#    define DES_set_key des_set_key
#    define DES_ecb_encrypt des_ecb_encrypt

/* This is how things were done in the old days */
#    define DESKEY(x) x
#    define DESKEYARG(x) x
#  else
/* Modern version */
#    define DESKEYARG(x) *x
#    define DESKEY(x) &x
#  endif

#ifdef OPENSSL_NO_MD4
/* This requires MD4, but OpenSSL was compiled without it */
#define USE_NTRESPONSES 0
#define USE_NTLM2SESSION 0
#endif

#elif defined(USE_GNUTLS)

#include "gtls.h"
#  include <gcrypt.h>

#  define MD5_DIGEST_LENGTH 16
#  define MD4_DIGEST_LENGTH 16

#elif defined(USE_NSS)

#include "curl_md4.h"
#include "nssg.h"
#  include <nss.h>
#  include <pk11pub.h>
#  include <hasht.h>
#  include "curl_md4.h"
#  define MD5_DIGEST_LENGTH MD5_LENGTH

#elif defined(USE_WINDOWS_SSPI)

#include "curl_sspi.h"

#else
#  error "Can't compile NTLM support without a crypto library."
#endif

#ifndef USE_NTRESPONSES
/* Define this to make the type-3 message include the NT response message */
#define USE_NTRESPONSES 1

/* Define this to make the type-3 message include the NTLM2Session response
   message, requires USE_NTRESPONSES. */
#define USE_NTLM2SESSION 1
#endif

#include "urldata.h"
#include "non-ascii.h"
#include "rawstr.h"
#include "curl_memory.h"
#include "curl_ntlm_core.h"

#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>

/* The last #include file should be: */
#include "memdebug.h"

#ifndef USE_WINDOWS_SSPI

#ifdef USE_SSLEAY
/*
 * Turns a 56 bit key into the 64 bit, odd parity key and sets the key.  The
@@ -407,6 +376,4 @@ CURLcode Curl_ntlm_core_mk_nt_hash(struct SessionHandle *data,
}
#endif /* USE_NTRESPONSES */

#endif /* !USE_WINDOWS_SSPI */

#endif /* USE_NTLM */
#endif /* USE_NTLM && !USE_WINDOWS_SSPI */
+28 −3
Original line number Diff line number Diff line
@@ -22,7 +22,32 @@
 *
 ***************************************************************************/

#ifdef USE_NTLM
#include "setup.h"

#if defined(USE_NTLM) && !defined(USE_WINDOWS_SSPI)

#ifdef USE_SSLEAY
#  if !defined(OPENSSL_VERSION_NUMBER) && \
      !defined(HEADER_SSL_H) && !defined(HEADER_MD5_H)
#    error "curl_ntlm_core.h shall not be included before OpenSSL headers."
#  endif
#  ifdef OPENSSL_NO_MD4
#    define USE_NTRESPONSES 0
#    define USE_NTLM2SESSION 0
#  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.
 */

#ifndef USE_NTRESPONSES
#  define USE_NTRESPONSES 1
#  define USE_NTLM2SESSION 1
#endif

void Curl_ntlm_core_lm_resp(const unsigned char *keys,
                            const unsigned char *plaintext,
@@ -32,12 +57,12 @@ void Curl_ntlm_core_mk_lm_hash(struct SessionHandle *data,
                               const char *password,
                               unsigned char *lmbuffer /* 21 bytes */);

#if !defined(USE_WINDOWS_SSPI) && (USE_NTRESPONSES != 0)
#if USE_NTRESPONSES
CURLcode Curl_ntlm_core_mk_nt_hash(struct SessionHandle *data,
                                   const char *password,
                                   unsigned char *ntbuffer /* 21 bytes */);
#endif

#endif /* USE_NTLM */
#endif /* USE_NTLM && !USE_WINDOWS_SSPI */

#endif /* HEADER_CURL_NTLM_CORE_H */
+48 −81
Original line number Diff line number Diff line
@@ -22,43 +22,19 @@

#include "setup.h"

/* NTLM details:
#ifdef USE_NTLM

   http://davenport.sourceforge.net/ntlm.html
   http://www.innovation.ch/java/ntlm.html
/*
 * NTLM details:
 *
 * http://davenport.sourceforge.net/ntlm.html
 * http://www.innovation.ch/java/ntlm.html
 */

#ifdef USE_NTLM

#define DEBUG_ME 0

#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif

#if (defined(NETWARE) && !defined(__NOVELL_LIBC__))
#include <netdb.h>
#endif

#define BUILDING_CURL_NTLM_MSGS_C

#include "urldata.h"
#include "non-ascii.h"
#include "sendf.h"
#include "select.h"
#include "rawstr.h"
#include "curl_base64.h"
#include "curl_ntlm_msgs.h"
#include "url.h"
#include "strerror.h"
#include "curl_gethostname.h"
#include "curl_memory.h"

#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>

#ifdef USE_SSLEAY
#include "ssluse.h"

#  ifdef USE_OPENSSL
#    include <openssl/des.h>
#    ifndef OPENSSL_NO_MD4
@@ -76,52 +52,43 @@
#    include <ssl.h>
#    include <rand.h>
#  endif

#ifndef OPENSSL_VERSION_NUMBER
#error "OPENSSL_VERSION_NUMBER not defined"
#endif

#ifdef OPENSSL_NO_MD4
/* This requires MD4, but OpenSSL was compiled without it */
#define USE_NTRESPONSES 0
#define USE_NTLM2SESSION 0
#endif
#  include "ssluse.h"

#elif defined(USE_GNUTLS)

#include "gtls.h"
#  include <gcrypt.h>

#  include "gtls.h"
#  define MD5_DIGEST_LENGTH 16
#  define MD4_DIGEST_LENGTH 16

#elif defined(USE_NSS)

#include "curl_md4.h"
#include "nssg.h"
#  include <nss.h>
#  include <pk11pub.h>
#  include <hasht.h>
#  include "nssg.h"
#  include "curl_md4.h"
#  define MD5_DIGEST_LENGTH MD5_LENGTH

#elif defined(USE_WINDOWS_SSPI)

#  include "curl_sspi.h"

#else
#  error "Can't compile NTLM support without a crypto library."
#endif

#ifndef USE_NTRESPONSES
/* Define this to make the type-3 message include the NT response message */
#define USE_NTRESPONSES 1
#include "urldata.h"
#include "non-ascii.h"
#include "sendf.h"
#include "curl_base64.h"
#include "curl_ntlm_core.h"
#include "curl_gethostname.h"
#include "curl_memory.h"

/* Define this to make the type-3 message include the NTLM2Session response
   message, requires USE_NTRESPONSES. */
#define USE_NTLM2SESSION 1
#endif
#define BUILDING_CURL_NTLM_MSGS_C
#include "curl_ntlm_msgs.h"

#include "curl_ntlm_core.h"
#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>

/* The last #include file should be: */
#include "memdebug.h"
Loading