* 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