]> granicus.if.org Git - curl/commitdiff
md4: Use the Curl_md4it() function for OpenSSL based NTLM
authorSteve Holme <steve_holme@hotmail.com>
Sun, 14 Apr 2019 01:25:50 +0000 (02:25 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Sun, 4 Aug 2019 17:01:26 +0000 (18:01 +0100)
lib/curl_md4.h
lib/curl_ntlm_core.c
lib/md4.c

index f41e3921d40b0ab3a0a4bcf9a12ad16f30b33948..979a82b624839cc3f572b39b6f227d75d3f9c898 100644 (file)
@@ -24,9 +24,8 @@
 
 #include "curl_setup.h"
 
-#if defined(USE_GNUTLS_NETTLE) || defined(USE_NSS) || \
-    defined(USE_OS400CRYPTO) || \
-    (defined(USE_OPENSSL) && defined(OPENSSL_NO_MD4)) || \
+#if defined(USE_GNUTLS_NETTLE) || defined(USE_GNUTLS) || \
+    defined(USE_OPENSSL) || defined(USE_NSS) || defined(USE_OS400CRYPTO) || \
     (defined(USE_MBEDTLS) && !defined(MBEDTLS_MD4_C))
 
 #define MD4_DIGEST_LENGTH 16
@@ -34,8 +33,7 @@
 void Curl_md4it(unsigned char *output, const unsigned char *input, size_t len);
 
 #endif /* defined(USE_GNUTLS_NETTLE) || defined(USE_GNUTLS) ||
-    defined(USE_NSS) || defined(USE_OS400CRYPTO) ||
-    (defined(USE_OPENSSL) && defined(OPENSSL_NO_MD4)) ||
+    defined(USE_OPENSSL) || defined(USE_NSS) || defined(USE_OS400CRYPTO) ||
     (defined(USE_MBEDTLS) && !defined(MBEDTLS_MD4_C)) */
 
 #endif /* HEADER_CURL_MD4_H */
index d1b508cb75e6e5a093b589a38595b69aca59748c..9ad0de8f7c5c17e52fb9f095e6230998a3f7ae5b 100644 (file)
 #ifdef USE_OPENSSL
 
 #  include <openssl/des.h>
-#  ifndef OPENSSL_NO_MD4
-#    include <openssl/md4.h>
-#  else
-#    include "curl_md4.h"
-#  endif
 #  include <openssl/md5.h>
 #  include <openssl/ssl.h>
 #  include <openssl/rand.h>
@@ -75,6 +70,7 @@
 #    define DESKEYARG(x) *x
 #    define DESKEY(x) &x
 #  endif
+#  include "curl_md4.h"
 
 #elif defined(USE_GNUTLS_NETTLE)
 
@@ -569,14 +565,7 @@ CURLcode Curl_ntlm_core_mk_nt_hash(struct Curl_easy *data,
   {
     /* Create NT hashed password. */
 #ifdef USE_OPENSSL
-#if !defined(OPENSSL_NO_MD4)
-    MD4_CTX MD4pw;
-    MD4_Init(&MD4pw);
-    MD4_Update(&MD4pw, pw, 2 * len);
-    MD4_Final(ntbuffer, &MD4pw);
-#else
     Curl_md4it(ntbuffer, pw, 2 * len);
-#endif
 #elif defined(USE_GNUTLS_NETTLE)
     Curl_md4it(ntbuffer, pw, 2 * len);
 #elif defined(USE_GNUTLS)
index 6bc2c6f656dafc3912ee2ecb1865e9cc0fcdf177..1b1e31540472b18340c1c955199d47aa5f8a558d 100644 (file)
--- a/lib/md4.c
+++ b/lib/md4.c
@@ -85,6 +85,13 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
   gcry_md_close(ctx);
 }
 
+#elif defined(USE_OPENSSL) && !defined(OPENSSL_NO_MD4)
+/* When OpenSSL is available we use the MD4-functions from OpenSSL */
+#include <openssl/md4.h>
+
+#include "curl_md4.h"
+#include "warnless.h"
+
 #elif defined(USE_NSS) || defined(USE_OS400CRYPTO) || \
     (defined(USE_OPENSSL) && defined(OPENSSL_NO_MD4)) || \
     (defined(USE_MBEDTLS) && !defined(MBEDTLS_MD4_C))
@@ -131,8 +138,6 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
 #include "curl_md4.h"
 #include "warnless.h"
 
-#ifndef HAVE_OPENSSL
-
 #include <string.h>
 
 /* Any 32-bit or wider unsigned integer data type will do */
@@ -381,13 +386,10 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
   memset(ctx, 0, sizeof(*ctx));
 }
 
-#endif
-
 #endif /* CRYPTO LIBS */
 
 #if defined(USE_GNUTLS_NETTLE) || defined(USE_GNUTLS) || \
-    defined(USE_NSS) || defined(USE_OS400CRYPTO) || \
-    (defined(USE_OPENSSL) && defined(OPENSSL_NO_MD4)) || \
+    defined(USE_OPENSSL) || defined(USE_NSS) || defined(USE_OS400CRYPTO) || \
     (defined(USE_OPENSSL) && defined(OPENSSL_NO_MD4)) || \
     (defined(USE_MBEDTLS) && !defined(MBEDTLS_MD4_C))
 
@@ -400,7 +402,5 @@ void Curl_md4it(unsigned char *output, const unsigned char *input, size_t len)
 }
 
 #endif /* defined(USE_GNUTLS_NETTLE) || defined(USE_GNUTLS) ||
-    defined(USE_NSS) || defined(USE_OS400CRYPTO) ||
-    defined(USE_OS400CRYPTO) ||
-    (defined(USE_OPENSSL) && defined(OPENSSL_NO_MD4)) ||
+    defined(USE_OPENSSL) || defined(USE_NSS) || defined(USE_OS400CRYPTO) || \
     (defined(USE_MBEDTLS) && !defined(MBEDTLS_MD4_C)) */