|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 13/14] vTPM/TPM2: Unind group keys and sectors data on disk
Signed-off-by: Quan Xu <quan.xu@xxxxxxxxx>
---
stubdom/vtpmmgr/disk_read.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/stubdom/vtpmmgr/disk_read.c b/stubdom/vtpmmgr/disk_read.c
index 33aacdd..e9dc20f 100644
--- a/stubdom/vtpmmgr/disk_read.c
+++ b/stubdom/vtpmmgr/disk_read.c
@@ -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;
--
1.8.3.2
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |