import tpm2-tools-3.1.1-4.el8

This commit is contained in:
CentOS Sources 2019-05-07 04:16:10 -04:00 committed by Andrew Lukoshko
commit efc19b5f04
6 changed files with 818 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/tpm2-tools-3.1.1.tar.gz

1
.tpm2-tools.metadata Normal file
View File

@ -0,0 +1 @@
45ae47b5b223d48d0dbb2cebfe6ad59fa8ee5d5e SOURCES/tpm2-tools-3.1.1.tar.gz

View File

@ -0,0 +1,43 @@
From 1f3451ee7b046a590b6dfc20b6af010166670ff7 Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas <javierm@redhat.com>
Date: Thu, 12 Jul 2018 19:50:26 +0200
Subject: [PATCH 1/1] Revert "objectattrs: clear before or'ing in values"
This reverts commit e103bbf5117b0b62b358fd15f18f848854fcb0ee.
The tpm2-tools 3.1.0 release contains a backward incompatible change that
was introduced by commit e103bbf5117 ("objectattrs: clear before or'ing
in values"), that changed the way that object attributes were specified.
Before there were a set of default attributes and the user could specify
additional attributes to be used, but after the mentioned commit the user
must specify all attributes.
This is a user visible change that changes the tools semantics, so is not
a suitable change for a MINOR version number increment, according to the
Semantic Versioning document (https://semver.org) since it breaks rule 2:
2.MINOR version when you add functionality in a backwards-compatible manner
Fixes: #1097
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
---
lib/tpm2_attr_util.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/lib/tpm2_attr_util.c b/lib/tpm2_attr_util.c
index d461a744c0d..e43d03f9e0a 100644
--- a/lib/tpm2_attr_util.c
+++ b/lib/tpm2_attr_util.c
@@ -501,7 +501,6 @@ bool tpm2_attr_util_nv_strtoattr(char *attribute_list, TPMA_NV *nvattrs) {
bool tpm2_attr_util_obj_strtoattr(char *attribute_list, TPMA_OBJECT *objattrs) {
- memset(objattrs, 0, sizeof(*objattrs));
return common_strtoattr(attribute_list, objattrs, obj_attr_table, ARRAY_LEN(obj_attr_table));
}
--
2.17.1

View File

@ -0,0 +1,216 @@
From 175e47711c72a8169f94b971c4e9973bbfb04efc Mon Sep 17 00:00:00 2001
From: Joshua Lock <joshua.g.lock@intel.com>
Date: Wed, 5 Sep 2018 23:21:21 +0100
Subject: [PATCH] lib/tpm2_options: restore TCTI configuration environment
variables
The port to TSS2.0 introduced a new unified environment variable to
configure a TCTI, TPM2TOOLS_ENV_TCTI. Unfortunately this also unwittingly
removed the old-style environment variable per TCTI configuration options,
which is a behavioural regression for the 3.x series of tpm2-tools.
Restore the original TPM2TOOLS_* environment variables in addition to the
new style single environment variable.
Fixes issue #1171
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
---
lib/tpm2_options.c | 134 ++++++++++++++++++++++++++++++++++++---------
1 file changed, 107 insertions(+), 27 deletions(-)
diff --git a/lib/tpm2_options.c b/lib/tpm2_options.c
index 751b0eee9819..2531948ecf74 100644
--- a/lib/tpm2_options.c
+++ b/lib/tpm2_options.c
@@ -52,6 +52,10 @@
#endif
#define TPM2TOOLS_ENV_TCTI "TPM2TOOLS_TCTI"
+#define TPM2TOOLS_ENV_TCTI_NAME "TPM2TOOLS_TCTI_NAME"
+#define TPM2TOOLS_ENV_DEVICE "TPM2TOOLS_DEVICE_FILE"
+#define TPM2TOOLS_ENV_SOCK_ADDR "TPM2TOOLS_SOCKET_ADDRESS"
+#define TPM2TOOLS_ENV_SOCK_PORT "TPM2TOOLS_SOCKET_PORT"
#define TPM2TOOLS_ENV_ENABLE_ERRATA "TPM2TOOLS_ENABLE_ERRATA"
tpm2_options *tpm2_options_new(const char *short_opts, size_t len,
@@ -136,13 +140,25 @@ void tpm2_options_free(tpm2_options *opts) {
}
typedef struct tcti_conf tcti_conf;
struct tcti_conf {
- const char *name;
- const char *opts;
+ char *name;
+ char *opts;
};
+/*
+ * Some tcti names changed in TSS 2.0, so in order to not break the
+ * expected options of the 3.X tools series map:
+ * - abrmd -> tabrmd
+ * - socket -> mssim
+ */
static inline const char *fixup_name(const char *name) {
- return !strcmp(name, "abrmd") ? "tabrmd" : name;
+ if (!strcmp(name, "abrmd")) {
+ return "tabrmd";
+ } else if (!strcmp(name, "socket")) {
+ return "mssim";
+ }
+
+ return name;
}
static const char *find_default_tcti(void) {
@@ -165,27 +181,14 @@ static const char *find_default_tcti(void) {
return NULL;
}
-static tcti_conf tcti_get_config(const char *optstr) {
-
- /* set up the default configuration */
- tcti_conf conf = {
- .name = find_default_tcti()
- };
-
- /* no tcti config supplied, get it from env */
- if (!optstr) {
- optstr = getenv (TPM2TOOLS_ENV_TCTI);
- if (!optstr) {
- /* nothing user supplied, use default */
- return conf;
- }
- }
+/* Parse new-style, TSS 2.0, environment variables */
+static void parse_env_tcti(const char *optstr, tcti_conf *conf) {
char *split = strchr(optstr, ':');
if (!split) {
/* --tcti=device */
- conf.name = fixup_name(optstr);
- return conf;
+ conf->name = strdup(fixup_name(optstr));
+ return;
}
/*
@@ -200,24 +203,99 @@ static tcti_conf tcti_get_config(const char *optstr) {
/* Case A */
if (!optstr[0] && !split[1]) {
- return conf;
+ return;
}
/* Case B */
if (!optstr[0]) {
- conf.opts = &split[1];
- return conf;
+ conf->opts = strdup(&split[1]);
+ return;
}
/* Case C */
if (!split[1]) {
- conf.name = fixup_name(optstr);
- return conf;
+ conf->name = strdup(fixup_name(optstr));
+ return;
}
/* Case D */
- conf.name = fixup_name(optstr);
- conf.opts = &split[1];
+ conf->name = strdup(fixup_name(optstr));
+ conf->opts = strdup(&split[1]);
+ return;
+}
+
+static char* parse_device_tcti(void) {
+ const char *device = getenv(TPM2TOOLS_ENV_DEVICE);
+ return strdup(device);
+}
+
+static char* parse_socket_tcti(void) {
+
+ /*
+ * tpm2_tcti_ldr_load() expects conf->opts to be of the format
+ * "host=localhost,port=2321" for the mssim tcti
+ *
+ * Max IPV6 IP address, 45 characters (45)
+ * Ports are 16bit int, 5 characters (5)
+ * "host=", 5 characters (5)
+ * "port=", 5 characters (5)
+ * strlen = 60
+ */
+ size_t optlen = 60;
+ const char *host;
+ const char *port;
+ char *ret = malloc(optlen);
+ if (!ret) {
+ LOG_ERR ("OOM");
+ return NULL;
+ }
+
+ host = getenv(TPM2TOOLS_ENV_SOCK_ADDR);
+ port = getenv(TPM2TOOLS_ENV_SOCK_PORT);
+
+ if (host && port) {
+ snprintf(ret, optlen, "host=%s,port=%s", host, port);
+ } else if (host) {
+ snprintf(ret, optlen, "host=%s", host);
+ } else if (port) {
+ snprintf(ret, optlen, "port=%s", port);
+ }
+ return ret;
+}
+
+static tcti_conf tcti_get_config(const char *optstr) {
+
+ tcti_conf conf = {
+ .name = NULL
+ };
+
+ /* no tcti config supplied, get it from env */
+ if (!optstr) {
+ /*
+ * Check the "old" way of specifying TCTI, using a shared env var and
+ * per-tcti option variables.
+ */
+ optstr = getenv (TPM2TOOLS_ENV_TCTI_NAME);
+ if (optstr) {
+ conf.name = strdup(fixup_name(optstr));
+ if (!strcmp(conf.name, "mssim")) {
+ conf.opts = parse_socket_tcti();
+ } else if (!strcmp(conf.name, "device")) {
+ conf.opts = parse_device_tcti();
+ }
+ } else {
+ /* Check the new way of defining a TCTI using a shared env var */
+ optstr = getenv (TPM2TOOLS_ENV_TCTI);
+ if (optstr) {
+ parse_env_tcti(optstr, &conf);
+ }
+ }
+ }
+
+ if (!conf.name) {
+ conf.name = strdup(find_default_tcti());
+ }
+
return conf;
}
@@ -418,6 +496,8 @@ tpm2_option_code tpm2_handle_options (int argc, char **argv,
if (!flags->enable_errata) {
flags->enable_errata = !!getenv (TPM2TOOLS_ENV_ENABLE_ERRATA);
}
+ free(conf.name);
+ free(conf.opts);
}
rc = tpm2_option_code_continue;
--
2.17.1

View File

@ -0,0 +1,397 @@
From 3598de590a7e9812a2ff4eadfff87e15b5d010a8 Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas <javierm@redhat.com>
Date: Tue, 11 Sep 2018 01:49:25 +0200
Subject: [PATCH] tpm2_getcap: restore tool output to print properties with
TPM_PT prefix
Commit ac9a5d787753 ("update to TSS version 2.0") updated tpm2-tss version
to 2.0. On tpm2-tss, the TPM_PT_* constants where renamed to TPM2_PT_* but
that commit also changed the output of the tpm2_getcap tool to match the
name of the properties.
Unfortunately this is a bacward incompatible change that could break users
that were relying on the tpm2_getcap tool output.
Restore the older output and also fix the tests that check these values.
Fixes: #1175
Reported-by: Vilem Marsik <vmarsik@redhat.com>
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
---
test/system/test_tpm2_dictionarylockout.sh | 6 +-
test/system/test_tpm2_nv.sh | 2 +-
test/system/test_tpm2_quote.sh | 2 +-
tools/tpm2_getcap.c | 132 ++++++++++-----------
4 files changed, 71 insertions(+), 71 deletions(-)
diff --git a/test/system/test_tpm2_dictionarylockout.sh b/test/system/test_tpm2_dictionarylockout.sh
index a90854ac7ea6..d6dac227ed03 100755
--- a/test/system/test_tpm2_dictionarylockout.sh
+++ b/test/system/test_tpm2_dictionarylockout.sh
@@ -40,16 +40,16 @@ trap onerror ERR
tpm2_dictionarylockout -s -n 5 -t 6 -l 7
-if [ "$(tpm2_getcap -c properties-variable | grep TPM2_PT_MAX_AUTH_FAIL | sed -e 's/TPM2_PT_MAX_AUTH_FAIL: \+//')" != "0x00000005" ];then
+if [ "$(tpm2_getcap -c properties-variable | grep TPM_PT_MAX_AUTH_FAIL | sed -e 's/TPM_PT_MAX_AUTH_FAIL: \+//')" != "0x00000005" ]; then
echo "Failure: setting up the number of allowed tries in the lockout parameters"
exit 1
fi
-if [ "$(tpm2_getcap -c properties-variable | grep TPM2_PT_LOCKOUT_INTERVAL | sed -e 's/TPM2_PT_LOCKOUT_INTERVAL: \+//')" != "0x00000006" ];then
+if [ "$(tpm2_getcap -c properties-variable | grep TPM_PT_LOCKOUT_INTERVAL | sed -e 's/TPM_PT_LOCKOUT_INTERVAL: \+//')" != "0x00000006" ]; then
echo "Failure: setting up the lockout period in the lockout parameters"
fi
-if [ "$(tpm2_getcap -c properties-variable | grep TPM2_PT_LOCKOUT_RECOVERY | sed -e 's/TPM2_PT_LOCKOUT_RECOVERY: \+//')" != "0x00000007" ];then
+if [ "$(tpm2_getcap -c properties-variable | grep TPM_PT_LOCKOUT_RECOVERY | sed -e 's/TPM_PT_LOCKOUT_RECOVERY: \+//')" != "0x00000007" ]; then
echo "Failure: setting up the lockout recovery period in the lockout parameters"
fi
diff --git a/test/system/test_tpm2_nv.sh b/test/system/test_tpm2_nv.sh
index 3b486cc7c4e2..2db6522aae28 100755
--- a/test/system/test_tpm2_nv.sh
+++ b/test/system/test_tpm2_nv.sh
@@ -153,7 +153,7 @@ tpm2_nvrelease -Q -x 0x1500016 -a 0x40000001
#
# Test large writes
#
-large_file_size=$(tpm2_getcap -c properties-fixed | grep TPM2_PT_NV_INDEX_MAX | sed -r -e 's/.*(0x[0-9a-f]+)/\1/g')
+large_file_size=$(tpm2_getcap -c properties-fixed | grep TPM_PT_NV_INDEX_MAX | sed -r -e 's/.*(0x[0-9a-f]+)/\1/g')
nv_test_index=0x1000000
# Create an nv space with attributes 1010 = TPMA_NV_PPWRITE and TPMA_NV_AUTHWRITE
diff --git a/test/system/test_tpm2_quote.sh b/test/system/test_tpm2_quote.sh
index 3c0a9af0acce..d845ea1bdb14 100755
--- a/test/system/test_tpm2_quote.sh
+++ b/test/system/test_tpm2_quote.sh
@@ -51,7 +51,7 @@ Handle_ak_quote=0x81010016
Handle_ek_quote=0x81010017
Handle_ak_quote2=0x81010018
-maxdigest=$(tpm2_getcap -c properties-fixed | grep TPM2_PT_MAX_DIGEST | sed -r -e 's/.*(0x[0-9a-f]+)/\1/g')
+maxdigest=$(tpm2_getcap -c properties-fixed | grep TPM_PT_MAX_DIGEST | sed -r -e 's/.*(0x[0-9a-f]+)/\1/g')
if ! [[ "$maxdigest" =~ ^(0x)*[0-9]+$ ]] ; then
echo "error: not a number, got: \"$maxdigest\"" >&2
exit 1
diff --git a/tools/tpm2_getcap.c b/tools/tpm2_getcap.c
index 6b3d8efbd620..29c6c3f9176f 100644
--- a/tools/tpm2_getcap.c
+++ b/tools/tpm2_getcap.c
@@ -196,7 +196,7 @@ get_uint32_as_chars (UINT32 value,
void
tpm2_tool_output_tpma_modes (TPMA_MODES modes)
{
- tpm2_tool_output ("TPM2_PT_MODES: 0x%08x\n", modes);
+ tpm2_tool_output ("TPM_PT_MODES: 0x%08x\n", modes);
if (modes & TPMA_MODES_FIPS_140_2)
tpm2_tool_output (" TPMA_MODES_FIPS_140_2\n");
if (modes& TPMA_MODES_RESERVED1_MASK)
@@ -208,7 +208,7 @@ tpm2_tool_output_tpma_modes (TPMA_MODES modes)
void
dump_permanent_attrs (TPMA_PERMANENT attrs)
{
- tpm2_tool_output ("TPM2_PT_PERSISTENT:\n");
+ tpm2_tool_output ("TPM_PT_PERSISTENT:\n");
tpm2_tool_output (" ownerAuthSet: %s\n", prop_str (attrs & TPMA_PERMANENT_OWNERAUTHSET));
tpm2_tool_output (" endorsementAuthSet: %s\n", prop_str (attrs & TPMA_PERMANENT_ENDORSEMENTAUTHSET));
tpm2_tool_output (" lockoutAuthSet: %s\n", prop_str (attrs & TPMA_PERMANENT_LOCKOUTAUTHSET));
@@ -224,7 +224,7 @@ dump_permanent_attrs (TPMA_PERMANENT attrs)
void
dump_startup_clear_attrs (TPMA_STARTUP_CLEAR attrs)
{
- tpm2_tool_output ("TPM2_PT_STARTUP_CLEAR:\n");
+ tpm2_tool_output ("TPM_PT_STARTUP_CLEAR:\n");
tpm2_tool_output (" phEnable: %s\n", prop_str (attrs & TPMA_STARTUP_CLEAR_PHENABLE));
tpm2_tool_output (" shEnable: %s\n", prop_str (attrs & TPMA_STARTUP_CLEAR_SHENABLE));
tpm2_tool_output (" ehEnable: %s\n", prop_str (attrs & TPMA_STARTUP_CLEAR_EHENABLE));
@@ -248,30 +248,30 @@ dump_tpm_properties_fixed (TPMS_TAGGED_PROPERTY properties[],
switch (property) {
case TPM2_PT_FAMILY_INDICATOR:
get_uint32_as_chars (value, buf);
- tpm2_tool_output ("TPM2_PT_FAMILY_INDICATOR:\n"
+ tpm2_tool_output ("TPM_PT_FAMILY_INDICATOR:\n"
" as UINT32: 0x08%x\n"
" as string: \"%s\"\n",
value,
buf);
break;
case TPM2_PT_LEVEL:
- tpm2_tool_output ("TPM2_PT_LEVEL: %d\n", value);
+ tpm2_tool_output ("TPM_PT_LEVEL: %d\n", value);
break;
case TPM2_PT_REVISION:
- tpm2_tool_output ("TPM2_PT_REVISION: %.2f\n", (float)value / 100);
+ tpm2_tool_output ("TPM_PT_REVISION: %.2f\n", (float)value / 100);
break;
case TPM2_PT_DAY_OF_YEAR:
- tpm2_tool_output ("TPM2_PT_DAY_OF_YEAR: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_DAY_OF_YEAR: 0x%08x\n", value);
break;
case TPM2_PT_YEAR:
- tpm2_tool_output ("TPM2_PT_YEAR: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_YEAR: 0x%08x\n", value);
break;
case TPM2_PT_MANUFACTURER:
- tpm2_tool_output ("TPM2_PT_MANUFACTURER: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_MANUFACTURER: 0x%08x\n", value);
break;
case TPM2_PT_VENDOR_STRING_1:
get_uint32_as_chars (value, buf);
- tpm2_tool_output ("TPM2_PT_VENDOR_STRING_1:\n"
+ tpm2_tool_output ("TPM_PT_VENDOR_STRING_1:\n"
" as UINT32: 0x%08x\n"
" as string: \"%s\"\n",
value,
@@ -279,7 +279,7 @@ dump_tpm_properties_fixed (TPMS_TAGGED_PROPERTY properties[],
break;
case TPM2_PT_VENDOR_STRING_2:
get_uint32_as_chars (value, buf);
- tpm2_tool_output ("TPM2_PT_VENDOR_STRING_2:\n"
+ tpm2_tool_output ("TPM_PT_VENDOR_STRING_2:\n"
" as UINT32: 0x%08x\n"
" as string: \"%s\"\n",
value,
@@ -287,7 +287,7 @@ dump_tpm_properties_fixed (TPMS_TAGGED_PROPERTY properties[],
break;
case TPM2_PT_VENDOR_STRING_3:
get_uint32_as_chars (value, buf);
- tpm2_tool_output ("TPM2_PT_VENDOR_STRING_3:\n"
+ tpm2_tool_output ("TPM_PT_VENDOR_STRING_3:\n"
" as UINT32: 0x%08x\n"
" as string: \"%s\"\n",
value,
@@ -295,113 +295,113 @@ dump_tpm_properties_fixed (TPMS_TAGGED_PROPERTY properties[],
break;
case TPM2_PT_VENDOR_STRING_4:
get_uint32_as_chars (value, buf);
- tpm2_tool_output ("TPM2_PT_VENDOR_STRING_4:\n"
+ tpm2_tool_output ("TPM_PT_VENDOR_STRING_4:\n"
" as UINT32: 0x%08x\n"
" as string: \"%s\"\n",
value,
buf);
break;
case TPM2_PT_VENDOR_TPM_TYPE:
- tpm2_tool_output ("TPM2_PT_VENDOR_TPM_TYPE: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_VENDOR_TPM_TYPE: 0x%08x\n", value);
break;
case TPM2_PT_FIRMWARE_VERSION_1:
- tpm2_tool_output ("TPM2_PT_FIRMWARE_VERSION_1: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_FIRMWARE_VERSION_1: 0x%08x\n", value);
break;
case TPM2_PT_FIRMWARE_VERSION_2:
- tpm2_tool_output ("TPM2_PT_FIRMWARE_VERSION_2: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_FIRMWARE_VERSION_2: 0x%08x\n", value);
break;
case TPM2_PT_INPUT_BUFFER:
- tpm2_tool_output ("TPM2_PT_INPUT_BUFFER: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_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);
+ tpm2_tool_output ("TPM_PT_TPM2_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);
+ tpm2_tool_output ("TPM_PT_TPM2_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);
+ tpm2_tool_output ("TPM_PT_HR_LOADED_MIN: 0x%08x\n", value);
break;
case TPM2_PT_ACTIVE_SESSIONS_MAX:
- tpm2_tool_output ("TPM2_PT_ACTIVE_SESSIONS_MAX: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_ACTIVE_SESSIONS_MAX: 0x%08x\n", value);
break;
case TPM2_PT_PCR_COUNT:
- tpm2_tool_output ("TPM2_PT_PCR_COUNT: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_PCR_COUNT: 0x%08x\n", value);
break;
case TPM2_PT_PCR_SELECT_MIN:
- tpm2_tool_output ("TPM2_PT_PCR_SELECT_MIN: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_PCR_SELECT_MIN: 0x%08x\n", value);
break;
case TPM2_PT_CONTEXT_GAP_MAX:
- tpm2_tool_output ("TPM2_PT_CONTEXT_GAP_MAX: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_CONTEXT_GAP_MAX: 0x%08x\n", value);
break;
case TPM2_PT_NV_COUNTERS_MAX:
- tpm2_tool_output ("TPM2_PT_NV_COUNTERS_MAX: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_NV_COUNTERS_MAX: 0x%08x\n", value);
break;
case TPM2_PT_NV_INDEX_MAX:
- tpm2_tool_output ("TPM2_PT_NV_INDEX_MAX: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_NV_INDEX_MAX: 0x%08x\n", value);
break;
case TPM2_PT_MEMORY:
- tpm2_tool_output ("TPM2_PT_MEMORY: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_MEMORY: 0x%08x\n", value);
break;
case TPM2_PT_CLOCK_UPDATE:
- tpm2_tool_output ("TPM2_PT_CLOCK_UPDATE: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_CLOCK_UPDATE: 0x%08x\n", value);
break;
case TPM2_PT_CONTEXT_HASH: /* this may be a TPM2_ALG_ID type */
- tpm2_tool_output ("TPM2_PT_CONTEXT_HASH: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_CONTEXT_HASH: 0x%08x\n", value);
break;
case TPM2_PT_CONTEXT_SYM: /* this is a TPM2_ALG_ID type */
- tpm2_tool_output ("TPM2_PT_CONTEXT_SYM: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_CONTEXT_SYM: 0x%08x\n", value);
break;
case TPM2_PT_CONTEXT_SYM_SIZE:
- tpm2_tool_output ("TPM2_PT_CONTEXT_SYM_SIZE: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_CONTEXT_SYM_SIZE: 0x%08x\n", value);
break;
case TPM2_PT_ORDERLY_COUNT:
- tpm2_tool_output ("TPM2_PT_ORDERLY_COUNT: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_ORDERLY_COUNT: 0x%08x\n", value);
break;
case TPM2_PT_MAX_COMMAND_SIZE:
- tpm2_tool_output ("TPM2_PT_MAX_COMMAND_SIZE: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_MAX_COMMAND_SIZE: 0x%08x\n", value);
break;
case TPM2_PT_MAX_RESPONSE_SIZE:
- tpm2_tool_output ("TPM2_PT_MAX_RESPONSE_SIZE: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_MAX_RESPONSE_SIZE: 0x%08x\n", value);
break;
case TPM2_PT_MAX_DIGEST:
- tpm2_tool_output ("TPM2_PT_MAX_DIGEST: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_MAX_DIGEST: 0x%08x\n", value);
break;
case TPM2_PT_MAX_OBJECT_CONTEXT:
- tpm2_tool_output ("TPM2_PT_MAX_OBJECT_CONTEXT: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_MAX_OBJECT_CONTEXT: 0x%08x\n", value);
break;
case TPM2_PT_MAX_SESSION_CONTEXT:
- tpm2_tool_output ("TPM2_PT_MAX_SESSION_CONTEXT: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_MAX_SESSION_CONTEXT: 0x%08x\n", value);
break;
case TPM2_PT_PS_FAMILY_INDICATOR:
- tpm2_tool_output ("TPM2_PT_PS_FAMILY_INDICATOR: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_PS_FAMILY_INDICATOR: 0x%08x\n", value);
break;
case TPM2_PT_PS_LEVEL:
- tpm2_tool_output ("TPM2_PT_PS_LEVEL: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_PS_LEVEL: 0x%08x\n", value);
break;
case TPM2_PT_PS_REVISION:
- tpm2_tool_output ("TPM2_PT_PS_REVISION: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_PS_REVISION: 0x%08x\n", value);
break;
case TPM2_PT_PS_DAY_OF_YEAR:
- tpm2_tool_output ("TPM2_PT_PS_DAY_OF_YEAR: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_PS_DAY_OF_YEAR: 0x%08x\n", value);
break;
case TPM2_PT_PS_YEAR:
- tpm2_tool_output ("TPM2_PT_PS_YEAR: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_PS_YEAR: 0x%08x\n", value);
break;
case TPM2_PT_SPLIT_MAX:
- tpm2_tool_output ("TPM2_PT_SPLIT_MAX: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_SPLIT_MAX: 0x%08x\n", value);
break;
case TPM2_PT_TOTAL_COMMANDS:
- tpm2_tool_output ("TPM2_PT_TOTAL_COMMANDS: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_TOTAL_COMMANDS: 0x%08x\n", value);
break;
case TPM2_PT_LIBRARY_COMMANDS:
- tpm2_tool_output ("TPM2_PT_LIBRARY_COMMANDS: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_LIBRARY_COMMANDS: 0x%08x\n", value);
break;
case TPM2_PT_VENDOR_COMMANDS:
- tpm2_tool_output ("TPM2_PT_VENDOR_COMMANDS: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_VENDOR_COMMANDS: 0x%08x\n", value);
break;
case TPM2_PT_NV_BUFFER_MAX:
- tpm2_tool_output ("TPM2_PT_NV_BUFFER_MAX: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_NV_BUFFER_MAX: 0x%08x\n", value);
break;
case TPM2_PT_MODES:
tpm2_tool_output_tpma_modes ((TPMA_MODES)value);
@@ -429,61 +429,61 @@ dump_tpm_properties_var (TPMS_TAGGED_PROPERTY properties[],
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);
+ tpm2_tool_output ("TPM_PT_TPM2_HR_NV_INDEX: 0x%08x\n", value);
break;
case TPM2_PT_HR_LOADED:
- tpm2_tool_output ("TPM2_PT_HR_LOADED: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_HR_LOADED: 0x%08x\n", value);
break;
case TPM2_PT_HR_LOADED_AVAIL:
- tpm2_tool_output ("TPM2_PT_HR_LOADED_AVAIL: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_HR_LOADED_AVAIL: 0x%08x\n", value);
break;
case TPM2_PT_HR_ACTIVE:
- tpm2_tool_output ("TPM2_PT_HR_ACTIVE: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_HR_ACTIVE: 0x%08x\n", value);
break;
case TPM2_PT_HR_ACTIVE_AVAIL:
- tpm2_tool_output ("TPM2_PT_HR_ACTIVE_AVAIL: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_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);
+ tpm2_tool_output ("TPM_PT_TPM2_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);
+ tpm2_tool_output ("TPM_PT_TPM2_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);
+ tpm2_tool_output ("TPM_PT_TPM2_HR_PERSISTENT_AVAIL: 0x%08x\n", value);
break;
case TPM2_PT_NV_COUNTERS:
- tpm2_tool_output ("TPM2_PT_NV_COUNTERS: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_NV_COUNTERS: 0x%08x\n", value);
break;
case TPM2_PT_NV_COUNTERS_AVAIL:
- tpm2_tool_output ("TPM2_PT_NV_COUNTERS_AVAIL: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_NV_COUNTERS_AVAIL: 0x%08x\n", value);
break;
case TPM2_PT_ALGORITHM_SET:
- tpm2_tool_output ("TPM2_PT_ALGORITHM_SET: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_ALGORITHM_SET: 0x%08x\n", value);
break;
case TPM2_PT_LOADED_CURVES:
- tpm2_tool_output ("TPM2_PT_LOADED_CURVES: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_LOADED_CURVES: 0x%08x\n", value);
break;
case TPM2_PT_LOCKOUT_COUNTER:
- tpm2_tool_output ("TPM2_PT_LOCKOUT_COUNTER: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_LOCKOUT_COUNTER: 0x%08x\n", value);
break;
case TPM2_PT_MAX_AUTH_FAIL:
- tpm2_tool_output ("TPM2_PT_MAX_AUTH_FAIL: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_MAX_AUTH_FAIL: 0x%08x\n", value);
break;
case TPM2_PT_LOCKOUT_INTERVAL:
- tpm2_tool_output ("TPM2_PT_LOCKOUT_INTERVAL: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_LOCKOUT_INTERVAL: 0x%08x\n", value);
break;
case TPM2_PT_LOCKOUT_RECOVERY:
- tpm2_tool_output ("TPM2_PT_LOCKOUT_RECOVERY: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_LOCKOUT_RECOVERY: 0x%08x\n", value);
break;
case TPM2_PT_NV_WRITE_RECOVERY:
- tpm2_tool_output ("TPM2_PT_NV_WRITE_RECOVERY: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_NV_WRITE_RECOVERY: 0x%08x\n", value);
break;
case TPM2_PT_AUDIT_COUNTER_0:
- tpm2_tool_output ("TPM2_PT_AUDIT_COUNTER_0: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_AUDIT_COUNTER_0: 0x%08x\n", value);
break;
case TPM2_PT_AUDIT_COUNTER_1:
- tpm2_tool_output ("TPM2_PT_AUDIT_COUNTER_1: 0x%08x\n", value);
+ tpm2_tool_output ("TPM_PT_AUDIT_COUNTER_1: 0x%08x\n", value);
break;
default:
LOG_ERR("Unknown property: 0x%08x\n", properties[i].property);
--
2.17.1

160
SPECS/tpm2-tools.spec Normal file
View File

@ -0,0 +1,160 @@
Name: tpm2-tools
Version: 3.1.1
Release: 4%{?dist}
Summary: A TPM2.0 testing tool build upon TPM2.0-TSS
License: BSD
URL: https://github.com/tpm2-software/tpm2-tools
Source0: https://github.com/tpm2-software/tpm2-tools/releases/download/%{version}/%{name}-%{version}.tar.gz
Patch0: Revert-objectattrs-clear-before-or-ing-in-values.patch
Patch1: lib-tpm2_options-restore-TCTI-configuration-environm.patch
Patch2: tpm2_getcap-restore-tool-output-to-print-properties-.patch
BuildRequires: gcc-c++
BuildRequires: libtool
BuildRequires: autoconf-archive
BuildRequires: pkgconfig(cmocka)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(openssl)
# tpm2-tss-devel provides tss2-mu/sys/esys package config
BuildRequires: pkgconfig(tss2-mu)
BuildRequires: pkgconfig(tss2-sys)
BuildRequires: pkgconfig(tss2-esys)
# tpm2-tools is heavily depending on TPM2.0-TSS project, matched tss is required
Requires: tpm2-tss%{?_isa} >= 2.0.0-2%{?dist}
# tpm2-tools project changed the install path for binaries and man page section
Obsoletes: tpm2-tools <= 2.1.1-2
%description
tpm2-tools is a batch of testing tools for tpm2.0. It is based on tpm2-tss.
%prep
%autosetup -p1 -n %{name}-%{version}
%build
%configure --prefix=/usr --disable-static --disable-silent-rules
%make_build
%install
%make_install
%files
%doc README.md CHANGELOG.md
%license LICENSE
%{_bindir}/tpm2_*
%{_mandir}/man1/tpm2_*.1.gz
%changelog
* Thu Nov 08 2018 Jerry Snitselaar <jsnitsel@redhat.com> - 3.1.1-4
- lib/tpm2_options: restore TCTI configuration environment variables
- tpm2_getcap: restore tool output to print properties with TPM_PT prefix
resolves: rhbz#1648001
* Sat Jul 14 2018 Javier Martinez Canillas <javierm@redhat.com> - - 3.1.1-3
- Revert backward incompatible change that removes default object attributes
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Jul 12 2018 Yunying Sun <yunying.sun@intel.com> - 3.1.1-1
- Update to 3.1.1 release
* Thu Jul 5 2018 Yunying Sun <yunying.sun@intel.com> - 3.1.0-1
- Update Requires version of tpm2-tss to 2.0.0
- Remove BuildRequires for tcti-abrmd since it is optional
- Remove BuildRequires for tcti-{device,mssim} as it is now dynamically loaded
- Update to 3.1.0 release
* Mon Apr 30 2018 Javier Martinez Canillas <javierm@redhat.com> - 3.0.4-1
- Update URLs to point to the new project location
- Update to 3.0.4 release
* Wed Feb 21 2018 Javier Martinez Canillas <javierm@redhat.com> - 3.0.3-3
- Remove ExclusiveArch: x86_64 directive
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Tue Jan 16 2018 Javier Martinez Canillas <javierm@redhat.com> - 3.0.3-1
- Update to 3.0.3 release
* Mon Dec 18 2017 Javier Martinez Canillas <javierm@redhat.com> - 3.0.2-1
- Update to 3.0.2 release
* Tue Dec 12 2017 Javier Martinez Canillas <javierm@redhat.com> - 3.0.1-1
- Update to 3.0.1 release (RHBZ#1512743)
- Download the generated tarball provided instead of the source code tarball
* Fri Dec 08 2017 Javier Martinez Canillas <javierm@redhat.com> - 3.0-1
- Update to 3.0 release
* Wed Nov 29 2017 Javier Martinez Canillas <javierm@redhat.com> - 3.0-0.1.rc1
- Update to 3.0 release candidate 1
- Update URLs to point to the new project location
- Make the package to obsolete version 2.1.1
* Wed Nov 01 2017 Javier Martinez Canillas <javierm@redhat.com> - 2.1.1-1
- Rename remaining tpm2.0-tools prefixes to tpm2-tools
- Remove global pkg_prefix since now the upstream repo and package names match
- Remove downstream patches since now these are in the latest upstream release
- Update to 2.1.1 release (RHBZ#1504438)
* Thu Oct 19 2017 Jerry Snitselaar <jsnitsel@redhat.com> - 2.1.0-7
- Clean up potential memleak (RHBZ#1503959)
* Thu Oct 05 2017 Javier Martinez Canillas <javierm@redhat.com> - 2.1.0-6
- Add tpm2-abrmd-devel BuildRequires so tools have abrmd support (RHBZ#1498909)
* Fri Aug 18 2017 Javier Martinez Canillas <javierm@redhat.com> - 2.1.0-5
- Remove unneeded source tarballs (RHBZ#1482830)
* Tue Aug 15 2017 Sun Yunying <yunying.sun@intel.com> - 2.1.0-4
- Add patch to fix build error when openssl-devel is installed(RHBZ#1481236)
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Mon Jul 31 2017 Sun Yunying <yunying.sun@intel.com> - 2.1.0-2
- Add patch to fix gcc7 complaining about implicit-fallthrough cases
* Fri Jul 28 2017 Sun Yunying <yunying.sun@intel.com> - 2.1.0-1
- Update to latest upstream release 2.1.0
* Fri Jul 28 2017 Sun Yunying <yunying.sun@intel.com> - 1.1.0-9
- Update Requires dependency so that tpm2-tss update won't break tpm2-tools
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Wed May 10 2017 Sun Yunying <yunying.sun@intel.com> - 1.1.0-7
- Only update release version to make fedpkg build works for f26
* Wed Mar 1 2017 Sun Yunying <yunying.sun@intel.com> - 1.1.0-6
- Update tpm2-tss version to 1.0-3 to fix broken dependency on f26
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Fri Jan 20 2017 Sun Yunying <yunying.sun@intel.com> - 1.1.0-4
- Dependency check failed for Requires again, here to fix this
- Update release version and changelog
* Thu Jan 19 2017 Sun Yunying <yunying.sun@intel.com> - 1.1.0-3
- Change spec file permission to 644 to avoid rpmlint complain
- Update Requires to fix dependency check error reported in Bodhi
- Remove tpm2-tss-devel version in BuildRequires comment
- Update release version and changelog
* Wed Dec 21 2016 Sun Yunying <yunying.sun@intel.com> - 1.1.0-2
- Remove pkg_version to avoid dupliate use of version
- Remove redundant BuildRequires for autoconf/automake/pkgconfig
- Add comments for BuildRequires of sapi/tcti-device/tcti-socket
- Use ExclusiveArch instead of ExcludeArch
- Requires tpm2-tss version updated to 1.0-2
- Updated release version and changelog
* Fri Dec 2 2016 Sun Yunying <yunying.sun@intel.com> - 1.1.0-1
- Initial version of the package