mirror of
https://github.com/systemd/systemd.git
synced 2026-08-13 17:08:14 +00:00
pcrlock: deal with firmwares which understand TPM but where no TPM is available
This is a potentially common case in VMs: firmwares might know the concept of TPMs, but the hardware is not enabled in the specific VM. Let's handle this case nicely.
This commit is contained in:
@@ -2899,6 +2899,8 @@ int tpm2_get_best_pcr_bank(
|
||||
log_debug("Boot loader didn't set the LoaderTpm2ActivePcrBanks EFI variable or EFI support is unavailable, we have to guess the used PCR banks.");
|
||||
} else if (efi_banks == UINT32_MAX)
|
||||
log_debug("Boot loader set the LoaderTpm2ActivePcrBanks EFI variable to indicate that the GetActivePcrBanks() API is not available in the firmware. We have to guess the used PCR banks.");
|
||||
else if (efi_banks == 0)
|
||||
log_debug("Boot loader set the LoaderTpm2ActivePcrBanks EFI variable to zero to indicate that TPM support is not available in the firmware. We'll have to guess the used PCR banks.");
|
||||
else {
|
||||
if (BIT_SET(efi_banks, TPM2_ALG_SHA256))
|
||||
*ret = TPM2_ALG_SHA256;
|
||||
@@ -3008,6 +3010,8 @@ int tpm2_get_good_pcr_banks(
|
||||
log_debug("Boot loader didn't set the LoaderTpm2ActivePcrBanks EFI variable or EFI support is unavailable, we have to guess the used PCR banks.");
|
||||
} else if (efi_banks == UINT32_MAX)
|
||||
log_debug("Boot loader set the LoaderTpm2ActivePcrBanks EFI variable to indicate that the GetActivePcrBanks() API is not available in the firmware. We have to guess the used PCR banks.");
|
||||
else if (efi_banks == 0)
|
||||
log_debug("Boot loader set the LoaderTpm2ActivePcrBanks EFI variable to zero to indicate that TPM support is not available in the firmware. We'll have to guess the used PCR banks.");
|
||||
else {
|
||||
FOREACH_ARRAY(hash, tpm2_hash_algorithms, TPM2_N_HASH_ALGORITHMS) {
|
||||
if (!BIT_SET(efi_banks, *hash))
|
||||
|
||||
Reference in New Issue
Block a user