linux/drivers/crypto/caam
Eric Biggers 1ca1b91794 crypto: chacha20-generic - refactor to allow varying number of rounds
In preparation for adding XChaCha12 support, rename/refactor
chacha20-generic to support different numbers of rounds.  The
justification for needing XChaCha12 support is explained in more detail
in the patch "crypto: chacha - add XChaCha12 support".

The only difference between ChaCha{8,12,20} are the number of rounds
itself; all other parts of the algorithm are the same.  Therefore,
remove the "20" from all definitions, structures, functions, files, etc.
that will be shared by all ChaCha versions.

Also make ->setkey() store the round count in the chacha_ctx (previously
chacha20_ctx).  The generic code then passes the round count through to
chacha_block().  There will be a ->setkey() function for each explicitly
allowed round count; the encrypt/decrypt functions will be the same.  I
decided not to do it the opposite way (same ->setkey() function for all
round counts, with different encrypt/decrypt functions) because that
would have required more boilerplate code in architecture-specific
implementations of ChaCha and XChaCha.

Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Martin Willi <martin@strongswan.org>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-11-20 14:26:55 +08:00
..
caamalg.c crypto: chacha20-generic - refactor to allow varying number of rounds 2018-11-20 14:26:55 +08:00
caamalg_desc.c crypto: caam/qi2 - add support for Chacha20 + Poly1305 2018-11-16 14:11:03 +08:00
caamalg_desc.h crypto: caam/qi2 - add support for Chacha20 + Poly1305 2018-11-16 14:11:03 +08:00
caamalg_qi.c crypto: caam - add register map changes cf. Era 10 2018-11-16 14:11:03 +08:00
caamalg_qi2.c crypto: chacha20-generic - refactor to allow varying number of rounds 2018-11-20 14:26:55 +08:00
caamalg_qi2.h
caamhash.c crypto: caam - add register map changes cf. Era 10 2018-11-16 14:11:03 +08:00
caamhash_desc.c
caamhash_desc.h
caampkc.c crypto: caam - add register map changes cf. Era 10 2018-11-16 14:11:03 +08:00
caampkc.h
caamrng.c crypto: caam - add register map changes cf. Era 10 2018-11-16 14:11:03 +08:00
compat.h crypto: chacha20-generic - refactor to allow varying number of rounds 2018-11-20 14:26:55 +08:00
ctrl.c crypto: caam - add register map changes cf. Era 10 2018-11-16 14:11:03 +08:00
ctrl.h
desc.h crypto: caam/jr - add support for Chacha20 + Poly1305 2018-11-16 14:11:03 +08:00
desc_constr.h crypto: caam/jr - add support for Chacha20 + Poly1305 2018-11-16 14:11:03 +08:00
dpseci.c
dpseci.h
dpseci_cmd.h
error.c
error.h
intern.h
jr.c crypto: caam - add SPDX license identifier to all files 2018-10-17 14:16:18 +08:00
jr.h
Kconfig crypto: caam - add SPDX license identifier to all files 2018-10-17 14:16:18 +08:00
key_gen.c
key_gen.h
Makefile
pdb.h
pkc_desc.c
qi.c crypto: caam/qi - simplify CGR allocation, freeing 2018-10-17 14:14:46 +08:00
qi.h crypto: caam/qi - simplify CGR allocation, freeing 2018-10-17 14:14:46 +08:00
regs.h crypto: caam - add register map changes cf. Era 10 2018-11-16 14:11:03 +08:00
sg_sw_qm.h crypto: caam - add SPDX license identifier to all files 2018-10-17 14:16:18 +08:00
sg_sw_qm2.h crypto: caam - add SPDX license identifier to all files 2018-10-17 14:16:18 +08:00
sg_sw_sec4.h