[RFC PATCH 0/2] Create CAAM HW key in linux keyring and use in dmcrypt

Franck Lenormand franck.lenormand at nxp.com
Thu Mar 7 13:02:58 UTC 2019

> -----Original Message-----
> From: Jan Lübbe <jlu at pengutronix.de>
> Sent: Wednesday, March 6, 2019 5:48 PM
> To: Franck Lenormand <franck.lenormand at nxp.com>; linux-
> kernel at vger.kernel.org; linux-security-module at vger.kernel.org;
> keyrings at vger.kernel.org
> Cc: Horia Geanta <horia.geanta at nxp.com>; Silvano Di Ninno
> <silvano.dininno at nxp.com>; agk at redhat.com; snitzer at redhat.com; dm-
> devel at redhat.com; dhowells at redhat.com; jmorris at namei.org;
> serge at hallyn.com; David Gstir <david at sigma-star.at>
> Subject: Re: [RFC PATCH 0/2] Create CAAM HW key in linux keyring and use in
> dmcrypt
> Hi Franck,
> thanks for working on this!
> On Fri, 2019-03-01 at 17:09 +0100, Franck LENORMAND wrote:
> > The creation of such structures and its use was not exposed to
> > userspace so it was complicated to use and required custom
> > development. We would like to ease this using interface which are known
> and used:
> >  - Linux key retention service : Allow to generate or load keys in a
> >         keyring which can be used by applications.
> >  - dm-crypt : device mapper allowing to encrypt data.
> >
> > The capacity to generate or load keys already available in the Linux
> > key retention service does not allows to exploit CAAM capabilities
> > hence we need to create a new key_type. The new key type "caam_tk"
> allows to:
> >  - Create a black key from random
> >  - Create a black key from a red key
> >  - Load a black blob to retrieve the black key
> On 2018-07-23, Udit Agarwal <udit.agarwal at nxp.com> sent a series which
> seems related to this:
> [PATCH v2 1/2] security/keys/secure_key: Adds the secure key support based
> on CAAM.
> [PATCH v2 2/2] encrypted_keys: Adds support for secure key-type as master
> key.
> Is this series intended to continue that work and cover the same uses- cases?
> If I remember correctly, the CAAM also supports marking blobs to allow or
> disallow exporting the encapsulated key from the hardware. Or is this
> unneeded and we could encrypt/decrypt other (less critical) key material
> against the tk(cbc(aes)) CAAM key via the keyring mechanisms?
> Best regards,
> Jan
> --
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 |
> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fww
> w.pengutronix.de%2F&amp;data=02%7C01%7Cfranck.lenormand%40nxp.co
> m%7C29ab89e99f9040e30aa908d6a2537967%7C686ea1d3bc2b4c6fa92cd99c
> 5c301635%7C0%7C0%7C636874876732153093&amp;sdata=byKD4SmYfzMTs
> FK6cX5L81%2B9hxxqTbnOLf7%2BAJgXylU%3D&amp;reserved=0  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

Hello Jan,

The current series is aimed to change which key type is acceptable in dm-crypt. Without
this change, the key type cannot be integrated properly.

About the key type implementation:
The implementation of the key type is an improvement related to the work of Udit Agarwal.

The transform tk(cbc(aes)) is intended to receive key material whose format can change
hence the "tagging" to handle it properly. It could, for example, handle plain keys, black keys or blobs as key material and this material would be stored in keyring.


More information about the Linux-security-module-archive mailing list