[PATCH] kdf: Avoid redundant memcpy()

Gary Lin glin at suse.com
Tue Sep 2 09:14:27 CEST 2025


* cipher/kdf.c (fill_block): Xor 'ref_block' and 'prev_block' directly to
  avoid a redundant memcpy().

Signed-off-by: Gary Lin <glin at suse.com>
---
 cipher/kdf.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/cipher/kdf.c b/cipher/kdf.c
index 71156ea4..16cec4e4 100644
--- a/cipher/kdf.c
+++ b/cipher/kdf.c
@@ -588,9 +588,14 @@ fill_block (const u64 *prev_block, const u64 *ref_block, u64 *curr_block,
   u64 block_tmp[ARGON2_WORDS_IN_BLOCK];
   int i;
 
-  memcpy (block_r, ref_block, 1024);
   if (prev_block)
-    xor_block (block_r, prev_block);
+    {
+      for (i = 0; i < ARGON2_WORDS_IN_BLOCK; i++)
+        block_r[i] = ref_block[i] ^ prev_block[i];
+    }
+  else
+    memcpy (block_r, ref_block, 1024);
+
   memcpy (block_tmp, block_r, 1024);
 
   if (with_xor)
-- 
2.51.0




More information about the Gcrypt-devel mailing list