Re: [PATCH v2] crypto: AF_ALG - add support for keys/asymmetric-type

From: David Howells
Date: Wed Jan 13 2016 - 08:31:33 EST


Tadeusz Struk <tstruk@xxxxxxxxx> wrote:

> + pkey = keyring->payload.data[asym_crypto];
> + if (!pkey) {
> + key_put(keyring);
> + goto out;
> + }
> +
> + err = setkey(private, pkey->key, pkey->keylen);
> + key_put(keyring);

Note that you may not assume that there's data there that you can use in this
manner. The key might be a pointer to some hardware device such as a TPM. I
have a TPM asymmetric subtype in progress.

I think this really needs to be driven from a keyctl() because you need to let
the asymmetric subtype decide how it wants to handle this. I would suggest
adding KEYCTL_{ASYM_GETINFO,SIGN,VERIFY,ENCRYPT,DECRYPT} - the problem is how
to pass sufficient arguments, how to decrypt the private key and what metadata
needs to be passed vs what is inline with the data.

David