Date: Tuesday, November 1, 2022 @ 18:37:25
  Author: felixonmars
Revision: 1340219

add a patch for openssl 3

Added:
  opensc/trunk/opensc-openssl-3.patch
Modified:
  opensc/trunk/PKGBUILD

------------------------+
 PKGBUILD               |   13 ++++++++-
 opensc-openssl-3.patch |   64 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+), 2 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2022-11-01 18:25:20 UTC (rev 1340218)
+++ PKGBUILD    2022-11-01 18:37:25 UTC (rev 1340219)
@@ -14,9 +14,18 @@
 makedepends=('docbook-xsl')
 depends=('pcsclite' 'glib2' 'libltdl')
 options=(!emptydirs !lto)
-source=("https://github.com/OpenSC/OpenSC/releases/download/$pkgver/opensc-$pkgver.tar.gz";)
-sha512sums=('70ad5f1219f2ec2a5529a30d8e9955510c77c87d0bc857d5951c7227c75cf9de1c6071f43dd3816a2034123ebd902709793ff776e84d5379fdd54c811ccfaaee')
+source=("https://github.com/OpenSC/OpenSC/releases/download/$pkgver/opensc-$pkgver.tar.gz";
+        opensc-openssl-3.patch)
+sha512sums=('70ad5f1219f2ec2a5529a30d8e9955510c77c87d0bc857d5951c7227c75cf9de1c6071f43dd3816a2034123ebd902709793ff776e84d5379fdd54c811ccfaaee'
+            
'53cbfd98ac49c0436cc39f069cf2a099d66d337a102682fcd17031f4ffcf6ebf7625a7b7aad44170010e291b7265954bc9a8e6650df86672ce3be88c85dae659')
 
+prepare() {
+  cd $pkgname-$pkgver
+  patch -p1 -i ../opensc-openssl-3.patch
+  # Remove -Werror to ignore openssl 3 deprecation warnings
+  sed -i 's/-Werror//' configure.ac
+}
+
 build() {
   cd $pkgname-$pkgver
 

Added: opensc-openssl-3.patch
===================================================================
--- opensc-openssl-3.patch                              (rev 0)
+++ opensc-openssl-3.patch      2022-11-01 18:37:25 UTC (rev 1340219)
@@ -0,0 +1,64 @@
+From c3dcab8b237d42961c0dc12ab2105f3df9073116 Mon Sep 17 00:00:00 2001
+From: xhanulik <[email protected]>
+Date: Mon, 25 Oct 2021 15:47:44 +0200
+Subject: [PATCH] pkcs11-tool: load legacy provider for RIPEMD160 in test
+
+---
+ src/tools/pkcs11-tool.c | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/src/tools/pkcs11-tool.c b/src/tools/pkcs11-tool.c
+index 66f1acaf4e..53e7c7d75f 100644
+--- a/src/tools/pkcs11-tool.c
++++ b/src/tools/pkcs11-tool.c
+@@ -52,6 +52,7 @@
+ #include <openssl/asn1t.h>
+ #include <openssl/rsa.h>
+ #include <openssl/pem.h>
++#include <openssl/provider.h>
+ #if !defined(OPENSSL_NO_EC) && !defined(OPENSSL_NO_ECDSA)
+ #include <openssl/ec.h>
+ #include <openssl/ecdsa.h>
+@@ -71,6 +72,10 @@
+ #include "util.h"
+ #include "libopensc/sc-ossl-compat.h"
+ 
++#if OPENSSL_VERSION_NUMBER >= 0x30000000L
++OSSL_PROVIDER *legacy_provider = NULL;
++#endif
++
+ #ifdef _WIN32
+ #ifndef STDOUT_FILENO
+ #define STDOUT_FILENO 1
+@@ -5766,7 +5771,6 @@ static int test_digest(CK_SESSION_HANDLE session)
+       CK_ULONG        hashLen1, hashLen2;
+       CK_MECHANISM_TYPE firstMechType;
+       CK_SESSION_INFO sessionInfo;
+-
+       CK_MECHANISM_TYPE mechTypes[] = {
+               CKM_MD5,
+               CKM_RIPEMD160,
+@@ -5868,6 +5872,11 @@ static int test_digest(CK_SESSION_HANDLE session)
+ #endif
+       for (; mechTypes[i] != 0xffffff; i++) {
+               ck_mech.mechanism = mechTypes[i];
++#if OPENSSL_VERSION_NUMBER >= 0x30000000L
++              if (!legacy_provider) {
++                      legacy_provider = OSSL_PROVIDER_load(NULL, "legacy");
++              }
++#endif
+ 
+               rv = p11->C_DigestInit(session, &ck_mech);
+               if (rv == CKR_MECHANISM_INVALID)
+@@ -6065,6 +6074,11 @@ static int sign_verify_openssl(CK_SESSION_HANDLE 
session,
+               EVP_sha256(),
+       };
+ #endif
++#if OPENSSL_VERSION_NUMBER >= 0x30000000L
++      if (!legacy_provider) {
++              legacy_provider = OSSL_PROVIDER_load(NULL, "legacy");
++      }
++#endif
+ 
+       rv = p11->C_SignInit(session, ck_mech, privKeyObject);
+       /* mechanism not implemented, don't test */

Reply via email to