sst-linux/arch/x86/crypto
Eric Biggers 1d3d3513d4 crypto: x86/aegis128 - access 32-bit arguments as 32-bit
commit 3b2f2d22fb424e9bebda4dbf6676cbfc7f9f62cd upstream.

Fix the AEGIS assembly code to access 'unsigned int' arguments as 32-bit
values instead of 64-bit, since the upper bits of the corresponding
64-bit registers are not guaranteed to be zero.

Note: there haven't been any reports of this bug actually causing
incorrect behavior.  Neither gcc nor clang guarantee zero-extension to
64 bits, but zero-extension is likely to happen in practice because most
instructions that operate on 32-bit registers zero-extend to 64 bits.

Fixes: 1d373d4e8e ("crypto: x86 - Add optimized AEGIS implementations")
Cc: stable@vger.kernel.org
Reviewed-by: Ondrej Mosnacek <omosnace@redhat.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-12-14 19:53:58 +01:00
..
.gitignore
aegis128-aesni-asm.S crypto: x86/aegis128 - access 32-bit arguments as 32-bit 2024-12-14 19:53:58 +01:00
aegis128-aesni-glue.c
aes_ctrby8_avx-x86_64.S
aesni-intel_asm.S
aesni-intel_avx-x86_64.S
aesni-intel_glue.c
aria_aesni_avx_glue.c
aria-aesni-avx-asm_64.S
aria-avx.h
blake2s-core.S
blake2s-glue.c
blowfish_glue.c
blowfish-x86_64-asm_64.S
camellia_aesni_avx2_glue.c
camellia_aesni_avx_glue.c
camellia_glue.c
camellia-aesni-avx2-asm_64.S
camellia-aesni-avx-asm_64.S
camellia-x86_64-asm_64.S
camellia.h
cast5_avx_glue.c
cast5-avx-x86_64-asm_64.S
cast6_avx_glue.c
cast6-avx-x86_64-asm_64.S
chacha_glue.c
chacha-avx2-x86_64.S
chacha-avx512vl-x86_64.S
chacha-ssse3-x86_64.S
crc32-pclmul_asm.S
crc32-pclmul_glue.c
crc32c-intel_glue.c
crc32c-pcl-intel-asm_64.S
crct10dif-pcl-asm_64.S
crct10dif-pclmul_glue.c
curve25519-x86_64.c
des3_ede_glue.c
des3_ede-asm_64.S
ecb_cbc_helpers.h
ghash-clmulni-intel_asm.S
ghash-clmulni-intel_glue.c
glue_helper-asm-avx2.S
glue_helper-asm-avx.S
Kconfig
Makefile
nh-avx2-x86_64.S
nh-sse2-x86_64.S
nhpoly1305-avx2-glue.c
nhpoly1305-sse2-glue.c
poly1305_glue.c
poly1305-x86_64-cryptogams.pl
polyval-clmulni_asm.S
polyval-clmulni_glue.c
serpent_avx2_glue.c
serpent_avx_glue.c
serpent_sse2_glue.c
serpent-avx2-asm_64.S
serpent-avx-x86_64-asm_64.S
serpent-avx.h
serpent-sse2-i586-asm_32.S
serpent-sse2-x86_64-asm_64.S
serpent-sse2.h
sha1_avx2_x86_64_asm.S
sha1_ni_asm.S
sha1_ssse3_asm.S
sha1_ssse3_glue.c
sha256_ni_asm.S
sha256_ssse3_glue.c
sha256-avx2-asm.S
sha256-avx-asm.S
sha256-ssse3-asm.S
sha512_ssse3_glue.c
sha512-avx2-asm.S crypto: x86/sha512-avx2 - add missing vzeroupper 2024-06-12 11:03:05 +02:00
sha512-avx-asm.S
sha512-ssse3-asm.S
sm3_avx_glue.c
sm3-avx-asm_64.S
sm4_aesni_avx2_glue.c
sm4_aesni_avx_glue.c
sm4-aesni-avx2-asm_64.S
sm4-aesni-avx-asm_64.S
sm4-avx.h
twofish_avx_glue.c
twofish_glue_3way.c
twofish_glue.c
twofish-avx-x86_64-asm_64.S
twofish-i586-asm_32.S
twofish-x86_64-asm_64-3way.S
twofish-x86_64-asm_64.S
twofish.h