All of lore.kernel.org
 help / color / mirror / Atom feed
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 01/10] crypto: Provide a wrapper function for zeroizing crypto_aes_ctx
Date: Mon, 10 Aug 2026 11:29:56 +0200	[thread overview]
Message-ID: <20260810093009.608090-2-thuth@redhat.com> (raw)
In-Reply-To: <20260810093009.608090-1-thuth@redhat.com>

From: Thomas Huth <thuth@redhat.com>

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 some drivers). Some other call sites miss
to clear crypto_aes_ctx completely.

Provide an aes_zeroize_ctx() helper that can be used with __cleanup()
to automatically zeroize the context when it goes out of scope.

Acked-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 include/crypto/aes.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/include/crypto/aes.h b/include/crypto/aes.h
index 3279cfa546085..e70607249ae5c 100644
--- a/include/crypto/aes.h
+++ b/include/crypto/aes.h
@@ -159,6 +159,19 @@ static inline int aes_check_keylen(size_t keylen)
 int aes_expandkey(struct crypto_aes_ctx *ctx, const u8 *in_key,
 		  unsigned int key_len);
 
+/**
+ * aes_zeroize_ctx - Clear a crypto_aes_ctx structure
+ * @ctx:	The location of the context that should be zeroized
+ *
+ * Explicitly fills the crypto_aes_ctx with zeroes. This should be done
+ * once the context is not required anymore to avoid that its contents
+ * are leaked on the stack or heap (if not using kfree_sensitive()).
+ */
+static inline void aes_zeroize_ctx(struct crypto_aes_ctx *ctx)
+{
+	memzero_explicit(ctx, sizeof(*ctx));
+}
+
 /*
  * The following functions are temporarily exported for use by the AES mode
  * implementations in arch/$(SRCARCH)/crypto/.  These exports will go away when
-- 
2.55.0


  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 [PATCH v5 00/10] crypto: Provide a function for zeroizing crypto_aes_ctx Thomas Huth
2026-08-10  9:29 ` Thomas Huth [this message]
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-2-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.