[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [gnurl] 68/256: vtls: move md5sum into the Curl_ssl struct
From: |
gnunet |
Subject: |
[GNUnet-SVN] [gnurl] 68/256: vtls: move md5sum into the Curl_ssl struct |
Date: |
Fri, 06 Oct 2017 19:42:39 +0200 |
This is an automated email from the git hooks/post-receive script.
ng0 pushed a commit to branch master
in repository gnurl.
commit e35205a0c4f8d80dc9e878049a0fb0eb18f61dbf
Author: Johannes Schindelin <address@hidden>
AuthorDate: Fri Jun 23 01:04:56 2017 +0200
vtls: move md5sum into the Curl_ssl struct
The MD5 summing is also an SSL backend-specific function. So let's
include it, offering the previous fall-back code as a separate function
now: Curl_none_md5sum(). To allow for that, the signature had to be
changed so that an error could be returned from the implementation
(Curl_none_md5sum() can run out of memory).
Signed-off-by: Johannes Schindelin <address@hidden>
---
lib/vtls/axtls.c | 3 ++-
lib/vtls/cyassl.c | 3 ++-
lib/vtls/darwinssl.c | 12 +++++++-----
lib/vtls/darwinssl.h | 5 -----
lib/vtls/gskit.c | 3 ++-
lib/vtls/gtls.c | 12 +++++++-----
lib/vtls/gtls.h | 5 -----
lib/vtls/mbedtls.c | 3 ++-
lib/vtls/nss.c | 13 ++++++++-----
lib/vtls/nssg.h | 6 ------
lib/vtls/openssl.c | 12 +++++++-----
lib/vtls/openssl.h | 5 -----
lib/vtls/polarssl.c | 3 ++-
lib/vtls/schannel.c | 3 ++-
lib/vtls/vtls.c | 30 ++++++++++++++++--------------
lib/vtls/vtls.h | 5 +++++
16 files changed, 62 insertions(+), 61 deletions(-)
diff --git a/lib/vtls/axtls.c b/lib/vtls/axtls.c
index 8004e4ad7..138a80ade 100644
--- a/lib/vtls/axtls.c
+++ b/lib/vtls/axtls.c
@@ -721,7 +721,8 @@ const struct Curl_ssl Curl_ssl_axtls = {
Curl_none_set_engine, /* set_engine */
Curl_none_set_engine_default, /* set_engine_default */
Curl_none_engines_list, /* engines_list */
- Curl_none_false_start /* false_start */
+ Curl_none_false_start, /* false_start */
+ Curl_none_md5sum /* md5sum */
};
const struct Curl_ssl *Curl_ssl = &Curl_ssl_axtls;
diff --git a/lib/vtls/cyassl.c b/lib/vtls/cyassl.c
index 58c5d48b5..74052318f 100644
--- a/lib/vtls/cyassl.c
+++ b/lib/vtls/cyassl.c
@@ -970,7 +970,8 @@ const struct Curl_ssl Curl_ssl_cyassl = {
Curl_none_set_engine, /* set_engine */
Curl_none_set_engine_default, /* set_engine_default */
Curl_none_engines_list, /* engines_list */
- Curl_none_false_start /* false_start */
+ Curl_none_false_start, /* false_start */
+ Curl_none_md5sum /* md5sum */
};
const struct Curl_ssl *Curl_ssl = &Curl_ssl_cyassl;
diff --git a/lib/vtls/darwinssl.c b/lib/vtls/darwinssl.c
index cedd0e00e..71e5a9790 100644
--- a/lib/vtls/darwinssl.c
+++ b/lib/vtls/darwinssl.c
@@ -2723,13 +2723,14 @@ CURLcode Curl_darwinssl_random(struct Curl_easy *data
UNUSED_PARAM,
return CURLE_OK;
}
-void Curl_darwinssl_md5sum(unsigned char *tmp, /* input */
- size_t tmplen,
- unsigned char *md5sum, /* output */
- size_t md5len)
+static CURLcode Curl_darwinssl_md5sum(unsigned char *tmp, /* input */
+ size_t tmplen,
+ unsigned char *md5sum, /* output */
+ size_t md5len)
{
(void)md5len;
(void)CC_MD5(tmp, (CC_LONG)tmplen, md5sum);
+ return CURLE_OK;
}
void Curl_darwinssl_sha256sum(const unsigned char *tmp, /* input */
@@ -2875,7 +2876,8 @@ const struct Curl_ssl Curl_ssl_darwinssl = {
Curl_none_set_engine, /* set_engine */
Curl_none_set_engine_default, /* set_engine_default */
Curl_none_engines_list, /* engines_list */
- Curl_darwinssl_false_start /* false_start */
+ Curl_darwinssl_false_start, /* false_start */
+ Curl_darwinssl_md5sum /* md5sum */
};
const struct Curl_ssl *Curl_ssl = &Curl_ssl_darwinssl;
diff --git a/lib/vtls/darwinssl.h b/lib/vtls/darwinssl.h
index 967ba511f..4815cec1e 100644
--- a/lib/vtls/darwinssl.h
+++ b/lib/vtls/darwinssl.h
@@ -44,10 +44,6 @@ bool Curl_darwinssl_data_pending(const struct connectdata
*conn,
CURLcode Curl_darwinssl_random(struct Curl_easy *data, unsigned char *entropy,
size_t length);
-void Curl_darwinssl_md5sum(unsigned char *tmp, /* input */
- size_t tmplen,
- unsigned char *md5sum, /* output */
- size_t md5len);
void Curl_darwinssl_sha256sum(const unsigned char *tmp, /* input */
size_t tmplen,
unsigned char *sha256sum, /* output */
@@ -78,7 +74,6 @@ extern const struct Curl_ssl Curl_ssl_darwinssl;
#define have_curlssl_pinnedpubkey 1
#endif /* DARWIN_SSL_PINNEDPUBKEY */
-#define curlssl_md5sum(a,b,c,d) Curl_darwinssl_md5sum(a,b,c,d)
#define curlssl_sha256sum(a,b,c,d) Curl_darwinssl_sha256sum(a, b, c, d)
#endif /* USE_DARWINSSL */
diff --git a/lib/vtls/gskit.c b/lib/vtls/gskit.c
index ee09f4d88..ed1e39dbc 100644
--- a/lib/vtls/gskit.c
+++ b/lib/vtls/gskit.c
@@ -1354,7 +1354,8 @@ const struct Curl_ssl Curl_ssl_gskit = {
Curl_none_set_engine, /* set_engine */
Curl_none_set_engine_default, /* set_engine_default */
Curl_none_engines_list, /* engines_list */
- Curl_none_false_start /* false_start */
+ Curl_none_false_start, /* false_start */
+ Curl_none_md5sum /* md5sum */
};
const struct Curl_ssl *Curl_ssl = &Curl_ssl_gskit;
diff --git a/lib/vtls/gtls.c b/lib/vtls/gtls.c
index 303afafba..ac5fe3321 100644
--- a/lib/vtls/gtls.c
+++ b/lib/vtls/gtls.c
@@ -1738,10 +1738,10 @@ CURLcode Curl_gtls_random(struct Curl_easy *data,
return CURLE_OK;
}
-void Curl_gtls_md5sum(unsigned char *tmp, /* input */
- size_t tmplen,
- unsigned char *md5sum, /* output */
- size_t md5len)
+static CURLcode Curl_gtls_md5sum(unsigned char *tmp, /* input */
+ size_t tmplen,
+ unsigned char *md5sum, /* output */
+ size_t md5len)
{
#if defined(USE_GNUTLS_NETTLE)
struct md5_ctx MD5pw;
@@ -1755,6 +1755,7 @@ void Curl_gtls_md5sum(unsigned char *tmp, /* input */
memcpy(md5sum, gcry_md_read(MD5pw, 0), md5len);
gcry_md_close(MD5pw);
#endif
+ return CURLE_OK;
}
void Curl_gtls_sha256sum(const unsigned char *tmp, /* input */
@@ -1804,7 +1805,8 @@ const struct Curl_ssl Curl_ssl_gnutls = {
Curl_none_set_engine, /* set_engine */
Curl_none_set_engine_default, /* set_engine_default */
Curl_none_engines_list, /* engines_list */
- Curl_none_false_start /* false_start */
+ Curl_none_false_start, /* false_start */
+ Curl_gtls_md5sum /* md5sum */
};
const struct Curl_ssl *Curl_ssl = &Curl_ssl_gnutls;
diff --git a/lib/vtls/gtls.h b/lib/vtls/gtls.h
index 555759c60..626dbd33f 100644
--- a/lib/vtls/gtls.h
+++ b/lib/vtls/gtls.h
@@ -46,10 +46,6 @@ int Curl_gtls_shutdown(struct connectdata *conn, int
sockindex);
CURLcode Curl_gtls_random(struct Curl_easy *data,
unsigned char *entropy,
size_t length);
-void Curl_gtls_md5sum(unsigned char *tmp, /* input */
- size_t tmplen,
- unsigned char *md5sum, /* output */
- size_t md5len);
void Curl_gtls_sha256sum(const unsigned char *tmp, /* input */
size_t tmplen,
unsigned char *sha256sum, /* output */
@@ -74,7 +70,6 @@ extern const struct Curl_ssl Curl_ssl_gnutls;
/* this backend supports CURLOPT_PINNEDPUBLICKEY */
#define have_curlssl_pinnedpubkey 1
-#define curlssl_md5sum(a,b,c,d) Curl_gtls_md5sum(a,b,c,d)
#define curlssl_sha256sum(a,b,c,d) Curl_gtls_sha256sum(a,b,c,d)
#endif /* USE_GNUTLS */
diff --git a/lib/vtls/mbedtls.c b/lib/vtls/mbedtls.c
index 907077a6c..68ad9a499 100644
--- a/lib/vtls/mbedtls.c
+++ b/lib/vtls/mbedtls.c
@@ -1026,7 +1026,8 @@ const struct Curl_ssl Curl_ssl_mbedtls = {
Curl_none_set_engine, /* set_engine */
Curl_none_set_engine_default, /* set_engine_default */
Curl_none_engines_list, /* engines_list */
- Curl_none_false_start /* false_start */
+ Curl_none_false_start, /* false_start */
+ Curl_none_md5sum /* md5sum */
};
const struct Curl_ssl *Curl_ssl = &Curl_ssl_mbedtls;
diff --git a/lib/vtls/nss.c b/lib/vtls/nss.c
index 17109b48d..9490549a9 100644
--- a/lib/vtls/nss.c
+++ b/lib/vtls/nss.c
@@ -2278,10 +2278,10 @@ CURLcode Curl_nss_random(struct Curl_easy *data,
return CURLE_OK;
}
-void Curl_nss_md5sum(unsigned char *tmp, /* input */
- size_t tmplen,
- unsigned char *md5sum, /* output */
- size_t md5len)
+static CURLcode Curl_nss_md5sum(unsigned char *tmp, /* input */
+ size_t tmplen,
+ unsigned char *md5sum, /* output */
+ size_t md5len)
{
PK11Context *MD5pw = PK11_CreateDigestContext(SEC_OID_MD5);
unsigned int MD5out;
@@ -2289,6 +2289,8 @@ void Curl_nss_md5sum(unsigned char *tmp, /* input */
PK11_DigestOp(MD5pw, tmp, curlx_uztoui(tmplen));
PK11_DigestFinal(MD5pw, md5sum, &MD5out, curlx_uztoui(md5len));
PK11_DestroyContext(MD5pw, PR_TRUE);
+
+ return CURLE_OK;
}
void Curl_nss_sha256sum(const unsigned char *tmp, /* input */
@@ -2343,7 +2345,8 @@ const struct Curl_ssl Curl_ssl_nss = {
Curl_none_set_engine, /* set_engine */
Curl_none_set_engine_default, /* set_engine_default */
Curl_none_engines_list, /* engines_list */
- Curl_nss_false_start /* false_start */
+ Curl_nss_false_start, /* false_start */
+ Curl_nss_md5sum /* md5sum */
};
const struct Curl_ssl *Curl_ssl = &Curl_ssl_nss;
diff --git a/lib/vtls/nssg.h b/lib/vtls/nssg.h
index c5b3353cf..d5473bfb9 100644
--- a/lib/vtls/nssg.h
+++ b/lib/vtls/nssg.h
@@ -51,11 +51,6 @@ CURLcode Curl_nss_random(struct Curl_easy *data,
unsigned char *entropy,
size_t length);
-void Curl_nss_md5sum(unsigned char *tmp, /* input */
- size_t tmplen,
- unsigned char *md5sum, /* output */
- size_t md5len);
-
void Curl_nss_sha256sum(const unsigned char *tmp, /* input */
size_t tmplen,
unsigned char *sha256sum, /* output */
@@ -82,7 +77,6 @@ extern const struct Curl_ssl Curl_ssl_nss;
/* this backends supports CURLOPT_PINNEDPUBLICKEY */
#define have_curlssl_pinnedpubkey 1
-#define curlssl_md5sum(a,b,c,d) Curl_nss_md5sum(a,b,c,d)
#define curlssl_sha256sum(a,b,c,d) Curl_nss_sha256sum(a,b,c,d)
#endif /* USE_NSS */
diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
index 1484b9b1c..e24c79515 100644
--- a/lib/vtls/openssl.c
+++ b/lib/vtls/openssl.c
@@ -3350,16 +3350,17 @@ CURLcode Curl_ossl_random(struct Curl_easy *data,
unsigned char *entropy,
return (rc == 1 ? CURLE_OK : CURLE_FAILED_INIT);
}
-void Curl_ossl_md5sum(unsigned char *tmp, /* input */
- size_t tmplen,
- unsigned char *md5sum /* output */,
- size_t unused)
+static CURLcode Curl_ossl_md5sum(unsigned char *tmp, /* input */
+ size_t tmplen,
+ unsigned char *md5sum /* output */,
+ size_t unused)
{
MD5_CTX MD5pw;
(void)unused;
MD5_Init(&MD5pw);
MD5_Update(&MD5pw, tmp, tmplen);
MD5_Final(md5sum, &MD5pw);
+ return CURLE_OK;
}
#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL) && !defined(OPENSSL_NO_SHA256)
@@ -3405,7 +3406,8 @@ const struct Curl_ssl Curl_ssl_openssl = {
Curl_ossl_set_engine, /* set_engine */
Curl_ossl_set_engine_default, /* set_engine_default */
Curl_ossl_engines_list, /* engines_list */
- Curl_none_false_start /* false_start */
+ Curl_none_false_start, /* false_start */
+ Curl_ossl_md5sum /* md5sum */
};
const struct Curl_ssl *Curl_ssl = &Curl_ssl_openssl;
diff --git a/lib/vtls/openssl.h b/lib/vtls/openssl.h
index a62a2e7ff..4abc6d4c4 100644
--- a/lib/vtls/openssl.h
+++ b/lib/vtls/openssl.h
@@ -68,10 +68,6 @@ bool Curl_ossl_data_pending(const struct connectdata *conn,
/* return 0 if a find random is filled in */
CURLcode Curl_ossl_random(struct Curl_easy *data, unsigned char *entropy,
size_t length);
-void Curl_ossl_md5sum(unsigned char *tmp, /* input */
- size_t tmplen,
- unsigned char *md5sum /* output */,
- size_t unused);
void Curl_ossl_sha256sum(const unsigned char *tmp, /* input */
size_t tmplen,
unsigned char *sha256sum /* output */,
@@ -99,7 +95,6 @@ extern const struct Curl_ssl Curl_ssl_openssl;
/* this backend supports CURLOPT_PINNEDPUBLICKEY */
#define have_curlssl_pinnedpubkey 1
-#define curlssl_md5sum(a,b,c,d) Curl_ossl_md5sum(a,b,c,d)
#if (OPENSSL_VERSION_NUMBER >= 0x0090800fL) && !defined(OPENSSL_NO_SHA256)
#define curlssl_sha256sum(a,b,c,d) Curl_ossl_sha256sum(a,b,c,d)
#endif
diff --git a/lib/vtls/polarssl.c b/lib/vtls/polarssl.c
index 8feaa95af..f2a7c93b8 100644
--- a/lib/vtls/polarssl.c
+++ b/lib/vtls/polarssl.c
@@ -892,7 +892,8 @@ const struct Curl_ssl Curl_ssl_polarssl = {
Curl_none_set_engine, /* set_engine */
Curl_none_set_engine_default, /* set_engine_default */
Curl_none_engines_list, /* engines_list */
- Curl_none_false_start /* false_start */
+ Curl_none_false_start, /* false_start */
+ Curl_none_md5sum /* md5sum */
};
const struct Curl_ssl *Curl_ssl = &Curl_ssl_polarssl;
diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c
index b8c11d5f8..ea3c221f3 100644
--- a/lib/vtls/schannel.c
+++ b/lib/vtls/schannel.c
@@ -1745,7 +1745,8 @@ const struct Curl_ssl Curl_ssl_schannel = {
Curl_none_set_engine, /* set_engine */
Curl_none_set_engine_default, /* set_engine_default */
Curl_none_engines_list, /* engines_list */
- Curl_none_false_start /* false_start */
+ Curl_none_false_start, /* false_start */
+ Curl_none_md5sum /* md5sum */
};
const struct Curl_ssl *Curl_ssl = &Curl_ssl_schannel;
diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c
index 44faf1c33..88ee1a759 100644
--- a/lib/vtls/vtls.c
+++ b/lib/vtls/vtls.c
@@ -938,20 +938,7 @@ CURLcode Curl_ssl_md5sum(unsigned char *tmp, /* input */
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);
- if(!MD5pw)
- return CURLE_OUT_OF_MEMORY;
- Curl_MD5_update(MD5pw, tmp, curlx_uztoui(tmplen));
- Curl_MD5_final(MD5pw, md5sum);
-#endif
- return CURLE_OK;
+ return Curl_ssl->md5sum(tmp, tmplen, md5sum, md5len);
}
#endif
@@ -1055,4 +1042,19 @@ bool Curl_none_false_start(void)
return FALSE;
}
+CURLcode Curl_none_md5sum(unsigned char *input, size_t inputlen,
+ unsigned char *md5sum, size_t md5len UNUSED_PARAM)
+{
+ MD5_context *MD5pw;
+
+ (void)md5len;
+
+ MD5pw = Curl_MD5_init(Curl_DIGEST_MD5);
+ if(!MD5pw)
+ return CURLE_OUT_OF_MEMORY;
+ Curl_MD5_update(MD5pw, input, curlx_uztoui(inputlen));
+ Curl_MD5_final(MD5pw, md5sum);
+ return CURLE_OK;
+}
+
#endif /* USE_SSL */
diff --git a/lib/vtls/vtls.h b/lib/vtls/vtls.h
index a568999e8..f95b9236e 100644
--- a/lib/vtls/vtls.h
+++ b/lib/vtls/vtls.h
@@ -54,6 +54,9 @@ struct Curl_ssl {
struct curl_slist *(*engines_list)(struct Curl_easy *data);
bool (*false_start)(void);
+
+ CURLcode (*md5sum)(unsigned char *input, size_t inputlen,
+ unsigned char *md5sum, size_t md5sumlen);
};
#ifdef USE_SSL
@@ -74,6 +77,8 @@ CURLcode Curl_none_set_engine(struct Curl_easy *data, const
char *engine);
CURLcode Curl_none_set_engine_default(struct Curl_easy *data);
struct curl_slist *Curl_none_engines_list(struct Curl_easy *data);
bool Curl_none_false_start(void);
+CURLcode Curl_none_md5sum(unsigned char *input, size_t inputlen,
+ unsigned char *md5sum, size_t md5len);
#include "openssl.h" /* OpenSSL versions */
#include "gtls.h" /* GnuTLS versions */
--
To stop receiving notification emails like this one, please contact
address@hidden
- [GNUnet-SVN] [gnurl] 48/256: config-dos: add missing defines, SIZEOF_* and two others, (continued)
- [GNUnet-SVN] [gnurl] 48/256: config-dos: add missing defines, SIZEOF_* and two others, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 55/256: fuzz/Makefile.am: remove curlbuild.h leftovers, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 82/256: curl_ntlm_core: don't complain but #include OpenSSL header if needed, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 63/256: vtls: make sure all _data_pending() functions return bool, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 62/256: vtls: make sure all _cleanup() functions return void, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 91/256: version: if built with more than one SSL backend, report all of them, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 88/256: docs/examples: demonstrate how to select SSL backends, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 61/256: vtls: use consistent signature for _random() implementations, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 92/256: vtls: use Curl_ssl_multi pseudo backend only when needed, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 83/256: vtls: fold the backend ID into the Curl_ssl structure, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 68/256: vtls: move md5sum into the Curl_ssl struct,
gnunet <=
- [GNUnet-SVN] [gnurl] 45/256: tool_main: turn off MinGW CRT's globbing, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 25/256: system.h: remove all CURL_SIZEOF_* defines, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 96/256: asyn-thread: Improved cleanup after OOM situations, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 42/256: cmake: enable picky compiler options with clang and gcc, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 76/256: vtls: move SSL backends' private constants out of their header files, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 97/256: unit1606: Fixed shadowed variable warning, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 65/256: vtls: introduce a new struct for SSL backends, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 86/256: vtls: introduce curl_global_sslset(), gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 105/256: curl.h: CURLSSLBACKEND_WOLFSSL used wrong value, gnunet, 2017/10/06
- [GNUnet-SVN] [gnurl] 77/256: getinfo: access SSL internals via Curl_ssl, gnunet, 2017/10/06