OSDN Git Service

crypto: skcipher - remove the "blkcipher" algorithm type
authorEric Biggers <ebiggers@google.com>
Fri, 25 Oct 2019 19:41:12 +0000 (12:41 -0700)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 1 Nov 2019 05:38:32 +0000 (13:38 +0800)
commitc65058b7587fd3d001c57a50285477be521f5350
tree2dbfbbedd874c0c15f65ab53238de22eef9012b1
parent53253064adfab4681f53d09e2717dd155997a3dc
crypto: skcipher - remove the "blkcipher" algorithm type

Now that all "blkcipher" algorithms have been converted to "skcipher",
remove the blkcipher algorithm type.

The skcipher (symmetric key cipher) algorithm type was introduced a few
years ago to replace both blkcipher and ablkcipher (synchronous and
asynchronous block cipher).  The advantages of skcipher include:

  - A much less confusing name, since none of these algorithm types have
    ever actually been for raw block ciphers, but rather for all
    length-preserving encryption modes including block cipher modes of
    operation, stream ciphers, and other length-preserving modes.

  - It unified blkcipher and ablkcipher into a single algorithm type
    which supports both synchronous and asynchronous implementations.
    Note, blkcipher already operated only on scatterlists, so the fact
    that skcipher does too isn't a regression in functionality.

  - Better type safety by using struct skcipher_alg, struct
    crypto_skcipher, etc. instead of crypto_alg, crypto_tfm, etc.

  - It sometimes simplifies the implementations of algorithms.

Also, the blkcipher API was no longer being tested.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
15 files changed:
Documentation/crypto/api-skcipher.rst
Documentation/crypto/architecture.rst
Documentation/crypto/devel-algos.rst
crypto/Makefile
crypto/api.c
crypto/blkcipher.c [deleted file]
crypto/cryptd.c
crypto/crypto_user_stat.c
crypto/essiv.c
crypto/skcipher.c
include/crypto/algapi.h
include/crypto/internal/skcipher.h
include/crypto/skcipher.h
include/linux/crypto.h
net/xfrm/xfrm_algo.c