105 lines
4.9 KiB
Diff
105 lines
4.9 KiB
Diff
From 7e9bb6c3a91a5da2792010f42df88ab9f80e8093 Mon Sep 17 00:00:00 2001
|
|
From: Matthew Dempsky <matthew@dempsky.org>
|
|
Date: Tue, 27 Aug 2019 18:11:27 -0700
|
|
Subject: [PATCH] tpm2_getcap: fix misspelling of TPM2_PT_HR_ constants
|
|
|
|
tpm2-tss mispelled some of these constants as TPM2_PT_TPM2_HR_*
|
|
instead of just TPM2_PT_HR_*, and tpm2_getcap blindly followed suit.
|
|
|
|
This commit switches tpm2_getcap to use the proper names, and to
|
|
define them locally if they're missing. Once tpm2-tools can assume a
|
|
fixed tpm2-tss, this workaround can be removed.
|
|
|
|
Updates tpm2-software/tpm2-tss#1500.
|
|
|
|
Signed-off-by: Matthew Dempsky <matthew@dempsky.org>
|
|
---
|
|
tools/tpm2_getcap.c | 37 +++++++++++++++++++++++++------------
|
|
1 file changed, 25 insertions(+), 12 deletions(-)
|
|
|
|
diff --git a/tools/tpm2_getcap.c b/tools/tpm2_getcap.c
|
|
index 9b15e3b..8b753dd 100644
|
|
--- a/tools/tpm2_getcap.c
|
|
+++ b/tools/tpm2_getcap.c
|
|
@@ -38,6 +38,19 @@
|
|
#include "tpm2_tool.h"
|
|
#include "tpm2_util.h"
|
|
|
|
+/*
|
|
+ * Older versions of tpm2-tss misspelled these constants' names.
|
|
+ * See https://github.com/tpm2-software/tpm2-tss/issues/1500.
|
|
+ */
|
|
+#ifndef TPM2_PT_HR_TRANSIENT_MIN
|
|
+#define TPM2_PT_HR_TRANSIENT_MIN ((TPM2_PT) (TPM2_PT_FIXED + 14))
|
|
+#define TPM2_PT_HR_PERSISTENT_MIN ((TPM2_PT) (TPM2_PT_FIXED + 15))
|
|
+#define TPM2_PT_HR_NV_INDEX ((TPM2_PT) (TPM2_PT_VAR + 2))
|
|
+#define TPM2_PT_HR_TRANSIENT_AVAIL ((TPM2_PT) (TPM2_PT_VAR + 7))
|
|
+#define TPM2_PT_HR_PERSISTENT ((TPM2_PT) (TPM2_PT_VAR + 8))
|
|
+#define TPM2_PT_HR_PERSISTENT_AVAIL ((TPM2_PT) (TPM2_PT_VAR + 9))
|
|
+#endif
|
|
+
|
|
/* convenience macro to convert flags into "set" / "clear" strings */
|
|
#define prop_str(val) val ? "set" : "clear"
|
|
/* number of eleents in the capability_map array */
|
|
@@ -313,11 +313,11 @@ dump_tpm_properties_fixed (TPMS_TAGGED_PROPERTY properties[],
|
|
case TPM2_PT_INPUT_BUFFER:
|
|
tpm2_tool_output ("TPM2_PT_INPUT_BUFFER: 0x%08x\n", value);
|
|
break;
|
|
- case TPM2_PT_TPM2_HR_TRANSIENT_MIN:
|
|
- tpm2_tool_output ("TPM2_PT_TPM2_HR_TRANSIENT_MIN: 0x%08x\n", value);
|
|
+ case TPM2_PT_HR_TRANSIENT_MIN:
|
|
+ tpm2_tool_output ("TPM2_PT_HR_TRANSIENT_MIN: 0x%08x\n", value);
|
|
break;
|
|
- case TPM2_PT_TPM2_HR_PERSISTENT_MIN:
|
|
- tpm2_tool_output ("TPM2_PT_TPM2_HR_PERSISTENT_MIN: 0x%08x\n", value);
|
|
+ case TPM2_PT_HR_PERSISTENT_MIN:
|
|
+ tpm2_tool_output ("TPM2_PT_HR_PERSISTENT_MIN: 0x%08x\n", value);
|
|
break;
|
|
case TPM2_PT_HR_LOADED_MIN:
|
|
tpm2_tool_output ("TPM2_PT_HR_LOADED_MIN: 0x%08x\n", value);
|
|
@@ -428,8 +428,8 @@ dump_tpm_properties_var (TPMS_TAGGED_PROPERTY properties[],
|
|
case TPM2_PT_STARTUP_CLEAR:
|
|
dump_startup_clear_attrs ((TPMA_STARTUP_CLEAR)value);
|
|
break;
|
|
- case TPM2_PT_TPM2_HR_NV_INDEX:
|
|
- tpm2_tool_output ("TPM2_PT_TPM2_HR_NV_INDEX: 0x%08x\n", value);
|
|
+ case TPM2_PT_HR_NV_INDEX:
|
|
+ tpm2_tool_output ("TPM2_PT_HR_NV_INDEX: 0x%08x\n", value);
|
|
break;
|
|
case TPM2_PT_HR_LOADED:
|
|
tpm2_tool_output ("TPM2_PT_HR_LOADED: 0x%08x\n", value);
|
|
@@ -443,14 +443,14 @@ dump_tpm_properties_var (TPMS_TAGGED_PROPERTY properties[],
|
|
case TPM2_PT_HR_ACTIVE_AVAIL:
|
|
tpm2_tool_output ("TPM2_PT_HR_ACTIVE_AVAIL: 0x%08x\n", value);
|
|
break;
|
|
- case TPM2_PT_TPM2_HR_TRANSIENT_AVAIL:
|
|
- tpm2_tool_output ("TPM2_PT_TPM2_HR_TRANSIENT_AVAIL: 0x%08x\n", value);
|
|
+ case TPM2_PT_HR_TRANSIENT_AVAIL:
|
|
+ tpm2_tool_output ("TPM2_PT_HR_TRANSIENT_AVAIL: 0x%08x\n", value);
|
|
break;
|
|
- case TPM2_PT_TPM2_HR_PERSISTENT:
|
|
- tpm2_tool_output ("TPM2_PT_TPM2_HR_PERSISTENT: 0x%08x\n", value);
|
|
+ case TPM2_PT_HR_PERSISTENT:
|
|
+ tpm2_tool_output ("TPM2_PT_HR_PERSISTENT: 0x%08x\n", value);
|
|
break;
|
|
- case TPM2_PT_TPM2_HR_PERSISTENT_AVAIL:
|
|
- tpm2_tool_output ("TPM2_PT_TPM2_HR_PERSISTENT_AVAIL: 0x%08x\n", value);
|
|
+ case TPM2_PT_HR_PERSISTENT_AVAIL:
|
|
+ tpm2_tool_output ("TPM2_PT_HR_PERSISTENT_AVAIL: 0x%08x\n", value);
|
|
break;
|
|
case TPM2_PT_NV_COUNTERS:
|
|
tpm2_tool_output ("TPM2_PT_NV_COUNTERS: 0x%08x\n", value);
|
|
diff --git a/tools/tpm2_listpersistent.c b/tools/tpm2_listpersistent.c
|
|
index 45da1a4..d693e6c 100644
|
|
--- a/tools/tpm2_listpersistent.c
|
|
+++ b/tools/tpm2_listpersistent.c
|
|
@@ -152,7 +152,7 @@ int tpm2_tool_onrun(TSS2_SYS_CONTEXT *sapi_context, tpm2_option_flags flags) {
|
|
|
|
UINT32 property = tpm2_util_endian_swap_32(TPM2_HT_PERSISTENT);
|
|
rval = TSS2_RETRY_EXP(Tss2_Sys_GetCapability(sapi_context, 0, TPM2_CAP_HANDLES,
|
|
- property, TPM2_PT_TPM2_HR_PERSISTENT, &moreData,
|
|
+ property, TPM2_PT_HR_PERSISTENT, &moreData,
|
|
&capabilityData, 0));
|
|
if(rval != TPM2_RC_SUCCESS)
|
|
{
|