[Openvpn-devel,2/3] auth.c: make cast explicit in the crypto API

Message ID 20191110133525.6069-2-a@unstable.cc
State Accepted
Headers show
Series [Openvpn-devel,1/3] auth_token_kt: ensure key_type object is initialized | expand

Commit Message

Antonio Quartulli Nov. 10, 2019, 2:35 a.m. UTC
mbedtls_md_get_size() returns unsigned char, while EVP_MD_size() returns
int. Results coming from both functions are normally in a uint8_t member
of the key_type struct, because it is known that 8bits are enough (also
for EVP_MD_size()).

This unexpected cast can, however, trigger unsolicited warnings.
Make the cast explicit by changing the return value of our crypto API.

Reported-by: Arne Schwabe <arne@rfc2549.org>
Signed-off-by: Antonio Quartulli <a@unstable.cc>
---
 src/openvpn/crypto_backend.h | 2 +-
 src/openvpn/crypto_mbedtls.c | 2 +-
 src/openvpn/crypto_openssl.c | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

Comments

Arne Schwabe Nov. 10, 2019, 3:39 a.m. UTC | #1
Am 10.11.19 um 14:35 schrieb Antonio Quartulli:
> mbedtls_md_get_size() returns unsigned char, while EVP_MD_size() returns
> int. Results coming from both functions are normally in a uint8_t member
> of the key_type struct, because it is known that 8bits are enough (also
> for EVP_MD_size()).
> 
> This unexpected cast can, however, trigger unsolicited warnings.
> Make the cast explicit by changing the return value of our crypto API.
> 

Not sure that this really needed but it also does not hurt, so

Acked-By: Arne Schwabe <arne@rfc2549.org>

Arne
Gert Doering Nov. 10, 2019, 5:51 a.m. UTC | #2
Your patch has been applied to the master branch.

commit 7122af670d58586d9806214c81d27c424b226730
Author: Antonio Quartulli
Date:   Sun Nov 10 14:35:24 2019 +0100

     auth.c: make cast explicit in the crypto API

     Signed-off-by: Antonio Quartulli <a@unstable.cc>
     Acked-by: Gert Doering <gert@greenie.muc.de>
     Message-Id: <20191110133525.6069-2-a@unstable.cc>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19093.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering
Gert Doering Nov. 10, 2019, 5:52 a.m. UTC | #3
Your patch has been applied to the master branch.

(Resending with correct "Acked-by" line - I noticed after I sent the mail
but before pushing, so I amended the commit and here's the right ID)

commit 6c7b41c6536b221b1e2bc26a26ae6814a71d69e8
Author: Antonio Quartulli
Date:   Sun Nov 10 14:35:24 2019 +0100

     auth.c: make cast explicit in the crypto API

     Signed-off-by: Antonio Quartulli <a@unstable.cc>
     Acked-by: Arne Schwabe <arne@rfc2549.org>
     Message-Id: <20191110133525.6069-2-a@unstable.cc>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19093.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering
Gert Doering Nov. 10, 2019, 5:53 a.m. UTC | #4
Your patch has been applied to the master branch.

(Resending with correct "Acked-by" line - I noticed after I sent the mail
but before pushing, so I amended the commit and here's the right ID)

commit 6c7b41c6536b221b1e2bc26a26ae6814a71d69e8
Author: Antonio Quartulli
Date:   Sun Nov 10 14:35:24 2019 +0100

     auth.c: make cast explicit in the crypto API

     Signed-off-by: Antonio Quartulli <a@unstable.cc>
     Acked-by: Arne Schwabe <arne@rfc2549.org>
     Message-Id: <20191110133525.6069-2-a@unstable.cc>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19093.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering

Patch

diff --git a/src/openvpn/crypto_backend.h b/src/openvpn/crypto_backend.h
index d119442f..1d206a8c 100644
--- a/src/openvpn/crypto_backend.h
+++ b/src/openvpn/crypto_backend.h
@@ -526,7 +526,7 @@  const char *md_kt_name(const md_kt_t *kt);
  *
  * @return              Message digest size, in bytes, or 0 if ctx was NULL.
  */
-int md_kt_size(const md_kt_t *kt);
+unsigned char md_kt_size(const md_kt_t *kt);
 
 
 /*
diff --git a/src/openvpn/crypto_mbedtls.c b/src/openvpn/crypto_mbedtls.c
index 648a988e..3e77fa9e 100644
--- a/src/openvpn/crypto_mbedtls.c
+++ b/src/openvpn/crypto_mbedtls.c
@@ -823,7 +823,7 @@  md_kt_name(const mbedtls_md_info_t *kt)
     return mbedtls_md_get_name(kt);
 }
 
-int
+unsigned char
 md_kt_size(const mbedtls_md_info_t *kt)
 {
     if (NULL == kt)
diff --git a/src/openvpn/crypto_openssl.c b/src/openvpn/crypto_openssl.c
index 520e40ee..a81dcfd8 100644
--- a/src/openvpn/crypto_openssl.c
+++ b/src/openvpn/crypto_openssl.c
@@ -930,10 +930,10 @@  md_kt_name(const EVP_MD *kt)
     return EVP_MD_name(kt);
 }
 
-int
+unsigned char
 md_kt_size(const EVP_MD *kt)
 {
-    return EVP_MD_size(kt);
+    return (unsigned char)EVP_MD_size(kt);
 }