android_kernel_samsung_a7y1.../crypto
Eric Biggers c4bb1af70e crypto: ghash - fix unaligned memory access in ghash_setkey()
commit 5c6bc4dfa515738149998bb0db2481a4fdead979 upstream.

Changing ghash_mod_init() to be subsys_initcall made it start running
before the alignment fault handler has been installed on ARM.  In kernel
builds where the keys in the ghash test vectors happened to be
misaligned in the kernel image, this exposed the longstanding bug that
ghash_setkey() is incorrectly casting the key buffer (which can have any
alignment) to be128 for passing to gf128mul_init_4k_lle().

Fix this by memcpy()ing the key to a temporary buffer.

Don't fix it by setting an alignmask on the algorithm instead because
that would unnecessarily force alignment of the data too.

Fixes: 2cdc6899a88e ("crypto: ghash - Add GHASH digest algorithm for GCM")
Reported-by: Peter Robinson <pbrobinson@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
Tested-by: Peter Robinson <pbrobinson@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-04-06 19:55:45 +02:00
..
asymmetric_keys A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
async_tx A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
842.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ablk_helper.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ablkcipher.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
aead.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
aes_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
af_alg.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ahash.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
akcipher.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
algapi.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
algboss.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
algif_aead.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
algif_hash.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
algif_rng.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
algif_skcipher.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ansi_cprng.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
anubis.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
api.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
arc4.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
authenc.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
authencesn.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
blkcipher.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
blowfish_common.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
blowfish_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
camellia_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cast_common.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cast5_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cast6_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cbc.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ccm.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
chacha20_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
chacha20poly1305.c crypto: chacha20poly1305 - set cra_name correctly 2020-04-06 18:12:51 +02:00
chainiv.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cipher.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cmac.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
compress.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
crc32.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
crc32c_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
crct10dif_common.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
crct10dif_generic.c crypto: crct10dif-generic - fix use via crypto_shash_digest() 2020-04-06 18:12:14 +02:00
cryptd.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
crypto_null.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
crypto_user.c crypto: user - prevent operating on larval algorithms 2020-04-06 19:20:58 +02:00
crypto_wq.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ctr.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cts.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
deflate.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
des_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
drbg.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ecb.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
echainiv.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
eseqiv.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
fcrypt.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
fips.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
gcm.c crypto: gcm - fix incompatibility between "gcm" and "gcm_base" 2020-04-06 18:12:49 +02:00
gf128mul.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ghash-generic.c crypto: ghash - fix unaligned memory access in ghash_setkey() 2020-04-06 19:55:45 +02:00
hash_info.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
heh.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
hmac.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
internal.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
jitterentropy-kcapi.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
jitterentropy.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
Kconfig A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
keywrap.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
khazad.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
lrw.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
lz4.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
lz4hc.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
lzo.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
Makefile A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mcryptd.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
md4.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
md5.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
memneq.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
michael_mic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
pcbc.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
pcompress.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
pcrypt.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
poly1305_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
proc.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ripemd.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rmd128.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rmd160.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rmd256.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rmd320.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rng.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rsa_helper.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rsa.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rsaprivkey.asn1 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rsapubkey.asn1 A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
salsa20_generic.c crypto: salsa20 - don't access already-freed walk.iv 2020-04-06 18:12:53 +02:00
scatterwalk.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
seed.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
seqiv.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
serpent_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
sha1_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
sha256_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
sha512_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
shash.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
skcipher.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
tcrypt.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
tcrypt.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
tea.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
testmgr.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
testmgr.h crypto: x86/poly1305 - fix overflow during partial reduction 2020-04-06 15:51:38 +02:00
tgr192.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
twofish_common.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
twofish_generic.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
vmac.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
wp512.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
xcbc.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
xor.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
xts.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
zlib.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
zstd.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30