mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/
synced 2026-04-17 22:23:45 -04:00
Move the PowerPC SPE AES assembly code into lib/crypto/, wire the key expansion and single-block en/decryption functions up to the AES library API, and remove the superseded "aes-ppc-spe" crypto_cipher algorithm. The result is that both the AES library and crypto_cipher APIs are now optimized with SPE, whereas previously only crypto_cipher was (and optimizations weren't enabled by default, which this commit fixes too). Note that many of the functions in the PowerPC SPE assembly code are still used by the AES mode implementations in arch/powerpc/crypto/. For now, just export these functions. These exports will go away once the AES modes are migrated to the library as well. (Trying to split up the assembly files seemed like much more trouble than it would be worth.) Acked-by: Ard Biesheuvel <ardb@kernel.org> Link: https://lore.kernel.org/r/20260112192035.10427-13-ebiggers@kernel.org Signed-off-by: Eric Biggers <ebiggers@kernel.org>
66 lines
2.1 KiB
Plaintext
66 lines
2.1 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
menu "Accelerated Cryptographic Algorithms for CPU (powerpc)"
|
|
|
|
config CRYPTO_AES_PPC_SPE
|
|
tristate "Ciphers: AES, modes: ECB/CBC/CTR/XTS (SPE)"
|
|
depends on SPE
|
|
select CRYPTO_LIB_AES
|
|
select CRYPTO_SKCIPHER
|
|
help
|
|
Length-preserving ciphers: AES with ECB, CBC, CTR, and XTS modes
|
|
|
|
Architecture: powerpc using:
|
|
- SPE (Signal Processing Engine) extensions
|
|
|
|
SPE is available for:
|
|
- Processor Type: Freescale 8500
|
|
- CPU selection: e500 (8540)
|
|
|
|
This module should only be used for low power (router) devices
|
|
without hardware AES acceleration (e.g. caam crypto). It reduces the
|
|
size of the AES tables from 16KB to 8KB + 256 bytes and mitigates
|
|
timining attacks. Nevertheless it might be not as secure as other
|
|
architecture specific assembler implementations that work on 1KB
|
|
tables or 256 bytes S-boxes.
|
|
|
|
config CRYPTO_AES_GCM_P10
|
|
tristate "Stitched AES/GCM acceleration support on P10 or later CPU (PPC)"
|
|
depends on PPC64 && CPU_LITTLE_ENDIAN && VSX
|
|
select CRYPTO_LIB_AES
|
|
select CRYPTO_ALGAPI
|
|
select CRYPTO_AEAD
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_SIMD
|
|
help
|
|
AEAD cipher: AES cipher algorithms (FIPS-197)
|
|
GCM (Galois/Counter Mode) authenticated encryption mode (NIST SP800-38D)
|
|
Architecture: powerpc64 using:
|
|
- little-endian
|
|
- Power10 or later features
|
|
|
|
Support for cryptographic acceleration instructions on Power10 or
|
|
later CPU. This module supports stitched acceleration for AES/GCM.
|
|
|
|
config CRYPTO_DEV_VMX
|
|
bool "Support for VMX cryptographic acceleration instructions"
|
|
depends on PPC64 && VSX
|
|
help
|
|
Support for VMX cryptographic acceleration instructions.
|
|
|
|
config CRYPTO_DEV_VMX_ENCRYPT
|
|
tristate "Encryption acceleration support on P8 CPU"
|
|
depends on CRYPTO_DEV_VMX
|
|
select CRYPTO_AES
|
|
select CRYPTO_CBC
|
|
select CRYPTO_CTR
|
|
select CRYPTO_GHASH
|
|
select CRYPTO_XTS
|
|
default m
|
|
help
|
|
Support for VMX cryptographic acceleration instructions on Power8 CPU.
|
|
This module supports acceleration for AES and GHASH in hardware. If you
|
|
choose 'M' here, this module will be called vmx-crypto.
|
|
|
|
endmenu
|