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 aes_encrypt_zvkned() and aes_decrypt_zvkned() assembly functions into lib/crypto/, wire them up to the AES library API, and remove the "aes-riscv64-zvkned" crypto_cipher algorithm. To make this possible, change the prototypes of these functions to take (rndkeys, key_len) instead of a pointer to crypto_aes_ctx, and change the RISC-V AES-XTS code to implement tweak encryption using the AES library instead of directly calling aes_encrypt_zvkned(). The result is that both the AES library and crypto_cipher APIs use RISC-V's AES instructions, whereas previously only crypto_cipher did (and it wasn't enabled by default, which this commit fixes as well). Acked-by: Ard Biesheuvel <ardb@kernel.org> Link: https://lore.kernel.org/r/20260112192035.10427-15-ebiggers@kernel.org Signed-off-by: Eric Biggers <ebiggers@kernel.org>
63 lines
1.8 KiB
Plaintext
63 lines
1.8 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
menu "Accelerated Cryptographic Algorithms for CPU (riscv)"
|
|
|
|
config CRYPTO_AES_RISCV64
|
|
tristate "Ciphers: AES, modes: ECB, CBC, CTS, CTR, XTS"
|
|
depends on 64BIT && TOOLCHAIN_HAS_VECTOR_CRYPTO && \
|
|
RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS
|
|
select CRYPTO_LIB_AES
|
|
select CRYPTO_SKCIPHER
|
|
help
|
|
Length-preserving ciphers: AES with ECB, CBC, CTS, CTR, XTS
|
|
|
|
Architecture: riscv64 using:
|
|
- Zvkned vector crypto extension
|
|
- Zvbb vector extension (XTS)
|
|
- Zvkb vector crypto extension (CTR)
|
|
- Zvkg vector crypto extension (XTS)
|
|
|
|
config CRYPTO_GHASH_RISCV64
|
|
tristate "Hash functions: GHASH"
|
|
depends on 64BIT && TOOLCHAIN_HAS_VECTOR_CRYPTO && \
|
|
RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS
|
|
select CRYPTO_GCM
|
|
help
|
|
GCM GHASH function (NIST SP 800-38D)
|
|
|
|
Architecture: riscv64 using:
|
|
- Zvkg vector crypto extension
|
|
|
|
config CRYPTO_SM3_RISCV64
|
|
tristate "Hash functions: SM3 (ShangMi 3)"
|
|
depends on 64BIT && TOOLCHAIN_HAS_VECTOR_CRYPTO && \
|
|
RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS
|
|
select CRYPTO_HASH
|
|
select CRYPTO_LIB_SM3
|
|
help
|
|
SM3 (ShangMi 3) secure hash function (OSCCA GM/T 0004-2012)
|
|
|
|
Architecture: riscv64 using:
|
|
- Zvksh vector crypto extension
|
|
- Zvkb vector crypto extension
|
|
|
|
config CRYPTO_SM4_RISCV64
|
|
tristate "Ciphers: SM4 (ShangMi 4)"
|
|
depends on 64BIT && TOOLCHAIN_HAS_VECTOR_CRYPTO && \
|
|
RISCV_EFFICIENT_VECTOR_UNALIGNED_ACCESS
|
|
select CRYPTO_ALGAPI
|
|
select CRYPTO_SM4
|
|
help
|
|
SM4 block cipher algorithm (OSCCA GB/T 32907-2016,
|
|
ISO/IEC 18033-3:2010/Amd 1:2021)
|
|
|
|
SM4 (GBT.32907-2016) is a cryptographic standard issued by the
|
|
Organization of State Commercial Administration of China (OSCCA)
|
|
as an authorized cryptographic algorithm for use within China.
|
|
|
|
Architecture: riscv64 using:
|
|
- Zvksed vector crypto extension
|
|
- Zvkb vector crypto extension
|
|
|
|
endmenu
|