tpm2-tools: bump to version 3.1.3

- Drop C++ requirement, which came from tpm2-tss.
- Drop musl restriction.
- Drop the patch to build with LibreSSL, which is not required anymore.
- Update the patch for the "variable may be used uninitialized" error to
  match tpm2-tss 2.1.0, which defines TPM2_ALG_ERROR, not TPM_ALG_ERROR.

Signed-off-by: Carlos Santos <casantos@datacom.com.br>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Carlos Santos 2018-11-16 00:52:17 -02:00 committed by Peter Korsgaard
parent 08cd849bee
commit e4076e407a
5 changed files with 11 additions and 78 deletions

View File

@ -1,64 +0,0 @@
From 7f8d9359dcf9edbb13bb447f70234397afa4fb05 Mon Sep 17 00:00:00 2001
From: Carlos Santos <casantos@datacom.ind.br>
Date: Tue, 30 Jan 2018 11:21:14 -0200
Subject: [PATCH] Fix build with LibreSSL
OPENSSL_VERSION_NUMBER is used to test the version of OpenSSL but this
test alone breaks the build with LibreSSL due to implicit declarations
of functions 'RSA_set0_key' and 'HMAC_CTX_free'.
Test if OpenSSL < 1.1.0 or LIBRESSL_VERSION_NUMBER is defined, instead.
Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
---
lib/conversion.c | 2 +-
lib/tpm_kdfa.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/conversion.c b/lib/conversion.c
index 1d0a0b7..df02de4 100644
--- a/lib/conversion.c
+++ b/lib/conversion.c
@@ -133,7 +133,7 @@ static bool tpm2_convert_pubkey_ssl(TPMT_PUBLIC *public, pubkey_format format, c
goto error;
}
-#if OPENSSL_VERSION_NUMBER < 0x1010000fL /* OpenSSL 1.1.0 */
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL || defined(LIBRESSL_VERSION_NUMBER) /* OpenSSL 1.1.0 */
ssl_rsa_key->e = e;
ssl_rsa_key->n = n;
#else
diff --git a/lib/tpm_kdfa.c b/lib/tpm_kdfa.c
index ee3cf8a..e43bdeb 100644
--- a/lib/tpm_kdfa.c
+++ b/lib/tpm_kdfa.c
@@ -54,7 +54,7 @@ static const EVP_MD *tpm_algorithm_to_openssl_digest(TPMI_ALG_HASH algorithm) {
static HMAC_CTX *hmac_alloc()
{
HMAC_CTX *ctx;
-#if OPENSSL_VERSION_NUMBER < 0x1010000fL /* OpenSSL 1.1.0 */
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL || defined(LIBRESSL_VERSION_NUMBER) /* OpenSSL 1.1.0 */
ctx = malloc(sizeof(*ctx));
#else
ctx = HMAC_CTX_new();
@@ -62,7 +62,7 @@ static HMAC_CTX *hmac_alloc()
if (!ctx)
return NULL;
-#if OPENSSL_VERSION_NUMBER < 0x1010000fL
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL || defined(LIBRESSL_VERSION_NUMBER)
HMAC_CTX_init(ctx);
#endif
@@ -71,7 +71,7 @@ static HMAC_CTX *hmac_alloc()
static void hmac_del(HMAC_CTX *ctx)
{
-#if OPENSSL_VERSION_NUMBER < 0x1010000fL
+#if OPENSSL_VERSION_NUMBER < 0x1010000fL || defined(LIBRESSL_VERSION_NUMBER)
HMAC_CTX_cleanup(ctx);
free(ctx);
#else
--
2.14.3

View File

@ -1,4 +1,4 @@
From e15b01a1eb27e31964308892fcaa9c7d4f17f181 Mon Sep 17 00:00:00 2001
From 295cd8f7fb8e1a1ad8f64d981e99969a364d941e Mon Sep 17 00:00:00 2001
From: Carlos Santos <casantos@datacom.ind.br>
Date: Sat, 24 Mar 2018 22:46:46 -0300
Subject: [PATCH] tpm2_certify: fix "'type' may be used uninitialized" warning
@ -10,7 +10,7 @@ because set_scheme returns immediately if get_key_type retuns false but
the compiler does not understand that logic and fails because warnings
are treated as errors.
Adapted for version 3.0.3 from the change submitted upstream:
Adapted for version 3.1.3 from the change submitted upstream:
https://github.com/tpm2-software/tpm2-tools/pull/954
@ -20,17 +20,17 @@ Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
1 file changed, 1 insertion(+)
diff --git a/tools/tpm2_certify.c b/tools/tpm2_certify.c
index eaac02f..cbc42a9 100644
index 0575072..e562586 100644
--- a/tools/tpm2_certify.c
+++ b/tools/tpm2_certify.c
@@ -107,6 +107,7 @@ static bool get_key_type(TSS2_SYS_CONTEXT *sapi_context, TPMI_DH_OBJECT object_h
@@ -98,6 +98,7 @@ static bool get_key_type(TSS2_SYS_CONTEXT *sapi_context, TPMI_DH_OBJECT object_h
&out_public, &name, &qualified_name, &sessions_data_out));
if (rval != TPM_RC_SUCCESS) {
if (rval != TPM2_RC_SUCCESS) {
LOG_ERR("TPM2_ReadPublic failed. Error Code: 0x%x", rval);
+ *type = TPM_ALG_ERROR;
+ *type = TPM2_ALG_ERROR;
return false;
}
--
2.14.3
2.19.1

View File

@ -1,10 +1,8 @@
config BR2_PACKAGE_TPM2_TOOLS
bool "tpm2-tools"
depends on BR2_INSTALL_LIBSTDCPP # tpm2-tss
depends on BR2_USE_MMU # dbus, libglib
depends on BR2_USE_WCHAR # libglib -> gettext
depends on BR2_TOOLCHAIN_HAS_THREADS # libglib
depends on !BR2_TOOLCHAIN_USES_MUSL # tpm2-abrmd
select BR2_PACKAGE_DBUS
select BR2_PACKAGE_LIBCURL
select BR2_PACKAGE_LIBGLIB2
@ -20,7 +18,6 @@ config BR2_PACKAGE_TPM2_TOOLS
https://github.com/tpm2-software/tpm2-tools
comment "tpm2-tools needs a uClibc or glibc toolchain w/ C++, wchar, threads"
comment "tpm2-tools needs a toolchain w/ wchar, threads"
depends on BR2_USE_MMU
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR \
|| !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_MUSL
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS

View File

@ -1,3 +1,3 @@
# Locally computed:
sha256 c990c0656165afef0fad61e1852a9a189a4b93b43d2a684b151a5dc0b3c6249d tpm2-tools-3.0.3.tar.gz
sha256 cc95576f49cf9bacf75772fd98dcb7edc5172a6a8dfa20c215fe3cc69b0a3a16 tpm2-tools-3.1.3.tar.gz
sha256 3d6b149c8b042bd5f3db678d587fbe55230d071ca084bd38dcae451679c6dd45 LICENSE

View File

@ -4,7 +4,7 @@
#
################################################################################
TPM2_TOOLS_VERSION = 3.0.3
TPM2_TOOLS_VERSION = 3.1.3
TPM2_TOOLS_SITE = https://github.com/tpm2-software/tpm2-tools/releases/download/$(TPM2_TOOLS_VERSION)
TPM2_TOOLS_LICENSE = BSD-2-Clause
TPM2_TOOLS_LICENSE_FILES = LICENSE