From: Eric Biggers <ebiggers@kernel.org>
To: Dominique Martinet <asmadeus@codewreck.org>
Cc: demiobenour@gmail.com,
Harald Freudenberger <freude@linux.ibm.com>,
acme@kernel.org, adrian.hunter@intel.com,
alexander.shishkin@linux.intel.com, ardb@kernel.org,
axboe@kernel.dk, corbet@lwn.net, davem@davemloft.net,
edumazet@google.com, herbert@gondor.apana.org.au,
horms@kernel.org, io-uring@vger.kernel.org, irogers@google.com,
james.clark@linaro.org, jolsa@kernel.org, kuba@kernel.org,
kuniyu@google.com, linux-crypto@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-perf-users@vger.kernel.org, mark.rutland@arm.com,
mingo@redhat.com, namhyung@kernel.org, netdev@vger.kernel.org,
pabeni@redhat.com, peterz@infradead.org,
skhan@linuxfoundation.org, willemb@google.com,
linux-s390@vger.kernel.org
Subject: Re: [PATCH 2/3] AF_ALG: Drop support for off-CPU cryptography
Date: Fri, 24 Jul 2026 18:09:51 +0000 [thread overview]
Message-ID: <20260724180951.GA1572592@google.com> (raw)
In-Reply-To: <amOTjPW__CNZui3_@codewreck.org>
On Sat, Jul 25, 2026 at 01:32:12AM +0900, Dominique Martinet wrote:
> > There's no "tk(cbc(aes))" algorithm in the upstream kernel. So, it's
> > not possible that this ever worked with upstream. Given that, there's
> > no regression in upstream for this program, and it wouldn't be
> > appropriate to consider a sysctl knob in upstream at this time.
>
> Bleh, you are correct, it's an NXP patch in
> drivers/crypto/caam/caamalg.c that they've been carrying in their
> tree(s) since 2018[1] and has apparently never been upstreamed...
> [1] https://github.com/nxp-imx/linux-imx/commit/6868c9e49c1854028fb46022daac3b1b10ca2c70
>
> Sorry for not having checked, I was hoping for better.
> (I should be used to it by now...)
>
>
> Regardless of the specific algorithm, most recent SoCs flaunt some
> "secure element" or similiar hardware-backed keys (so one wouldn't be
> able to decrypt $whatever without running on the specific board it was
> intended for); I'm sure _some_ of them are upstream?
> (Never used it so not sure if they are reachable from af_alg, but for
> example drivers/crypto/ccree/cc_cipher.c talks about hardware key...)
>
> There's not much I can do about the vendor's kernel I'm stuck with, but
> that doesn't make having encryption material not accessible to userspace
> useless as a concept;
> forgetting about the sysctl for now, what are the alternatives API this
> kind of implementations could be based on?
>
> I guess I should start looking at how tpm backed encryption works,
> some other day, it's getting late here...
First, we should remember that implementing hardware-bound keys via a
standalone crypto engine is a dated approach. Inline crypto engines and
CPUs, which work much better than and are much easier to use than legacy
standalone crypto engines, can support hardware-bound keys as well. The
former is already supported, and is already being widely used, in the
kernel via the hardware-wrapped inline crypto keys feature. For the
latter, see e.g. RISC-V High Assurance Cryptography. In the CPU case no
UAPI is even needed; userspace can just use it directly.
But with that being said, yes, there are a few in-tree drivers that
register "paes" algorithms with the crypto_skcipher or crypto_aead APIs,
or "phmac" with crypto_ahash. That made them accessible via AF_ALG.
Of course, no use of these via AF_ALG has actually been confirmed yet.
Note that any such use would be unrelated to any use via dm-crypt or
dm-integrity, as those features call the kernel's crypto code directly.
But if any are confirmed and we end up needing to allowlist any of these
specific hardware-bound key algorithms in AF_ALG for compatibility
reasons, we can do that. That does not mean we should allowlist
out-of-tree algorithms, or asynchronous algorithms in general.
We should also remember that AF_ALG has never actually supported
creating hardware-bound keys. Anyone using it actually needs to use a
different UAPI to create the key. This is driver-specific. For CAAM it
seems to involve keyctl() calls, whereas for s390 it's /dev/pkey. Any
userspace program that (theoretically) would be using either one has to
know which type of hardware it's talking to anyway.
So with this being a dated approach and also driver-specific anyway, and
with at least one driver using a char device already, I think the
replacement here (if any is needed for the few standalone crypto engine
drivers that implement this) would just be a driver-specific char device
with the minimum functionality required. We shouldn't overthink things.
- Eric
next prev parent reply other threads:[~2026-07-24 18:09 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-23 19:43 [PATCH 0/3] AF_ALG: Remove support for AIO and old-style drivers Demi Marie Obenour
2026-05-23 19:43 ` Demi Marie Obenour via B4 Relay
2026-05-23 19:43 ` [PATCH 1/3] net: Remove support for AIO on sockets Demi Marie Obenour
2026-05-23 19:43 ` Demi Marie Obenour via B4 Relay
2026-05-25 8:03 ` Christoph Hellwig
2026-05-26 15:58 ` Jens Axboe
2026-05-27 8:13 ` Christoph Hellwig
2026-05-28 16:56 ` Jens Axboe
2026-05-29 13:59 ` Christoph Hellwig
2026-05-27 1:40 ` Jakub Kicinski
2026-05-30 0:47 ` sashiko-bot
2026-05-23 19:43 ` [PATCH 2/3] AF_ALG: Drop support for off-CPU cryptography Demi Marie Obenour
2026-05-23 19:43 ` Demi Marie Obenour via B4 Relay
2026-05-30 0:47 ` sashiko-bot
2026-06-03 13:33 ` Harald Freudenberger
2026-07-24 15:35 ` Dominique Martinet
2026-07-24 16:00 ` Eric Biggers
2026-07-24 16:32 ` Dominique Martinet
2026-07-24 18:09 ` Eric Biggers [this message]
2026-07-24 20:35 ` Demi Marie Obenour
2026-05-23 19:43 ` [PATCH 3/3] AF_ALG: Document that it is *always* slower Demi Marie Obenour
2026-05-23 19:43 ` Demi Marie Obenour via B4 Relay
2026-05-30 0:47 ` sashiko-bot
2026-05-29 6:09 ` [PATCH 0/3] AF_ALG: Remove support for AIO and old-style drivers Herbert Xu
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=20260724180951.GA1572592@google.com \
--to=ebiggers@kernel.org \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=ardb@kernel.org \
--cc=asmadeus@codewreck.org \
--cc=axboe@kernel.dk \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=demiobenour@gmail.com \
--cc=edumazet@google.com \
--cc=freude@linux.ibm.com \
--cc=herbert@gondor.apana.org.au \
--cc=horms@kernel.org \
--cc=io-uring@vger.kernel.org \
--cc=irogers@google.com \
--cc=james.clark@linaro.org \
--cc=jolsa@kernel.org \
--cc=kuba@kernel.org \
--cc=kuniyu@google.com \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=peterz@infradead.org \
--cc=skhan@linuxfoundation.org \
--cc=willemb@google.com \
/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.