From 8fdf832e5fa39bccab8825f95f7c46b54e12f6fb Mon Sep 17 00:00:00 2001
From: Patrick Monnerat <pm@datasphere.ch>
Date: Mon, 13 Oct 2014 14:39:50 +0200
Subject: [PATCH] vtls/*: deprecate have_curlssl_md5sum and set-up default
 md5sum implementation

---
 lib/vtls/curl_darwinssl.h |  3 ---
 lib/vtls/gtls.h           |  3 ---
 lib/vtls/nssg.h           |  3 ---
 lib/vtls/openssl.h        |  3 ---
 lib/vtls/vtls.c           | 12 ++++++++++--
 lib/vtls/vtls.h           |  4 ----
 6 files changed, 10 insertions(+), 18 deletions(-)

diff --git a/lib/vtls/curl_darwinssl.h b/lib/vtls/curl_darwinssl.h
index f5c03d8388..bcb1c741d1 100644
--- a/lib/vtls/curl_darwinssl.h
+++ b/lib/vtls/curl_darwinssl.h
@@ -51,9 +51,6 @@ void Curl_darwinssl_md5sum(unsigned char *tmp, /* input */
                            unsigned char *md5sum, /* output */
                            size_t md5len);
 
-/* this backend provides these functions: */
-#define have_curlssl_md5sum 1
-
 /* API setup for SecureTransport */
 #define curlssl_init() (1)
 #define curlssl_cleanup() Curl_nop_stmt
diff --git a/lib/vtls/gtls.h b/lib/vtls/gtls.h
index cd6152ca1e..6e07735e8c 100644
--- a/lib/vtls/gtls.h
+++ b/lib/vtls/gtls.h
@@ -53,9 +53,6 @@ void Curl_gtls_md5sum(unsigned char *tmp, /* input */
                       unsigned char *md5sum, /* output */
                       size_t md5len);
 
-/* this backend provides these functions: */
-#define have_curlssl_md5sum 1
-
 /* API setup for GnuTLS */
 #define curlssl_init Curl_gtls_init
 #define curlssl_cleanup Curl_gtls_cleanup
diff --git a/lib/vtls/nssg.h b/lib/vtls/nssg.h
index 81e7949022..5b97464b5d 100644
--- a/lib/vtls/nssg.h
+++ b/lib/vtls/nssg.h
@@ -60,9 +60,6 @@ void Curl_nss_md5sum(unsigned char *tmp, /* input */
                      unsigned char *md5sum, /* output */
                      size_t md5len);
 
-/* this backend provides these functions: */
-#define have_curlssl_md5sum 1
-
 /* this backend supports CURLOPT_CERTINFO */
 #define have_curlssl_certinfo 1
 
diff --git a/lib/vtls/openssl.h b/lib/vtls/openssl.h
index 59adcd83e9..7eff3deeab 100644
--- a/lib/vtls/openssl.h
+++ b/lib/vtls/openssl.h
@@ -73,9 +73,6 @@ void Curl_ossl_md5sum(unsigned char *tmp, /* input */
                       unsigned char *md5sum /* output */,
                       size_t unused);
 
-/* this backend provides these functions: */
-#define have_curlssl_md5sum 1
-
 /* this backend supports the CAPATH option */
 #define have_curlssl_ca_path 1
 
diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c
index cd910d8f9b..bd1af01339 100644
--- a/lib/vtls/vtls.c
+++ b/lib/vtls/vtls.c
@@ -68,6 +68,7 @@
 #include "progress.h"
 #include "share.h"
 #include "timeval.h"
+#include "curl_md5.h"
 
 #define _MPRINTF_REPLACE /* use our functions only */
 #include <curl/mprintf.h>
@@ -682,14 +683,21 @@ int Curl_ssl_random(struct SessionHandle *data,
   return curlssl_random(data, entropy, length);
 }
 
-#ifdef have_curlssl_md5sum
 void Curl_ssl_md5sum(unsigned char *tmp, /* input */
                      size_t tmplen,
                      unsigned char *md5sum, /* output */
                      size_t md5len)
 {
+#ifdef curlssl_md5sum
   curlssl_md5sum(tmp, tmplen, md5sum, md5len);
-}
+#else
+  MD5_context *MD5pw;
+
+  (void) md5len;
+  MD5pw = Curl_MD5_init(Curl_DIGEST_MD5);
+  Curl_MD5_update(MD5pw, tmp, tmplen);
+  Curl_MD5_final(MD5pw, md5sum);
 #endif
+}
 
 #endif /* USE_SSL */
diff --git a/lib/vtls/vtls.h b/lib/vtls/vtls.h
index 3fd0adc384..217b1d358c 100644
--- a/lib/vtls/vtls.h
+++ b/lib/vtls/vtls.h
@@ -112,10 +112,6 @@ void Curl_ssl_md5sum(unsigned char *tmp, /* input */
 
 #define SSL_SHUTDOWN_TIMEOUT 10000 /* ms */
 
-#ifdef have_curlssl_md5sum
-#define HAVE_CURL_SSL_MD5SUM
-#endif
-
 #else
 /* When SSL support is not present, just define away these function calls */
 #define Curl_ssl_init() 1
-- 
GitLab