[Privoxy-commits] [privoxy] 03/03: Factor out create_hexadecimal_hash_of_host()
User Git
git at git.privoxy.org
Thu Jul 11 10:07:47 CEST 2024
This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch master
in repository privoxy.
commit a52bdf9a8c1ce8dcb222d67be845d58fd6fb6975
Author: Fabian Keil <fk at fabiankeil.de>
AuthorDate: Wed Jun 26 16:23:46 2024 +0200
Factor out create_hexadecimal_hash_of_host()
---
openssl.c | 15 +--------------
ssl.c | 16 +---------------
ssl_common.c | 35 +++++++++++++++++++++++++++++++++++
ssl_common.h | 1 +
wolfssl.c | 16 +---------------
5 files changed, 39 insertions(+), 44 deletions(-)
diff --git a/openssl.c b/openssl.c
index d647543b..f3920370 100644
--- a/openssl.c
+++ b/openssl.c
@@ -718,24 +718,11 @@ exit:
*********************************************************************/
static int host_to_hash(struct client_state *csp)
{
- int ret = 0;
- size_t i;
-
SHA256((unsigned char *)csp->http->host, strlen(csp->http->host),
csp->http->hash_of_host);
- /* Converting hash into string with hex */
- for (i = 0; i < HASH_OF_HOST_BUF_SIZE; i++)
- {
- if ((ret = sprintf((char *)csp->http->hash_of_host_hex + 2 * i, "%02x",
- csp->http->hash_of_host[i])) < 0)
- {
- log_error(LOG_LEVEL_ERROR, "Sprintf return value: %d", ret);
- return -1;
- }
- }
+ return create_hexadecimal_hash_of_host(csp);
- return 0;
}
diff --git a/ssl.c b/ssl.c
index 04963541..e8007cd9 100644
--- a/ssl.c
+++ b/ssl.c
@@ -1799,24 +1799,10 @@ static int ssl_verify_callback(void *csp_void, mbedtls_x509_crt *crt,
*********************************************************************/
static int host_to_hash(struct client_state *csp)
{
- int ret;
- size_t i;
-
mbedtls_sha256((unsigned char *)csp->http->host,
strlen(csp->http->host), csp->http->hash_of_host, 0);
- /* Converting hash into string with hex */
- for (i = 0; i < HASH_OF_HOST_BUF_SIZE; i++)
- {
- if ((ret = sprintf((char *)csp->http->hash_of_host_hex + 2 * i, "%02x",
- csp->http->hash_of_host[i])) < 0)
- {
- log_error(LOG_LEVEL_ERROR, "Sprintf return value: %d", ret);
- return -1;
- }
- }
-
- return 0;
+ return create_hexadecimal_hash_of_host(csp);
}
diff --git a/ssl_common.c b/ssl_common.c
index 45f1e761..1bf866ab 100644
--- a/ssl_common.c
+++ b/ssl_common.c
@@ -736,3 +736,38 @@ extern int enforce_sane_certificate_state(const char *certificate, const char *k
return 0;
}
+
+
+/*********************************************************************
+ *
+ * Function : create_hexadecimal_hash_of_host
+ *
+ * Description : Converts the binary hash of a host into a
+ * hexadecimal string.
+ *
+ * Parameters :
+ * 1 : csp = Current client state (buffers, headers, etc...)
+ *
+ * Returns : -1 => Error while creating hash
+ * 0 => Hash created successfully
+ *
+ *********************************************************************/
+int create_hexadecimal_hash_of_host(struct client_state *csp)
+{
+ int i;
+ int ret;
+
+ for (i = 0; i < HASH_OF_HOST_BUF_SIZE; i++)
+ {
+ ret = sprintf((char *)csp->http->hash_of_host_hex + 2 * i, "%02x",
+ csp->http->hash_of_host[i]);
+ if (ret < 0)
+ {
+ log_error(LOG_LEVEL_ERROR, "sprintf() return value: %d", ret);
+ return -1;
+ }
+ }
+
+ return 0;
+
+}
diff --git a/ssl_common.h b/ssl_common.h
index 66fb5374..3458b232 100644
--- a/ssl_common.h
+++ b/ssl_common.h
@@ -73,5 +73,6 @@ extern unsigned long get_certificate_serial(struct client_state *csp);
extern int get_certificate_valid_from_date(char *buffer, size_t buffer_size, const char *fmt);
extern int get_certificate_valid_to_date(char *buffer, size_t buffer_size, const char *fmt);
extern int enforce_sane_certificate_state(const char *certificate, const char *key);
+extern int create_hexadecimal_hash_of_host(struct client_state *csp);
#endif /* ndef SSL_COMMON_H_INCLUDED */
diff --git a/wolfssl.c b/wolfssl.c
index 717be050..78880bec 100644
--- a/wolfssl.c
+++ b/wolfssl.c
@@ -737,7 +737,6 @@ exit:
static int host_to_hash(struct client_state *csp)
{
int ret;
- size_t i;
ret = wc_Sha256Hash((const byte *)csp->http->host,
(word32)strlen(csp->http->host), (byte *)csp->http->hash_of_host);
@@ -746,20 +745,7 @@ static int host_to_hash(struct client_state *csp)
return -1;
}
- /* Converting hash into string with hex */
- for (i = 0; i < HASH_OF_HOST_BUF_SIZE; i++)
- {
- ret = snprintf((char *)csp->http->hash_of_host_hex + 2 * i,
- sizeof(csp->http->hash_of_host_hex) - 2 * i,
- "%02x", csp->http->hash_of_host[i]);
- if (ret < 0)
- {
- log_error(LOG_LEVEL_ERROR, "sprintf() failed. Return value: %d", ret);
- return -1;
- }
- }
-
- return 0;
+ return create_hexadecimal_hash_of_host(csp);
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Privoxy-commits
mailing list