From 050bf807b069942d8b027ab2c9741678ea95967d Mon Sep 17 00:00:00 2001 From: Loup Vaillant Date: Thu, 8 Sep 2016 22:39:22 +0200 Subject: [PATCH] copying u32s manually is faster than memcpy --- chacha20.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/chacha20.c b/chacha20.c index f5cca75..96736c1 100644 --- a/chacha20.c +++ b/chacha20.c @@ -187,8 +187,14 @@ init_Xkey(crypto_chacha_ctx *output, const crypto_chacha_ctx *ctx) // // This lets us avoid a couple additional loads and additions, // for even moar speed. - memcpy(output->input + 4, buffer , sizeof(uint32_t) * 4); // constant - memcpy(output->input + 8, buffer + 12, sizeof(uint32_t) * 4); // nonce, ctr + output->input[ 4] = buffer[ 0]; // constant + output->input[ 5] = buffer[ 1]; // constant + output->input[ 6] = buffer[ 2]; // constant + output->input[ 7] = buffer[ 3]; // constant + output->input[ 8] = buffer[12]; // nonce + output->input[ 9] = buffer[13]; // nonce + output->input[10] = buffer[14]; // counter + output->input[11] = buffer[15]; // counter } ////////////////////////////// -- 2.47.3