]> granicus.if.org Git - curl/commitdiff
md4: Use our own MD4 implementation when no crypto libraries are available
authorSteve Holme <steve_holme@hotmail.com>
Sun, 14 Apr 2019 18:24:28 +0000 (19:24 +0100)
committerSteve Holme <steve_holme@hotmail.com>
Sun, 4 Aug 2019 17:01:29 +0000 (18:01 +0100)
Closes #3780

lib/curl_md4.h
lib/curl_ntlm_core.c
lib/md4.c

index 60087803de6183985970ca155b91eaec8a641b16..82df708cee3af0e45cd4840b0e8c0a67ffe2c0a1 100644 (file)
 
 #include "curl_setup.h"
 
-#if defined(USE_GNUTLS_NETTLE) || defined(USE_GNUTLS) || \
-    defined(USE_OPENSSL) || defined(USE_SECTRANSP) || \
-    defined(USE_WIN32_CRYPTO) || defined(USE_NSS) || \
-    defined(USE_OS400CRYPTO) || defined(USE_MBEDTLS)
+#if !defined(CURL_DISABLE_CRYPTO_AUTH)
 
 #define MD4_DIGEST_LENGTH 16
 
 void Curl_md4it(unsigned char *output, const unsigned char *input, size_t len);
 
-#endif /* defined(USE_GNUTLS_NETTLE) || defined(USE_GNUTLS) ||
-    defined(USE_OPENSSL) || defined(USE_SECTRANSP) ||
-    defined(USE_WIN32_CRYPTO) || defined(USE_NSS) ||
-    defined(USE_OS400CRYPTO) || defined(USE_MBEDTLS) */
+#endif /* !defined(CURL_DISABLE_CRYPTO_AUTH) */
 
 #endif /* HEADER_CURL_MD4_H */
index b2a6afc0cd11402f48da1691108eca49e6afdfcd..19f9b61d870e4252a62fd7a6af2305486f61d659 100644 (file)
@@ -556,12 +556,7 @@ CURLcode Curl_ntlm_core_mk_nt_hash(struct Curl_easy *data,
     return result;
 
   /* Create NT hashed password. */
-#if defined(USE_OPENSSL) || defined(USE_GNUTLS_NETTLE) || \
-  defined(USE_GNUTLS) || defined(USE_NSS) || defined(USE_MBEDTLS) || \
-  defined(USE_SECTRANSP) || defined(USE_OS400CRYPTO) || \
-  defined(USE_WIN32_CRYPTO)
   Curl_md4it(ntbuffer, pw, 2 * len);
-#endif
 
   memset(ntbuffer + 16, 0, 21 - 16);
 
index 0729c39549fb39d92b5b682c51f6432ae11e8d8d..bbf8975081182f89e16ef988e0dc88d992220ed2 100644 (file)
--- a/lib/md4.c
+++ b/lib/md4.c
 
 #include "curl_setup.h"
 
+#if !defined(CURL_DISABLE_CRYPTO_AUTH)
+
+#include "curl_md4.h"
+#include "warnless.h"
+
 #ifdef USE_OPENSSL
 #include <openssl/opensslconf.h>
 #endif
@@ -33,8 +38,6 @@
 
 #include <nettle/md4.h>
 
-#include "curl_md4.h"
-#include "warnless.h"
 #include "curl_memory.h"
 
 /* The last #include file should be: */
@@ -61,8 +64,6 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
 
 #include <gcrypt.h>
 
-#include "curl_md4.h"
-#include "warnless.h"
 #include "curl_memory.h"
 /* The last #include file should be: */
 #include "memdebug.h"
@@ -89,15 +90,10 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
 /* 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_SECTRANSP)
 
 #include <CommonCrypto/CommonDigest.h>
 
-#include "curl_md4.h"
-#include "warnless.h"
 #include "curl_memory.h"
 /* The last #include file should be: */
 #include "memdebug.h"
@@ -138,8 +134,6 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
 
 #include <wincrypt.h>
 
-#include "curl_md4.h"
-#include "warnless.h"
 #include "curl_memory.h"
  /* The last #include file should be: */
 #include "memdebug.h"
@@ -184,8 +178,6 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
 
 #include <mbedtls/md4.h>
 
-#include "curl_md4.h"
-#include "warnless.h"
 #include "curl_memory.h"
 /* The last #include file should be: */
 #include "memdebug.h"
@@ -222,12 +214,9 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
   }
 }
 
-#elif defined(USE_NSS) || defined(USE_OS400CRYPTO) || \
-    (defined(USE_OPENSSL) && defined(OPENSSL_NO_MD4)) || \
-    (defined(USE_MBEDTLS) && !defined(MBEDTLS_MD4_C))
-/* The NSS, OS/400, and when not included, OpenSSL and mbed TLS crypto
- * libraries do not provide the MD4 hash algorithm, so we use this
- * implementation of it
+#else
+/* When no other crypto library is available, or the crypto library doesn't
+ * support MD4, we use this code segment this implementation of it
  *
  * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc.
  * MD4 Message-Digest Algorithm (RFC 1320).
@@ -265,8 +254,6 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
  * compile-time configuration.
  */
 
-#include "curl_md4.h"
-#include "warnless.h"
 
 #include <string.h>
 
@@ -518,11 +505,6 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
 
 #endif /* CRYPTO LIBS */
 
-#if defined(USE_GNUTLS_NETTLE) || defined(USE_GNUTLS) || \
-    defined(USE_OPENSSL) || defined(USE_SECTRANSP) || \
-    defined(USE_WIN32_CRYPTO) || defined(USE_NSS) || \
-    defined(USE_OS400CRYPTO) || defined(USE_MBEDTLS)
-
 void Curl_md4it(unsigned char *output, const unsigned char *input, size_t len)
 {
   MD4_CTX ctx;
@@ -531,7 +513,4 @@ void Curl_md4it(unsigned char *output, const unsigned char *input, size_t len)
   MD4_Final(output, &ctx);
 }
 
-#endif /* defined(USE_GNUTLS_NETTLE) || defined(USE_GNUTLS) ||
-    defined(USE_OPENSSL) || defined(USE_SECTRANSP) ||
-    defined(USE_WIN32_CRYPTO) || defined(USE_NSS) ||
-    defined(USE_OS400CRYPTO) || defined(USE_MBEDTLS) */
+#endif /* CURL_DISABLE_CRYPTO_AUTH */