summaryrefslogtreecommitdiff
path: root/include/crypto
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2019-03-31 23:04:19 +0300
committerHerbert Xu <herbert@gondor.apana.org.au>2019-04-08 09:42:55 +0300
commitc5c46887cfe7d0dff743d9eda7c91de625e96960 (patch)
tree668913b19acf6a31a5a2a19024c96c942528be00 /include/crypto
parent5e27f38f1f3f45a0c938299c3a34a2d2db77165a (diff)
downloadlinux-c5c46887cfe7d0dff743d9eda7c91de625e96960.tar.xz
crypto: streebog - fix unaligned memory accesses
Don't cast the data buffer directly to streebog_uint512, as this violates alignment rules. Fixes: fe18957e8e87 ("crypto: streebog - add Streebog hash function") Cc: Vitaly Chikunov <vt@altlinux.org> Signed-off-by: Eric Biggers <ebiggers@google.com> Reviewed-by: Vitaly Chikunov <vt@altlinux.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'include/crypto')
-rw-r--r--include/crypto/streebog.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/crypto/streebog.h b/include/crypto/streebog.h
index 856e32af8657..cae1b4a01971 100644
--- a/include/crypto/streebog.h
+++ b/include/crypto/streebog.h
@@ -23,7 +23,10 @@ struct streebog_uint512 {
};
struct streebog_state {
- u8 buffer[STREEBOG_BLOCK_SIZE];
+ union {
+ u8 buffer[STREEBOG_BLOCK_SIZE];
+ struct streebog_uint512 m;
+ };
struct streebog_uint512 hash;
struct streebog_uint512 h;
struct streebog_uint512 N;