gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnurl] 54/220: md4: Move the mbed TLS MD4 implementation o


From: gnunet
Subject: [GNUnet-SVN] [gnurl] 54/220: md4: Move the mbed TLS MD4 implementation out of the NTLM code
Date: Thu, 12 Sep 2019 17:26:54 +0200

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to branch master
in repository gnurl.

commit 2ff216f1b01e2b345e1b011ca5f72ef3a2ece954
Author: Steve Holme <address@hidden>
AuthorDate: Sun Apr 14 03:27:21 2019 +0100

    md4: Move the mbed TLS MD4 implementation out of the NTLM code
---
 lib/curl_md4.h       | 10 ++++------
 lib/curl_ntlm_core.c |  9 +--------
 lib/md4.c            | 53 +++++++++++++++++++++++++++++++++++++++++++++-------
 3 files changed, 51 insertions(+), 21 deletions(-)

diff --git a/lib/curl_md4.h b/lib/curl_md4.h
index 828b21af4..60087803d 100644
--- a/lib/curl_md4.h
+++ b/lib/curl_md4.h
@@ -27,17 +27,15 @@
 #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) && !defined(MBEDTLS_MD4_C))
+    defined(USE_OS400CRYPTO) || defined(USE_MBEDTLS)
 
 #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) && !defined(MBEDTLS_MD4_C)) */
+    defined(USE_OPENSSL) || defined(USE_SECTRANSP) ||
+    defined(USE_WIN32_CRYPTO) || defined(USE_NSS) ||
+    defined(USE_OS400CRYPTO) || defined(USE_MBEDTLS) */
 
 #endif /* HEADER_CURL_MD4_H */
diff --git a/lib/curl_ntlm_core.c b/lib/curl_ntlm_core.c
index abf4ac0b5..c81dce5d3 100644
--- a/lib/curl_ntlm_core.c
+++ b/lib/curl_ntlm_core.c
@@ -94,10 +94,7 @@
 #elif defined(USE_MBEDTLS)
 
 #  include <mbedtls/des.h>
-#  include <mbedtls/md4.h>
-#  if !defined(MBEDTLS_MD4_C)
-#    include "curl_md4.h"
-#  endif
+#  include "curl_md4.h"
 
 #elif defined(USE_SECTRANSP)
 
@@ -575,11 +572,7 @@ CURLcode Curl_ntlm_core_mk_nt_hash(struct Curl_easy *data,
 #elif defined(USE_NSS)
     Curl_md4it(ntbuffer, pw, 2 * len);
 #elif defined(USE_MBEDTLS)
-#if defined(MBEDTLS_MD4_C)
-    mbedtls_md4(pw, 2 * len, ntbuffer);
-#else
     Curl_md4it(ntbuffer, pw, 2 * len);
-#endif
 #elif defined(USE_SECTRANSP)
     Curl_md4it(ntbuffer, pw, 2 * len);
 #elif defined(USE_OS400CRYPTO)
diff --git a/lib/md4.c b/lib/md4.c
index 45a17b8b0..0729c3954 100644
--- a/lib/md4.c
+++ b/lib/md4.c
@@ -180,6 +180,48 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
     CryptReleaseContext(ctx->hCryptProv, 0);
 }
 
+#elif(defined(USE_MBEDTLS) && defined(MBEDTLS_MD4_C))
+
+#include <mbedtls/md4.h>
+
+#include "curl_md4.h"
+#include "warnless.h"
+#include "curl_memory.h"
+/* The last #include file should be: */
+#include "memdebug.h"
+
+typedef struct {
+  void *data;
+  unsigned long size;
+} MD4_CTX;
+
+static void MD4_Init(MD4_CTX *ctx)
+{
+  ctx->data = NULL;
+  ctx->size = 0;
+}
+
+static void MD4_Update(MD4_CTX *ctx, const void *data, unsigned long size)
+{
+  if(ctx->data == NULL) {
+    ctx->data = malloc(size);
+    if(ctx->data != NULL) {
+      memcpy(ctx->data, data, size);
+      ctx->size = size;
+    }
+  }
+}
+
+static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
+{
+  if(ctx->data != NULL) {
+    mbedtls_md4(ctx->data, ctx->size, result);
+
+    Curl_safefree(ctx->data);
+    ctx->size = 0;
+  }
+}
+
 #elif defined(USE_NSS) || defined(USE_OS400CRYPTO) || \
     (defined(USE_OPENSSL) && defined(OPENSSL_NO_MD4)) || \
     (defined(USE_MBEDTLS) && !defined(MBEDTLS_MD4_C))
@@ -479,9 +521,7 @@ static void MD4_Final(unsigned char *result, MD4_CTX *ctx)
 #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_OPENSSL) && defined(OPENSSL_NO_MD4)) || \
-    (defined(USE_MBEDTLS) && !defined(MBEDTLS_MD4_C))
+    defined(USE_OS400CRYPTO) || defined(USE_MBEDTLS)
 
 void Curl_md4it(unsigned char *output, const unsigned char *input, size_t len)
 {
@@ -492,7 +532,6 @@ 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) && !defined(MBEDTLS_MD4_C)) */
+    defined(USE_OPENSSL) || defined(USE_SECTRANSP) ||
+    defined(USE_WIN32_CRYPTO) || defined(USE_NSS) ||
+    defined(USE_OS400CRYPTO) || defined(USE_MBEDTLS) */

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]