From: Eric Biggers <ebiggers@kernel.org>
To: linux-crypto@vger.kernel.org
Subject: [PATCH 00/28] crypto: template instantiation cleanup
Date: Sat, 28 Dec 2019 20:56:46 -0600 [thread overview]
Message-ID: <20191229025714.544159-1-ebiggers@kernel.org> (raw)
Hello,
This series makes all crypto templates initialize their spawns (i.e.
their "inner algorithms") in a consistent way, using a consistent set of
crypto_grab_*() helper functions. skcipher, aead, and akcipher spawns
already used this approach, but shash, ahash, and cipher spawns were
being initialized differently -- causing confusion and unnecessary code.
As long as it's introducing new crypto_grab_*() functions, this series
also takes the opportunity to first improve the existing ones to take
the instance pointer as a parameter, so that all callers don't have to
store it temporarily to crypto_spawn::inst.
Finally, this series also makes two changes that allow simplifying the
error handling in template ->create() functions: (1) crypto_drop_spawn()
is made a no-op on uninitialized instances, and (2) crypto_grab_spawn()
is made to handle an ERR_PTR() name.
Taking advantage of these two changes, this series also simplifies the
error handling in the template ->create() functions which were being
updated anyway to use a new crypto_grab_*() function. But to keep this
series manageable, simplifying error handling in the remaining templates
is left for later.
This series is an internal cleanup only; there are no changes for users
of the crypto API. I've tested that all the templates still get
instantiated correctly and that errors seem to be handled properly.
Eric Biggers (28):
crypto: algapi - make crypto_drop_spawn() a no-op on uninitialized
spawns
crypto: algapi - make crypto_grab_spawn() handle an ERR_PTR() name
crypto: shash - make struct shash_instance be the full size
crypto: ahash - make struct ahash_instance be the full size
crypto: skcipher - pass instance to crypto_grab_skcipher()
crypto: aead - pass instance to crypto_grab_aead()
crypto: akcipher - pass instance to crypto_grab_akcipher()
crypto: algapi - pass instance to crypto_grab_spawn()
crypto: shash - introduce crypto_grab_shash()
crypto: ahash - introduce crypto_grab_ahash()
crypto: cipher - introduce crypto_cipher_spawn and
crypto_grab_cipher()
crypto: adiantum - use crypto_grab_{cipher,shash} and simplify error
paths
crypto: cryptd - use crypto_grab_shash() and simplify error paths
crypto: hmac - use crypto_grab_shash() and simplify error paths
crypto: authenc - use crypto_grab_ahash() and simplify error paths
crypto: authencesn - use crypto_grab_ahash() and simplify error paths
crypto: gcm - use crypto_grab_ahash() and simplify error paths
crypto: ccm - use crypto_grab_ahash() and simplify error paths
crypto: chacha20poly1305 - use crypto_grab_ahash() and simplify error
paths
crypto: skcipher - use crypto_grab_cipher() and simplify error paths
crypto: cbcmac - use crypto_grab_cipher() and simplify error paths
crypto: cmac - use crypto_grab_cipher() and simplify error paths
crypto: vmac - use crypto_grab_cipher() and simplify error paths
crypto: xcbc - use crypto_grab_cipher() and simplify error paths
crypto: cipher - make crypto_spawn_cipher() take a crypto_cipher_spawn
crypto: algapi - remove obsoleted instance creation helpers
crypto: ahash - unexport crypto_ahash_type
crypto: algapi - fold crypto_init_spawn() into crypto_grab_spawn()
crypto/adiantum.c | 87 +++++++----------------
crypto/aead.c | 7 +-
crypto/ahash.c | 39 ++++-------
crypto/akcipher.c | 7 +-
crypto/algapi.c | 99 +++++---------------------
crypto/authenc.c | 57 +++++----------
crypto/authencesn.c | 57 +++++----------
crypto/ccm.c | 107 +++++++++++------------------
crypto/chacha20poly1305.c | 88 ++++++++----------------
crypto/cipher.c | 11 +++
crypto/cmac.c | 38 +++++-----
crypto/cryptd.c | 76 ++++++--------------
crypto/ctr.c | 4 +-
crypto/cts.c | 9 +--
crypto/essiv.c | 16 ++---
crypto/gcm.c | 76 ++++++++------------
crypto/geniv.c | 4 +-
crypto/hmac.c | 36 +++++-----
crypto/lrw.c | 15 ++--
crypto/pcrypt.c | 5 +-
crypto/rsa-pkcs1pad.c | 8 ++-
crypto/shash.c | 28 +++-----
crypto/skcipher.c | 41 +++++------
crypto/vmac.c | 38 +++++-----
crypto/xcbc.c | 43 +++++-------
crypto/xts.c | 9 +--
include/crypto/algapi.h | 58 +++++++---------
include/crypto/internal/aead.h | 11 +--
include/crypto/internal/akcipher.h | 12 +---
include/crypto/internal/hash.h | 70 +++++++++----------
include/crypto/internal/skcipher.h | 11 +--
31 files changed, 423 insertions(+), 744 deletions(-)
--
2.24.1
next reply other threads:[~2019-12-29 2:58 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-29 2:56 Eric Biggers [this message]
2019-12-29 2:56 ` [PATCH 01/28] crypto: algapi - make crypto_drop_spawn() a no-op on uninitialized spawns Eric Biggers
2019-12-29 2:56 ` [PATCH 02/28] crypto: algapi - make crypto_grab_spawn() handle an ERR_PTR() name Eric Biggers
2019-12-29 2:56 ` [PATCH 03/28] crypto: shash - make struct shash_instance be the full size Eric Biggers
2019-12-29 2:56 ` [PATCH 04/28] crypto: ahash - make struct ahash_instance " Eric Biggers
2019-12-29 2:56 ` [PATCH 05/28] crypto: skcipher - pass instance to crypto_grab_skcipher() Eric Biggers
2019-12-29 2:56 ` [PATCH 06/28] crypto: aead - pass instance to crypto_grab_aead() Eric Biggers
2019-12-29 2:56 ` [PATCH 07/28] crypto: akcipher - pass instance to crypto_grab_akcipher() Eric Biggers
2019-12-29 2:56 ` [PATCH 08/28] crypto: algapi - pass instance to crypto_grab_spawn() Eric Biggers
2019-12-29 2:56 ` [PATCH 09/28] crypto: shash - introduce crypto_grab_shash() Eric Biggers
2019-12-29 2:56 ` [PATCH 10/28] crypto: ahash - introduce crypto_grab_ahash() Eric Biggers
2019-12-29 2:56 ` [PATCH 11/28] crypto: cipher - introduce crypto_cipher_spawn and crypto_grab_cipher() Eric Biggers
2020-01-01 14:50 ` Eric Biggers
2019-12-29 2:56 ` [PATCH 12/28] crypto: adiantum - use crypto_grab_{cipher,shash} and simplify error paths Eric Biggers
2019-12-29 2:56 ` [PATCH 13/28] crypto: cryptd - use crypto_grab_shash() " Eric Biggers
2019-12-29 2:57 ` [PATCH 14/28] crypto: hmac " Eric Biggers
2019-12-29 2:57 ` [PATCH 15/28] crypto: authenc - use crypto_grab_ahash() " Eric Biggers
2019-12-29 2:57 ` [PATCH 16/28] crypto: authencesn " Eric Biggers
2019-12-29 2:57 ` [PATCH 17/28] crypto: gcm " Eric Biggers
2019-12-29 2:57 ` [PATCH 18/28] crypto: ccm " Eric Biggers
2019-12-29 2:57 ` [PATCH 19/28] crypto: chacha20poly1305 " Eric Biggers
2019-12-29 2:57 ` [PATCH 20/28] crypto: skcipher - use crypto_grab_cipher() " Eric Biggers
2019-12-29 2:57 ` [PATCH 21/28] crypto: cbcmac " Eric Biggers
2019-12-29 2:57 ` [PATCH 22/28] crypto: cmac " Eric Biggers
2019-12-29 2:57 ` [PATCH 23/28] crypto: vmac " Eric Biggers
2019-12-29 2:57 ` [PATCH 24/28] crypto: xcbc " Eric Biggers
2019-12-29 2:57 ` [PATCH 25/28] crypto: cipher - make crypto_spawn_cipher() take a crypto_cipher_spawn Eric Biggers
2019-12-29 2:57 ` [PATCH 26/28] crypto: algapi - remove obsoleted instance creation helpers Eric Biggers
2019-12-29 2:57 ` [PATCH 27/28] crypto: ahash - unexport crypto_ahash_type Eric Biggers
2019-12-29 2:57 ` [PATCH 28/28] crypto: algapi - fold crypto_init_spawn() into crypto_grab_spawn() Eric Biggers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191229025714.544159-1-ebiggers@kernel.org \
--to=ebiggers@kernel.org \
--cc=linux-crypto@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox