]> git.baikalelectronics.ru Git - kernel.git/commit
KEYS: trusted: Introduce support for NXP CAAM-based trusted keys
authorAhmad Fatoum <a.fatoum@pengutronix.de>
Fri, 13 May 2022 14:57:03 +0000 (16:57 +0200)
committerJarkko Sakkinen <jarkko@kernel.org>
Mon, 23 May 2022 15:47:50 +0000 (18:47 +0300)
commitd9e5cdbcbd856080ab52e33e78ca709967d116de
tree2f16c468f36a2fda80c2b74523430fcc5273c8d8
parentf1ed2507375436b278a6abff81f468e625c9f18e
KEYS: trusted: Introduce support for NXP CAAM-based trusted keys

The Cryptographic Acceleration and Assurance Module (CAAM) is an IP core
built into many newer i.MX and QorIQ SoCs by NXP.

The CAAM does crypto acceleration, hardware number generation and
has a blob mechanism for encapsulation/decapsulation of sensitive material.

This blob mechanism depends on a device specific random 256-bit One Time
Programmable Master Key that is fused in each SoC at manufacturing
time. This key is unreadable and can only be used by the CAAM for AES
encryption/decryption of user data.

This makes it a suitable backend (source) for kernel trusted keys.

Previous commits generalized trusted keys to support multiple backends
and added an API to access the CAAM blob mechanism. Based on these,
provide the necessary glue to use the CAAM for trusted keys.

Reviewed-by: David Gstir <david@sigma-star.at>
Reviewed-by: Pankaj Gupta <pankaj.gupta@nxp.com>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Tested-by: Tim Harvey <tharvey@gateworks.com>
Tested-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Tested-by: Pankaj Gupta <pankaj.gupta@nxp.com>
Tested-by: Michael Walle <michael@walle.cc> # on ls1028a (non-E and E)
Tested-by: John Ernberg <john.ernberg@actia.se> # iMX8QXP
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
Documentation/admin-guide/kernel-parameters.txt
include/keys/trusted_caam.h [new file with mode: 0644]
security/keys/trusted-keys/Kconfig
security/keys/trusted-keys/Makefile
security/keys/trusted-keys/trusted_caam.c [new file with mode: 0644]
security/keys/trusted-keys/trusted_core.c