[PATCH] kdf: Avoid redundant memcpy()
Gary Lin via Gcrypt-devel <[email protected]> Tue, 2 Sep 2025 15:14:27 +0800
| Newsgroups | gmane.comp.encryption.gpg.libgcrypt.devel |
|---|---|
| Message-ID | <[email protected]> |
* cipher/kdf.c (fill_block): Xor 'ref_block' and 'prev_block' directly to avoid a redundant memcpy(). Signed-off-by: Gary Lin <[email protected]> --- 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