mirror of
https://github.com/torvalds/linux.git
synced 2026-01-24 23:16:46 +00:00
Add an implementation of SHA-256 and SHA-224 using the Zvknha or Zvknhb extension. The assembly code is derived from OpenSSL code (openssl/openssl#21923) that was dual-licensed so that it could be reused in the kernel. Nevertheless, the assembly has been significantly reworked for integration with the kernel, for example by using a regular .S file instead of the so-called perlasm, using the assembler instead of bare '.inst', and greatly reducing code duplication. Co-developed-by: Charalampos Mitrodimas <charalampos.mitrodimas@vrull.eu> Signed-off-by: Charalampos Mitrodimas <charalampos.mitrodimas@vrull.eu> Co-developed-by: Heiko Stuebner <heiko.stuebner@vrull.eu> Signed-off-by: Heiko Stuebner <heiko.stuebner@vrull.eu> Co-developed-by: Phoebe Chen <phoebe.chen@sifive.com> Signed-off-by: Phoebe Chen <phoebe.chen@sifive.com> Signed-off-by: Jerry Shih <jerry.shih@sifive.com> Co-developed-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Eric Biggers <ebiggers@google.com> Link: https://lore.kernel.org/r/20240122002024.27477-8-ebiggers@kernel.org Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
54 lines
1.5 KiB
Plaintext
54 lines
1.5 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, CTR, XTS"
|
|
depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO
|
|
select CRYPTO_ALGAPI
|
|
select CRYPTO_LIB_AES
|
|
select CRYPTO_SKCIPHER
|
|
help
|
|
Block cipher: AES cipher algorithms
|
|
Length-preserving ciphers: AES with ECB, CBC, 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_CHACHA_RISCV64
|
|
tristate "Ciphers: ChaCha"
|
|
depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_LIB_CHACHA_GENERIC
|
|
help
|
|
Length-preserving ciphers: ChaCha20 stream cipher algorithm
|
|
|
|
Architecture: riscv64 using:
|
|
- Zvkb vector crypto extension
|
|
|
|
config CRYPTO_GHASH_RISCV64
|
|
tristate "Hash functions: GHASH"
|
|
depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO
|
|
select CRYPTO_GCM
|
|
help
|
|
GCM GHASH function (NIST SP 800-38D)
|
|
|
|
Architecture: riscv64 using:
|
|
- Zvkg vector crypto extension
|
|
|
|
config CRYPTO_SHA256_RISCV64
|
|
tristate "Hash functions: SHA-224 and SHA-256"
|
|
depends on 64BIT && RISCV_ISA_V && TOOLCHAIN_HAS_VECTOR_CRYPTO
|
|
select CRYPTO_SHA256
|
|
help
|
|
SHA-224 and SHA-256 secure hash algorithm (FIPS 180)
|
|
|
|
Architecture: riscv64 using:
|
|
- Zvknha or Zvknhb vector crypto extensions
|
|
- Zvkb vector crypto extension
|
|
|
|
endmenu
|