All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Biggers <ebiggers@kernel.org>
To: Richard Weinberger <richard.weinberger@gmail.com>
Cc: Dominique Martinet <asmadeus@codewreck.org>,
	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: Sun, 26 Jul 2026 08:50:24 -0700	[thread overview]
Message-ID: <20260726155024.GB1673@sol> (raw)
In-Reply-To: <CAFLxGvyBGzfwh61F5YkYqctNPCQJCpFOwTtKfDs4L+iK8WJZpQ@mail.gmail.com>

On Sun, Jul 26, 2026 at 09:28:14AM +0200, Richard Weinberger wrote:
> On Sun, Jul 26, 2026 at 12:04 AM Eric Biggers <ebiggers@kernel.org> wrote:
> > > You can create a CAAM BLOB (a generated and sealed key) using the
> > > trusted keys subsystem and use this BLOB
> > > later in AF_ALG to perform AES with a key invisible to userspace.
> > >
> > > e.g.
> > > kid=$(keyctl add trusted mykey "new 32 pk" @s)
> > > keyctl print $kid | xxd -r -p > blob.bin
> > > Then just create a caam_pkey_info in userspace and feed it into AF_ALG
> > > and perform AES with it.
> >
> > Well, specifically AES-CBC.  That's the only one that is in the driver.
> 
> Yes.
> 
> > > So, pretty please,  if you kill AF_ALG and all this, offer some way to
> > > achieve the same in userspace.
> >
> > If needed, "cbc(paes)" and/or "cbc-paes-caam" (whichever name it is
> > being accessed as) can be allowed as a special case, as a stop-gap.
> 
> Would be great.
> 
> > This would need confirmed use of that specific algorithm with upstream,
> > which we don't quite have yet.  Dominique had a confirmed use of
> > "tk(cbc(aes))", but that has never existed upstream in the first place,
> > so it's not something that could be allowlisted upstream.
> 
> It's "cbc(paes)".
> 
> From one of my demo applications:
> 
> struct sockaddr_alg sa = {
>        .salg_family = AF_ALG,
>        .salg_type = "skcipher",
>        .salg_name = "cbc(paes)",
> };
> 
> > You've only mentioned that it "can" be used in this way in upstream.
> > Can you confirm that it *is* used, and with an actual upstream algorithm
> > name, and if so which one(s)?  And if so, would you also be able to
> > share whether this is for dm-crypt or not?  We should remember that
> > dm-crypt accepts keys directly and AF_ALG is not needed to use it.
> 
> Well, if you require me to point to some open source application, sorry I can't.
> 
> But no, the use cases I know about are not dm-crypt.
> It's more allowing to encrypt/decrypt data in userspace without being able to
> extract the key from the device. Since the key is hardware bound too,
> it is device
> specific and you cannot decrypt on device B what you have encrypted on A, even
> if you share the BLOB.
> So, it's more like a building block for a poor man's secure element.
> 
> At $dayjob we've been recommending AF_ALG because it's a standard interface.
> Not like other ad-hoc horrors via sysfs or worse we've seen on some BSPs.

Then I would suggest that skcipher_bind() should check if the name is
"cbc(paes)", and if so use 0 instead of AF_ALG_CRYPTOAPI_MASK.  Please
go ahead and send a patch against mainline (for v7.2-rc6) if you're
interested.

On cryptodev/master (future 7.3) it should get an entry in the new
skcipher_allowlist as well: { "cbc(paes)", true }.  That would be a
separate patch.

With those it will keep working as root.  (And you mentioned in your
other email it's used only as root anyway.)

- Eric

  reply	other threads:[~2026-07-26 15:52 UTC|newest]

Thread overview: 37+ 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
2026-07-25  7:37             ` Dominique Martinet
2026-07-25 10:18               ` Simon Richter
2026-07-25 17:38               ` Demi Marie Obenour
2026-07-25 17:49               ` Eric Biggers
2026-07-27 23:40                 ` Dominique Martinet
2026-07-24 20:35           ` Demi Marie Obenour
2026-07-25 20:55           ` Richard Weinberger
2026-07-25 22:04             ` Eric Biggers
2026-07-25 23:09               ` Eric Biggers
2026-07-26  7:30                 ` Richard Weinberger
2026-07-26  7:28               ` Richard Weinberger
2026-07-26 15:50                 ` Eric Biggers [this message]
2026-07-26 20:10                   ` Richard Weinberger
2026-07-27 17:20                     ` Eric Biggers
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=20260726155024.GB1673@sol \
    --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=richard.weinberger@gmail.com \
    --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.