Hi,
I got tired of seeing some block cipher implementations using the old
API (blkcipher or ablkcipher) and some using the new API (skcipher)...
so this series makes a dent in the problem by converting all the
remaining x86 glue code over to the skcipher API.
Besides the conversion to use 'skcipher_alg', 'skcipher_request', and
'skcipher_walk' this includes replacing all remaining users of
ablk_helper with crypto_simd, then removing ablk_helper.
It also includes removing all users of lrw_crypt() and xts_crypt() in
favor of the lrw and xts templates wrapping an ECB-mode algorithm. So,
lrw_crypt() and xts_crypt() are removed too.
Note that AES was already converted a while ago, so this series mostly
just deals with the other ciphers (Serpent, Twofish, Camellia, etc.).
I tested all the affected algorithms with the self-tests. I also did
some testing with random sglist divisions, during which I found a bug in
ecb-cast5-avx which this series fixes as well.
The overall diff is about 3100 lines of code removed, mainly due to the
ablk_helper => crypto_simd conversions and removing the unnecessary LRW
and XTS implementations.
Eric Biggers (30):
crypto: simd - allow registering multiple algorithms at once
crypto: x86/glue_helper - add skcipher_walk functions
crypto: x86/serpent-sse2 - remove LRW algorithm
crypto: x86/serpent-sse2 - remove XTS algorithm
crypto: x86/serpent-sse2 - convert to skcipher interface
crypto: x86/serpent-avx2 - remove LRW algorithm
crypto: x86/serpent-avx - remove LRW algorithm
crypto: x86/serpent-avx,avx2 - convert to skcipher interface
crypto: x86/twofish-3way - remove LRW algorithm
crypto: x86/twofish-3way - remove XTS algorithm
crypto: x86/twofish-3way - convert to skcipher interface
crypto: x86/twofish-avx - remove LRW algorithm
crypto: x86/twofish-avx - convert to skcipher interface
crypto: x86/cast5-avx - fix ECB encryption when long sg follows short
one
crypto: x86/cast5-avx - convert to skcipher interface
crypto: x86/cast6-avx - remove LRW algorithm
crypto: x86/cast6-avx - convert to skcipher interface
crypto: x86/blowfish: convert to skcipher interface
crypto: x86/des3_ede - convert to skcipher interface
crypto: x86/camellia-aesni-avx - remove LRW algorithm
crypto: x86/camellia-aesni-avx2 - remove LRW algorithm
crypto: x86/camellia - remove LRW algorithm
crypto: x86/camellia - remove XTS algorithm
crypto: x86/camellia - convert to skcipher interface
crypto: x86/camellia-aesni-avx,avx2 - convert to skcipher interface
crypto: xts - remove xts_crypt()
crypto: lrw - remove lrw_crypt()
crypto: x86/glue_helper - remove blkcipher_walk functions
crypto: x86/glue_helper - rename glue_skwalk_fpu_begin()
crypto: ablk_helper - remove ablk_helper
arch/x86/crypto/blowfish_glue.c | 230 +++++++------
arch/x86/crypto/camellia_aesni_avx2_glue.c | 491 ++++++---------------------
arch/x86/crypto/camellia_aesni_avx_glue.c | 495 +++++++--------------------
arch/x86/crypto/camellia_glue.c | 356 +++++---------------
arch/x86/crypto/cast5_avx_glue.c | 352 +++++++------------
arch/x86/crypto/cast6_avx_glue.c | 489 ++++++---------------------
arch/x86/crypto/des3_ede_glue.c | 238 ++++++-------
arch/x86/crypto/glue_helper.c | 391 +++++++---------------
arch/x86/crypto/serpent_avx2_glue.c | 478 ++++++--------------------
arch/x86/crypto/serpent_avx_glue.c | 518 +++++++---------------------
arch/x86/crypto/serpent_sse2_glue.c | 519 ++++-------------------------
arch/x86/crypto/twofish_avx_glue.c | 493 +++++++--------------------
arch/x86/crypto/twofish_glue_3way.c | 339 ++++---------------
arch/x86/include/asm/crypto/camellia.h | 16 +-
arch/x86/include/asm/crypto/glue_helper.h | 75 +----
arch/x86/include/asm/crypto/serpent-avx.h | 17 +-
arch/x86/include/asm/crypto/twofish.h | 19 --
crypto/Kconfig | 82 ++---
crypto/Makefile | 1 -
crypto/ablk_helper.c | 150 ---------
crypto/lrw.c | 152 +++------
crypto/simd.c | 50 +++
crypto/xts.c | 72 ----
include/crypto/ablk_helper.h | 32 --
include/crypto/internal/simd.h | 7 +
include/crypto/lrw.h | 44 ---
include/crypto/xts.h | 17 -
27 files changed, 1489 insertions(+), 4634 deletions(-)
delete mode 100644 crypto/ablk_helper.c
delete mode 100644 include/crypto/ablk_helper.h
delete mode 100644 include/crypto/lrw.h
--
2.16.2