crypto: riscv - add vector crypto accelerated ChaCha20
authorJerry Shih <jerry.shih@sifive.com>
Mon, 22 Jan 2024 00:19:16 +0000 (16:19 -0800)
committerPalmer Dabbelt <palmer@rivosinc.com>
Tue, 23 Jan 2024 01:55:19 +0000 (17:55 -0800)
commitbb54668837a073f18e173dd7be63f9ef5ee9f7ac
treef9973e84f9af65eb02a7b44282107c546c73c1ef
parenteb24af5d7a05bbcdebb0398f91af990719644093
crypto: riscv - add vector crypto accelerated ChaCha20

Add an implementation of ChaCha20 using the Zvkb 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 reducing code duplication.

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-6-ebiggers@kernel.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/crypto/Kconfig
arch/riscv/crypto/Makefile
arch/riscv/crypto/chacha-riscv64-glue.c [new file with mode: 0644]
arch/riscv/crypto/chacha-riscv64-zvkb.S [new file with mode: 0644]