linux/arch
Linus Torvalds 95615dd9ff Crypto library updates for 7.4
- Migrate the x86 and riscv optimized implementations of various AES
   modes (ECB, CBC, CBC-CTS, CTR, XCTR, XTS) into lib/crypto/.
 
   This makes the library APIs be properly accelerated on these
   architectures, while still accelerating crypto_skcipher as well.
 
   It removes a lot of redundant glue code, since the crypto API
   boilerplate no longer needs to be duplicated for these architectures.
 
   It also fixes the longstanding issue where optimizations for these
   AES modes were disabled by default on these architectures.
 
 - Optimize AES-XTS on SPARC64 using the SPARC crypto opcodes
 
 - Move the SipHash code into lib/crypto/
 
 - Update the ChaCha and Poly1305 functions to take size_t lengths,
   resolving issues where lengths over INT_MAX were mishandled
 
 - Make frame pointer unwinding work properly in some of the x86
   assembly functions, by following the standard %rbp convention
 
 - Add helper functions for zeroizing structs
 
 - Make a few documentation improvements
 -----BEGIN PGP SIGNATURE-----
 
 iIoEABYIADIWIQSacvsUNc7UX4ntmEPzXCl4vpKOKwUCatTfbBQcZWJpZ2dlcnNA
 a2VybmVsLm9yZwAKCRDzXCl4vpKOK9yhAP0RU5ofTuvc8jj2o02JlXnnxwzda+zh
 tpJYOIHfW6+2UwD/XjbNgngca3ByRL2f3rt2xdSaqSIjmRMP4Blkgeazsw4=
 =zs1E
 -----END PGP SIGNATURE-----

Merge tag 'libcrypto-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux

Pull crypto library updates from Eric Biggers:

 - Migrate the x86 and riscv optimized implementations of various AES
   modes (ECB, CBC, CBC-CTS, CTR, XCTR, XTS) into lib/crypto/.

   This makes the library APIs be properly accelerated on these
   architectures, while still accelerating crypto_skcipher as well.

   It removes a lot of redundant glue code, since the crypto API
   boilerplate no longer needs to be duplicated for these architectures.

   It also fixes the longstanding issue where optimizations for these
   AES modes were disabled by default on these architectures.

 - Optimize AES-XTS on SPARC64 using the SPARC crypto opcodes

 - Move the SipHash code into lib/crypto/

 - Update the ChaCha and Poly1305 functions to take size_t lengths,
   resolving issues where lengths over INT_MAX were mishandled

 - Make frame pointer unwinding work properly in some of the x86
   assembly functions, by following the standard %rbp convention

 - Add helper functions for zeroizing structs

 - Make a few documentation improvements

* tag 'libcrypto-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux: (49 commits)
  lib/crypto: md5: remove unused header
  lib/crypto: mips/chacha: Handle lengths of 2 GiB or more
  lib/crypto: arm/chacha: Handle lengths of 2 GiB or more in scalar code
  lib/crypto: chacha: Use size_t length
  lib/crypto: poly1305: Use size_t length
  lib/crypto: x86/sha512: Follow the normal %rbp convention
  lib/crypto: x86/sha256: Follow the normal %rbp convention
  lib/crypto: x86/sha1: Follow the normal %rbp convention
  lib/crypto: chacha20poly1305: zeroize state in __chacha20poly1305_decrypt
  lib/crypto: sparc/aes-xts: Add optimization using the AES opcodes
  lib: Move SipHash into lib/crypto/
  lib/crypto: x86/aes-ctr: Remove some unreachable code
  crypto: x86/aesni-intel - Add transitional selections
  crypto: aes - Boost priority of encryption modes further
  lib/crypto: x86/aes: Set RNDKEY in aes_cbc_encrypt_aesni()
  lib/crypto: riscv/aes-xts: Migrate optimized code into library
  lib/crypto: riscv/aes-ctr: Migrate optimized code into library
  lib/crypto: riscv/aes-cbc: Migrate optimized code into library
  lib/crypto: riscv/aes-ecb: Migrate optimized code into library
  lib/crypto: riscv/aes: Pass key struct to assembly code
  ...
2026-10-20 15:38:53 -10:00
..
alpha alpha updates for v7.4 2026-10-20 14:31:24 -10:00
arc Add emulation of two-byte cmpxchg() 2026-10-20 14:53:33 -10:00
arm Perf events updates: 2026-10-20 13:00:41 -10:00
arm64 Perf events updates: 2026-10-20 13:00:41 -10:00
csky Add emulation of two-byte cmpxchg() 2026-10-20 14:53:33 -10:00
hexagon Treewide timer related cleanups: 2026-08-18 15:58:29 -07:00
loongarch Perf events updates: 2026-10-20 13:00:41 -10:00
m68k m68k: defconfig: Enable ATARI_SVETHLANA and ETHOC 2026-09-27 16:21:49 +02:00
microblaze microblaze: Build userprogs for the correct endianness 2026-10-16 15:08:09 +02:00
mips Perf events updates: 2026-10-20 13:00:41 -10:00
nios2 nios2: ksyms: Declare __mulsi3 export 2026-10-19 09:24:54 -05:00
openrisc OpenRISC 7.3 updates 2026-08-30 09:26:54 -07:00
parisc Perf events updates: 2026-10-20 13:00:41 -10:00
powerpc Perf events updates: 2026-10-20 13:00:41 -10:00
riscv Crypto library updates for 7.4 2026-10-20 15:38:53 -10:00
s390 s390 updates for 7.4 merge window 2026-10-20 14:28:32 -10:00
sh sh: Emulate two-byte cmpxchg 2026-10-06 11:38:26 -07:00
sparc Crypto library updates for 7.4 2026-10-20 15:38:53 -10:00
um - Document and cleanup the signal frame handling with the goal to allow 2026-10-20 11:03:51 -10:00
x86 Crypto library updates for 7.4 2026-10-20 15:38:53 -10:00
xtensa xtensa: Emulate two-byte cmpxchg 2026-10-12 16:36:53 -07:00
.gitignore
Kconfig sched: dynamic: Remove HAVE_PREEMPT_DYNAMIC_{CALL,KEY} 2026-09-02 09:37:23 +02:00