1From 1153ebdeba563ac657b525edd6bf6da68b1fe5e2 Mon Sep 17 00:00:00 2001
2From: Viktor Szakats <commit@vsz.me>
3Date: Tue, 30 May 2023 17:28:03 +0000
4Subject: [PATCH] mbedtls: use more `size_t` to sync up with `crypto.h`
5
6Ref: 5a96f494ee0b00282afb2db2e091246fc5e1774a #846 #879
7
8Fixes #1053
9Closes #1054
10
11Upstream: https://github.com/libssh2/libssh2/commit/1153ebdeba563ac657b525edd6bf6da68b1fe5e2
12
13Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
14---
15 src/mbedtls.c | 14 ++++++++------
16 src/mbedtls.h | 13 ++++++-------
17 2 files changed, 14 insertions(+), 13 deletions(-)
18
19diff --git a/src/mbedtls.c b/src/mbedtls.c
20index e387cdb19..cd14a4bd8 100644
21--- a/src/mbedtls.c
22+++ b/src/mbedtls.c
23@@ -186,7 +186,7 @@ _libssh2_mbedtls_cipher_dtor(_libssh2_cipher_ctx *ctx)
24 int
25 _libssh2_mbedtls_hash_init(mbedtls_md_context_t *ctx,
26                            mbedtls_md_type_t mdtype,
27-                           const unsigned char *key, unsigned long keylen)
28+                           const unsigned char *key, size_t keylen)
29 {
30     const mbedtls_md_info_t *md_info;
31     int ret, hmac;
32@@ -221,7 +221,7 @@ _libssh2_mbedtls_hash_final(mbedtls_md_context_t *ctx, unsigned char *hash)
33 }
34
35 int
36-_libssh2_mbedtls_hash(const unsigned char *data, unsigned long datalen,
37+_libssh2_mbedtls_hash(const unsigned char *data, size_t datalen,
38                       mbedtls_md_type_t mdtype, unsigned char *hash)
39 {
40     const mbedtls_md_info_t *md_info;
41@@ -497,8 +497,9 @@ int
42 _libssh2_mbedtls_rsa_sha2_verify(libssh2_rsa_ctx * rsactx,
43                                  size_t hash_len,
44                                  const unsigned char *sig,
45-                                 unsigned long sig_len,
46-                                 const unsigned char *m, unsigned long m_len)
47+                                 size_t sig_len,
48+                                 const unsigned char *m,
49+                                 size_t m_len)
50 {
51     int ret;
52     int md_type;
53@@ -548,8 +549,9 @@ _libssh2_mbedtls_rsa_sha2_verify(libssh2_rsa_ctx * rsactx,
54 int
55 _libssh2_mbedtls_rsa_sha1_verify(libssh2_rsa_ctx * rsactx,
56                                  const unsigned char *sig,
57-                                 unsigned long sig_len,
58-                                 const unsigned char *m, unsigned long m_len)
59+                                 size_t sig_len,
60+                                 const unsigned char *m,
61+                                 size_t m_len)
62 {
63     return _libssh2_mbedtls_rsa_sha2_verify(rsactx, SHA_DIGEST_LENGTH,
64                                             sig, sig_len, m, m_len);
65diff --git a/src/mbedtls.h b/src/mbedtls.h
66index d9592f721..03484da17 100644
67--- a/src/mbedtls.h
68+++ b/src/mbedtls.h
69@@ -478,12 +478,12 @@ _libssh2_mbedtls_cipher_dtor(_libssh2_cipher_ctx *ctx);
70 int
71 _libssh2_mbedtls_hash_init(mbedtls_md_context_t *ctx,
72                            mbedtls_md_type_t mdtype,
73-                           const unsigned char *key, unsigned long keylen);
74+                           const unsigned char *key, size_t keylen);
75
76 int
77 _libssh2_mbedtls_hash_final(mbedtls_md_context_t *ctx, unsigned char *hash);
78 int
79-_libssh2_mbedtls_hash(const unsigned char *data, unsigned long datalen,
80+_libssh2_mbedtls_hash(const unsigned char *data, size_t datalen,
81                       mbedtls_md_type_t mdtype, unsigned char *hash);
82
83 _libssh2_bn *
84@@ -526,9 +526,8 @@ _libssh2_mbedtls_rsa_new_private_frommemory(libssh2_rsa_ctx **rsa,
85 int
86 _libssh2_mbedtls_rsa_sha1_verify(libssh2_rsa_ctx *rsa,
87                                  const unsigned char *sig,
88-                                 unsigned long sig_len,
89-                                 const unsigned char *m,
90-                                 unsigned long m_len);
91+                                 size_t sig_len,
92+                                 const unsigned char *m, size_t m_len);
93 int
94 _libssh2_mbedtls_rsa_sha1_sign(LIBSSH2_SESSION *session,
95                                libssh2_rsa_ctx *rsa,
96@@ -540,8 +539,8 @@ int
97 _libssh2_mbedtls_rsa_sha2_verify(libssh2_rsa_ctx * rsactx,
98                                  size_t hash_len,
99                                  const unsigned char *sig,
100-                                 unsigned long sig_len,
101-                                 const unsigned char *m, unsigned long m_len);
102+                                 size_t sig_len,
103+                                 const unsigned char *m, size_t m_len);
104 int
105 _libssh2_mbedtls_rsa_sha2_sign(LIBSSH2_SESSION *session,
106                                libssh2_rsa_ctx *rsa,
107