Re: [PATCH v2 0/5] crypto: add algif_akcipher user space API

From: Stephan Mueller
Date: Tue Oct 27 2015 - 21:18:46 EST

Am Mittwoch, 28. Oktober 2015, 09:37:02 schrieb David Woodhouse:

Hi David,

> On Wed, 2015-10-28 at 00:47 +0100, Stephan Mueller wrote:
> > Ohh, I see. So, you are saying that there should not be a setpub/privkey
> > for the akcipher AF_ALG interface?!
> >
> > If somebody wants to use akcipher, he shall set the key via the keyring
> > and
> > akcipher shall obtain it from the keyring?
> >
> > However, for the actual data shoveling, AF_ALG should still be used?
> That might seem ideal, but Herbert doesn't want that â he wants
> akcipher to work *only* with its own internal keys, not with keys from
> the kernel's key subsystem.
> David has patches (not upstream yet; used for testing) which expose a
> verify operation for kernel keys through sys_keyctl(). Adding the other
> three operations would be feasible.
> Perhaps if we *really* want this to appear through AF_ALG, the key
> subsystem could register its own RSA (and other) implementation(s) with
> the crypto subsystem. Then we could find some way that we can pass the
> key_serial_t through alg_setkey() instead of the actual key data
> without it (or Herbert) noticing that's what we're doing. But... ick.
> And I don't think we can select algorithms based on the actual key
> rather than the type. We should do it properly, if at all. And define
> the API as taking key IDs instead of having it be a nasty special-case
> hack for a specific (but really, very generic) algorithm provider.

First of all, I personally would not insist on an AF_ALG for pure akcipher
externalization. Integrating it with the key subsystem looks like a fine idea.

But that would imply that we tie the crypto API quite hard with the key
retention system which I guess may not be warranted.

Note, I was playing with the idea of using the key retention system for the
kernel crypto API myself (hence also my patch to add key wrapping support
which has its roots there).

But having a tie between both, the kernel crypto API and the key system, that
cannot be cut any more is something I am not sure about. Both should and would
work in isolation of each other as both serve different needs.

But I agree that when having both and the user wants proper key management,
the key system should be used. But isn't that already a policy decision of the
user/administrator? IIRC, the kernel should not hard-wire policies that may or
may not be wanted by user space. Hence, the decision about connecting both
systems should rest in user space. And the kernel should support a joint
operation of both.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at