[packages/tpm-tools] - updated to 1.3.9.2 - removed obsolete Fix-build-with-OpenSSL-1.1. patches - fixed broken Allocate-

qboosh qboosh at pld-linux.org
Sat Oct 22 10:18:02 CEST 2022


commit f84ef36131a8ed00f05a6fbefaf5e14e7f418e43
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sat Oct 22 10:19:07 2022 +0200

    - updated to 1.3.9.2
    - removed obsolete Fix-build-with-OpenSSL-1.1. patches
    - fixed broken Allocate-OpenSSL-cipher-contexts-for-seal-unseal patch

 ...ith-OpenSSL-1.1-due-to-EVP_PKEY-being-an-.patch |  37 ----
 ...ith-OpenSSL-1.1-due-to-RSA-being-an-opaqu.patch | 192 ---------------------
 ...e-OpenSSL-cipher-contexts-for-seal-unseal.patch |  10 +-
 tpm-tools.spec                                     |  23 +--
 4 files changed, 18 insertions(+), 244 deletions(-)
---
diff --git a/tpm-tools.spec b/tpm-tools.spec
index becd7ab..cc31ea4 100644
--- a/tpm-tools.spec
+++ b/tpm-tools.spec
@@ -1,18 +1,16 @@
 Summary:	Management tools for the TPM hardware
 Summary(pl.UTF-8):	Narzędzia zarządzające sprzętem TPM
 Name:		tpm-tools
-Version:	1.3.9.1
-Release:	5
+Version:	1.3.9.2
+Release:	1
 License:	CPL v1.0+
 Group:		Applications/System
-Source0:	http://downloads.sourceforge.net/trousers/%{name}-%{version}.tar.gz
-# Source0-md5:	1532293aa632a0eaa7e60df87c779855
+Source0:	https://downloads.sourceforge.net/trousers/%{name}-%{version}.tar.gz
+# Source0-md5:	44091f5497996c6fd674c73b43f190ab
 Patch0:		%{name}-link.patch
 Patch1:		%{name}-x32.patch
-Patch2:		0001-Fix-build-with-OpenSSL-1.1-due-to-EVP_PKEY-being-an-.patch
-Patch3:		0002-Fix-build-with-OpenSSL-1.1-due-to-RSA-being-an-opaqu.patch
 Patch4:		0003-Allocate-OpenSSL-cipher-contexts-for-seal-unseal.patch
-URL:		http://trousers.sourceforge.net/
+URL:		https://trousers.sourceforge.net/
 BuildRequires:	autoconf >= 2.12
 BuildRequires:	automake >= 1.6
 BuildRequires:	gettext-tools >= 0.15
@@ -42,7 +40,7 @@ Summary(pl.UTF-8):	Pliki nagłówkowe biblioteki tpm_unseal
 Group:		Development/Libraries
 Requires:	%{name} = %{version}-%{release}
 Requires:	trousers-devel >= 0.3.9
-Obsoletes:	tpm-tools-static
+Obsoletes:	tpm-tools-static < 1.3.5
 
 %description devel
 Header files for tpm_unseal library.
@@ -72,13 +70,16 @@ Narzędzia pozwalają importować klucze i certyfikaty, wypisywać listę
 obiektów w kontenerze i chronić dane.
 
 %prep
-%setup -q -c
+%setup -q
 %patch0 -p1
 %patch1 -p1
-%patch2 -p1
-%patch3 -p1
 %patch4 -p1
 
+# prepare for gettextize
+%{__sed} -i -e '/po\/Makefile\.in/d' configure.ac
+mkdir -p m4
+touch m4/Makefile.am
+
 %build
 %{__gettextize}
 %{__libtoolize}
diff --git a/0001-Fix-build-with-OpenSSL-1.1-due-to-EVP_PKEY-being-an-.patch b/0001-Fix-build-with-OpenSSL-1.1-due-to-EVP_PKEY-being-an-.patch
deleted file mode 100644
index ed43ed0..0000000
--- a/0001-Fix-build-with-OpenSSL-1.1-due-to-EVP_PKEY-being-an-.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 3acd773846a85d142e919e2f4eeeee1acea5ca3a Mon Sep 17 00:00:00 2001
-From: Michal Schmidt <mschmidt at redhat.com>
-Date: Mon, 20 Feb 2017 10:28:33 +0100
-Subject: [PATCH 1/3] Fix build with OpenSSL 1.1 due to EVP_PKEY being an
- opaque struct
-
-With OpenSSL 1.1 the build fails with:
-data_import.c:375:26: error: dereferencing pointer to incomplete type
-'EVP_PKEY {aka struct evp_pkey_st}'
-
-The manual page[1] says:
-  Previous versions of this document suggested using
-  EVP_PKEY_type(pkey->type) to determine the type of a key. Since EVP_PKEY
-  is now opaque this is no longer possible: the equivalent is
-  EVP_PKEY_base_id(pkey).
-
-[1] https://www.openssl.org/docs/man1.1.0/crypto/EVP_PKEY_base_id.html
----
- src/data_mgmt/data_import.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/data_mgmt/data_import.c b/src/data_mgmt/data_import.c
-index f534717f02..d4d2052bc6 100644
---- a/src/data_mgmt/data_import.c
-+++ b/src/data_mgmt/data_import.c
-@@ -372,7 +372,7 @@ readX509Cert( const char  *a_pszFile,
- 		goto out;
- 	}
- 
--	if ( EVP_PKEY_type( pKey->type ) != EVP_PKEY_RSA ) {
-+	if ( EVP_PKEY_base_id( pKey ) != EVP_PKEY_RSA ) {
- 		logError( TOKEN_RSA_KEY_ERROR );
- 
- 		X509_free( pX509 );
--- 
-2.9.3
-
diff --git a/0002-Fix-build-with-OpenSSL-1.1-due-to-RSA-being-an-opaqu.patch b/0002-Fix-build-with-OpenSSL-1.1-due-to-RSA-being-an-opaqu.patch
deleted file mode 100644
index 68d14bf..0000000
--- a/0002-Fix-build-with-OpenSSL-1.1-due-to-RSA-being-an-opaqu.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-From 72fe7011fe981f90a04a62a3fb6ad33037390dff Mon Sep 17 00:00:00 2001
-From: Michal Schmidt <mschmidt at redhat.com>
-Date: Mon, 20 Feb 2017 10:43:10 +0100
-Subject: [PATCH 2/3] Fix build with OpenSSL 1.1 due to RSA being an opaque
- struct
-
-RSA is an opaque struct in OpenSSL 1.1. New getter functions must be
-used to access the key components. The functions were not present in
-OpenSSL 1.0, so add a compat header with the implementation of the
-needed functions as suggested by the OpenSSL wiki [1] in order to allow
-building tpm-tools with any version of OpenSSL.
-
-[1] https://wiki.openssl.org/index.php/1.1_API_Changes
----
- src/data_mgmt/Makefile.am      |  3 ++-
- src/data_mgmt/data_import.c    | 52 ++++++++++++++++++++++---------------
- src/data_mgmt/openssl_compat.h | 58 ++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 92 insertions(+), 21 deletions(-)
- create mode 100644 src/data_mgmt/openssl_compat.h
-
-diff --git a/src/data_mgmt/Makefile.am b/src/data_mgmt/Makefile.am
-index de505e48ef..9457618ab9 100644
---- a/src/data_mgmt/Makefile.am
-+++ b/src/data_mgmt/Makefile.am
-@@ -32,7 +32,8 @@ noinst_HEADERS =	data_common.h \
- 			data_init.h \
- 			data_object.h \
- 			data_passwd.h \
--			data_protect.h
-+			data_protect.h \
-+			openssl_compat.h
- 
- #
- # Common build flags
-diff --git a/src/data_mgmt/data_import.c b/src/data_mgmt/data_import.c
-index d4d2052bc6..532543f7d3 100644
---- a/src/data_mgmt/data_import.c
-+++ b/src/data_mgmt/data_import.c
-@@ -39,6 +39,7 @@
- #include <openssl/evp.h>
- #include <openssl/err.h>
- 
-+#include "openssl_compat.h"
- 
- /*
-  * Global variables
-@@ -691,8 +692,11 @@ createRsaPubKeyObject( RSA               *a_pRsa,
- 
- 	int  rc = -1;
- 
--	int  nLen = BN_num_bytes( a_pRsa->n );
--	int  eLen = BN_num_bytes( a_pRsa->e );
-+	const BIGNUM *rsa_n, *rsa_e;
-+	RSA_get0_key( a_pRsa, &rsa_n, &rsa_e, NULL );
-+
-+	int  nLen = BN_num_bytes( rsa_n );
-+	int  eLen = BN_num_bytes( rsa_e );
- 
- 	CK_RV  rv;
- 
-@@ -732,8 +736,8 @@ createRsaPubKeyObject( RSA               *a_pRsa,
- 	}
- 
- 	// Get binary representations of the RSA key information
--	BN_bn2bin( a_pRsa->n, n );
--	BN_bn2bin( a_pRsa->e, e );
-+	BN_bn2bin( rsa_n, n );
-+	BN_bn2bin( rsa_e, e );
- 
- 	// Create the RSA public key object
- 	rv = createObject( a_hSession, tAttr, ulAttrCount, a_hObject );
-@@ -760,14 +764,22 @@ createRsaPrivKeyObject( RSA               *a_pRsa,
- 
- 	int  rc = -1;
- 
--	int  nLen = BN_num_bytes( a_pRsa->n );
--	int  eLen = BN_num_bytes( a_pRsa->e );
--	int  dLen = BN_num_bytes( a_pRsa->d );
--	int  pLen = BN_num_bytes( a_pRsa->p );
--	int  qLen = BN_num_bytes( a_pRsa->q );
--	int  dmp1Len = BN_num_bytes( a_pRsa->dmp1 );
--	int  dmq1Len = BN_num_bytes( a_pRsa->dmq1 );
--	int  iqmpLen = BN_num_bytes( a_pRsa->iqmp );
-+	const BIGNUM *rsa_n, *rsa_e, *rsa_d;
-+	const BIGNUM *rsa_p, *rsa_q;
-+	const BIGNUM *rsa_dmp1, *rsa_dmq1, *rsa_iqmp;
-+
-+	RSA_get0_key( a_pRsa, &rsa_n, &rsa_e, &rsa_d );
-+	RSA_get0_factors( a_pRsa, &rsa_p, &rsa_q );
-+	RSA_get0_crt_params( a_pRsa, &rsa_dmp1, &rsa_dmq1, &rsa_iqmp );
-+
-+	int  nLen = BN_num_bytes( rsa_n );
-+	int  eLen = BN_num_bytes( rsa_e );
-+	int  dLen = BN_num_bytes( rsa_d );
-+	int  pLen = BN_num_bytes( rsa_p );
-+	int  qLen = BN_num_bytes( rsa_q );
-+	int  dmp1Len = BN_num_bytes( rsa_dmp1 );
-+	int  dmq1Len = BN_num_bytes( rsa_dmq1 );
-+	int  iqmpLen = BN_num_bytes( rsa_iqmp );
- 
- 	CK_RV  rv;
- 
-@@ -821,14 +833,14 @@ createRsaPrivKeyObject( RSA               *a_pRsa,
- 	}
- 
- 	// Get binary representations of the RSA key information
--	BN_bn2bin( a_pRsa->n, n );
--	BN_bn2bin( a_pRsa->e, e );
--	BN_bn2bin( a_pRsa->d, d );
--	BN_bn2bin( a_pRsa->p, p );
--	BN_bn2bin( a_pRsa->q, q );
--	BN_bn2bin( a_pRsa->dmp1, dmp1 );
--	BN_bn2bin( a_pRsa->dmq1, dmq1 );
--	BN_bn2bin( a_pRsa->iqmp, iqmp );
-+	BN_bn2bin( rsa_n, n );
-+	BN_bn2bin( rsa_e, e );
-+	BN_bn2bin( rsa_d, d );
-+	BN_bn2bin( rsa_p, p );
-+	BN_bn2bin( rsa_q, q );
-+	BN_bn2bin( rsa_dmp1, dmp1 );
-+	BN_bn2bin( rsa_dmq1, dmq1 );
-+	BN_bn2bin( rsa_iqmp, iqmp );
- 
- 	// Create the RSA private key object
- 	rv = createObject( a_hSession, tAttr, ulAttrCount, a_hObject );
-diff --git a/src/data_mgmt/openssl_compat.h b/src/data_mgmt/openssl_compat.h
-new file mode 100644
-index 0000000000..2a60fdf492
---- /dev/null
-+++ b/src/data_mgmt/openssl_compat.h
-@@ -0,0 +1,58 @@
-+/*
-+ * Getter functions for OpenSSL < 1.1 compatibility. Based on code from:
-+ * https://wiki.openssl.org/index.php/1.1_API_Changes#Adding_forward-compatible_code_to_older_versions
-+ * and therefore:
-+ * Copyright OpenSSL 2016
-+ * Contents licensed under the terms of the OpenSSL license
-+ * See http://www.openssl.org/source/license.html for details
-+ */
-+
-+#ifndef __OPENSSL_COMPAT_H
-+#define __OPENSSL_COMPAT_H
-+
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+
-+#include <openssl/engine.h>
-+
-+static inline void
-+RSA_get0_key( const RSA *r,
-+              const BIGNUM **n,
-+              const BIGNUM **e,
-+              const BIGNUM **d ) {
-+
-+	if ( n )
-+		*n = r->n;
-+	if ( e )
-+		*e = r->e;
-+	if ( d )
-+		*d = r->d;
-+}
-+
-+static inline void
-+RSA_get0_factors( const RSA *r,
-+                  const BIGNUM **p,
-+                  const BIGNUM **q ) {
-+
-+	if ( p )
-+		*p = r->p;
-+	if ( q )
-+		*q = r->q;
-+}
-+
-+static inline void
-+RSA_get0_crt_params( const RSA *r,
-+                     const BIGNUM **dmp1,
-+                     const BIGNUM **dmq1,
-+                     const BIGNUM **iqmp ) {
-+
-+	if ( dmp1 )
-+		*dmp1 = r->dmp1;
-+	if ( dmq1 )
-+		*dmq1 = r->dmq1;
-+	if ( iqmp )
-+		*iqmp = r->iqmp;
-+}
-+
-+#endif /* OPENSSL_VERSION_NUMBER */
-+
-+#endif /* __OPENSSL_COMPAT_H */
--- 
-2.9.3
-
diff --git a/0003-Allocate-OpenSSL-cipher-contexts-for-seal-unseal.patch b/0003-Allocate-OpenSSL-cipher-contexts-for-seal-unseal.patch
index 3aaca68..1f18e8b 100644
--- a/0003-Allocate-OpenSSL-cipher-contexts-for-seal-unseal.patch
+++ b/0003-Allocate-OpenSSL-cipher-contexts-for-seal-unseal.patch
@@ -25,11 +25,12 @@ index fc4a84906a..005dab7f8f 100644
  	BIO *bdata = NULL, *b64 = NULL, *bmem = NULL;
  	int bioRc;
  
-@@ -408,7 +408,11 @@ int tpmUnsealFile( char* fname, unsigned char** tss_data, int* tss_size,
+@@ -408,7 +408,12 @@ int tpmUnsealFile( char* fname, unsigned char** tss_data, int* tss_size,
  	}
  
  	/* Decode and decrypt the encrypted data */
--	EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
+-	EVP_CIPHER_CTX *ctx = NULL;
++	ctx = EVP_CIPHER_CTX_new();
 +	if ( ctx == NULL ) {
 +		rc = TPMSEAL_STD_ERROR;
 +		tpm_errno = ENOMEM;
@@ -61,11 +62,12 @@ index a2157f34b1..e25244a0f4 100644
  	BIO *bin = NULL, *bdata=NULL, *b64=NULL;
  
  	initIntlSys();
-@@ -343,7 +343,10 @@ int main(int argc, char **argv)
+@@ -343,7 +343,11 @@ int main(int argc, char **argv)
  	BIO_puts(bdata, TPMSEAL_ENC_STRING); 
  	bdata = BIO_push(b64, bdata);
  
--	EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
+-	EVP_CIPHER_CTX *ctx = NULL;
++	ctx = EVP_CIPHER_CTX_new();
 +	if (ctx == NULL) {
 +		logError(_("Unable to allocate cipher context\n"));
 +		goto out_close;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/tpm-tools.git/commitdiff/f84ef36131a8ed00f05a6fbefaf5e14e7f418e43



More information about the pld-cvs-commit mailing list