crypto: chacha20 - Fix keystream alignment for chacha20_block()
authorEric Biggers <ebiggers@google.com>
Wed, 22 Nov 2017 19:51:39 +0000 (11:51 -0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 29 Nov 2017 06:33:33 +0000 (17:33 +1100)
commit9f480faec58cd6197a007ea1dcac6b7c3daf1139
treebd5107e627a9013bbbfc290ceccea218d9393f66
parent796c99fbd7e20a8d78189fc0166a524d78f635a0
crypto: chacha20 - Fix keystream alignment for chacha20_block()

When chacha20_block() outputs the keystream block, it uses 'u32' stores
directly.  However, the callers (crypto/chacha20_generic.c and
drivers/char/random.c) declare the keystream buffer as a 'u8' array,
which is not guaranteed to have the needed alignment.

Fix it by having both callers declare the keystream as a 'u32' array.
For now this is preferable to switching over to the unaligned access
macros because chacha20_block() is only being used in cases where we can
easily control the alignment (stack buffers).

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/chacha20_generic.c
drivers/char/random.c
include/crypto/chacha20.h
lib/chacha20.c