linux/arch/x86/crypto
Eric Biggers 104a9526e1 crypto: x86/aes-gcm - Use new AES library API
Switch from the old AES library functions (which use struct
crypto_aes_ctx) to the new ones (which use struct aes_enckey).  This
eliminates the unnecessary computation and caching of the decryption
round keys.  The new AES en/decryption functions are also much faster
and use AES instructions when supported by the CPU.

Since this changes the format of the AES-GCM key structures that are
used by the AES-GCM assembly code, the offsets in the assembly code had
to be updated to match.  Note that the new key structures are smaller,
since the decryption round keys are no longer unnecessarily included.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20260112192035.10427-26-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
2026-01-15 14:09:08 -08:00
..
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
aegis128-aesni-asm.S crypto: x86/aegis128 - remove unneeded RETs 2024-10-28 18:33:10 +08:00
aegis128-aesni-glue.c crypto: x86/aegis - Add missing error checks 2025-07-18 20:51:59 +10:00
aes-ctr-avx-x86_64.S crypto: x86 - Remove CONFIG_AS_VPCLMULQDQ 2025-08-21 14:32:41 +02:00
aes-gcm-aesni-x86_64.S crypto: x86/aes-gcm - Use new AES library API 2026-01-15 14:09:08 -08:00
aes-gcm-vaes-avx2.S crypto: x86/aes-gcm - Use new AES library API 2026-01-15 14:09:08 -08:00
aes-gcm-vaes-avx512.S crypto: x86/aes-gcm - Use new AES library API 2026-01-15 14:09:08 -08:00
aes-xts-avx-x86_64.S crypto: x86 - Remove CONFIG_AS_VPCLMULQDQ 2025-08-21 14:32:41 +02:00
aesni-intel_asm.S crypto: x86/aes - Remove the superseded AES-NI crypto_cipher 2026-01-15 14:09:07 -08:00
aesni-intel_glue.c crypto: x86/aes-gcm - Use new AES library API 2026-01-15 14:09:08 -08:00
aria-aesni-avx-asm_64.S crypto: x86 - Remove CONFIG_AS_GFNI 2025-08-20 20:48:07 +02:00
aria-aesni-avx2-asm_64.S crypto: x86 - Remove CONFIG_AS_GFNI 2025-08-20 20:48:07 +02:00
aria-avx.h crypto: x86/aria - implement aria-avx512 2023-01-06 17:15:47 +08:00
aria-gfni-avx512-asm_64.S crypto: x86/aria - Use RIP-relative addressing 2023-04-20 18:20:04 +08:00
aria_aesni_avx2_glue.c crypto: x86 - Remove CONFIG_AS_GFNI 2025-08-20 20:48:07 +02:00
aria_aesni_avx_glue.c crypto: x86 - Remove CONFIG_AS_GFNI 2025-08-20 20:48:07 +02:00
aria_gfni_avx512_glue.c crypto: x86/aria - stop using the SIMD helper 2025-04-07 13:22:27 +08:00
blowfish-x86_64-asm_64.S crypto: x86/blowfish - Eliminate use of SYM_TYPED_FUNC_START in asm 2023-02-10 17:20:19 +08:00
blowfish_glue.c crypto: x86 - remove assignments of 0 to cra_alignmask 2024-12-14 17:21:44 +08:00
camellia-aesni-avx-asm_64.S x86,kcfi: Fix EXPORT_SYMBOL vs kCFI 2025-02-14 10:32:05 +01:00
camellia-aesni-avx2-asm_64.S x86,kcfi: Fix EXPORT_SYMBOL vs kCFI 2025-02-14 10:32:05 +01:00
camellia-x86_64-asm_64.S x86,kcfi: Fix EXPORT_SYMBOL vs kCFI 2025-02-14 10:32:05 +01:00
camellia.h crypto: x86 - use local headers for x86 specific shared declarations 2021-01-14 17:10:30 +11:00
camellia_aesni_avx2_glue.c crypto: x86/camellia - stop using the SIMD helper 2025-04-07 13:22:27 +08:00
camellia_aesni_avx_glue.c crypto: x86 - Fix build warnings about export.h 2025-06-23 16:59:38 +08:00
camellia_glue.c crypto: x86 - Fix build warnings about export.h 2025-06-23 16:59:38 +08:00
cast5-avx-x86_64-asm_64.S crypto: x86/cast5 - Remove unused cast5_ctr_16way 2024-10-10 17:08:02 +08:00
cast5_avx_glue.c crypto: x86/cast - stop using the SIMD helper 2025-04-07 13:22:27 +08:00
cast6-avx-x86_64-asm_64.S crypto: x86/cast6 - Use RIP-relative addressing 2023-04-20 18:20:04 +08:00
cast6_avx_glue.c crypto: x86/cast - stop using the SIMD helper 2025-04-07 13:22:27 +08:00
des3_ede-asm_64.S crypto: x86/des3 - Use RIP-relative addressing 2023-04-20 18:20:04 +08:00
des3_ede_glue.c crypto: skcipher - Make skcipher_walk src.virt.addr const 2025-03-15 16:21:22 +08:00
ecb_cbc_helpers.h crypto: x86 - exit fpu context earlier in ECB/CBC macros 2023-02-03 12:54:54 +08:00
ghash-clmulni-intel_asm.S crypto: x86/ghash - Use API partial block handling 2025-04-23 11:33:47 +08:00
ghash-clmulni-intel_glue.c crypto: x86/ghash - Use API partial block handling 2025-04-23 11:33:47 +08:00
glue_helper-asm-avx.S crypto: x86/glue-helper - drop CTR helper routines 2021-01-14 17:10:28 +11:00
glue_helper-asm-avx2.S crypto: x86/glue-helper - drop CTR helper routines 2021-01-14 17:10:28 +11:00
Kconfig crypto: x86/aes - Remove the superseded AES-NI crypto_cipher 2026-01-15 14:09:07 -08:00
Makefile lib/crypto: x86/nh: Migrate optimized code into library 2026-01-12 11:07:50 -08:00
serpent-avx-x86_64-asm_64.S x86,kcfi: Fix EXPORT_SYMBOL vs kCFI 2025-02-14 10:32:05 +01:00
serpent-avx.h crypto: x86 - use local headers for x86 specific shared declarations 2021-01-14 17:10:30 +11:00
serpent-avx2-asm_64.S crypto: x86/serpent: Remove redundant alignments 2022-10-17 16:41:01 +02:00
serpent-sse2-i586-asm_32.S x86: Prepare asm files for straight-line-speculation 2021-12-08 12:25:37 +01:00
serpent-sse2-x86_64-asm_64.S x86: Prepare asm files for straight-line-speculation 2021-12-08 12:25:37 +01:00
serpent-sse2.h crypto: x86 - use local headers for x86 specific shared declarations 2021-01-14 17:10:30 +11:00
serpent_avx2_glue.c crypto: x86/serpent - stop using the SIMD helper 2025-04-07 13:22:27 +08:00
serpent_avx_glue.c crypto: x86 - Fix build warnings about export.h 2025-06-23 16:59:38 +08:00
serpent_sse2_glue.c crypto: x86/serpent - stop using the SIMD helper 2025-04-07 13:22:27 +08:00
sm3-avx-asm_64.S - Add the call depth tracking mitigation for Retbleed which has 2022-12-14 15:03:00 -08:00
sm3_avx_glue.c crypto: x86/sm3 - Use API partial block handling 2025-04-23 15:52:47 +08:00
sm4-aesni-avx-asm_64.S crypto: x86/sm4 - Remove cfb(sm4) 2023-12-08 11:59:45 +08:00
sm4-aesni-avx2-asm_64.S crypto: x86/sm4 - Remove cfb(sm4) 2023-12-08 11:59:45 +08:00
sm4-avx.h crypto: x86/sm4 - Remove cfb(sm4) 2023-12-08 11:59:45 +08:00
sm4_aesni_avx2_glue.c crypto: x86/sm4 - stop using the SIMD helper 2025-04-07 13:22:27 +08:00
sm4_aesni_avx_glue.c crypto: x86 - Fix build warnings about export.h 2025-06-23 16:59:38 +08:00
twofish-avx-x86_64-asm_64.S crypto: twofish: Remove redundant alignments 2022-10-17 16:41:03 +02:00
twofish-i586-asm_32.S x86: Prepare asm files for straight-line-speculation 2021-12-08 12:25:37 +01:00
twofish-x86_64-asm_64-3way.S x86,kcfi: Fix EXPORT_SYMBOL vs kCFI 2025-02-14 10:32:05 +01:00
twofish-x86_64-asm_64.S x86,kcfi: Fix EXPORT_SYMBOL vs kCFI 2025-02-14 10:32:05 +01:00
twofish.h crypto: x86 - use local headers for x86 specific shared declarations 2021-01-14 17:10:30 +11:00
twofish_avx_glue.c crypto: x86/twofish - stop using the SIMD helper 2025-04-07 13:22:27 +08:00
twofish_glue.c crypto: x86 - Fix build warnings about export.h 2025-06-23 16:59:38 +08:00
twofish_glue_3way.c crypto: x86 - Fix build warnings about export.h 2025-06-23 16:59:38 +08:00