8181 and the UNIQUE key. Default is to use the UNIQUE key, but selecting
8282 the OTP key can be done via a module parameter (dcp_use_otp_key).
8383
84+ (5) PKWM (PowerVM Key Wrapping Module: IBM PowerVM + Platform KeyStore)
85+
86+ Rooted to a unique, per-LPAR key, which is derived from a system-wide,
87+ randomly generated LPAR root key. Both the per-LPAR keys and the LPAR
88+ root key are stored in hypervisor-owned secure memory at runtime,
89+ and the LPAR root key is additionally persisted in secure locations
90+ such as the processor SEEPROMs and encrypted NVRAM.
91+
8492 * Execution isolation
8593
8694 (1) TPM
@@ -102,6 +110,14 @@ safe.
102110 environment. Only basic blob key encryption is executed there.
103111 The actual key sealing/unsealing is done on main processor/kernel space.
104112
113+ (5) PKWM (PowerVM Key Wrapping Module: IBM PowerVM + Platform KeyStore)
114+
115+ Fixed set of cryptographic operations done on on-chip hardware
116+ cryptographic acceleration unit NX. Keys for wrapping and unwrapping
117+ are managed by PowerVM Platform KeyStore, which stores keys in an
118+ isolated in-memory copy in secure hypervisor memory, as well as in a
119+ persistent copy in hypervisor-encrypted NVRAM.
120+
105121 * Optional binding to platform integrity state
106122
107123 (1) TPM
@@ -129,6 +145,11 @@ safe.
129145 Relies on Secure/Trusted boot process (called HAB by vendor) for
130146 platform integrity.
131147
148+ (5) PKWM (PowerVM Key Wrapping Module: IBM PowerVM + Platform KeyStore)
149+
150+ Relies on secure and trusted boot process of IBM Power systems for
151+ platform integrity.
152+
132153 * Interfaces and APIs
133154
134155 (1) TPM
@@ -149,6 +170,11 @@ safe.
149170 Vendor-specific API that is implemented as part of the DCP crypto driver in
150171 ``drivers/crypto/mxs-dcp.c ``.
151172
173+ (5) PKWM (PowerVM Key Wrapping Module: IBM PowerVM + Platform KeyStore)
174+
175+ Platform Keystore has well documented interfaces in PAPR document.
176+ Refer to ``Documentation/arch/powerpc/papr_hcalls.rst ``
177+
152178 * Threat model
153179
154180 The strength and appropriateness of a particular trust source for a given
@@ -191,6 +217,10 @@ selected trust source:
191217 a dedicated hardware RNG that is independent from DCP which can be enabled
192218 to back the kernel RNG.
193219
220+ * PKWM (PowerVM Key Wrapping Module: IBM PowerVM + Platform KeyStore)
221+
222+ The normal kernel random number generator is used to generate keys.
223+
194224Users may override this by specifying ``trusted.rng=kernel `` on the kernel
195225command-line to override the used RNG with the kernel's random number pool.
196226
@@ -321,6 +351,26 @@ Usage::
321351specific to this DCP key-blob implementation. The key length for new keys is
322352always in bytes. Trusted Keys can be 32 - 128 bytes (256 - 1024 bits).
323353
354+ Trusted Keys usage: PKWM
355+ ------------------------
356+
357+ Usage::
358+
359+ keyctl add trusted name "new keylen [options]" ring
360+ keyctl add trusted name "load hex_blob" ring
361+ keyctl print keyid
362+
363+ options:
364+ wrap_flags= ascii hex value of security policy requirement
365+ 0x00: no secure boot requirement (default)
366+ 0x01: require secure boot to be in either audit or
367+ enforced mode
368+ 0x02: require secure boot to be in enforced mode
369+
370+ "keyctl print" returns an ASCII hex copy of the sealed key, which is in format
371+ specific to PKWM key-blob implementation. The key length for new keys is
372+ always in bytes. Trusted Keys can be 32 - 128 bytes (256 - 1024 bits).
373+
324374Encrypted Keys usage
325375--------------------
326376
0 commit comments