linux/lib/crypto
Ard Biesheuvel f135440447 crypto: lib - implement library version of AES in CFB mode
Implement AES in CFB mode using the existing, mostly constant-time
generic AES library implementation. This will be used by the TPM code
to encrypt communications with TPM hardware, which is often a discrete
component connected using sniffable wires or traces.

While a CFB template does exist, using a skcipher is a major pain for
non-performance critical synchronous crypto where the algorithm is known
at compile time and the data is in contiguous buffers with valid kernel
virtual addresses.

Tested-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Reviewed-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Link: https://lore.kernel.org/all/20230216201410.15010-1-James.Bottomley@HansenPartnership.com/
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Tested-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
2024-05-09 22:30:51 +03:00
..
mpi crypto: lib/mpi - Fix unexpected pointer access in mpi_ec_init 2023-12-22 12:30:19 +08:00
aes.c crypto: aes - helper function to validate key length for AES algorithms 2019-08-09 15:11:43 +10:00
aescfb.c crypto: lib - implement library version of AES in CFB mode 2024-05-09 22:30:51 +03:00
aesgcm.c crypto: lib/aesgcm - Add kernel docs for aesgcm_mac 2023-11-17 19:16:28 +08:00
arc4.c
blake2s-generic.c crypto: blake2s: remove module-related code 2023-04-13 13:13:51 -07:00
blake2s-selftest.c crypto: lib/blake2s - Split up test function to halve stack usage 2022-12-30 22:56:27 +08:00
blake2s.c crypto: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:51 -07:00
chacha.c crypto: doc - fix kernel-doc notation in chacha.c and af_alg.c 2021-04-22 17:31:29 +10:00
chacha20poly1305-selftest.c crypto: arm64/chacha - correctly walk through blocks 2020-03-20 14:35:27 +11:00
chacha20poly1305.c crypto: lib - rename 'mod_init' & 'mod_exit' functions to be module-specific 2021-07-16 15:49:36 +08:00
curve25519-fiat32.c crypto: lib/curve25519 - work around Clang stack spilling issue 2019-11-17 09:02:43 +08:00
curve25519-generic.c crypto: curve25519 - Fix selftest build error 2020-01-16 15:18:13 +08:00
curve25519-hacl64.c types: Introduce [us]128 2023-06-05 09:36:35 +02:00
curve25519-selftest.c crypto: lib/curve25519 - re-add selftests 2019-12-27 18:18:03 +08:00
curve25519.c crypto: lib - rename 'mod_init' & 'mod_exit' functions to be module-specific 2021-07-16 15:49:36 +08:00
des.c crypto: des - split off DES library from generic DES cipher driver 2019-08-22 14:57:33 +10:00
gf128mul.c crypto: lib/gf128mul - make gf128mul_lle time invariant 2022-11-11 18:14:59 +08:00
Kconfig crypto: lib - implement library version of AES in CFB mode 2024-05-09 22:30:51 +03:00
libchacha.c crypto: chacha - move existing library code into lib/crypto 2019-11-17 09:02:39 +08:00
Makefile crypto: lib - implement library version of AES in CFB mode 2024-05-09 22:30:51 +03:00
memneq.c crypto: lib - remove __HAVE_ARCH_CRYPTO_MEMNEQ 2022-08-19 18:39:34 +08:00
poly1305-donna32.c crypto: poly1305 - fix poly1305_core_setkey() declaration 2021-04-02 18:28:12 +11:00
poly1305-donna64.c types: Introduce [us]128 2023-06-05 09:36:35 +02:00
poly1305.c crypto: poly1305 - fix poly1305_core_setkey() declaration 2021-04-02 18:28:12 +11:00
sha1.c crypto: lib - add module license to libsha1 2022-07-20 15:28:07 +08:00
sha256.c crypto: lib/sha256 - Use generic code from sha256_base 2023-05-19 16:45:43 +08:00
utils.c crypto: lib/utils - Move utilities into new header 2023-03-31 17:50:09 +08:00