From: Thomas Huth <thuth@redhat.com>
To: Herbert Xu <herbert@gondor.apana.org.au>,
"David S. Miller" <davem@davemloft.net>
Cc: linux-crypto@vger.kernel.org, Eric Biggers <ebiggers@kernel.org>,
linux-kernel@vger.kernel.org, Antoine Tenart <atenart@kernel.org>
Subject: [PATCH v5 00/10] crypto: Provide a function for zeroizing crypto_aes_ctx
Date: Mon, 10 Aug 2026 11:29:55 +0200 [thread overview]
Message-ID: <20260810093009.608090-1-thuth@redhat.com> (raw)
Several crypto drivers need to zeroize their local crypto_aes_ctx
structures after use to avoid leaking key material on the stack.
Currently some call sites do this with their own memzero_explicit()
call, which is error-prone since it is easy to miss a return path
(what already happened in a driver). Some other call sites miss
to clear crypto_aes_ctx completely.
To improve this situation, the first patch introduces an aes_zeroize_ctx()
helper that can be used with __cleanup() to automatically zeroize the
context when it goes out of scope. The following 6 patches add this
__cleanup() to spots in the code where this has been forgotten so far.
The final patches change some files to do the zeroization with
the new __cleanup() way instead of calling memzero_explicit() manually.
v5:
- Use aes_check_keylen() in the eip93 patch and in the 1st safexcel patch
v4:
- Updated the function description in the first patch
- Fixed "return err" bug in the "safexcel - Rework cleanup..." patch
v3:
- Renamed aes_clear_ctx() to aes_zeroize_ctx()
- Split up the safeexcel patch to rework safexcel_aead_setkey in a
separate patch
- Removed goto in the padlock patch
v2:
- Rebased onto cryptodev master branch, updated the "qat" patch accordingly
Thomas Huth (10):
crypto: Provide a wrapper function for zeroizing crypto_aes_ctx
crypto: aspeed - clear the crypto_aes_ctx when done
crypto: padlock-aes - clear the crypto_aes_ctx when done
crypto: sa2ul - clear the crypto_aes_ctx when done
crypto: arm/aes-neonbs - clear the crypto_aes_ctx when done
crypto: arm64/aes-neonbs - clear the crypto_aes_ctx when done
crypto: qat - zeroize crypto_aes_ctx with __cleanup(aes_zeroize_ctx)
crypto: safexcel - Simplify the check for a valid AES key
crypto: safexcel - zeroize crypto_aes_ctx with
__cleanup(aes_zeroize_ctx)
crypto: eip93 - Simplify the check for a valid AES key
arch/arm/crypto/aes-neonbs-glue.c | 2 +-
arch/arm64/crypto/aes-neonbs-glue.c | 2 +-
drivers/crypto/aspeed/aspeed-hace-crypto.c | 3 +--
.../crypto/inside-secure/eip93/eip93-aead.c | 3 +--
.../crypto/inside-secure/safexcel_cipher.c | 16 +++++---------
drivers/crypto/inside-secure/safexcel_hash.c | 3 +--
.../crypto/intel/qat/qat_common/qat_algs.c | 3 +--
drivers/crypto/padlock-aes.c | 22 +++++++++----------
drivers/crypto/sa2ul.c | 2 +-
include/crypto/aes.h | 13 +++++++++++
10 files changed, 35 insertions(+), 34 deletions(-)
--
2.55.0
next reply other threads:[~2026-08-10 9:30 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-10 9:29 Thomas Huth [this message]
2026-08-10 9:29 ` [PATCH v5 01/10] crypto: Provide a wrapper function for zeroizing crypto_aes_ctx Thomas Huth
2026-08-10 9:29 ` [PATCH v5 02/10] crypto: aspeed - clear the crypto_aes_ctx when done Thomas Huth
2026-08-10 9:29 ` [PATCH v5 03/10] crypto: padlock-aes " Thomas Huth
2026-08-10 9:29 ` [PATCH v5 04/10] crypto: sa2ul " Thomas Huth
2026-08-10 9:30 ` [PATCH v5 05/10] crypto: arm/aes-neonbs " Thomas Huth
2026-08-10 9:30 ` [PATCH v5 06/10] crypto: arm64/aes-neonbs " Thomas Huth
2026-08-10 9:30 ` [PATCH v5 07/10] crypto: qat - zeroize crypto_aes_ctx with __cleanup(aes_zeroize_ctx) Thomas Huth
2026-08-10 9:30 ` [PATCH v5 08/10] crypto: safexcel - Simplify the check for a valid AES key Thomas Huth
2026-08-10 14:05 ` Antoine Tenart
2026-08-10 9:30 ` [PATCH v5 09/10] crypto: safexcel - zeroize crypto_aes_ctx with __cleanup(aes_zeroize_ctx) Thomas Huth
2026-08-10 9:30 ` [PATCH v5 10/10] crypto: eip93 - Simplify the check for a valid AES key Thomas Huth
2026-08-10 14:14 ` Antoine Tenart
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=20260810093009.608090-1-thuth@redhat.com \
--to=thuth@redhat.com \
--cc=atenart@kernel.org \
--cc=davem@davemloft.net \
--cc=ebiggers@kernel.org \
--cc=herbert@gondor.apana.org.au \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.