diff options
author | Eric Biggers <ebiggers@google.com> | 2019-03-15 00:21:28 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2019-03-22 08:57:28 -0400 |
commit | f6fff17072232480ef471eae80a22b66b1dd8b7a (patch) | |
tree | 798544822b28f3eb3d1d59699b34e280f30440e0 /crypto/salsa20_generic.c | |
parent | 29d97dec22dde5d2c4ccb23c50a11e94a5911861 (diff) |
crypto: salsa20-generic - use crypto_xor_cpy()
In salsa20_docrypt(), use crypto_xor_cpy() instead of crypto_xor().
This avoids having to memcpy() the src buffer to the dst buffer.
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/salsa20_generic.c')
-rw-r--r-- | crypto/salsa20_generic.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/crypto/salsa20_generic.c b/crypto/salsa20_generic.c index 00fce32ae17a..443fba09cbed 100644 --- a/crypto/salsa20_generic.c +++ b/crypto/salsa20_generic.c | |||
@@ -86,18 +86,17 @@ static void salsa20_docrypt(u32 *state, u8 *dst, const u8 *src, | |||
86 | { | 86 | { |
87 | __le32 stream[SALSA20_BLOCK_SIZE / sizeof(__le32)]; | 87 | __le32 stream[SALSA20_BLOCK_SIZE / sizeof(__le32)]; |
88 | 88 | ||
89 | if (dst != src) | ||
90 | memcpy(dst, src, bytes); | ||
91 | |||
92 | while (bytes >= SALSA20_BLOCK_SIZE) { | 89 | while (bytes >= SALSA20_BLOCK_SIZE) { |
93 | salsa20_block(state, stream); | 90 | salsa20_block(state, stream); |
94 | crypto_xor(dst, (const u8 *)stream, SALSA20_BLOCK_SIZE); | 91 | crypto_xor_cpy(dst, src, (const u8 *)stream, |
92 | SALSA20_BLOCK_SIZE); | ||
95 | bytes -= SALSA20_BLOCK_SIZE; | 93 | bytes -= SALSA20_BLOCK_SIZE; |
96 | dst += SALSA20_BLOCK_SIZE; | 94 | dst += SALSA20_BLOCK_SIZE; |
95 | src += SALSA20_BLOCK_SIZE; | ||
97 | } | 96 | } |
98 | if (bytes) { | 97 | if (bytes) { |
99 | salsa20_block(state, stream); | 98 | salsa20_block(state, stream); |
100 | crypto_xor(dst, (const u8 *)stream, bytes); | 99 | crypto_xor_cpy(dst, src, (const u8 *)stream, bytes); |
101 | } | 100 | } |
102 | } | 101 | } |
103 | 102 | ||