OSDN Git Service

crypto: chacha - move existing library code into lib/crypto
authorArd Biesheuvel <ardb@kernel.org>
Fri, 8 Nov 2019 12:22:08 +0000 (13:22 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sun, 17 Nov 2019 01:02:39 +0000 (09:02 +0800)
commit5fb8ef25803ef33e2eb60b626435828b937bed75
tree156401ad072c1acc18f74cbdf8eb31859191b9ac
parent746b2e024c67aa605ac12d135cd7085a49cf9dc4
crypto: chacha - move existing library code into lib/crypto

Currently, our generic ChaCha implementation consists of a permute
function in lib/chacha.c that operates on the 64-byte ChaCha state
directly [and which is always included into the core kernel since it
is used by the /dev/random driver], and the crypto API plumbing to
expose it as a skcipher.

In order to support in-kernel users that need the ChaCha streamcipher
but have no need [or tolerance] for going through the abstractions of
the crypto API, let's expose the streamcipher bits via a library API
as well, in a way that permits the implementation to be superseded by
an architecture specific one if provided.

So move the streamcipher code into a separate module in lib/crypto,
and expose the init() and crypt() routines to users of the library.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
12 files changed:
arch/arm/crypto/chacha-neon-glue.c
arch/arm64/crypto/chacha-neon-glue.c
arch/x86/crypto/chacha_glue.c
crypto/Kconfig
crypto/chacha_generic.c
include/crypto/chacha.h
include/crypto/internal/chacha.h [new file with mode: 0644]
lib/Makefile
lib/crypto/Kconfig
lib/crypto/Makefile
lib/crypto/chacha.c [moved from lib/chacha.c with 88% similarity]
lib/crypto/libchacha.c [new file with mode: 0644]