]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
crypto_backend: Improve signature of md_full to avoid conversions
authorFrank Lichtenheld <frank@lichtenheld.com>
Mon, 16 Feb 2026 15:07:05 +0000 (16:07 +0100)
committerGert Doering <gert@greenie.muc.de>
Mon, 16 Feb 2026 15:31:08 +0000 (16:31 +0100)
Change-Id: I201abb9ef013c061fb568823098edcca32cb2df3
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1512
Message-Id: <20260216150711.16130-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg35657.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/crypto_backend.h
src/openvpn/crypto_mbedtls.c
src/openvpn/crypto_mbedtls_legacy.c
src/openvpn/crypto_openssl.c

index 52486146b7c545cfd7f9fe984d3e50d970049957..7f5507a9f9e07ebbf8c776e6f3a765cb87a3d138 100644 (file)
@@ -557,9 +557,9 @@ unsigned char md_kt_size(const char *mdname);
  * @param src_len       The length of the incoming buffer.
  * @param dst           Buffer to write the message digest to. May not be NULL.
  *
- * @return              \c 1 on success, \c 0 on failure
+ * @return              true on success, false on failure
  */
-int md_full(const char *mdname, const uint8_t *src, int src_len, uint8_t *dst);
+bool md_full(const char *mdname, const uint8_t *src, size_t src_len, uint8_t *dst);
 
 /*
  * Allocate a new message digest context
index 02735cd2aa52fef588d8191804267b147eae6b35..cba6bb55ffd0c6feaa889ca098bd386cdc5ef37a 100644 (file)
@@ -696,13 +696,13 @@ md_ctx_new(void)
     return ctx;
 }
 
-int
-md_full(const char *mdname, const uint8_t *src, int src_len, uint8_t *dst)
+bool
+md_full(const char *mdname, const uint8_t *src, size_t src_len, uint8_t *dst)
 {
     const md_info_t *md = md_get(mdname);
     if (md == NULL || src_len < 0)
     {
-        return 0;
+        return false;
     }
 
     /* We depend on the caller to ensure that dst has enough room for the hash,
@@ -710,12 +710,12 @@ md_full(const char *mdname, const uint8_t *src, int src_len, uint8_t *dst)
     size_t dst_size = PSA_HASH_LENGTH(md->psa_alg);
     size_t hash_length = 0;
 
-    psa_status_t status = psa_hash_compute(md->psa_alg, src, (size_t)src_len, dst, dst_size, &hash_length);
+    psa_status_t status = psa_hash_compute(md->psa_alg, src, src_len, dst, dst_size, &hash_length);
     if (status != PSA_SUCCESS || hash_length != dst_size)
     {
-        return 0;
+        return false;
     }
-    return 1;
+    return true;
 }
 
 void
index b8e7d6ab64ca5d93b3c3b2254095da77dcd76057..00fe54244deb6f4429a29f8fae05c09e1fff40b1 100644 (file)
@@ -825,8 +825,8 @@ md_kt_size(const char *mdname)
  *
  */
 
-int
-md_full(const char *mdname, const uint8_t *src, int src_len, uint8_t *dst)
+bool
+md_full(const char *mdname, const uint8_t *src, size_t src_len, uint8_t *dst)
 {
     const mbedtls_md_info_t *kt = md_get(mdname);
     return 0 == mbedtls_md(kt, src, src_len, dst);
index ed39efa4a4aa0f3de6f186c98d3a703aaa4672cd..0c6de1833f9ccf07768099e345c06bd0defb4436 100644 (file)
@@ -1104,15 +1104,15 @@ md_kt_size(const char *mdname)
  *
  */
 
-int
-md_full(const char *mdname, const uint8_t *src, int src_len, uint8_t *dst)
+bool
+md_full(const char *mdname, const uint8_t *src, size_t src_len, uint8_t *dst)
 {
     unsigned int in_md_len = 0;
     evp_md_type *kt = md_get(mdname);
 
     int ret = EVP_Digest(src, src_len, dst, &in_md_len, kt, NULL);
     EVP_MD_free(kt);
-    return ret;
+    return ret == 1;
 }
 
 EVP_MD_CTX *