From a80ad001a828e8d7df940bef9e6c58ade7777723 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Niels=20M=C3=B6ller?= Date: Sun, 24 Mar 2024 13:18:37 +0100 Subject: [PATCH] Simplify _nettle_sha3_update by using MD_FILL_OR_RETURN_INDEX. --- ChangeLog | 4 ++++ sha3.c | 16 +++------------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6e8e79b7..d0cd4d19 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2024-03-24 Niels Möller + + * sha3.c (_nettle_sha3_update): Use MD_FILL_OR_RETURN_INDEX. + 2024-03-20 Niels Möller * testsuite/gcm-test.c (test_main): Add a test case that triggers diff --git a/sha3.c b/sha3.c index 0eecfb22..d113f0fc 100644 --- a/sha3.c +++ b/sha3.c @@ -42,6 +42,7 @@ #include "sha3-internal.h" #include "macros.h" +#include "md-internal.h" #include "memxor.h" static void @@ -72,19 +73,8 @@ _nettle_sha3_update (struct sha3_state *state, if (pos > 0) { - unsigned left = block_size - pos; - if (length < left) - { - memcpy (block + pos, data, length); - return pos + length; - } - else - { - memcpy (block + pos, data, left); - data += left; - length -= left; - sha3_absorb (state, block_size, block); - } + MD_FILL_OR_RETURN_INDEX (block_size, block, pos, length, data); + sha3_absorb (state, block_size, block); } for (; length >= block_size; length -= block_size, data += block_size) sha3_absorb (state, block_size, data); -- 2.47.2