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>
Showing
- arch/arm/crypto/chacha-neon-glue.c 1 addition, 1 deletionarch/arm/crypto/chacha-neon-glue.c
- arch/arm64/crypto/chacha-neon-glue.c 1 addition, 1 deletionarch/arm64/crypto/chacha-neon-glue.c
- arch/x86/crypto/chacha_glue.c 1 addition, 1 deletionarch/x86/crypto/chacha_glue.c
- crypto/Kconfig 1 addition, 0 deletionscrypto/Kconfig
- crypto/chacha_generic.c 5 additions, 55 deletionscrypto/chacha_generic.c
- include/crypto/chacha.h 60 additions, 17 deletionsinclude/crypto/chacha.h
- include/crypto/internal/chacha.h 53 additions, 0 deletionsinclude/crypto/internal/chacha.h
- lib/Makefile 1 addition, 2 deletionslib/Makefile
- lib/crypto/Kconfig 26 additions, 0 deletionslib/crypto/Kconfig
- lib/crypto/Makefile 4 additions, 0 deletionslib/crypto/Makefile
- lib/crypto/chacha.c 11 additions, 9 deletionslib/crypto/chacha.c
- lib/crypto/libchacha.c 35 additions, 0 deletionslib/crypto/libchacha.c
Please register or sign in to comment