Re: [PATCH 00/30] crypto: x86 glue code cleanup/conversion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 19, 2018 at 11:47:58PM -0800, Eric Biggers wrote:
> 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

All applied.  Thanks.
-- 
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux