mirror of
https://github.com/moparisthebest/curl
synced 2024-08-13 17:03:50 -04:00
NTLM: header inclusion cleanup
This commit is contained in:
parent
662c1d87f3
commit
05ef245170
@ -22,42 +22,24 @@
|
|||||||
|
|
||||||
#include "setup.h"
|
#include "setup.h"
|
||||||
|
|
||||||
/* NTLM details:
|
|
||||||
|
|
||||||
http://davenport.sourceforge.net/ntlm.html
|
|
||||||
http://www.innovation.ch/java/ntlm.html
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef USE_NTLM
|
#ifdef USE_NTLM
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NTLM details:
|
||||||
|
*
|
||||||
|
* http://davenport.sourceforge.net/ntlm.html
|
||||||
|
* http://www.innovation.ch/java/ntlm.html
|
||||||
|
*/
|
||||||
|
|
||||||
#define DEBUG_ME 0
|
#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 "urldata.h"
|
||||||
#include "non-ascii.h" /* for Curl_convert_... prototypes */
|
|
||||||
#include "sendf.h"
|
#include "sendf.h"
|
||||||
#include "select.h"
|
|
||||||
#include "rawstr.h"
|
#include "rawstr.h"
|
||||||
#include "curl_base64.h"
|
|
||||||
#include "curl_ntlm.h"
|
#include "curl_ntlm.h"
|
||||||
#include "curl_ntlm_msgs.h"
|
#include "curl_ntlm_msgs.h"
|
||||||
#include "curl_ntlm_wb.h"
|
#include "curl_ntlm_wb.h"
|
||||||
#include "url.h"
|
#include "url.h"
|
||||||
#include "strerror.h"
|
|
||||||
#include "curl_gethostname.h"
|
|
||||||
#include "curl_memory.h"
|
#include "curl_memory.h"
|
||||||
|
|
||||||
#define _MPRINTF_REPLACE /* use our functions only */
|
#define _MPRINTF_REPLACE /* use our functions only */
|
||||||
|
@ -22,6 +22,8 @@
|
|||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include "setup.h"
|
||||||
|
|
||||||
#ifdef USE_NTLM
|
#ifdef USE_NTLM
|
||||||
|
|
||||||
/* this is for ntlm header input */
|
/* this is for ntlm header input */
|
||||||
|
@ -22,23 +22,17 @@
|
|||||||
|
|
||||||
#include "setup.h"
|
#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
|
#ifdef USE_SSLEAY
|
||||||
#include "ssluse.h"
|
|
||||||
# ifdef USE_OPENSSL
|
# ifdef USE_OPENSSL
|
||||||
# include <openssl/des.h>
|
# include <openssl/des.h>
|
||||||
# ifndef OPENSSL_NO_MD4
|
# ifndef OPENSSL_NO_MD4
|
||||||
@ -56,74 +50,49 @@
|
|||||||
# include <ssl.h>
|
# include <ssl.h>
|
||||||
# include <rand.h>
|
# include <rand.h>
|
||||||
# endif
|
# endif
|
||||||
|
# if (OPENSSL_VERSION_NUMBER < 0x00907001L)
|
||||||
#ifndef OPENSSL_VERSION_NUMBER
|
|
||||||
#error "OPENSSL_VERSION_NUMBER not defined"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OPENSSL_VERSION_NUMBER < 0x00907001L
|
|
||||||
# define DES_key_schedule des_key_schedule
|
# define DES_key_schedule des_key_schedule
|
||||||
# define DES_cblock des_cblock
|
# define DES_cblock des_cblock
|
||||||
# define DES_set_odd_parity des_set_odd_parity
|
# define DES_set_odd_parity des_set_odd_parity
|
||||||
# define DES_set_key des_set_key
|
# define DES_set_key des_set_key
|
||||||
# define DES_ecb_encrypt des_ecb_encrypt
|
# define DES_ecb_encrypt des_ecb_encrypt
|
||||||
|
|
||||||
/* This is how things were done in the old days */
|
|
||||||
# define DESKEY(x) x
|
# define DESKEY(x) x
|
||||||
# define DESKEYARG(x) x
|
# define DESKEYARG(x) x
|
||||||
# else
|
# else
|
||||||
/* Modern version */
|
|
||||||
# define DESKEYARG(x) *x
|
# define DESKEYARG(x) *x
|
||||||
# define DESKEY(x) &x
|
# define DESKEY(x) &x
|
||||||
# endif
|
# 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)
|
#elif defined(USE_GNUTLS)
|
||||||
|
|
||||||
#include "gtls.h"
|
|
||||||
# include <gcrypt.h>
|
# include <gcrypt.h>
|
||||||
|
|
||||||
# define MD5_DIGEST_LENGTH 16
|
# define MD5_DIGEST_LENGTH 16
|
||||||
# define MD4_DIGEST_LENGTH 16
|
# define MD4_DIGEST_LENGTH 16
|
||||||
|
|
||||||
#elif defined(USE_NSS)
|
#elif defined(USE_NSS)
|
||||||
|
|
||||||
#include "curl_md4.h"
|
|
||||||
#include "nssg.h"
|
|
||||||
# include <nss.h>
|
# include <nss.h>
|
||||||
# include <pk11pub.h>
|
# include <pk11pub.h>
|
||||||
# include <hasht.h>
|
# include <hasht.h>
|
||||||
|
# include "curl_md4.h"
|
||||||
# define MD5_DIGEST_LENGTH MD5_LENGTH
|
# define MD5_DIGEST_LENGTH MD5_LENGTH
|
||||||
|
|
||||||
#elif defined(USE_WINDOWS_SSPI)
|
|
||||||
|
|
||||||
#include "curl_sspi.h"
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
# error "Can't compile NTLM support without a crypto library."
|
# error "Can't compile NTLM support without a crypto library."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef USE_NTRESPONSES
|
#include "urldata.h"
|
||||||
/* Define this to make the type-3 message include the NT response message */
|
#include "non-ascii.h"
|
||||||
#define USE_NTRESPONSES 1
|
#include "rawstr.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
|
|
||||||
|
|
||||||
#include "curl_ntlm_core.h"
|
#include "curl_ntlm_core.h"
|
||||||
|
|
||||||
|
#define _MPRINTF_REPLACE /* use our functions only */
|
||||||
|
#include <curl/mprintf.h>
|
||||||
|
|
||||||
/* The last #include file should be: */
|
/* The last #include file should be: */
|
||||||
#include "memdebug.h"
|
#include "memdebug.h"
|
||||||
|
|
||||||
#ifndef USE_WINDOWS_SSPI
|
|
||||||
|
|
||||||
#ifdef USE_SSLEAY
|
#ifdef USE_SSLEAY
|
||||||
/*
|
/*
|
||||||
* Turns a 56 bit key into the 64 bit, odd parity key and sets the key. The
|
* 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_NTRESPONSES */
|
||||||
|
|
||||||
#endif /* !USE_WINDOWS_SSPI */
|
#endif /* USE_NTLM && !USE_WINDOWS_SSPI */
|
||||||
|
|
||||||
#endif /* USE_NTLM */
|
|
||||||
|
@ -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,
|
void Curl_ntlm_core_lm_resp(const unsigned char *keys,
|
||||||
const unsigned char *plaintext,
|
const unsigned char *plaintext,
|
||||||
@ -32,12 +57,12 @@ void Curl_ntlm_core_mk_lm_hash(struct SessionHandle *data,
|
|||||||
const char *password,
|
const char *password,
|
||||||
unsigned char *lmbuffer /* 21 bytes */);
|
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,
|
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 */);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* USE_NTLM */
|
#endif /* USE_NTLM && !USE_WINDOWS_SSPI */
|
||||||
|
|
||||||
#endif /* HEADER_CURL_NTLM_CORE_H */
|
#endif /* HEADER_CURL_NTLM_CORE_H */
|
||||||
|
@ -22,43 +22,19 @@
|
|||||||
|
|
||||||
#include "setup.h"
|
#include "setup.h"
|
||||||
|
|
||||||
/* NTLM details:
|
|
||||||
|
|
||||||
http://davenport.sourceforge.net/ntlm.html
|
|
||||||
http://www.innovation.ch/java/ntlm.html
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef USE_NTLM
|
#ifdef USE_NTLM
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NTLM details:
|
||||||
|
*
|
||||||
|
* http://davenport.sourceforge.net/ntlm.html
|
||||||
|
* http://www.innovation.ch/java/ntlm.html
|
||||||
|
*/
|
||||||
|
|
||||||
#define DEBUG_ME 0
|
#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
|
#ifdef USE_SSLEAY
|
||||||
#include "ssluse.h"
|
|
||||||
# ifdef USE_OPENSSL
|
# ifdef USE_OPENSSL
|
||||||
# include <openssl/des.h>
|
# include <openssl/des.h>
|
||||||
# ifndef OPENSSL_NO_MD4
|
# ifndef OPENSSL_NO_MD4
|
||||||
@ -76,52 +52,43 @@
|
|||||||
# include <ssl.h>
|
# include <ssl.h>
|
||||||
# include <rand.h>
|
# include <rand.h>
|
||||||
# endif
|
# endif
|
||||||
|
# include "ssluse.h"
|
||||||
#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
|
|
||||||
|
|
||||||
#elif defined(USE_GNUTLS)
|
#elif defined(USE_GNUTLS)
|
||||||
|
|
||||||
#include "gtls.h"
|
|
||||||
# include <gcrypt.h>
|
# include <gcrypt.h>
|
||||||
|
# include "gtls.h"
|
||||||
# define MD5_DIGEST_LENGTH 16
|
# define MD5_DIGEST_LENGTH 16
|
||||||
# define MD4_DIGEST_LENGTH 16
|
# define MD4_DIGEST_LENGTH 16
|
||||||
|
|
||||||
#elif defined(USE_NSS)
|
#elif defined(USE_NSS)
|
||||||
|
|
||||||
#include "curl_md4.h"
|
|
||||||
#include "nssg.h"
|
|
||||||
# include <nss.h>
|
# include <nss.h>
|
||||||
# include <pk11pub.h>
|
# include <pk11pub.h>
|
||||||
# include <hasht.h>
|
# include <hasht.h>
|
||||||
|
# include "nssg.h"
|
||||||
|
# include "curl_md4.h"
|
||||||
# define MD5_DIGEST_LENGTH MD5_LENGTH
|
# define MD5_DIGEST_LENGTH MD5_LENGTH
|
||||||
|
|
||||||
#elif defined(USE_WINDOWS_SSPI)
|
#elif defined(USE_WINDOWS_SSPI)
|
||||||
|
|
||||||
# include "curl_sspi.h"
|
# include "curl_sspi.h"
|
||||||
|
|
||||||
#else
|
#else
|
||||||
# error "Can't compile NTLM support without a crypto library."
|
# error "Can't compile NTLM support without a crypto library."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef USE_NTRESPONSES
|
#include "urldata.h"
|
||||||
/* Define this to make the type-3 message include the NT response message */
|
#include "non-ascii.h"
|
||||||
#define USE_NTRESPONSES 1
|
#include "sendf.h"
|
||||||
|
#include "curl_base64.h"
|
||||||
/* Define this to make the type-3 message include the NTLM2Session response
|
|
||||||
message, requires USE_NTRESPONSES. */
|
|
||||||
#define USE_NTLM2SESSION 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "curl_ntlm_core.h"
|
#include "curl_ntlm_core.h"
|
||||||
|
#include "curl_gethostname.h"
|
||||||
|
#include "curl_memory.h"
|
||||||
|
|
||||||
|
#define BUILDING_CURL_NTLM_MSGS_C
|
||||||
|
#include "curl_ntlm_msgs.h"
|
||||||
|
|
||||||
|
#define _MPRINTF_REPLACE /* use our functions only */
|
||||||
|
#include <curl/mprintf.h>
|
||||||
|
|
||||||
/* The last #include file should be: */
|
/* The last #include file should be: */
|
||||||
#include "memdebug.h"
|
#include "memdebug.h"
|
||||||
|
@ -22,6 +22,8 @@
|
|||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include "setup.h"
|
||||||
|
|
||||||
#ifdef USE_NTLM
|
#ifdef USE_NTLM
|
||||||
|
|
||||||
/* This is to generate a base64 encoded NTLM type-1 message */
|
/* This is to generate a base64 encoded NTLM type-1 message */
|
||||||
|
@ -24,6 +24,13 @@
|
|||||||
|
|
||||||
#if defined(USE_NTLM) && defined(NTLM_WB_ENABLED)
|
#if defined(USE_NTLM) && defined(NTLM_WB_ENABLED)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NTLM details:
|
||||||
|
*
|
||||||
|
* http://davenport.sourceforge.net/ntlm.html
|
||||||
|
* http://www.innovation.ch/java/ntlm.html
|
||||||
|
*/
|
||||||
|
|
||||||
#define DEBUG_ME 0
|
#define DEBUG_ME 0
|
||||||
|
|
||||||
#ifdef HAVE_UNISTD_H
|
#ifdef HAVE_UNISTD_H
|
||||||
|
@ -22,6 +22,8 @@
|
|||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include "setup.h"
|
||||||
|
|
||||||
#if defined(USE_NTLM) && defined(NTLM_WB_ENABLED)
|
#if defined(USE_NTLM) && defined(NTLM_WB_ENABLED)
|
||||||
|
|
||||||
/* this is for creating ntlm header output by delegating challenge/response
|
/* this is for creating ntlm header output by delegating challenge/response
|
||||||
@ -30,6 +32,6 @@ CURLcode Curl_output_ntlm_wb(struct connectdata *conn, bool proxy);
|
|||||||
|
|
||||||
void Curl_ntlm_wb_cleanup(struct connectdata *conn);
|
void Curl_ntlm_wb_cleanup(struct connectdata *conn);
|
||||||
|
|
||||||
#endif
|
#endif /* USE_NTLM && NTLM_WB_ENABLED */
|
||||||
|
|
||||||
#endif /* HEADER_CURL_NTLM_WB_H */
|
#endif /* HEADER_CURL_NTLM_WB_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user