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

Signed-off-by: Gary Lin <g...@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


_______________________________________________
Gcrypt-devel mailing list
Gcrypt-devel@gnupg.org
https://lists.gnupg.org/mailman/listinfo/gcrypt-devel

Reply via email to