tpm2: handle older tpm enrollments without a saved pcr bank
Older code did not save the pcr bank (i.e. pcr hash algorithm), and instead let
tpm2_unseal() find the best pcr bank to use. In commit
2cd9d57548 we changed tpm2_unseal() to no longer
handle an unset pcr bank. This adds back in the handling of an unset pcr_bank
so older sealed data should continue to work.
This commit is contained in:
committed by
Luca Boccassi
parent
4916cc4750
commit
730d6ab930
@@ -3431,6 +3431,14 @@ int tpm2_unseal(const char *device,
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
/* Older code did not save the pcr_bank, and unsealing needed to detect the best pcr bank to use,
|
||||
* so we need to handle that legacy situation. */
|
||||
if (pcr_bank == UINT16_MAX) {
|
||||
r = tpm2_get_best_pcr_bank(c, hash_pcr_mask|pubkey_pcr_mask, &pcr_bank);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
_cleanup_(tpm2_handle_freep) Tpm2Handle *primary_handle = NULL;
|
||||
if (srk_buf) {
|
||||
r = tpm2_handle_new(c, &primary_handle);
|
||||
|
||||
Reference in New Issue
Block a user