Skip to content

Commit 5002426

Browse files
a3fjarkkojs
authored andcommitted
doc: trusted-encrypted: describe new CAAM trust source
Update documentation for trusted key use with the Cryptographic Acceleration and Assurance Module (CAAM), an IP on NXP SoCs. Reviewed-by: Pankaj Gupta <pankaj.gupta@nxp.com> Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
1 parent e9c5048 commit 5002426

1 file changed

Lines changed: 39 additions & 1 deletion

File tree

Documentation/security/keys/trusted-encrypted.rst

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@ safe.
3535
Rooted to Hardware Unique Key (HUK) which is generally burnt in on-chip
3636
fuses and is accessible to TEE only.
3737

38+
(3) CAAM (Cryptographic Acceleration and Assurance Module: IP on NXP SoCs)
39+
40+
When High Assurance Boot (HAB) is enabled and the CAAM is in secure
41+
mode, trust is rooted to the OTPMK, a never-disclosed 256-bit key
42+
randomly generated and fused into each SoC at manufacturing time.
43+
Otherwise, a common fixed test key is used instead.
44+
3845
* Execution isolation
3946

4047
(1) TPM
@@ -46,6 +53,10 @@ safe.
4653
Customizable set of operations running in isolated execution
4754
environment verified via Secure/Trusted boot process.
4855

56+
(3) CAAM
57+
58+
Fixed set of operations running in isolated execution environment.
59+
4960
* Optional binding to platform integrity state
5061

5162
(1) TPM
@@ -63,6 +74,11 @@ safe.
6374
Relies on Secure/Trusted boot process for platform integrity. It can
6475
be extended with TEE based measured boot process.
6576

77+
(3) CAAM
78+
79+
Relies on the High Assurance Boot (HAB) mechanism of NXP SoCs
80+
for platform integrity.
81+
6682
* Interfaces and APIs
6783

6884
(1) TPM
@@ -74,10 +90,13 @@ safe.
7490
TEEs have well-documented, standardized client interface and APIs. For
7591
more details refer to ``Documentation/staging/tee.rst``.
7692

93+
(3) CAAM
94+
95+
Interface is specific to silicon vendor.
7796

7897
* Threat model
7998

80-
The strength and appropriateness of a particular TPM or TEE for a given
99+
The strength and appropriateness of a particular trust source for a given
81100
purpose must be assessed when using them to protect security-relevant data.
82101

83102

@@ -104,6 +123,12 @@ selected trust source:
104123
from platform specific hardware RNG or a software based Fortuna CSPRNG
105124
which can be seeded via multiple entropy sources.
106125

126+
* CAAM: Kernel RNG
127+
128+
The normal kernel random number generator is used. To seed it from the
129+
CAAM HWRNG, enable CRYPTO_DEV_FSL_CAAM_RNG_API and ensure the device
130+
is probed.
131+
107132
Users may override this by specifying ``trusted.rng=kernel`` on the kernel
108133
command-line to override the used RNG with the kernel's random number pool.
109134

@@ -193,6 +218,19 @@ Usage::
193218
specific to TEE device implementation. The key length for new keys is always
194219
in bytes. Trusted Keys can be 32 - 128 bytes (256 - 1024 bits).
195220

221+
Trusted Keys usage: CAAM
222+
------------------------
223+
224+
Usage::
225+
226+
keyctl add trusted name "new keylen" ring
227+
keyctl add trusted name "load hex_blob" ring
228+
keyctl print keyid
229+
230+
"keyctl print" returns an ASCII hex copy of the sealed key, which is in a
231+
CAAM-specific format. The key length for new keys is always in bytes.
232+
Trusted Keys can be 32 - 128 bytes (256 - 1024 bits).
233+
196234
Encrypted Keys usage
197235
--------------------
198236

0 commit comments

Comments
 (0)