mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
vTPM/TPM2: Unind group keys and sectors data on disk
Signed-off-by: Quan Xu <quan.xu@intel.com> Acked-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
This commit is contained in:
1 parent
b80533f680
commit
b1fee946d3
1 file changed
+15
-2
@@ -67,6 +67,7 @@ static int find_group_key(struct mem_group *dst,
|
||||
const struct mem_tpm_mgr *parent)
|
||||
{
|
||||
int i, rc, rv = 1;
|
||||
unsigned int olen;
|
||||
struct hash160 buf;
|
||||
struct disk_group_sealed_data sealed;
|
||||
|
||||
@@ -88,7 +89,13 @@ static int find_group_key(struct mem_group *dst,
|
||||
TPM_pcr_digest(&buf, cfg->pcr_selection);
|
||||
if (memcmp(&buf, &cfg->digest_release, 20))
|
||||
continue;
|
||||
rc = TPM_disk_unseal(&sealed, sizeof(sealed), cfg);
|
||||
|
||||
/*TPM 2.0 unbind | TPM 1.x unseal*/
|
||||
if (hw_is_tpm2())
|
||||
rc = TPM2_disk_unbind(&sealed, &olen, cfg);
|
||||
else
|
||||
rc = TPM_disk_unseal(&sealed, sizeof(sealed), cfg);
|
||||
|
||||
if (rc)
|
||||
continue;
|
||||
if (memcmp(&sealed.magic, DISK_GROUP_BOUND_MAGIC, 4))
|
||||
@@ -112,9 +119,15 @@ static int find_group_key(struct mem_group *dst,
|
||||
static int parse_root_key(struct mem_tpm_mgr *dst, struct disk_seal_entry *src)
|
||||
{
|
||||
int rc;
|
||||
unsigned int olen;
|
||||
struct disk_root_sealed_data sealed;
|
||||
|
||||
rc = TPM_disk_unseal(&sealed, sizeof(sealed), src);
|
||||
/*TPM 2.0 unbind | TPM 1.x unseal*/
|
||||
if (hw_is_tpm2())
|
||||
rc = TPM2_disk_unbind(&sealed, &olen, src);
|
||||
else
|
||||
rc = TPM_disk_unseal(&sealed, sizeof(sealed), src);
|
||||
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
|
||||