]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tpm2-util: load external key into NULL hierarchy if private key is provided
authorLennart Poettering <lennart@poettering.net>
Tue, 16 Apr 2024 13:01:41 +0000 (15:01 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 18 Apr 2024 16:12:23 +0000 (18:12 +0200)
If we load an external key into the TPM we must do so in the NULL
hierarchy. An external key after all is one that is not wrapped by any
hierarchy's seed.

See TPM2 spec, Part 3, Section 12.3.1

src/shared/tpm2-util.c

index e012dd2c5c7d2f85b2bff55afb9e623499455410..51c01b6c9c7a2b27694a62ff6a49d819ab67789c 100644 (file)
@@ -2242,9 +2242,9 @@ static int tpm2_load_external(
 #if HAVE_TSS2_ESYS3
                         /* tpm2-tss >= 3.0.0 requires a ESYS_TR_RH_* constant specifying the requested
                          * hierarchy, older versions need TPM2_RH_* instead. */
-                        ESYS_TR_RH_OWNER,
+                        private ? ESYS_TR_RH_NULL : ESYS_TR_RH_OWNER,
 #else
-                        TPM2_RH_OWNER,
+                        private ? TPM2_RH_NULL : TPM2_RH_OWNER,
 #endif
                         &handle->esys_handle);
         if (rc != TSS2_RC_SUCCESS)