On 10/10/24 13:20, Daniel P. Berrangé wrote:
> The nettle 2.x series declared all the hash functions with 'int' for
> the data size. Since we dropped support for anything older than 3.4
> we can assume nettle is using 'size_t' and thus avoid the back compat
> looping logic.
>
> Reviewed-by: Cédric Le Goater <clg@redhat.com>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> crypto/hash-nettle.c | 17 +++--------------
> 1 file changed, 3 insertions(+), 14 deletions(-)
>
> diff --git a/crypto/hash-nettle.c b/crypto/hash-nettle.c
> index 570ce8a645..3b847aa60e 100644
> --- a/crypto/hash-nettle.c
> +++ b/crypto/hash-nettle.c
> @@ -135,20 +135,9 @@ int qcrypto_nettle_hash_update(QCryptoHash *hash,
> union qcrypto_hash_ctx *ctx = hash->opaque;
>
> for (int i = 0; i < niov; i++) {
> - /*
> - * Some versions of nettle have functions
> - * declared with 'int' instead of 'size_t'
> - * so to be safe avoid writing more than
> - * UINT_MAX bytes at a time
> - */
> - size_t len = iov[i].iov_len;
> - uint8_t *base = iov[i].iov_base;
> - while (len) {
> - size_t shortlen = MIN(len, UINT_MAX);
> - qcrypto_hash_alg_map[hash->alg].write(ctx, len, base);
> - len -= shortlen;
> - base += len;
> - }
> + qcrypto_hash_alg_map[hash->alg].write(ctx,
> + iov[i].iov_len,
> + iov[i].iov_base);
Yay!