public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
To: git-commits@fedoraproject.org
Subject: [rpms/linux-sgx] main: Fix compatibility with OpenSSL 4.0.0 and CMake 4
Date: Thu, 23 Jul 2026 11:18:48 GMT	[thread overview]
Message-ID: <178480552879.1.12349014832050574955.rpms-linux-sgx-0f24fac4cedf@fedoraproject.org> (raw)

            A new commit has been pushed.

            Repo   : rpms/linux-sgx
            Branch : main
            Commit : 0f24fac4cedff54b268f026d55bb5162dac42e1b
            Author : Daniel P. Berrangé <berrange@redhat.com>
            Date   : 2026-07-23T12:17:17+01:00
            Stats  : +2294/-98 in 53 file(s)
            URL    : https://src.fedoraproject.org/rpms/linux-sgx/c/0f24fac4cedff54b268f026d55bb5162dac42e1b?branch=main

            Log:
            Fix compatibility with OpenSSL 4.0.0 and CMake 4

OpenSSL made many APIs accept & return const data requiring
many changes. CMake 4 dropped compat with 3.5 unless explicitly
asked for. The patches to disable some OpenSSL algs were also
broken by a clang-format applied to OpenSSL stable branches
previously.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>

---
diff --git a/0000-Add-support-for-building-against-host-openssl-crypto.patch b/0000-Add-support-for-building-against-host-openssl-crypto.patch
index 22a5130..2224d27 100644
--- a/0000-Add-support-for-building-against-host-openssl-crypto.patch
+++ b/0000-Add-support-for-building-against-host-openssl-crypto.patch
@@ -1,7 +1,7 @@
 From f3d15471fc97351df73b6d7af95561c9ecfa3a6c Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 13 Feb 2025 14:12:38 +0000
-Subject: [PATCH 00/16] Add support for building against host openssl crypto
+Subject: [PATCH 00/17] Add support for building against host openssl crypto
  lib
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -212,5 +212,5 @@ index 79f20a2b..8af19905 100644
  
  .PHONY: all
 -- 
-2.53.0
+2.55.0
 

diff --git a/0001-Add-support-for-building-against-host-tinyxml2-lib.patch b/0001-Add-support-for-building-against-host-tinyxml2-lib.patch
index 52c2181..861c0d7 100644
--- a/0001-Add-support-for-building-against-host-tinyxml2-lib.patch
+++ b/0001-Add-support-for-building-against-host-tinyxml2-lib.patch
@@ -1,7 +1,7 @@
 From 79bc4b56fd25fbf49927be31513556ec9d86e6ec Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 13 Feb 2025 14:01:10 +0000
-Subject: [PATCH 01/16] Add support for building against host tinyxml2 lib
+Subject: [PATCH 01/17] Add support for building against host tinyxml2 lib
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -80,5 +80,5 @@ index ed177c86..1dcb6f51 100644
  
  sgx_sign: $(OBJS) enclaveparser
 -- 
-2.53.0
+2.55.0
 

diff --git a/0002-Add-support-for-building-against-host-CppMicroServic.patch b/0002-Add-support-for-building-against-host-CppMicroServic.patch
index 48ec042..3b23572 100644
--- a/0002-Add-support-for-building-against-host-CppMicroServic.patch
+++ b/0002-Add-support-for-building-against-host-CppMicroServic.patch
@@ -1,7 +1,7 @@
 From b59cf0e4fb227486ba743f4d02b9cede4b2e08ec Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 13 Feb 2025 14:01:10 +0000
-Subject: [PATCH 02/16] Add support for building against host CppMicroServices
+Subject: [PATCH 02/17] Add support for building against host CppMicroServices
  lib
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -138,5 +138,5 @@ index 735c5fa5..065b7527 100644
  cmake_minimum_required(VERSION ${US_CMAKE_MINIMUM_REQUIRED_VERSION})
  cmake_policy(VERSION ${US_CMAKE_MINIMUM_REQUIRED_VERSION})
 -- 
-2.53.0
+2.55.0
 

diff --git a/0003-Improve-make-debuggability.patch b/0003-Improve-make-debuggability.patch
index a52f859..2ef0694 100644
--- a/0003-Improve-make-debuggability.patch
+++ b/0003-Improve-make-debuggability.patch
@@ -1,7 +1,7 @@
 From 572c92dac5c5a27fa76d611703e25a341bb610aa Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Fri, 1 Mar 2024 12:53:26 +0000
-Subject: [PATCH 03/16] Improve make debuggability
+Subject: [PATCH 03/17] Improve make debuggability
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -70,5 +70,5 @@ index 1d382c5b..91156a75 100644
  .PHONY: clean
  clean:
 -- 
-2.53.0
+2.55.0
 

diff --git a/0004-Support-disabling-use-of-git-for-ippcp-code.patch b/0004-Support-disabling-use-of-git-for-ippcp-code.patch
index 971cc77..d49e26d 100644
--- a/0004-Support-disabling-use-of-git-for-ippcp-code.patch
+++ b/0004-Support-disabling-use-of-git-for-ippcp-code.patch
@@ -1,7 +1,7 @@
 From f11e29272736b152f7365febf8e157a410d4818b Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 13 Feb 2025 14:37:24 +0000
-Subject: [PATCH 04/16] Support disabling use of git for ippcp code
+Subject: [PATCH 04/17] Support disabling use of git for ippcp code
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -45,5 +45,5 @@ index a57c22a9..d78ba90e 100644
  
  .PHONY: clean
 -- 
-2.53.0
+2.55.0
 

diff --git a/0005-disable-openmp-protobuf-sample_crypto-builds.patch b/0005-disable-openmp-protobuf-sample_crypto-builds.patch
index 6f0ca90..9b84f6b 100644
--- a/0005-disable-openmp-protobuf-sample_crypto-builds.patch
+++ b/0005-disable-openmp-protobuf-sample_crypto-builds.patch
@@ -1,7 +1,7 @@
 From ea9950ebf08d3899c345176ab24d7b3b8b39067d Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Tue, 18 Jun 2024 15:57:22 +0100
-Subject: [PATCH 05/16] disable openmp, protobuf & sample_crypto builds
+Subject: [PATCH 05/17] disable openmp, protobuf & sample_crypto builds
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -448,5 +448,5 @@ index 37fb7dc4..59c5f8ea 100644
  	$(MAKE) -C $(LINUX_EXTERNAL_DIR)/libcxxrt      clean
  	$(MAKE) -C ttls						           clean
 -- 
-2.53.0
+2.55.0
 

diff --git a/0006-psw-prefer-dev-sgx_provision-dev-sgx_enclave.patch b/0006-psw-prefer-dev-sgx_provision-dev-sgx_enclave.patch
index 8491d87..3eaa315 100644
--- a/0006-psw-prefer-dev-sgx_provision-dev-sgx_enclave.patch
+++ b/0006-psw-prefer-dev-sgx_provision-dev-sgx_enclave.patch
@@ -1,7 +1,7 @@
 From b6781ffdf7993718ddc232b27a0eac4d2ef2dddf Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Fri, 4 Oct 2024 16:33:20 +0100
-Subject: [PATCH 06/16] psw: prefer /dev/sgx_provision & /dev/sgx_enclave
+Subject: [PATCH 06/17] psw: prefer /dev/sgx_provision & /dev/sgx_enclave
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -74,5 +74,5 @@ index 9406ee64..5eea4ecd 100644
      }
      else if (driver_type == SGX_DRIVER_DCAP)
 -- 
-2.53.0
+2.55.0
 

diff --git a/0007-psw-fix-soname-for-libuae_service.so-library.patch b/0007-psw-fix-soname-for-libuae_service.so-library.patch
index 8dd9be5..618fa52 100644
--- a/0007-psw-fix-soname-for-libuae_service.so-library.patch
+++ b/0007-psw-fix-soname-for-libuae_service.so-library.patch
@@ -1,7 +1,7 @@
 From e39bf7eef92faee1f6096d4ca7da0e2571a94cba Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Fri, 17 Jan 2025 15:38:56 +0000
-Subject: [PATCH 07/16] psw: fix soname for libuae_service.so library
+Subject: [PATCH 07/17] psw: fix soname for libuae_service.so library
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -25,5 +25,5 @@ index 0de5ab7c..3d9a1408 100644
  $(IPC_SRC:.cpp=.o) : $(IPC_COMMON_PROTO_DIR)/messages.pb.cc
  AEServicesImpl.o : $(IPC_COMMON_PROTO_DIR)/messages.pb.cc
 -- 
-2.53.0
+2.55.0
 

diff --git a/0008-pcl-remove-redundant-use-of-bool-type.patch b/0008-pcl-remove-redundant-use-of-bool-type.patch
index 0b80e4e..099f8bf 100644
--- a/0008-pcl-remove-redundant-use-of-bool-type.patch
+++ b/0008-pcl-remove-redundant-use-of-bool-type.patch
@@ -1,7 +1,7 @@
 From 30c235fb42a26be114a50bc07b82a4700747df25 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 6 Feb 2025 09:54:33 +0000
-Subject: [PATCH 08/16] pcl: remove redundant use of 'bool' type
+Subject: [PATCH 08/17] pcl: remove redundant use of 'bool' type
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -45,5 +45,5 @@ index 5ad6efde..b78ca907 100644
  #endif // #ifdef SE_SIM 
  
 -- 
-2.53.0
+2.55.0
 

diff --git a/0009-sdk-honour-CFLAGS-LDFLAGS-set-from-environment.patch b/0009-sdk-honour-CFLAGS-LDFLAGS-set-from-environment.patch
index b62599a..36fa76b 100644
--- a/0009-sdk-honour-CFLAGS-LDFLAGS-set-from-environment.patch
+++ b/0009-sdk-honour-CFLAGS-LDFLAGS-set-from-environment.patch
@@ -1,7 +1,7 @@
 From f5703f8320b8fb6f4a5f227bb522ea8e1d7721e9 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 27 Mar 2025 14:17:01 +0000
-Subject: [PATCH 09/16] sdk: honour CFLAGS/LDFLAGS set from environment
+Subject: [PATCH 09/17] sdk: honour CFLAGS/LDFLAGS set from environment
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -122,5 +122,5 @@ index 8af19905..78f53484 100644
  $(BUILD_DIR):
  	@$(MKDIR) $@
 -- 
-2.53.0
+2.55.0
 

diff --git a/0010-psw-make-aesm_service-build-verbose.patch b/0010-psw-make-aesm_service-build-verbose.patch
index 5661eb7..7fdd26f 100644
--- a/0010-psw-make-aesm_service-build-verbose.patch
+++ b/0010-psw-make-aesm_service-build-verbose.patch
@@ -1,7 +1,7 @@
 From 693ee7cf08bf06c9de402fd3df5fb8d44c40e903 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 27 Mar 2025 16:07:10 +0000
-Subject: [PATCH 10/16] psw: make aesm_service build verbose.
+Subject: [PATCH 10/17] psw: make aesm_service build verbose.
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -25,5 +25,5 @@ index b469bffb..b150044e 100644
  	$(CP) $(CPPMICROSERVICES) source/build/bin/
  endif
 -- 
-2.53.0
+2.55.0
 

diff --git a/0011-Fix-modern-C-function-prototype-compliance.patch b/0011-Fix-modern-C-function-prototype-compliance.patch
index cc8ae97..2cd6fbd 100644
--- a/0011-Fix-modern-C-function-prototype-compliance.patch
+++ b/0011-Fix-modern-C-function-prototype-compliance.patch
@@ -1,7 +1,7 @@
 From acd8d8671bc163a078c189b90244a521d1c4ac5a Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Mon, 31 Mar 2025 10:55:25 +0100
-Subject: [PATCH 11/16] Fix modern C function prototype compliance
+Subject: [PATCH 11/17] Fix modern C function prototype compliance
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -39,5 +39,5 @@ index 8e4e7600..8c38bb68 100644
      g_sys_ptrace = (ptrace_t)dlsym(RTLD_NEXT, "ptrace");
      g_sys_waitpid = (waitpid_t)dlsym(RTLD_NEXT, "waitpid");
 -- 
-2.53.0
+2.55.0
 

diff --git a/0012-Add-wrapper-for-nasm-to-fix-cmake-compat.patch b/0012-Add-wrapper-for-nasm-to-fix-cmake-compat.patch
index abaf61f..e3ef33c 100644
--- a/0012-Add-wrapper-for-nasm-to-fix-cmake-compat.patch
+++ b/0012-Add-wrapper-for-nasm-to-fix-cmake-compat.patch
@@ -1,7 +1,7 @@
 From 258dfa3df79b8286549856003e8234975434fbb3 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Wed, 2 Apr 2025 17:11:25 +0100
-Subject: [PATCH 12/16] Add wrapper for nasm to fix cmake compat
+Subject: [PATCH 12/17] Add wrapper for nasm to fix cmake compat
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -65,5 +65,5 @@ index d78ba90e..71a40247 100644
  $(IPP_SOURCE)/build:
  ifeq ($(IPP_USE_GIT), 1)
 -- 
-2.53.0
+2.55.0
 

diff --git a/0013-linux-installer-drop-PCCS-package-from-BOM.patch b/0013-linux-installer-drop-PCCS-package-from-BOM.patch
index 138ebb5..d9dccdc 100644
--- a/0013-linux-installer-drop-PCCS-package-from-BOM.patch
+++ b/0013-linux-installer-drop-PCCS-package-from-BOM.patch
@@ -1,7 +1,7 @@
 From 9291f1ccc657b814bcb4094633a911061726f8dc Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Fri, 27 Jun 2025 11:37:26 +0100
-Subject: [PATCH 13/16] linux/installer: drop PCCS package from BOM
+Subject: [PATCH 13/17] linux/installer: drop PCCS package from BOM
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -297,5 +297,5 @@ index 7129b71d..c55a8ada 100644
  RA_NETWORK_PACKAGE=libsgx-ra-network
  RA_NETWORK_DEV_PACKAGE=libsgx-ra-network-devel
 -- 
-2.53.0
+2.55.0
 

diff --git a/0014-sdk-avoid-failure-due-to-attribute-regparam-with-GCC.patch b/0014-sdk-avoid-failure-due-to-attribute-regparam-with-GCC.patch
index 9551911..f20565a 100644
--- a/0014-sdk-avoid-failure-due-to-attribute-regparam-with-GCC.patch
+++ b/0014-sdk-avoid-failure-due-to-attribute-regparam-with-GCC.patch
@@ -1,7 +1,7 @@
 From 4a12419da033bf88ded73ece3a80090c3d48c7ef Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Tue, 6 Jan 2026 18:31:32 +0000
-Subject: [PATCH 14/16] sdk: avoid failure due to attribute(regparam) with GCC
+Subject: [PATCH 14/17] sdk: avoid failure due to attribute(regparam) with GCC
  16
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -79,5 +79,5 @@ index 5750aece..4766ef51 100644
              -fno-rtti
  
 -- 
-2.53.0
+2.55.0
 

diff --git a/0015-fix-BOM-for-mpa_manage-mpa_registration-files.patch b/0015-fix-BOM-for-mpa_manage-mpa_registration-files.patch
index 87b249f..a9d5ea3 100644
--- a/0015-fix-BOM-for-mpa_manage-mpa_registration-files.patch
+++ b/0015-fix-BOM-for-mpa_manage-mpa_registration-files.patch
@@ -1,7 +1,7 @@
 From 9fa76f92c2dd7430b5b873cf0b93810d9fb80a8f Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Mon, 2 Feb 2026 19:01:24 +0000
-Subject: [PATCH 15/16] fix BOM for mpa_manage/mpa_registration files
+Subject: [PATCH 15/17] fix BOM for mpa_manage/mpa_registration files
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -94,5 +94,5 @@ index 3521a03f..6fea3137 100644
 +<deliverydir>/external/dcap_source/tools/SGXPlatformRegistration/src/mpa_registration/startup.sh	<installdir>/startup.sh	0	main	STP
 +<deliverydir>/external/dcap_source/tools/SGXPlatformRegistration/src/mpa_registration/cleanup.sh	<installdir>/cleanup.sh	0	main	STP
 -- 
-2.53.0
+2.55.0
 

diff --git a/0016-fix-missing-def-of-uncaught_exception.patch b/0016-fix-missing-def-of-uncaught_exception.patch
index 76acfa5..bbdd7a5 100644
--- a/0016-fix-missing-def-of-uncaught_exception.patch
+++ b/0016-fix-missing-def-of-uncaught_exception.patch
@@ -1,7 +1,7 @@
 From ce1ad3fba7d14ff037b40ffeab2dccbfa7ccdbc5 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Wed, 25 Mar 2026 12:15:12 +0000
-Subject: [PATCH 16/16] fix missing def of uncaught_exception
+Subject: [PATCH 16/17] fix missing def of uncaught_exception
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -33,5 +33,5 @@ index a3c81106..b81f2d0c 100644
  #  endif
  
 -- 
-2.53.0
+2.55.0
 

diff --git a/0017-sdk-adapt-to-openssl4-API-changes.patch b/0017-sdk-adapt-to-openssl4-API-changes.patch
new file mode 100644
index 0000000..ada36fa
--- /dev/null
+++ b/0017-sdk-adapt-to-openssl4-API-changes.patch
@@ -0,0 +1,53 @@
+From b17c3e46de9b3c3004d394ae8b4c7b6cafa968a6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
+Date: Mon, 20 Jul 2026 10:51:55 +0100
+Subject: [PATCH 17/17] sdk: adapt to openssl4 API changes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Returned  ASN1 structures must now be const, and the string
+type is now opaque.
+
+Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
+---
+ sdk/ttls/cert_verifier.cpp | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/sdk/ttls/cert_verifier.cpp b/sdk/ttls/cert_verifier.cpp
+index 2889bfaf..a852d153 100644
+--- a/sdk/ttls/cert_verifier.cpp
++++ b/sdk/ttls/cert_verifier.cpp
+@@ -733,7 +733,7 @@ sgx_status_t sgx_cert_find_extension(
+     for (int i = 0; i < num_extensions; i++)
+     {
+         X509_EXTENSION* ext;
+-        ASN1_OBJECT* obj;
++        const ASN1_OBJECT* obj;
+         sgx_oid_string_t ext_oid;
+ 
+         /* Get the i-th extension from the stack */
+@@ -751,7 +751,7 @@ sgx_status_t sgx_cert_find_extension(
+         /* If found then get the data */
+         if (strcmp(ext_oid.buf, oid) == 0)
+         {
+-            ASN1_OCTET_STRING* str;
++            const ASN1_OCTET_STRING* str;
+ 
+             /* Get the data from the extension */
+             if (!(str = X509_EXTENSION_get_data(ext)))
+@@ -759,8 +759,9 @@ sgx_status_t sgx_cert_find_extension(
+ 
+             if (data)
+             {
+-                memcpy(data, str->data, (size_t)str->length);
+-                *size = (size_t)str->length;
++                const unsigned char *strdata = ASN1_STRING_get0_data(str);
++                *size = (size_t)ASN1_STRING_length(str);
++                memcpy(data, strdata, (size_t)*size);
+                 result = SGX_SUCCESS;
+                 goto done;
+             }
+-- 
+2.55.0
+

diff --git a/0100-Drop-use-of-bundled-pre-built-openssl.patch b/0100-Drop-use-of-bundled-pre-built-openssl.patch
index 3adc9b3..f29e4a7 100644
--- a/0100-Drop-use-of-bundled-pre-built-openssl.patch
+++ b/0100-Drop-use-of-bundled-pre-built-openssl.patch
@@ -1,7 +1,7 @@
 From 1d5c7e55c48a88437045e08261a7cd3ce2f4ab87 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Mon, 26 Feb 2024 12:19:51 +0000
-Subject: [PATCH 100/125] Drop use of bundled pre-built openssl
+Subject: [PATCH 100/127] Drop use of bundled pre-built openssl
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -268,5 +268,5 @@ index a20a3cd5..499ee94f 100644
  debug:
  	$(PCKCERTSEL_VERBOSE)$(MAKE) DEBUG=1 all
 -- 
-2.54.0
+2.55.0
 

diff --git a/0101-Improve-debuggability-of-build-system.patch b/0101-Improve-debuggability-of-build-system.patch
index 20372c2..d6bd8f7 100644
--- a/0101-Improve-debuggability-of-build-system.patch
+++ b/0101-Improve-debuggability-of-build-system.patch
@@ -1,7 +1,7 @@
 From e56d81031a49344706c38ce64a6294252d5bccc9 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Fri, 1 Mar 2024 12:05:01 +0000
-Subject: [PATCH 101/125] Improve debuggability of build system
+Subject: [PATCH 101/127] Improve debuggability of build system
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -220,5 +220,5 @@ index f21ba8d3..d5af625a 100644
  
  print-% : ; @echo $* = $($*)
 -- 
-2.54.0
+2.55.0
 

diff --git a/0102-Support-build-time-setting-of-enclave-load-directory.patch b/0102-Support-build-time-setting-of-enclave-load-directory.patch
index 17b7fd2..a580812 100644
--- a/0102-Support-build-time-setting-of-enclave-load-directory.patch
+++ b/0102-Support-build-time-setting-of-enclave-load-directory.patch
@@ -1,7 +1,7 @@
 From aa175423d4f6972f0a796d865f401f2fd8dc562c Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Mon, 26 Feb 2024 12:19:51 +0000
-Subject: [PATCH 102/125] Support build time setting of enclave load directory
+Subject: [PATCH 102/127] Support build time setting of enclave load directory
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -259,5 +259,5 @@ index 8ff58b8a..22251bfa 100644
  App_Link_Flags := $(SGX_COMMON_CFLAGS) -Wl,-z,relro,-z,now,-z,noexecstack
  App_Link_Flags +=  -lcurl -ldl -lpthread
 -- 
-2.54.0
+2.55.0
 

diff --git a/0103-Look-for-versioned-sgx_urts-library-in-PCKRetrievalT.patch b/0103-Look-for-versioned-sgx_urts-library-in-PCKRetrievalT.patch
index 83cdeed..e02509e 100644
--- a/0103-Look-for-versioned-sgx_urts-library-in-PCKRetrievalT.patch
+++ b/0103-Look-for-versioned-sgx_urts-library-in-PCKRetrievalT.patch
@@ -1,7 +1,7 @@
 From 38880d491208012697daa55555ec7d0b5716da57 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Tue, 27 Feb 2024 15:46:41 +0000
-Subject: [PATCH 103/125] Look for versioned sgx_urts library in
+Subject: [PATCH 103/127] Look for versioned sgx_urts library in
  PCKRetrievalTool
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -40,5 +40,5 @@ index 634ad27b..9fc1fe1d 100644
      }
  #endif
 -- 
-2.54.0
+2.55.0
 

diff --git a/0104-pcsclient-only-import-pypac-module-on-Windows.patch b/0104-pcsclient-only-import-pypac-module-on-Windows.patch
index fd2e102..96ff0fe 100644
--- a/0104-pcsclient-only-import-pypac-module-on-Windows.patch
+++ b/0104-pcsclient-only-import-pypac-module-on-Windows.patch
@@ -1,7 +1,7 @@
 From 34587f84399c672fc3da229c3288681b54b250d8 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Fri, 4 Oct 2024 17:41:37 +0100
-Subject: [PATCH 104/125] pcsclient: only import 'pypac' module on Windows
+Subject: [PATCH 104/127] pcsclient: only import 'pypac' module on Windows
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -31,5 +31,5 @@ index fa13c2a2..8fd28e2b 100644
  from requests.adapters import HTTPAdapter
  from urllib3.util import Retry
 -- 
-2.54.0
+2.55.0
 

diff --git a/0105-Look-for-PCKRetrievalTool-config-file-in-etc.patch b/0105-Look-for-PCKRetrievalTool-config-file-in-etc.patch
index bea7ce7..8f5ba13 100644
--- a/0105-Look-for-PCKRetrievalTool-config-file-in-etc.patch
+++ b/0105-Look-for-PCKRetrievalTool-config-file-in-etc.patch
@@ -1,7 +1,7 @@
 From ae8dae8f9a342190cf3218ca9549eef86531c327 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 29 Feb 2024 14:21:36 +0000
-Subject: [PATCH 105/125] Look for PCKRetrievalTool config file in /etc/
+Subject: [PATCH 105/127] Look for PCKRetrievalTool config file in /etc/
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -39,5 +39,5 @@ index 65baf517..e4666896 100644
          if(strnlen(local_configuration_file_path ,MAX_PATH)+strnlen(LOCAL_NETWORK_SETTING,MAX_PATH)+sizeof(char) > MAX_PATH) {
              return false;
 -- 
-2.54.0
+2.55.0
 

diff --git a/0106-Honour-CFLAGS-CXXFLAGS-LDFLAGS-for-various-tools-and.patch b/0106-Honour-CFLAGS-CXXFLAGS-LDFLAGS-for-various-tools-and.patch
index 66d3d54..308b379 100644
--- a/0106-Honour-CFLAGS-CXXFLAGS-LDFLAGS-for-various-tools-and.patch
+++ b/0106-Honour-CFLAGS-CXXFLAGS-LDFLAGS-for-various-tools-and.patch
@@ -1,7 +1,7 @@
 From c53e28aec887ef3fbfcd91621b0726ab84dc4f1f Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Fri, 28 Mar 2025 16:00:27 +0000
-Subject: [PATCH 106/125] Honour CFLAGS/CXXFLAGS/LDFLAGS for various tools and
+Subject: [PATCH 106/127] Honour CFLAGS/CXXFLAGS/LDFLAGS for various tools and
  libraries
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -170,5 +170,5 @@ index 2b10a4c3..d0f4b053 100644
  CXX_WARNINGS := -Wall -Wextra -Winit-self -Wpointer-arith -Wreturn-type -Waddress -Wsequence-point -Wformat-security \
  				-Wmissing-include-dirs -Wfloat-equal -Wundef -Wshadow -Wcast-align -Wconversion -Wredundant-decls
 -- 
-2.54.0
+2.55.0
 

diff --git a/0107-qgs-add-space-between-program-name-first-arg-in-usag.patch b/0107-qgs-add-space-between-program-name-first-arg-in-usag.patch
index b5e60b5..1f4bba3 100644
--- a/0107-qgs-add-space-between-program-name-first-arg-in-usag.patch
+++ b/0107-qgs-add-space-between-program-name-first-arg-in-usag.patch
@@ -1,7 +1,7 @@
 From 56e82b013fb62af8d5805da1993f05cadf401350 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 3 Oct 2024 14:42:29 +0100
-Subject: [PATCH 107/125] qgs: add space between program name & first arg in
+Subject: [PATCH 107/127] qgs: add space between program name & first arg in
  usage
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -35,5 +35,5 @@ index acf7a199..b9f3eed3 100644
              exit(1);
          }
 -- 
-2.54.0
+2.55.0
 

diff --git a/0108-qgs-protect-against-format-strings-in-QL-log-message.patch b/0108-qgs-protect-against-format-strings-in-QL-log-message.patch
index 867a42d..a07d00b 100644
--- a/0108-qgs-protect-against-format-strings-in-QL-log-message.patch
+++ b/0108-qgs-protect-against-format-strings-in-QL-log-message.patch
@@ -1,7 +1,7 @@
 From d07488f32723bb310712e0cd6c744028ca643fd3 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Fri, 4 Oct 2024 09:43:17 +0100
-Subject: [PATCH 108/125] qgs: protect against format strings in QL log
+Subject: [PATCH 108/127] qgs: protect against format strings in QL log
  messages
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -35,5 +35,5 @@ index ce37e418..12c51596 100644
  }
  
 -- 
-2.54.0
+2.55.0
 

diff --git a/0109-qgs-add-debug-parameter-to-control-logging.patch b/0109-qgs-add-debug-parameter-to-control-logging.patch
index c6ff316..4bb42c6 100644
--- a/0109-qgs-add-debug-parameter-to-control-logging.patch
+++ b/0109-qgs-add-debug-parameter-to-control-logging.patch
@@ -1,7 +1,7 @@
 From b193dc9b0f715eb14044e1e848c2a0c4c40d1f55 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 3 Oct 2024 16:57:35 +0100
-Subject: [PATCH 109/125] qgs: add --debug parameter to control logging
+Subject: [PATCH 109/127] qgs: add --debug parameter to control logging
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -125,5 +125,5 @@ index b9f3eed3..62764d04 100644
              exit(1);
          }
 -- 
-2.54.0
+2.55.0
 

diff --git a/0110-pcsclient-remove-leftover-debugging-print-args-state.patch b/0110-pcsclient-remove-leftover-debugging-print-args-state.patch
index 803c5b7..d401778 100644
--- a/0110-pcsclient-remove-leftover-debugging-print-args-state.patch
+++ b/0110-pcsclient-remove-leftover-debugging-print-args-state.patch
@@ -1,7 +1,7 @@
 From cdda8a978fcb996f567ad7e72e5e45c93b5ae024 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Tue, 8 Oct 2024 10:13:02 +0100
-Subject: [PATCH 110/125] pcsclient: remove leftover debugging 'print(args)'
+Subject: [PATCH 110/127] pcsclient: remove leftover debugging 'print(args)'
  statement
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -30,5 +30,5 @@ index 07ab8080..eef984af 100755
  
  class Utils:
 -- 
-2.54.0
+2.55.0
 

diff --git a/0111-Fix-soname-version-for-libsgx_qe3_logic.so-library.patch b/0111-Fix-soname-version-for-libsgx_qe3_logic.so-library.patch
index 14666b1..1972110 100644
--- a/0111-Fix-soname-version-for-libsgx_qe3_logic.so-library.patch
+++ b/0111-Fix-soname-version-for-libsgx_qe3_logic.so-library.patch
@@ -1,7 +1,7 @@
 From f31fe57de72e42558e408f93540c8887ee0f217e Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Fri, 17 Jan 2025 15:39:39 +0000
-Subject: [PATCH 111/125] Fix soname version for libsgx_qe3_logic.so library
+Subject: [PATCH 111/127] Fix soname version for libsgx_qe3_logic.so library
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -51,5 +51,5 @@ index 47684976..63542e58 100644
  
  $(BUILD_DIR):
 -- 
-2.54.0
+2.55.0
 

diff --git a/0112-Workaround-broken-GCC-15.patch b/0112-Workaround-broken-GCC-15.patch
index 8614c31..55bdc57 100644
--- a/0112-Workaround-broken-GCC-15.patch
+++ b/0112-Workaround-broken-GCC-15.patch
@@ -1,7 +1,7 @@
 From 5a18d8d08db1a051a810085427873922e3d9f92a Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 6 Feb 2025 20:08:59 +0000
-Subject: [PATCH 112/125] Workaround broken GCC 15
+Subject: [PATCH 112/127] Workaround broken GCC 15
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -36,5 +36,5 @@ index 15fbdd42..4400544b 100644
  private:
      struct alignas(A)_T_instantiator_
 -- 
-2.54.0
+2.55.0
 

diff --git a/0113-Don-t-disable-cf-protection-for-qgs.patch b/0113-Don-t-disable-cf-protection-for-qgs.patch
index 263e033..64eddd7 100644
--- a/0113-Don-t-disable-cf-protection-for-qgs.patch
+++ b/0113-Don-t-disable-cf-protection-for-qgs.patch
@@ -1,7 +1,7 @@
 From 20494e4793ffbf276fb195a2caf971eff3a5844b Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Wed, 2 Apr 2025 18:39:31 +0100
-Subject: [PATCH 113/125] Don't disable cf-protection for qgs
+Subject: [PATCH 113/127] Don't disable cf-protection for qgs
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -27,5 +27,5 @@ index 2faa6130..fa1f6708 100644
  DEPENDS = ${QGS_OBJS test_client.o:.o=.d}
  
 -- 
-2.54.0
+2.55.0
 

diff --git a/0114-Delete-broken-checks-for-GCC-version-that-break-fsta.patch b/0114-Delete-broken-checks-for-GCC-version-that-break-fsta.patch
index dfac886..403b956 100644
--- a/0114-Delete-broken-checks-for-GCC-version-that-break-fsta.patch
+++ b/0114-Delete-broken-checks-for-GCC-version-that-break-fsta.patch
@@ -1,7 +1,7 @@
 From 4cde0980849bd6e9f33a868491ddb462b0d2f1c9 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 3 Apr 2025 17:44:48 +0100
-Subject: [PATCH 114/125] Delete broken checks for GCC version that break
+Subject: [PATCH 114/127] Delete broken checks for GCC version that break
  -fstack-protector-strong
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -112,5 +112,5 @@ index 715f365a..6a2b23b7 100644
  Enclave_Common_Flags += -DPICOJSON_USE_LOCALE=0 -DBUILD_QAE -DSGX_JWT
  
 -- 
-2.54.0
+2.55.0
 

diff --git a/0115-Use-distro-provided-rapidjson-package.patch b/0115-Use-distro-provided-rapidjson-package.patch
index 0464f2b..418f41c 100644
--- a/0115-Use-distro-provided-rapidjson-package.patch
+++ b/0115-Use-distro-provided-rapidjson-package.patch
@@ -1,7 +1,7 @@
 From fed97620605cf8e64efdaea313645a65abb5f82e Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Mon, 26 Feb 2024 12:19:51 +0000
-Subject: [PATCH 115/125] Use distro provided rapidjson package
+Subject: [PATCH 115/127] Use distro provided rapidjson package
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -163,5 +163,5 @@ index 499ee94f..434fa6b9 100644
  # the library shared object name
  LIB_NAME		:= libPCKCertSelection.a
 -- 
-2.54.0
+2.55.0
 

diff --git a/0116-Don-t-stomp-on-VERBOSE-variable.patch b/0116-Don-t-stomp-on-VERBOSE-variable.patch
index d991f34..fdbc8a0 100644
--- a/0116-Don-t-stomp-on-VERBOSE-variable.patch
+++ b/0116-Don-t-stomp-on-VERBOSE-variable.patch
@@ -1,7 +1,7 @@
 From 6b23d61924f49afc6a9264a5b46a23a34e39829b Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Wed, 16 Apr 2025 11:48:52 +0100
-Subject: [PATCH 116/125] Don't stomp on "VERBOSE" variable
+Subject: [PATCH 116/127] Don't stomp on "VERBOSE" variable
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -97,5 +97,5 @@ index 3d474bbc..0f593f5e 100644
 -	$(VERBOSE) rm -vrf $(TARGET) $(SIGNING_MATERIAL)
 +	$(CMD_VERBOSE) rm -vrf $(TARGET) $(SIGNING_MATERIAL)
 -- 
-2.54.0
+2.55.0
 

diff --git a/0117-qgs-add-m-MODE-parameter-for-UNIX-socket-mode.patch b/0117-qgs-add-m-MODE-parameter-for-UNIX-socket-mode.patch
index 35185c0..1427173 100644
--- a/0117-qgs-add-m-MODE-parameter-for-UNIX-socket-mode.patch
+++ b/0117-qgs-add-m-MODE-parameter-for-UNIX-socket-mode.patch
@@ -1,7 +1,7 @@
 From b9104a5ce6234ff22c802e333224fcbbaf70fea6 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Fri, 2 May 2025 14:48:24 +0100
-Subject: [PATCH 117/125] qgs: add -m=MODE parameter for UNIX socket mode
+Subject: [PATCH 117/127] qgs: add -m=MODE parameter for UNIX socket mode
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -90,5 +90,5 @@ index 62764d04..bef9e0ec 100644
              io_service.run();
              QGS_LOG_INFO("Quit main loop\n");
 -- 
-2.54.0
+2.55.0
 

diff --git a/0118-pcsclient-make-keyring-module-optional.patch b/0118-pcsclient-make-keyring-module-optional.patch
index 8af5797..798aaff 100644
--- a/0118-pcsclient-make-keyring-module-optional.patch
+++ b/0118-pcsclient-make-keyring-module-optional.patch
@@ -1,7 +1,7 @@
 From 1055a7f1f6b9cb2f55784ae52d29677a828ca93c Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 4 Dec 2025 13:31:54 +0000
-Subject: [PATCH 118/125] pcsclient: make 'keyring' module optional
+Subject: [PATCH 118/127] pcsclient: make 'keyring' module optional
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -65,5 +65,5 @@ index fa1e38d0..e0e32ddb 100644
 +                return False
          return True
 -- 
-2.54.0
+2.55.0
 

diff --git a/0119-pcsclient-convert-from-asn1-to-pyasn1-python-module.patch b/0119-pcsclient-convert-from-asn1-to-pyasn1-python-module.patch
index c5ebf5b..8cb08b8 100644
--- a/0119-pcsclient-convert-from-asn1-to-pyasn1-python-module.patch
+++ b/0119-pcsclient-convert-from-asn1-to-pyasn1-python-module.patch
@@ -1,7 +1,7 @@
 From a01581a9e29e919d2af9ee1781d70d725619937d Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 4 Dec 2025 13:54:19 +0000
-Subject: [PATCH 119/125] pcsclient: convert from asn1 to pyasn1 python module
+Subject: [PATCH 119/127] pcsclient: convert from asn1 to pyasn1 python module
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -337,5 +337,5 @@ index 97aa2783..eaed331b 100644
 +		ent= list(filter(lambda e: e['tCBId'] == id_ce_tCB_pCESVN, tcb))[0]
 +		return int(ent["tCBValue"]).to_bytes(2, byteorder='little').hex()
 -- 
-2.54.0
+2.55.0
 

diff --git a/0120-pcsclient-ignore-errors-trying-to-clear-the-keyring.patch b/0120-pcsclient-ignore-errors-trying-to-clear-the-keyring.patch
index e2ef6ef..5907263 100644
--- a/0120-pcsclient-ignore-errors-trying-to-clear-the-keyring.patch
+++ b/0120-pcsclient-ignore-errors-trying-to-clear-the-keyring.patch
@@ -1,7 +1,7 @@
 From 5368f45e784a42a837523916667d045b0680f23d Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 4 Dec 2025 18:05:14 +0000
-Subject: [PATCH 120/125] pcsclient: ignore errors trying to clear the keyring
+Subject: [PATCH 120/127] pcsclient: ignore errors trying to clear the keyring
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -51,5 +51,5 @@ index 8fd28e2b..93f1132b 100644
  
          # Verify expected headers
 -- 
-2.54.0
+2.55.0
 

diff --git a/0121-use-system-gtest-gmock-libraries.patch b/0121-use-system-gtest-gmock-libraries.patch
index 965d78b..985ec3a 100644
--- a/0121-use-system-gtest-gmock-libraries.patch
+++ b/0121-use-system-gtest-gmock-libraries.patch
@@ -1,7 +1,7 @@
 From 035a1ce29dd514141efbee81f2582b9dd71e2b08 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 29 Jan 2026 15:26:38 +0000
-Subject: [PATCH 121/125] use system gtest / gmock libraries
+Subject: [PATCH 121/127] use system gtest / gmock libraries
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -121,5 +121,5 @@ index d0f4b053..d59c297e 100644
 +	@$(CXX) -c $(CXXFLAGS) $(INCLUDE) $(GTEST_CFLAGS)  $< -o $@
  	@echo "$<"
 -- 
-2.54.0
+2.55.0
 

diff --git a/0122-Disable-PcsClientTool-package-build.patch b/0122-Disable-PcsClientTool-package-build.patch
index 890769b..491bf2a 100644
--- a/0122-Disable-PcsClientTool-package-build.patch
+++ b/0122-Disable-PcsClientTool-package-build.patch
@@ -1,7 +1,7 @@
 From 933df77a1507b07d3f30c579f0d878e130dc264e Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Mon, 2 Feb 2026 16:12:50 +0000
-Subject: [PATCH 122/125] Disable PcsClientTool package build
+Subject: [PATCH 122/127] Disable PcsClientTool package build
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -26,5 +26,5 @@ index f6f0fabf..c01e4057 100644
  .PHONY: deb_sgx_pcs_client_pkg
  deb_sgx_pcs_client_pkg:
 -- 
-2.54.0
+2.55.0
 

diff --git a/0123-disable-building-of-WASM-SIMDE-code.patch b/0123-disable-building-of-WASM-SIMDE-code.patch
index 5c00ee6..2dbae69 100644
--- a/0123-disable-building-of-WASM-SIMDE-code.patch
+++ b/0123-disable-building-of-WASM-SIMDE-code.patch
@@ -1,7 +1,7 @@
 From a4b5bda8e776636080f2d9b5ec435fa7102d252b Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Tue, 3 Feb 2026 11:40:10 +0000
-Subject: [PATCH 123/125] disable building of WASM SIMDE code
+Subject: [PATCH 123/127] disable building of WASM SIMDE code
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -29,5 +29,5 @@ index af72a783..a317cf11 100644
      WASM_CONFIG := -DCMAKE_BUILD_TYPE=Debug
  	QAL_Cpp_Flags += -fsanitize=undefined
 -- 
-2.54.0
+2.55.0
 

diff --git a/0124-ensure-build-terminates-if-prepare_sgxssl.sh-fails.patch b/0124-ensure-build-terminates-if-prepare_sgxssl.sh-fails.patch
index 0772ff3..8589f5d 100644
--- a/0124-ensure-build-terminates-if-prepare_sgxssl.sh-fails.patch
+++ b/0124-ensure-build-terminates-if-prepare_sgxssl.sh-fails.patch
@@ -1,7 +1,7 @@
 From a4ec3d8f326e92b32ed151bd89a3ab99f4d66279 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Wed, 25 Mar 2026 15:54:42 +0000
-Subject: [PATCH 124/125] ensure build terminates if prepare_sgxssl.sh fails
+Subject: [PATCH 124/127] ensure build terminates if prepare_sgxssl.sh fails
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -29,5 +29,5 @@ index 19152d77..8195407f 100755
  top_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
  sgxssl_dir=$top_dir/sgxssl
 -- 
-2.54.0
+2.55.0
 

diff --git a/0125-Support-for-26.04-enabled-in-SGXSDK-and-DCAP.patch b/0125-Support-for-26.04-enabled-in-SGXSDK-and-DCAP.patch
index 624d65e..c8a2bb9 100644
--- a/0125-Support-for-26.04-enabled-in-SGXSDK-and-DCAP.patch
+++ b/0125-Support-for-26.04-enabled-in-SGXSDK-and-DCAP.patch
@@ -1,7 +1,7 @@
 From 6c33ecfb5fa66e0144e68ffb7f7bf21c01c65393 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Fri, 6 Mar 2026 07:51:15 +0100
-Subject: [PATCH 125/125] Support for 26.04 enabled in SGXSDK and DCAP
+Subject: [PATCH 125/127] Support for 26.04 enabled in SGXSDK and DCAP
 
 From: Krzysztof Sandowicz <krzysztof.sandowicz@intel.com>
 
@@ -197,5 +197,5 @@ index bef9e0ec..ea2dceae 100644
              QgsServer *temp_server = server;
              server = NULL;
 -- 
-2.54.0
+2.55.0
 

diff --git a/0126-qpl-fix-const-correctness-for-ASN1_STRING-X509_NAME_.patch b/0126-qpl-fix-const-correctness-for-ASN1_STRING-X509_NAME_.patch
new file mode 100644
index 0000000..1585d0f
--- /dev/null
+++ b/0126-qpl-fix-const-correctness-for-ASN1_STRING-X509_NAME_.patch
@@ -0,0 +1,34 @@
+From cf60ce8a83cae39e7d626b33ebf0f38dd511bfb7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
+Date: Mon, 20 Jul 2026 12:36:19 +0100
+Subject: [PATCH 126/127] qpl: fix const correctness for
+ ASN1_STRING/X509_NAME_ENTRY
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In OpenSSL 4 the functions now return a const struct where possible.
+
+Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
+---
+ QuoteGeneration/qpl/linux/x509.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/QuoteGeneration/qpl/linux/x509.cpp b/QuoteGeneration/qpl/linux/x509.cpp
+index 044db8ce..6170ce5e 100644
+--- a/QuoteGeneration/qpl/linux/x509.cpp
++++ b/QuoteGeneration/qpl/linux/x509.cpp
+@@ -69,8 +69,8 @@ static vector<string> crl_urls(X509 *x509) {
+         } else if (distpoint->type == 1) {
+             STACK_OF(X509_NAME_ENTRY) *sk_relname = distpoint->name.relativename;
+             for (int k = 0; k < sk_X509_NAME_ENTRY_num(sk_relname); k++) {
+-                X509_NAME_ENTRY *e = sk_X509_NAME_ENTRY_value(sk_relname, k);
+-                ASN1_STRING *d = X509_NAME_ENTRY_get_data(e);
++                const X509_NAME_ENTRY *e = sk_X509_NAME_ENTRY_value(sk_relname, k);
++                const ASN1_STRING *d = X509_NAME_ENTRY_get_data(e);
+                 list.push_back(string((char *)ASN1_STRING_get0_data(d), ASN1_STRING_length(d)));
+             }
+         }
+-- 
+2.55.0
+

diff --git a/0127-qal-force-compat-with-CMake-3.5.patch b/0127-qal-force-compat-with-CMake-3.5.patch
new file mode 100644
index 0000000..aeaee78
--- /dev/null
+++ b/0127-qal-force-compat-with-CMake-3.5.patch
@@ -0,0 +1,33 @@
+From bb1b8f61184bc8130a273518dbb293a06c1dc985 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
+Date: Wed, 22 Jul 2026 16:32:05 +0100
+Subject: [PATCH 127/127] qal: force compat with CMake 3.5
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+CMake 4 has dropped support for build files designed for
+CMake 3.x out of the box. To opt back in to historical
+compat requires CMAKE_POLICY_VERSION_MINIMUM=3.5 to be
+set.
+
+Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
+---
+ QuoteVerification/appraisal/qal/Makefile | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/QuoteVerification/appraisal/qal/Makefile b/QuoteVerification/appraisal/qal/Makefile
+index a317cf11..ce0a0e00 100644
+--- a/QuoteVerification/appraisal/qal/Makefile
++++ b/QuoteVerification/appraisal/qal/Makefile
+@@ -39,6 +39,7 @@ ifeq ($(DEBUG), 1)
+ endif
+ # Disable HW bound check to allow potential usage with other languages, such as Golang, Java
+ WASM_CONFIG += -DWAMR_DISABLE_HW_BOUND_CHECK=1
++WASM_CONFIG += -DCMAKE_POLICY_VERSION_MINIMUM=3.5
+ 
+ ifeq ($(USE_LOCAL_WASM), 1)
+     QAL_Cpp_Flags += -DUSE_LOCAL_WASM
+-- 
+2.55.0
+

diff --git a/0200-Enable-pointing-sgxssl-build-to-alternative-glibc-he.patch b/0200-Enable-pointing-sgxssl-build-to-alternative-glibc-he.patch
index 0661241..ea225bc 100644
--- a/0200-Enable-pointing-sgxssl-build-to-alternative-glibc-he.patch
+++ b/0200-Enable-pointing-sgxssl-build-to-alternative-glibc-he.patch
@@ -1,7 +1,7 @@
-From 726612218a56c0f5f3d219e2fbacb6c1e2f7153c Mon Sep 17 00:00:00 2001
+From 862befc397afca6c221d3abe50cfd99e55aa828d Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 29 Aug 2024 12:23:30 +0100
-Subject: [PATCH 200/203] Enable pointing sgxssl build to alternative glibc
+Subject: [PATCH 200/204] Enable pointing sgxssl build to alternative glibc
  headers
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
@@ -73,5 +73,5 @@ index ed8456d..bea3463 100644
  clean:	
  	$(MAKE) -C $(TRUSTED_LIB_DIR) clean
 -- 
-2.53.0
+2.55.0
 

diff --git a/0201-Workaround-missing-output-directory.patch b/0201-Workaround-missing-output-directory.patch
index 5a13acf..64169fe 100644
--- a/0201-Workaround-missing-output-directory.patch
+++ b/0201-Workaround-missing-output-directory.patch
@@ -1,7 +1,7 @@
-From c3b4f345afd487fce48837a604b16625f25c1c60 Mon Sep 17 00:00:00 2001
+From d15993ad959c4f599b5c20753b419ee495ac1b11 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Thu, 29 Aug 2024 12:50:32 +0100
-Subject: [PATCH 201/203] Workaround missing output directory
+Subject: [PATCH 201/204] Workaround missing output directory
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -28,5 +28,5 @@ index 1a8ea2c..44bfa7b 100755
  grep OPENSSL_VERSION_STR include/openssl/opensslv.h > $SGXSSL_ROOT/sgx/osslverstr.h || exit 1
  cp -r include/crypto $SGXSSL_ROOT/sgx/test_app/enclave/ || exit 1
 -- 
-2.53.0
+2.55.0
 

diff --git a/0202-Disable-various-EC-crypto-features.patch b/0202-Disable-various-EC-crypto-features.patch
index 906d370..495c719 100644
--- a/0202-Disable-various-EC-crypto-features.patch
+++ b/0202-Disable-various-EC-crypto-features.patch
@@ -1,7 +1,7 @@
-From dba682aa959d913aa316d0102b064ef8415b6987 Mon Sep 17 00:00:00 2001
+From f7230e5a5b0833d809f0ee41e472f24ee3b3faf0 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Fri, 1 Mar 2024 13:24:26 +0000
-Subject: [PATCH 202/203] Disable various EC crypto features
+Subject: [PATCH 202/204] Disable various EC crypto features
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -1631,5 +1631,5 @@ index 0000000..0cae2fa
 + 
 +  err:
 -- 
-2.53.0
+2.55.0
 

diff --git a/0203-Disable-sm2-and-sm4-crypto-algorithms.patch b/0203-Disable-sm2-and-sm4-crypto-algorithms.patch
index 25fca76..852ecfd 100644
--- a/0203-Disable-sm2-and-sm4-crypto-algorithms.patch
+++ b/0203-Disable-sm2-and-sm4-crypto-algorithms.patch
@@ -1,7 +1,7 @@
-From 7ca8da21d6f4d5f6a0785dadd4b90547e3419609 Mon Sep 17 00:00:00 2001
+From 5984c3b8f7ba3310d880a3b65e1143cbc1c12416 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
 Date: Fri, 1 Mar 2024 13:25:14 +0000
-Subject: [PATCH 203/203] Disable sm2 and sm4 crypto algorithms
+Subject: [PATCH 203/204] Disable sm2 and sm4 crypto algorithms
 MIME-Version: 1.0
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 8bit
@@ -119,5 +119,5 @@ index a395ce8..f49e5b7 100644
  }
 +#endif
 -- 
-2.53.0
+2.55.0
 

diff --git a/0204-Update-patches-for-openssl-3.0.19.patch b/0204-Update-patches-for-openssl-3.0.19.patch
new file mode 100644
index 0000000..d74092d
--- /dev/null
+++ b/0204-Update-patches-for-openssl-3.0.19.patch
@@ -0,0 +1,1643 @@
+From 57391d0ca631398b2b6317a9ad3bfeb44751effe Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
+Date: Mon, 20 Jul 2026 17:29:27 +0100
+Subject: [PATCH 204/204] Update patches for openssl 3.0.19
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The 3.0 stable branch got 'clang-format' run across its source breaking
+all patches. Update the patches and use 'set -e' when applying to detect
+errors in future.
+
+Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
+---
+ Linux/build_openssl.sh                        |   2 +
+ ...10-Add-changes-to-ectest-and-eccurve.patch | 556 ++++++++----------
+ openssl_source/0011-Remove-EC-curves.patch    | 276 ++++-----
+ openssl_source/0012-Disable-explicit-ec.patch | 189 +++---
+ 4 files changed, 464 insertions(+), 559 deletions(-)
+
+diff --git a/Linux/build_openssl.sh b/Linux/build_openssl.sh
+index 5b11130..f9f6e99 100755
+--- a/Linux/build_openssl.sh
++++ b/Linux/build_openssl.sh
+@@ -58,6 +58,8 @@ tar xvf $OPENSSL_VERSION.tar.gz > /dev/null || exit 1
+ (
+ 	cd $OPENSSL_VERSION
+ 
++	set -e
++
+ 	for i in $SGXSSL_ROOT/../openssl_source/*.patch
+ 	do
+ 		echo "Apply $i"
+diff --git a/openssl_source/0010-Add-changes-to-ectest-and-eccurve.patch b/openssl_source/0010-Add-changes-to-ectest-and-eccurve.patch
+index aac242b..2097ed2 100644
+--- a/openssl_source/0010-Add-changes-to-ectest-and-eccurve.patch
++++ b/openssl_source/0010-Add-changes-to-ectest-and-eccurve.patch
+@@ -1,17 +1,13 @@
+-diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+---- ./crypto/ec/ec_curve.c.remove-ec	2023-03-13 16:50:09.278933578 +0100
+-+++ ./crypto/ec/ec_curve.c	2023-03-21 12:38:57.696531941 +0100
+-@@ -32,38 +32,6 @@ typedef struct {
+- /* the nist prime curves */
++diff -rup openssl-3.0.19/crypto/ec/ec_curve.c openssl-3.0.19.new/crypto/ec/ec_curve.c
++--- openssl-3.0.19/crypto/ec/ec_curve.c	2026-01-27 14:09:55.000000000 +0000
+++++ openssl-3.0.19.new/crypto/ec/ec_curve.c	2026-07-20 16:29:22.811921724 +0100
++@@ -33,34 +33,6 @@ typedef struct {
+  static const struct {
+      EC_CURVE_DATA h;
+--    unsigned char data[20 + 24 * 6];
++     unsigned char data[20 + 24 * 6];
+ -} _EC_NIST_PRIME_192 = {
+--    {
+--        NID_X9_62_prime_field, 20, 24, 1
+--    },
+--    {
+--        /* seed */
++-    { NID_X9_62_prime_field, 20, 24, 1 },
++-    { /* seed */
+ -        0x30, 0x45, 0xAE, 0x6F, 0xC8, 0x42, 0x2F, 0x64, 0xED, 0x57, 0x95, 0x28,
+ -        0xD3, 0x81, 0x20, 0xEA, 0xE1, 0x21, 0x96, 0xD5,
+ -        /* p */
+@@ -31,30 +27,27 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x6b, 0x24, 0xcd, 0xd5, 0x73, 0xf9, 0x77, 0xa1, 0x1e, 0x79, 0x48, 0x11,
+ -        /* order */
+ -        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+--        0x99, 0xDE, 0xF8, 0x36, 0x14, 0x6B, 0xC9, 0xB1, 0xB4, 0xD2, 0x28, 0x31
+--    }
++-        0x99, 0xDE, 0xF8, 0x36, 0x14, 0x6B, 0xC9, 0xB1, 0xB4, 0xD2, 0x28, 0x31 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+-     unsigned char data[20 + 28 * 6];
++-    unsigned char data[20 + 28 * 6];
+  } _EC_NIST_PRIME_224 = {
+-     {
+-@@ -200,187 +168,6 @@ static const struct {
+-     }
++     { NID_X9_62_prime_field, 20, 28, 1 },
++     { /* seed */
++@@ -184,167 +156,6 @@ static const struct {
++         0xB7, 0x1E, 0x91, 0x38, 0x64, 0x09 }
+  };
+  
+--# ifndef FIPS_MODULE
++-#ifndef FIPS_MODULE
+ -/* the x9.62 prime curves (minus the nist prime curves) */
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[20 + 24 * 6];
+ -} _EC_X9_62_PRIME_192V2 = {
+--    {
+--        NID_X9_62_prime_field, 20, 24, 1
+--    },
+--    {
+--        /* seed */
++-    { NID_X9_62_prime_field, 20, 24, 1 },
++-    { /* seed */
+ -        0x31, 0xA9, 0x2E, 0xE2, 0x02, 0x9F, 0xD1, 0x0D, 0x90, 0x1B, 0x11, 0x3E,
+ -        0x99, 0x07, 0x10, 0xF0, 0xD2, 0x1A, 0xC6, 0xB6,
+ -        /* p */
+@@ -74,19 +67,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x08, 0x3d, 0xf2, 0xf2, 0xb0, 0x84, 0x7d, 0xe9, 0x70, 0xb2, 0xde, 0x15,
+ -        /* order */
+ -        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
+--        0x5F, 0xB1, 0xA7, 0x24, 0xDC, 0x80, 0x41, 0x86, 0x48, 0xD8, 0xDD, 0x31
+--    }
++-        0x5F, 0xB1, 0xA7, 0x24, 0xDC, 0x80, 0x41, 0x86, 0x48, 0xD8, 0xDD, 0x31 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[20 + 24 * 6];
+ -} _EC_X9_62_PRIME_192V3 = {
+--    {
+--        NID_X9_62_prime_field, 20, 24, 1
+--    },
+--    {
+--        /* seed */
++-    { NID_X9_62_prime_field, 20, 24, 1 },
++-    { /* seed */
+ -        0xC4, 0x69, 0x68, 0x44, 0x35, 0xDE, 0xB3, 0x78, 0xC4, 0xB6, 0x5C, 0xA9,
+ -        0x59, 0x1E, 0x2A, 0x57, 0x63, 0x05, 0x9A, 0x2E,
+ -        /* p */
+@@ -106,19 +95,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x6a, 0x6d, 0xc8, 0xf9, 0x97, 0x8a, 0xca, 0x76, 0x48, 0xa9, 0x43, 0xb0,
+ -        /* order */
+ -        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+--        0x7A, 0x62, 0xD0, 0x31, 0xC8, 0x3F, 0x42, 0x94, 0xF6, 0x40, 0xEC, 0x13
+--    }
++-        0x7A, 0x62, 0xD0, 0x31, 0xC8, 0x3F, 0x42, 0x94, 0xF6, 0x40, 0xEC, 0x13 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[20 + 30 * 6];
+ -} _EC_X9_62_PRIME_239V1 = {
+--    {
+--        NID_X9_62_prime_field, 20, 30, 1
+--    },
+--    {
+--        /* seed */
++-    { NID_X9_62_prime_field, 20, 30, 1 },
++-    { /* seed */
+ -        0xE4, 0x3B, 0xB4, 0x60, 0xF0, 0xB8, 0x0C, 0xC0, 0xC0, 0xB0, 0x75, 0x79,
+ -        0x8E, 0x94, 0x80, 0x60, 0xF8, 0x32, 0x1B, 0x7D,
+ -        /* p */
+@@ -144,19 +129,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        /* order */
+ -        0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ -        0x7F, 0xFF, 0xFF, 0x9E, 0x5E, 0x9A, 0x9F, 0x5D, 0x90, 0x71, 0xFB, 0xD1,
+--        0x52, 0x26, 0x88, 0x90, 0x9D, 0x0B
+--    }
++-        0x52, 0x26, 0x88, 0x90, 0x9D, 0x0B }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[20 + 30 * 6];
+ -} _EC_X9_62_PRIME_239V2 = {
+--    {
+--        NID_X9_62_prime_field, 20, 30, 1
+--    },
+--    {
+--        /* seed */
++-    { NID_X9_62_prime_field, 20, 30, 1 },
++-    { /* seed */
+ -        0xE8, 0xB4, 0x01, 0x16, 0x04, 0x09, 0x53, 0x03, 0xCA, 0x3B, 0x80, 0x99,
+ -        0x98, 0x2B, 0xE0, 0x9F, 0xCB, 0x9A, 0xE6, 0x16,
+ -        /* p */
+@@ -182,19 +163,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        /* order */
+ -        0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ -        0x80, 0x00, 0x00, 0xCF, 0xA7, 0xE8, 0x59, 0x43, 0x77, 0xD4, 0x14, 0xC0,
+--        0x38, 0x21, 0xBC, 0x58, 0x20, 0x63
+--    }
++-        0x38, 0x21, 0xBC, 0x58, 0x20, 0x63 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[20 + 30 * 6];
+ -} _EC_X9_62_PRIME_239V3 = {
+--    {
+--        NID_X9_62_prime_field, 20, 30, 1
+--    },
+--    {
+--        /* seed */
++-    { NID_X9_62_prime_field, 20, 30, 1 },
++-    { /* seed */
+ -        0x7D, 0x73, 0x74, 0x16, 0x8F, 0xFE, 0x34, 0x71, 0xB6, 0x0A, 0x85, 0x76,
+ -        0x86, 0xA1, 0x94, 0x75, 0xD3, 0xBF, 0xA2, 0xFF,
+ -        /* p */
+@@ -220,25 +197,20 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        /* order */
+ -        0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ -        0x7F, 0xFF, 0xFF, 0x97, 0x5D, 0xEB, 0x41, 0xB3, 0xA6, 0x05, 0x7C, 0x3C,
+--        0x43, 0x21, 0x46, 0x52, 0x65, 0x51
+--    }
++-        0x43, 0x21, 0x46, 0x52, 0x65, 0x51 }
+ -};
+ -#endif /* FIPS_MODULE */
+ -
+  static const struct {
+      EC_CURVE_DATA h;
+      unsigned char data[20 + 32 * 6];
+-@@ -423,294 +210,6 @@ static const struct {
+- /* the secg prime curves (minus the nist and x9.62 prime curves) */
++@@ -384,258 +195,6 @@ static const struct {
+  static const struct {
+      EC_CURVE_DATA h;
+--    unsigned char data[20 + 14 * 6];
++     unsigned char data[20 + 14 * 6];
+ -} _EC_SECG_PRIME_112R1 = {
+--    {
+--        NID_X9_62_prime_field, 20, 14, 1
+--    },
+--    {
+--        /* seed */
++-    { NID_X9_62_prime_field, 20, 14, 1 },
++-    { /* seed */
+ -        0x00, 0xF5, 0x0B, 0x02, 0x8E, 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61,
+ -        0x51, 0x75, 0x29, 0x04, 0x72, 0x78, 0x3F, 0xB1,
+ -        /* p */
+@@ -258,19 +230,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x75, 0x00,
+ -        /* order */
+ -        0xDB, 0x7C, 0x2A, 0xBF, 0x62, 0xE3, 0x5E, 0x76, 0x28, 0xDF, 0xAC, 0x65,
+--        0x61, 0xC5
+--    }
++-        0x61, 0xC5 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[20 + 14 * 6];
+ -} _EC_SECG_PRIME_112R2 = {
+--    {
+--        NID_X9_62_prime_field, 20, 14, 4
+--    },
+--    {
+--        /* seed */
++-    { NID_X9_62_prime_field, 20, 14, 4 },
++-    { /* seed */
+ -        0x00, 0x27, 0x57, 0xA1, 0x11, 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61,
+ -        0x51, 0x75, 0x53, 0x16, 0xC0, 0x5E, 0x0B, 0xD4,
+ -        /* p */
+@@ -290,19 +258,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x6e, 0x97,
+ -        /* order */
+ -        0x36, 0xDF, 0x0A, 0xAF, 0xD8, 0xB8, 0xD7, 0x59, 0x7C, 0xA1, 0x05, 0x20,
+--        0xD0, 0x4B
+--    }
++-        0xD0, 0x4B }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[20 + 16 * 6];
+ -} _EC_SECG_PRIME_128R1 = {
+--    {
+--        NID_X9_62_prime_field, 20, 16, 1
+--    },
+--    {
+--        /* seed */
++-    { NID_X9_62_prime_field, 20, 16, 1 },
++-    { /* seed */
+ -        0x00, 0x0E, 0x0D, 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61, 0x51, 0x75,
+ -        0x0C, 0xC0, 0x3A, 0x44, 0x73, 0xD0, 0x36, 0x79,
+ -        /* p */
+@@ -322,19 +286,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0xdd, 0xed, 0x7a, 0x83,
+ -        /* order */
+ -        0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x75, 0xA3, 0x0D, 0x1B,
+--        0x90, 0x38, 0xA1, 0x15
+--    }
++-        0x90, 0x38, 0xA1, 0x15 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[20 + 16 * 6];
+ -} _EC_SECG_PRIME_128R2 = {
+--    {
+--        NID_X9_62_prime_field, 20, 16, 4
+--    },
+--    {
+--        /* seed */
++-    { NID_X9_62_prime_field, 20, 16, 4 },
++-    { /* seed */
+ -        0x00, 0x4D, 0x69, 0x6E, 0x67, 0x68, 0x75, 0x61, 0x51, 0x75, 0x12, 0xD8,
+ -        0xF0, 0x34, 0x31, 0xFC, 0xE6, 0x3B, 0x88, 0xF4,
+ -        /* p */
+@@ -354,19 +314,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x5f, 0xc3, 0x4b, 0x44,
+ -        /* order */
+ -        0x3F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xBE, 0x00, 0x24, 0x72,
+--        0x06, 0x13, 0xB5, 0xA3
+--    }
++-        0x06, 0x13, 0xB5, 0xA3 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[0 + 21 * 6];
+ -} _EC_SECG_PRIME_160K1 = {
+--    {
+--        NID_X9_62_prime_field, 0, 21, 1
+--    },
+--    {
+--        /* no seed */
++-    { NID_X9_62_prime_field, 0, 21, 1 },
++-    { /* no seed */
+ -        /* p */
+ -        0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ -        0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xAC, 0x73,
+@@ -384,19 +340,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x86, 0x53, 0x17, 0x33, 0xc3, 0xf0, 0x3c, 0x4f, 0xee,
+ -        /* order */
+ -        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xB8,
+--        0xFA, 0x16, 0xDF, 0xAB, 0x9A, 0xCA, 0x16, 0xB6, 0xB3
+--    }
++-        0xFA, 0x16, 0xDF, 0xAB, 0x9A, 0xCA, 0x16, 0xB6, 0xB3 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[20 + 21 * 6];
+ -} _EC_SECG_PRIME_160R1 = {
+--    {
+--        NID_X9_62_prime_field, 20, 21, 1
+--    },
+--    {
+--        /* seed */
++-    { NID_X9_62_prime_field, 20, 21, 1 },
++-    { /* seed */
+ -        0x10, 0x53, 0xCD, 0xE4, 0x2C, 0x14, 0xD6, 0x96, 0xE6, 0x76, 0x87, 0x56,
+ -        0x15, 0x17, 0x53, 0x3B, 0xF3, 0xF8, 0x33, 0x45,
+ -        /* p */
+@@ -416,19 +368,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x12, 0x04, 0x23, 0x51, 0x37, 0x7a, 0xc5, 0xfb, 0x32,
+ -        /* order */
+ -        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF4,
+--        0xC8, 0xF9, 0x27, 0xAE, 0xD3, 0xCA, 0x75, 0x22, 0x57
+--    }
++-        0xC8, 0xF9, 0x27, 0xAE, 0xD3, 0xCA, 0x75, 0x22, 0x57 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[20 + 21 * 6];
+ -} _EC_SECG_PRIME_160R2 = {
+--    {
+--        NID_X9_62_prime_field, 20, 21, 1
+--    },
+--    {
+--        /* seed */
++-    { NID_X9_62_prime_field, 20, 21, 1 },
++-    { /* seed */
+ -        0xB9, 0x9B, 0x99, 0xB0, 0x99, 0xB3, 0x23, 0xE0, 0x27, 0x09, 0xA4, 0xD6,
+ -        0x96, 0xE6, 0x76, 0x87, 0x56, 0x15, 0x17, 0x51,
+ -        /* p */
+@@ -448,19 +396,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x0d, 0xf9, 0x98, 0x2c, 0xfe, 0xa7, 0xd4, 0x3f, 0x2e,
+ -        /* order */
+ -        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35,
+--        0x1E, 0xE7, 0x86, 0xA8, 0x18, 0xF3, 0xA1, 0xA1, 0x6B
+--    }
++-        0x1E, 0xE7, 0x86, 0xA8, 0x18, 0xF3, 0xA1, 0xA1, 0x6B }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[0 + 24 * 6];
+ -} _EC_SECG_PRIME_192K1 = {
+--    {
+--        NID_X9_62_prime_field, 0, 24, 1
+--    },
+--    {
+--        /* no seed */
++-    { NID_X9_62_prime_field, 0, 24, 1 },
++-    { /* no seed */
+ -        /* p */
+ -        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ -        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xEE, 0x37,
+@@ -478,19 +422,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x15, 0xbe, 0x86, 0x34, 0x40, 0x82, 0xaa, 0x88, 0xd9, 0x5e, 0x2f, 0x9d,
+ -        /* order */
+ -        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
+--        0x26, 0xF2, 0xFC, 0x17, 0x0F, 0x69, 0x46, 0x6A, 0x74, 0xDE, 0xFD, 0x8D
+--    }
++-        0x26, 0xF2, 0xFC, 0x17, 0x0F, 0x69, 0x46, 0x6A, 0x74, 0xDE, 0xFD, 0x8D }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[0 + 29 * 6];
+ -} _EC_SECG_PRIME_224K1 = {
+--    {
+--        NID_X9_62_prime_field, 0, 29, 1
+--    },
+--    {
+--        /* no seed */
++-    { NID_X9_62_prime_field, 0, 29, 1 },
++-    { /* no seed */
+ -        /* p */
+ -        0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ -        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+@@ -514,17 +454,17 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        /* order */
+ -        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ -        0x00, 0x00, 0x01, 0xDC, 0xE8, 0xD2, 0xEC, 0x61, 0x84, 0xCA, 0xF0, 0xA9,
+--        0x71, 0x76, 0x9F, 0xB1, 0xF7
+--    }
++-        0x71, 0x76, 0x9F, 0xB1, 0xF7 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+-     unsigned char data[0 + 32 * 6];
++-    unsigned char data[0 + 32 * 6];
+  } _EC_SECG_PRIME_256K1 = {
+-     {
+-@@ -745,102 +244,6 @@ static const struct {
+-     }
++     { NID_X9_62_prime_field, 0, 32, 1 },
++     { /* no seed */
++@@ -665,90 +224,6 @@ static const struct {
++         0xBF, 0xD2, 0x5E, 0x8C, 0xD0, 0x36, 0x41, 0x41 }
+  };
+  
+ -/* some wap/wtls curves */
+@@ -532,11 +472,8 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[0 + 15 * 6];
+ -} _EC_WTLS_8 = {
+--    {
+--        NID_X9_62_prime_field, 0, 15, 1
+--    },
+--    {
+--        /* no seed */
++-    { NID_X9_62_prime_field, 0, 15, 1 },
++-    { /* no seed */
+ -        /* p */
+ -        0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ -        0xFF, 0xFD, 0xE7,
+@@ -554,19 +491,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x00, 0x00, 0x02,
+ -        /* order */
+ -        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xEC, 0xEA, 0x55, 0x1A,
+--        0xD8, 0x37, 0xE9
+--    }
++-        0xD8, 0x37, 0xE9 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[0 + 21 * 6];
+ -} _EC_WTLS_9 = {
+--    {
+--        NID_X9_62_prime_field, 0, 21, 1
+--    },
+--    {
+--        /* no seed */
++-    { NID_X9_62_prime_field, 0, 21, 1 },
++-    { /* no seed */
+ -        /* p */
+ -        0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ -        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x80, 0x8F,
+@@ -584,19 +517,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+ -        /* order */
+ -        0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xCD,
+--        0xC9, 0x8A, 0xE0, 0xE2, 0xDE, 0x57, 0x4A, 0xBF, 0x33
+--    }
++-        0xC9, 0x8A, 0xE0, 0xE2, 0xDE, 0x57, 0x4A, 0xBF, 0x33 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[0 + 28 * 6];
+ -} _EC_WTLS_12 = {
+--    {
+--        NID_X9_62_prime_field, 0, 28, 1
+--    },
+--    {
+--        /* no seed */
++-    { NID_X9_62_prime_field, 0, 28, 1 },
++-    { /* no seed */
+ -        /* p */
+ -        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ -        0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+@@ -620,23 +549,19 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        /* order */
+ -        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ -        0xFF, 0xFF, 0x16, 0xA2, 0xE0, 0xB8, 0xF0, 0x3E, 0x13, 0xDD, 0x29, 0x45,
+--        0x5C, 0x5C, 0x2A, 0x3D
+--    }
++-        0x5C, 0x5C, 0x2A, 0x3D }
+ -};
+  #endif /* FIPS_MODULE */
+  
+  #ifndef OPENSSL_NO_EC2M
+-@@ -2238,198 +1641,6 @@ static const struct {
++@@ -1998,174 +1473,6 @@ static const struct {
+  #ifndef FIPS_MODULE
+  static const struct {
+      EC_CURVE_DATA h;
+ -    unsigned char data[0 + 20 * 6];
+ -} _EC_brainpoolP160r1 = {
+--    {
+--        NID_X9_62_prime_field, 0, 20, 1
+--    },
+--    {
+--        /* no seed */
++-    { NID_X9_62_prime_field, 0, 20, 1 },
++-    { /* no seed */
+ -        /* p */
+ -        0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0xC7, 0xAD,
+ -        0x95, 0xB3, 0xD8, 0x13, 0x95, 0x15, 0x62, 0x0F,
+@@ -654,19 +579,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x66, 0x9C, 0x97, 0x63, 0x16, 0xDA, 0x63, 0x21,
+ -        /* order */
+ -        0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0x59, 0x91,
+--        0xD4, 0x50, 0x29, 0x40, 0x9E, 0x60, 0xFC, 0x09
+--    }
++-        0xD4, 0x50, 0x29, 0x40, 0x9E, 0x60, 0xFC, 0x09 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[0 + 20 * 6];
+ -} _EC_brainpoolP160t1 = {
+--    {
+--        NID_X9_62_prime_field, 0, 20, 1
+--    },
+--    {
+--        /* no seed */
++-    { NID_X9_62_prime_field, 0, 20, 1 },
++-    { /* no seed */
+ -        /* p */
+ -        0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0xC7, 0xAD,
+ -        0x95, 0xB3, 0xD8, 0x13, 0x95, 0x15, 0x62, 0x0F,
+@@ -684,19 +605,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x24, 0x43, 0x77, 0x21, 0x52, 0xC9, 0xE0, 0xAD,
+ -        /* order */
+ -        0xE9, 0x5E, 0x4A, 0x5F, 0x73, 0x70, 0x59, 0xDC, 0x60, 0xDF, 0x59, 0x91,
+--        0xD4, 0x50, 0x29, 0x40, 0x9E, 0x60, 0xFC, 0x09
+--    }
++-        0xD4, 0x50, 0x29, 0x40, 0x9E, 0x60, 0xFC, 0x09 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[0 + 24 * 6];
+ -} _EC_brainpoolP192r1 = {
+--    {
+--        NID_X9_62_prime_field, 0, 24, 1
+--    },
+--    {
+--        /* no seed */
++-    { NID_X9_62_prime_field, 0, 24, 1 },
++-    { /* no seed */
+ -        /* p */
+ -        0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x30,
+ -        0x93, 0xD1, 0x8D, 0xB7, 0x8F, 0xCE, 0x47, 0x6D, 0xE1, 0xA8, 0x62, 0x97,
+@@ -714,19 +631,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0xC1, 0x49, 0x00, 0x02, 0xE6, 0x77, 0x3F, 0xA2, 0xFA, 0x29, 0x9B, 0x8F,
+ -        /* order */
+ -        0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x2F,
+--        0x9E, 0x9E, 0x91, 0x6B, 0x5B, 0xE8, 0xF1, 0x02, 0x9A, 0xC4, 0xAC, 0xC1
+--    }
++-        0x9E, 0x9E, 0x91, 0x6B, 0x5B, 0xE8, 0xF1, 0x02, 0x9A, 0xC4, 0xAC, 0xC1 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[0 + 24 * 6];
+ -} _EC_brainpoolP192t1 = {
+--    {
+--        NID_X9_62_prime_field, 0, 24, 1
+--    },
+--    {
+--        /* no seed */
++-    { NID_X9_62_prime_field, 0, 24, 1 },
++-    { /* no seed */
+ -        /* p */
+ -        0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x30,
+ -        0x93, 0xD1, 0x8D, 0xB7, 0x8F, 0xCE, 0x47, 0x6D, 0xE1, 0xA8, 0x62, 0x97,
+@@ -744,19 +657,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        0x44, 0x9D, 0x00, 0x84, 0xB7, 0xE5, 0xB3, 0xDE, 0x7C, 0xCC, 0x01, 0xC9,
+ -        /* order */
+ -        0xC3, 0x02, 0xF4, 0x1D, 0x93, 0x2A, 0x36, 0xCD, 0xA7, 0xA3, 0x46, 0x2F,
+--        0x9E, 0x9E, 0x91, 0x6B, 0x5B, 0xE8, 0xF1, 0x02, 0x9A, 0xC4, 0xAC, 0xC1
+--    }
++-        0x9E, 0x9E, 0x91, 0x6B, 0x5B, 0xE8, 0xF1, 0x02, 0x9A, 0xC4, 0xAC, 0xC1 }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[0 + 28 * 6];
+ -} _EC_brainpoolP224r1 = {
+--    {
+--        NID_X9_62_prime_field, 0, 28, 1
+--    },
+--    {
+--        /* no seed */
++-    { NID_X9_62_prime_field, 0, 28, 1 },
++-    { /* no seed */
+ -        /* p */
+ -        0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,
+ -        0x75, 0xD1, 0xD7, 0x87, 0xB0, 0x9F, 0x07, 0x57, 0x97, 0xDA, 0x89, 0xF5,
+@@ -780,19 +689,15 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        /* order */
+ -        0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,
+ -        0x75, 0xD0, 0xFB, 0x98, 0xD1, 0x16, 0xBC, 0x4B, 0x6D, 0xDE, 0xBC, 0xA3,
+--        0xA5, 0xA7, 0x93, 0x9F
+--    }
++-        0xA5, 0xA7, 0x93, 0x9F }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+ -    unsigned char data[0 + 28 * 6];
+ -} _EC_brainpoolP224t1 = {
+--    {
+--        NID_X9_62_prime_field, 0, 28, 1
+--    },
+--    {
+--        /* no seed */
++-    { NID_X9_62_prime_field, 0, 28, 1 },
++-    { /* no seed */
+ -        /* p */
+ -        0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,
+ -        0x75, 0xD1, 0xD7, 0x87, 0xB0, 0x9F, 0x07, 0x57, 0x97, 0xDA, 0x89, 0xF5,
+@@ -816,115 +721,114 @@ diff -up ./crypto/ec/ec_curve.c.remove-ec ./crypto/ec/ec_curve.c
+ -        /* order */
+ -        0xD7, 0xC1, 0x34, 0xAA, 0x26, 0x43, 0x66, 0x86, 0x2A, 0x18, 0x30, 0x25,
+ -        0x75, 0xD0, 0xFB, 0x98, 0xD1, 0x16, 0xBC, 0x4B, 0x6D, 0xDE, 0xBC, 0xA3,
+--        0xA5, 0xA7, 0x93, 0x9F
+--    }
++-        0xA5, 0xA7, 0x93, 0x9F }
+ -};
+ -
+ -static const struct {
+ -    EC_CURVE_DATA h;
+      unsigned char data[0 + 32 * 6];
+  } _EC_brainpoolP256r1 = {
+-     {
+-@@ -2854,8 +2065,6 @@ static const ec_list_element curve_list[
+-      "NIST/SECG curve over a 521 bit prime field"},
++     { NID_X9_62_prime_field, 0, 32, 1 },
++@@ -2730,8 +2037,6 @@ static const ec_list_element curve_list[
++         "NIST/SECG curve over a 521 bit prime field" },
+  
+      /* X9.62 curves */
+--    {NID_X9_62_prime192v1, &_EC_NIST_PRIME_192.h, 0,
+--     "NIST/X9.62/SECG curve over a 192 bit prime field"},
+-     {NID_X9_62_prime256v1, &_EC_X9_62_PRIME_256V1.h,
+- # if defined(ECP_NISTZ256_ASM)
+-      EC_GFp_nistz256_method,
+-@@ -2899,25 +2108,6 @@ static const ec_list_element curve_list[
++-    { NID_X9_62_prime192v1, &_EC_NIST_PRIME_192.h, 0,
++-        "NIST/X9.62/SECG curve over a 192 bit prime field" },
++     { NID_X9_62_prime256v1, &_EC_X9_62_PRIME_256V1.h,
++ #if defined(ECP_NISTZ256_ASM)
++         EC_GFp_nistz256_method,
++@@ -2775,25 +2080,6 @@ static const ec_list_element curve_list[
+  static const ec_list_element curve_list[] = {
+      /* prime field curves */
+      /* secg curves */
+--    {NID_secp112r1, &_EC_SECG_PRIME_112R1.h, 0,
+--     "SECG/WTLS curve over a 112 bit prime field"},
+--    {NID_secp112r2, &_EC_SECG_PRIME_112R2.h, 0,
+--     "SECG curve over a 112 bit prime field"},
+--    {NID_secp128r1, &_EC_SECG_PRIME_128R1.h, 0,
+--     "SECG curve over a 128 bit prime field"},
+--    {NID_secp128r2, &_EC_SECG_PRIME_128R2.h, 0,
+--     "SECG curve over a 128 bit prime field"},
+--    {NID_secp160k1, &_EC_SECG_PRIME_160K1.h, 0,
+--     "SECG curve over a 160 bit prime field"},
+--    {NID_secp160r1, &_EC_SECG_PRIME_160R1.h, 0,
+--     "SECG curve over a 160 bit prime field"},
+--    {NID_secp160r2, &_EC_SECG_PRIME_160R2.h, 0,
+--     "SECG/WTLS curve over a 160 bit prime field"},
++-    { NID_secp112r1, &_EC_SECG_PRIME_112R1.h, 0,
++-        "SECG/WTLS curve over a 112 bit prime field" },
++-    { NID_secp112r2, &_EC_SECG_PRIME_112R2.h, 0,
++-        "SECG curve over a 112 bit prime field" },
++-    { NID_secp128r1, &_EC_SECG_PRIME_128R1.h, 0,
++-        "SECG curve over a 128 bit prime field" },
++-    { NID_secp128r2, &_EC_SECG_PRIME_128R2.h, 0,
++-        "SECG curve over a 128 bit prime field" },
++-    { NID_secp160k1, &_EC_SECG_PRIME_160K1.h, 0,
++-        "SECG curve over a 160 bit prime field" },
++-    { NID_secp160r1, &_EC_SECG_PRIME_160R1.h, 0,
++-        "SECG curve over a 160 bit prime field" },
++-    { NID_secp160r2, &_EC_SECG_PRIME_160R2.h, 0,
++-        "SECG/WTLS curve over a 160 bit prime field" },
+ -    /* SECG secp192r1 is the same as X9.62 prime192v1 and hence omitted */
+--    {NID_secp192k1, &_EC_SECG_PRIME_192K1.h, 0,
+--     "SECG curve over a 192 bit prime field"},
+--    {NID_secp224k1, &_EC_SECG_PRIME_224K1.h, 0,
+--     "SECG curve over a 224 bit prime field"},
+- # ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
+-     {NID_secp224r1, &_EC_NIST_PRIME_224.h, EC_GFp_nistp224_method,
+-      "NIST/SECG curve over a 224 bit prime field"},
+-@@ -2945,18 +2135,6 @@ static const ec_list_element curve_list[
+- # endif
+-      "NIST/SECG curve over a 521 bit prime field"},
++-    { NID_secp192k1, &_EC_SECG_PRIME_192K1.h, 0,
++-        "SECG curve over a 192 bit prime field" },
++-    { NID_secp224k1, &_EC_SECG_PRIME_224K1.h, 0,
++-        "SECG curve over a 224 bit prime field" },
++ #ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
++     { NID_secp224r1, &_EC_NIST_PRIME_224.h, EC_GFp_nistp224_method,
++         "NIST/SECG curve over a 224 bit prime field" },
++@@ -2821,18 +2107,6 @@ static const ec_list_element curve_list[
++ #endif
++         "NIST/SECG curve over a 521 bit prime field" },
+      /* X9.62 curves */
+--    {NID_X9_62_prime192v1, &_EC_NIST_PRIME_192.h, 0,
+--     "NIST/X9.62/SECG curve over a 192 bit prime field"},
+--    {NID_X9_62_prime192v2, &_EC_X9_62_PRIME_192V2.h, 0,
+--     "X9.62 curve over a 192 bit prime field"},
+--    {NID_X9_62_prime192v3, &_EC_X9_62_PRIME_192V3.h, 0,
+--     "X9.62 curve over a 192 bit prime field"},
+--    {NID_X9_62_prime239v1, &_EC_X9_62_PRIME_239V1.h, 0,
+--     "X9.62 curve over a 239 bit prime field"},
+--    {NID_X9_62_prime239v2, &_EC_X9_62_PRIME_239V2.h, 0,
+--     "X9.62 curve over a 239 bit prime field"},
+--    {NID_X9_62_prime239v3, &_EC_X9_62_PRIME_239V3.h, 0,
+--     "X9.62 curve over a 239 bit prime field"},
+-     {NID_X9_62_prime256v1, &_EC_X9_62_PRIME_256V1.h,
+- # if defined(ECP_NISTZ256_ASM)
+-      EC_GFp_nistz256_method,
+-@@ -3053,22 +2231,12 @@ static const ec_list_element curve_list[
+-     {NID_wap_wsg_idm_ecid_wtls5, &_EC_X9_62_CHAR2_163V1.h, 0,
+-      "X9.62 curve over a 163 bit binary field"},
+- # endif
+--    {NID_wap_wsg_idm_ecid_wtls6, &_EC_SECG_PRIME_112R1.h, 0,
+--     "SECG/WTLS curve over a 112 bit prime field"},
+--    {NID_wap_wsg_idm_ecid_wtls7, &_EC_SECG_PRIME_160R2.h, 0,
+--     "SECG/WTLS curve over a 160 bit prime field"},
+--    {NID_wap_wsg_idm_ecid_wtls8, &_EC_WTLS_8.h, 0,
+--     "WTLS curve over a 112 bit prime field"},
+--    {NID_wap_wsg_idm_ecid_wtls9, &_EC_WTLS_9.h, 0,
+--     "WTLS curve over a 160 bit prime field"},
+- # ifndef OPENSSL_NO_EC2M
+-     {NID_wap_wsg_idm_ecid_wtls10, &_EC_NIST_CHAR2_233K.h, 0,
+-      "NIST/SECG/WTLS curve over a 233 bit binary field"},
+-     {NID_wap_wsg_idm_ecid_wtls11, &_EC_NIST_CHAR2_233B.h, 0,
+-      "NIST/SECG/WTLS curve over a 233 bit binary field"},
+- # endif
+--    {NID_wap_wsg_idm_ecid_wtls12, &_EC_WTLS_12.h, 0,
+--     "WTLS curve over a 224 bit prime field"},
+- # ifndef OPENSSL_NO_EC2M
++-    { NID_X9_62_prime192v1, &_EC_NIST_PRIME_192.h, 0,
++-        "NIST/X9.62/SECG curve over a 192 bit prime field" },
++-    { NID_X9_62_prime192v2, &_EC_X9_62_PRIME_192V2.h, 0,
++-        "X9.62 curve over a 192 bit prime field" },
++-    { NID_X9_62_prime192v3, &_EC_X9_62_PRIME_192V3.h, 0,
++-        "X9.62 curve over a 192 bit prime field" },
++-    { NID_X9_62_prime239v1, &_EC_X9_62_PRIME_239V1.h, 0,
++-        "X9.62 curve over a 239 bit prime field" },
++-    { NID_X9_62_prime239v2, &_EC_X9_62_PRIME_239V2.h, 0,
++-        "X9.62 curve over a 239 bit prime field" },
++-    { NID_X9_62_prime239v3, &_EC_X9_62_PRIME_239V3.h, 0,
++-        "X9.62 curve over a 239 bit prime field" },
++     { NID_X9_62_prime256v1, &_EC_X9_62_PRIME_256V1.h,
++ #if defined(ECP_NISTZ256_ASM)
++         EC_GFp_nistz256_method,
++@@ -2929,22 +2203,12 @@ static const ec_list_element curve_list[
++     { NID_wap_wsg_idm_ecid_wtls5, &_EC_X9_62_CHAR2_163V1.h, 0,
++         "X9.62 curve over a 163 bit binary field" },
++ #endif
++-    { NID_wap_wsg_idm_ecid_wtls6, &_EC_SECG_PRIME_112R1.h, 0,
++-        "SECG/WTLS curve over a 112 bit prime field" },
++-    { NID_wap_wsg_idm_ecid_wtls7, &_EC_SECG_PRIME_160R2.h, 0,
++-        "SECG/WTLS curve over a 160 bit prime field" },
++-    { NID_wap_wsg_idm_ecid_wtls8, &_EC_WTLS_8.h, 0,
++-        "WTLS curve over a 112 bit prime field" },
++-    { NID_wap_wsg_idm_ecid_wtls9, &_EC_WTLS_9.h, 0,
++-        "WTLS curve over a 160 bit prime field" },
++ #ifndef OPENSSL_NO_EC2M
++     { NID_wap_wsg_idm_ecid_wtls10, &_EC_NIST_CHAR2_233K.h, 0,
++         "NIST/SECG/WTLS curve over a 233 bit binary field" },
++     { NID_wap_wsg_idm_ecid_wtls11, &_EC_NIST_CHAR2_233B.h, 0,
++         "NIST/SECG/WTLS curve over a 233 bit binary field" },
++ #endif
++-    { NID_wap_wsg_idm_ecid_wtls12, &_EC_WTLS_12.h, 0,
++-        "WTLS curve over a 224 bit prime field" },
++ #ifndef OPENSSL_NO_EC2M
+      /* IPSec curves */
+-     {NID_ipsec3, &_EC_IPSEC_155_ID3.h, 0,
+-@@ -3079,18 +2247,6 @@ static const ec_list_element curve_list[
+-      "\tNot suitable for ECDSA.\n\tQuestionable extension field!"},
+- # endif
++     { NID_ipsec3, &_EC_IPSEC_155_ID3.h, 0,
++@@ -2955,18 +2219,6 @@ static const ec_list_element curve_list[
++         "\tNot suitable for ECDSA.\n\tQuestionable extension field!" },
++ #endif
+      /* brainpool curves */
+--    {NID_brainpoolP160r1, &_EC_brainpoolP160r1.h, 0,
+--     "RFC 5639 curve over a 160 bit prime field"},
+--    {NID_brainpoolP160t1, &_EC_brainpoolP160t1.h, 0,
+--     "RFC 5639 curve over a 160 bit prime field"},
+--    {NID_brainpoolP192r1, &_EC_brainpoolP192r1.h, 0,
+--     "RFC 5639 curve over a 192 bit prime field"},
+--    {NID_brainpoolP192t1, &_EC_brainpoolP192t1.h, 0,
+--     "RFC 5639 curve over a 192 bit prime field"},
+--    {NID_brainpoolP224r1, &_EC_brainpoolP224r1.h, 0,
+--     "RFC 5639 curve over a 224 bit prime field"},
+--    {NID_brainpoolP224t1, &_EC_brainpoolP224t1.h, 0,
+--     "RFC 5639 curve over a 224 bit prime field"},
+-     {NID_brainpoolP256r1, &_EC_brainpoolP256r1.h, 0,
+-      "RFC 5639 curve over a 256 bit prime field"},
+-     {NID_brainpoolP256t1, &_EC_brainpoolP256t1.h, 0,
+-diff -up ./test/ectest.c.remove-ec ./test/ectest.c
+---- ./test/ectest.c.remove-ec	2023-03-13 18:39:30.544642912 +0100
+-+++ ./test/ectest.c	2023-03-20 07:27:26.403212965 +0100
+-@@ -175,184 +175,26 @@ static int prime_field_tests(void)
++-    { NID_brainpoolP160r1, &_EC_brainpoolP160r1.h, 0,
++-        "RFC 5639 curve over a 160 bit prime field" },
++-    { NID_brainpoolP160t1, &_EC_brainpoolP160t1.h, 0,
++-        "RFC 5639 curve over a 160 bit prime field" },
++-    { NID_brainpoolP192r1, &_EC_brainpoolP192r1.h, 0,
++-        "RFC 5639 curve over a 192 bit prime field" },
++-    { NID_brainpoolP192t1, &_EC_brainpoolP192t1.h, 0,
++-        "RFC 5639 curve over a 192 bit prime field" },
++-    { NID_brainpoolP224r1, &_EC_brainpoolP224r1.h, 0,
++-        "RFC 5639 curve over a 224 bit prime field" },
++-    { NID_brainpoolP224t1, &_EC_brainpoolP224t1.h, 0,
++-        "RFC 5639 curve over a 224 bit prime field" },
++     { NID_brainpoolP256r1, &_EC_brainpoolP256r1.h, 0,
++         "RFC 5639 curve over a 256 bit prime field" },
++     { NID_brainpoolP256t1, &_EC_brainpoolP256t1.h, 0,
++diff -rup openssl-3.0.19/test/ectest.c openssl-3.0.19.new/test/ectest.c
++--- openssl-3.0.19/test/ectest.c	2026-01-27 14:09:55.000000000 +0000
+++++ openssl-3.0.19.new/test/ectest.c	2026-07-20 16:32:40.435694967 +0100
++@@ -174,183 +174,26 @@ static int prime_field_tests(void)
+          || !TEST_ptr(p = BN_new())
+          || !TEST_ptr(a = BN_new())
+          || !TEST_ptr(b = BN_new())
+@@ -958,7 +862,7 @@ diff -up ./test/ectest.c.remove-ec ./test/ectest.c
+          || !TEST_ptr(x = BN_new())
+          || !TEST_ptr(y = BN_new())
+          || !TEST_ptr(z = BN_new())
+--        || !TEST_ptr(yplusone = BN_new())
++         || !TEST_ptr(yplusone = BN_new())
+ -        || !TEST_true(BN_hex2bn(&x, "D"))
+ -        || !TEST_true(EC_POINT_set_compressed_coordinates(group, Q, x, 1, ctx)))
+ -        goto err;
+@@ -982,7 +886,7 @@ diff -up ./test/ectest.c.remove-ec ./test/ectest.c
+ -            TEST_note("     point at infinity");
+ -        } else {
+ -            if (!TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y,
+--                                                           ctx)))
++-                    ctx)))
+ -                goto err;
+ -
+ -            test_output_bignum("x", x);
+@@ -999,64 +903,63 @@ diff -up ./test/ectest.c.remove-ec ./test/ectest.c
+ -        || !TEST_true(EC_POINT_is_at_infinity(group, P)))
+ -        goto err;
+ -
+--    len =
+--        EC_POINT_point2oct(group, Q, POINT_CONVERSION_COMPRESSED, buf,
+--                           sizeof(buf), ctx);
++-    len = EC_POINT_point2oct(group, Q, POINT_CONVERSION_COMPRESSED, buf,
++-        sizeof(buf), ctx);
+ -    if (!TEST_size_t_ne(len, 0)
+ -        || !TEST_true(EC_POINT_oct2point(group, P, buf, len, ctx))
+ -        || !TEST_int_eq(0, EC_POINT_cmp(group, P, Q, ctx)))
+--        goto err;
++         goto err;
+ -    test_output_memory("Generator as octet string, compressed form:",
+--                       buf, len);
++-        buf, len);
+ -
+ -    len = EC_POINT_point2oct(group, Q, POINT_CONVERSION_UNCOMPRESSED,
+--                             buf, sizeof(buf), ctx);
++-        buf, sizeof(buf), ctx);
+ -    if (!TEST_size_t_ne(len, 0)
+ -        || !TEST_true(EC_POINT_oct2point(group, P, buf, len, ctx))
+ -        || !TEST_int_eq(0, EC_POINT_cmp(group, P, Q, ctx)))
+ -        goto err;
+ -    test_output_memory("Generator as octet string, uncompressed form:",
+--                       buf, len);
++-        buf, len);
+ -
+ -    len = EC_POINT_point2oct(group, Q, POINT_CONVERSION_HYBRID,
+--                             buf, sizeof(buf), ctx);
++-        buf, sizeof(buf), ctx);
+ -    if (!TEST_size_t_ne(len, 0)
+ -        || !TEST_true(EC_POINT_oct2point(group, P, buf, len, ctx))
+ -        || !TEST_int_eq(0, EC_POINT_cmp(group, P, Q, ctx)))
+ -        goto err;
+ -    test_output_memory("Generator as octet string, hybrid form:",
+--                       buf, len);
++-        buf, len);
+ -
+ -    if (!TEST_true(EC_POINT_invert(group, P, ctx))
+ -        || !TEST_int_eq(0, EC_POINT_cmp(group, P, R, ctx))
+ -
+--    /*
+--     * Curve secp160r1 (Certicom Research SEC 2 Version 1.0, section 2.4.2,
+--     * 2000) -- not a NIST curve, but commonly used
+--     */
++-        /*
++-         * Curve secp160r1 (Certicom Research SEC 2 Version 1.0, section 2.4.2,
++-         * 2000) -- not a NIST curve, but commonly used
++-         */
+ -
+--        || !TEST_true(BN_hex2bn(&p,                         "FFFFFFFF"
++-        || !TEST_true(BN_hex2bn(&p, "FFFFFFFF"
+ -                                    "FFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF"))
+ -        || !TEST_int_eq(1, BN_check_prime(p, ctx, NULL))
+--        || !TEST_true(BN_hex2bn(&a,                         "FFFFFFFF"
++-        || !TEST_true(BN_hex2bn(&a, "FFFFFFFF"
+ -                                    "FFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC"))
+--        || !TEST_true(BN_hex2bn(&b,                         "1C97BEFC"
++-        || !TEST_true(BN_hex2bn(&b, "1C97BEFC"
+ -                                    "54BD7A8B65ACF89F81D4D4ADC565FA45"))
+ -        || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))
+--        || !TEST_true(BN_hex2bn(&x,                         "4A96B568"
++-        || !TEST_true(BN_hex2bn(&x, "4A96B568"
+ -                                    "8EF573284664698968C38BB913CBFC82"))
+--        || !TEST_true(BN_hex2bn(&y,                         "23a62855"
++-        || !TEST_true(BN_hex2bn(&y, "23a62855"
+ -                                    "3168947d59dcc912042351377ac5fb32"))
+ -        || !TEST_true(BN_add(yplusone, y, BN_value_one()))
+--    /*
+--     * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,
+--     * and therefore setting the coordinates should fail.
+--     */
++-        /*
++-         * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,
++-         * and therefore setting the coordinates should fail.
++-         */
+ -        || !TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone,
+--                                                       ctx))
++-            ctx))
+ -        || !TEST_true(EC_POINT_set_affine_coordinates(group, P, x, y, ctx))
+ -        || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)
+--        || !TEST_true(BN_hex2bn(&z,                       "0100000000"
++-        || !TEST_true(BN_hex2bn(&z, "0100000000"
+ -                                    "000000000001F4C8F927AED3CA752257"))
+ -        || !TEST_true(EC_GROUP_set_generator(group, P, z, BN_value_one()))
+ -        || !TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y, ctx)))
+@@ -1065,58 +968,57 @@ diff -up ./test/ectest.c.remove-ec ./test/ectest.c
+ -    test_output_bignum("x", x);
+ -    test_output_bignum("y", y);
+ -    /* G_y value taken from the standard: */
+--    if (!TEST_true(BN_hex2bn(&z,                         "23a62855"
++-    if (!TEST_true(BN_hex2bn(&z, "23a62855"
+ -                                 "3168947d59dcc912042351377ac5fb32"))
+ -        || !TEST_BN_eq(y, z)
+ -        || !TEST_int_eq(EC_GROUP_get_degree(group), 160)
+ -        || !group_order_tests(group)
+ -
+--    /* Curve P-192 (FIPS PUB 186-2, App. 6) */
++-        /* Curve P-192 (FIPS PUB 186-2, App. 6) */
+ -
+--        || !TEST_true(BN_hex2bn(&p,                 "FFFFFFFFFFFFFFFF"
++-        || !TEST_true(BN_hex2bn(&p, "FFFFFFFFFFFFFFFF"
+ -                                    "FFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF"))
+ -        || !TEST_int_eq(1, BN_check_prime(p, ctx, NULL))
+--        || !TEST_true(BN_hex2bn(&a,                 "FFFFFFFFFFFFFFFF"
++-        || !TEST_true(BN_hex2bn(&a, "FFFFFFFFFFFFFFFF"
+ -                                    "FFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC"))
+--        || !TEST_true(BN_hex2bn(&b,                 "64210519E59C80E7"
++-        || !TEST_true(BN_hex2bn(&b, "64210519E59C80E7"
+ -                                    "0FA7E9AB72243049FEB8DEECC146B9B1"))
+ -        || !TEST_true(EC_GROUP_set_curve(group, p, a, b, ctx))
+--        || !TEST_true(BN_hex2bn(&x,                 "188DA80EB03090F6"
++-        || !TEST_true(BN_hex2bn(&x, "188DA80EB03090F6"
+ -                                    "7CBF20EB43A18800F4FF0AFD82FF1012"))
+ -        || !TEST_true(EC_POINT_set_compressed_coordinates(group, P, x, 1, ctx))
+ -        || !TEST_int_gt(EC_POINT_is_on_curve(group, P, ctx), 0)
+--        || !TEST_true(BN_hex2bn(&z,                 "FFFFFFFFFFFFFFFF"
++-        || !TEST_true(BN_hex2bn(&z, "FFFFFFFFFFFFFFFF"
+ -                                    "FFFFFFFF99DEF836146BC9B1B4D22831"))
+ -        || !TEST_true(EC_GROUP_set_generator(group, P, z, BN_value_one()))
+ -        || !TEST_true(EC_POINT_get_affine_coordinates(group, P, x, y, ctx)))
+-+        || !TEST_ptr(yplusone = BN_new()))
+-         goto err;
+- 
++-        goto err;
++-
+ -    TEST_info("NIST curve P-192 -- Generator");
+ -    test_output_bignum("x", x);
+ -    test_output_bignum("y", y);
+ -    /* G_y value taken from the standard: */
+--    if (!TEST_true(BN_hex2bn(&z,                 "07192B95FFC8DA78"
++-    if (!TEST_true(BN_hex2bn(&z, "07192B95FFC8DA78"
+ -                                 "631011ED6B24CDD573F977A11E794811"))
+ -        || !TEST_BN_eq(y, z)
+ -        || !TEST_true(BN_add(yplusone, y, BN_value_one()))
+--    /*
+--     * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,
+--     * and therefore setting the coordinates should fail.
+--     */
++-        /*
++-         * When (x, y) is on the curve, (x, y + 1) is, as it happens, not,
++-         * and therefore setting the coordinates should fail.
++-         */
+ -        || !TEST_false(EC_POINT_set_affine_coordinates(group, P, x, yplusone,
+--                                                       ctx))
++-            ctx))
+ -        || !TEST_int_eq(EC_GROUP_get_degree(group), 192)
+ -        || !group_order_tests(group)
+--
+-     /* Curve P-224 (FIPS PUB 186-2, App. 6) */
+  
+--        || !TEST_true(BN_hex2bn(&p,         "FFFFFFFFFFFFFFFFFFFFFFFF"
+-+    if (!TEST_true(BN_hex2bn(&p,         "FFFFFFFFFFFFFFFFFFFFFFFF"
++         /* Curve P-224 (FIPS PUB 186-2, App. 6) */
++ 
++-        || !TEST_true(BN_hex2bn(&p, "FFFFFFFFFFFFFFFFFFFFFFFF"
+++    if(!TEST_true(BN_hex2bn(&p, "FFFFFFFFFFFFFFFFFFFFFFFF"
+                                      "FFFFFFFF000000000000000000000001"))
+          || !TEST_int_eq(1, BN_check_prime(p, ctx, NULL))
+-         || !TEST_true(BN_hex2bn(&a,         "FFFFFFFFFFFFFFFFFFFFFFFF"
+-@@ -3015,7 +2857,7 @@ int setup_tests(void)
++         || !TEST_true(BN_hex2bn(&a, "FFFFFFFFFFFFFFFFFFFFFFFF"
++@@ -3410,7 +3253,7 @@ int setup_tests(void)
+          return 0;
+  
+      ADD_TEST(parameter_test);
+diff --git a/openssl_source/0011-Remove-EC-curves.patch b/openssl_source/0011-Remove-EC-curves.patch
+index f6c733a..0d2e7f8 100644
+--- a/openssl_source/0011-Remove-EC-curves.patch
++++ b/openssl_source/0011-Remove-EC-curves.patch
+@@ -1,147 +1,147 @@
+-diff -up ./apps/speed.c.ec-curves ./apps/speed.c
+---- ./apps/speed.c.ec-curves	2023-03-14 04:44:12.545437892 +0100
+-+++ ./apps/speed.c	2023-03-14 04:48:28.606729067 +0100
+-@@ -366,7 +366,7 @@ static double ffdh_results[FFDH_NUM][1];
++diff -rup openssl-3.0.19/apps/speed.c openssl-3.0.19.new/apps/speed.c
++--- openssl-3.0.19/apps/speed.c	2026-01-27 14:09:55.000000000 +0000
+++++ openssl-3.0.19.new/apps/speed.c	2026-07-20 17:14:09.495098286 +0100
++@@ -417,8 +417,6 @@ static double ffdh_results[FFDH_NUM][1];
+  #endif /* OPENSSL_NO_DH */
+  
+  enum ec_curves_t {
+--    R_EC_P160, R_EC_P192, R_EC_P224, R_EC_P256, R_EC_P384, R_EC_P521,
+-+    R_EC_P224, R_EC_P256, R_EC_P384, R_EC_P521,
+- #ifndef OPENSSL_NO_EC2M
+-     R_EC_K163, R_EC_K233, R_EC_K283, R_EC_K409, R_EC_K571,
+-     R_EC_B163, R_EC_B233, R_EC_B283, R_EC_B409, R_EC_B571,
+-@@ -376,8 +376,6 @@ enum ec_curves_t {
++-    R_EC_P160,
++-    R_EC_P192,
++     R_EC_P224,
++     R_EC_P256,
++     R_EC_P384,
++@@ -445,8 +443,6 @@ enum ec_curves_t {
+  };
+  /* list of ecdsa curves */
+  static const OPT_PAIR ecdsa_choices[ECDSA_NUM] = {
+--    {"ecdsap160", R_EC_P160},
+--    {"ecdsap192", R_EC_P192},
+-     {"ecdsap224", R_EC_P224},
+-     {"ecdsap256", R_EC_P256},
+-     {"ecdsap384", R_EC_P384},
+-@@ -404,8 +402,6 @@ static const OPT_PAIR ecdsa_choices[ECDS
+- enum { R_EC_X25519 = ECDSA_NUM, R_EC_X448, EC_NUM };
++-    { "ecdsap160", R_EC_P160 },
++-    { "ecdsap192", R_EC_P192 },
++     { "ecdsap224", R_EC_P224 },
++     { "ecdsap256", R_EC_P256 },
++     { "ecdsap384", R_EC_P384 },
++@@ -475,8 +471,6 @@ enum { R_EC_X25519 = ECDSA_NUM,
++     EC_NUM };
+  /* list of ecdh curves, extension of |ecdsa_choices| list above */
+  static const OPT_PAIR ecdh_choices[EC_NUM] = {
+--    {"ecdhp160", R_EC_P160},
+--    {"ecdhp192", R_EC_P192},
+-     {"ecdhp224", R_EC_P224},
+-     {"ecdhp256", R_EC_P256},
+-     {"ecdhp384", R_EC_P384},
+-@@ -1422,8 +1418,6 @@ int speed_main(int argc, char **argv)
++-    { "ecdhp160", R_EC_P160 },
++-    { "ecdhp192", R_EC_P192 },
++     { "ecdhp224", R_EC_P224 },
++     { "ecdhp256", R_EC_P256 },
++     { "ecdhp384", R_EC_P384 },
++@@ -1603,8 +1597,6 @@ int speed_main(int argc, char **argv)
+       */
+      static const EC_CURVE ec_curves[EC_NUM] = {
+          /* Prime Curves */
+--        {"secp160r1", NID_secp160r1, 160},
+--        {"nistp192", NID_X9_62_prime192v1, 192},
+-         {"nistp224", NID_secp224r1, 224},
+-         {"nistp256", NID_X9_62_prime256v1, 256},
+-         {"nistp384", NID_secp384r1, 384},
+-diff -up ./crypto/evp/ec_support.c.ec-curves ./crypto/evp/ec_support.c
+---- ./crypto/evp/ec_support.c.ec-curves	2023-03-14 06:22:41.542310442 +0100
+-+++ ./crypto/evp/ec_support.c	2023-03-21 11:24:18.378451683 +0100
++-        { "secp160r1", NID_secp160r1, 160 },
++-        { "nistp192", NID_X9_62_prime192v1, 192 },
++         { "nistp224", NID_secp224r1, 224 },
++         { "nistp256", NID_X9_62_prime256v1, 256 },
++         { "nistp384", NID_secp384r1, 384 },
++diff -rup openssl-3.0.19/crypto/evp/ec_support.c openssl-3.0.19.new/crypto/evp/ec_support.c
++--- openssl-3.0.19/crypto/evp/ec_support.c	2026-01-27 14:09:55.000000000 +0000
+++++ openssl-3.0.19.new/crypto/evp/ec_support.c	2026-07-20 17:13:19.774616988 +0100
+ @@ -20,89 +20,15 @@ typedef struct ec_name2nid_st {
+  static const EC_NAME2NID curve_list[] = {
+      /* prime field curves */
+      /* secg curves */
+--    {"secp112r1", NID_secp112r1 },
+--    {"secp112r2", NID_secp112r2 },
+--    {"secp128r1", NID_secp128r1 },
+--    {"secp128r2", NID_secp128r2 },
+--    {"secp160k1", NID_secp160k1 },
+--    {"secp160r1", NID_secp160r1 },
+--    {"secp160r2", NID_secp160r2 },
+--    {"secp192k1", NID_secp192k1 },
+--    {"secp224k1", NID_secp224k1 },
+-     {"secp224r1", NID_secp224r1 },
+-     {"secp256k1", NID_secp256k1 },
+-     {"secp384r1", NID_secp384r1 },
+-     {"secp521r1", NID_secp521r1 },
++-    { "secp112r1", NID_secp112r1 },
++-    { "secp112r2", NID_secp112r2 },
++-    { "secp128r1", NID_secp128r1 },
++-    { "secp128r2", NID_secp128r2 },
++-    { "secp160k1", NID_secp160k1 },
++-    { "secp160r1", NID_secp160r1 },
++-    { "secp160r2", NID_secp160r2 },
++-    { "secp192k1", NID_secp192k1 },
++-    { "secp224k1", NID_secp224k1 },
++     { "secp224r1", NID_secp224r1 },
++     { "secp256k1", NID_secp256k1 },
++     { "secp384r1", NID_secp384r1 },
++     { "secp521r1", NID_secp521r1 },
+      /* X9.62 curves */
+--    {"prime192v1", NID_X9_62_prime192v1 },
+--    {"prime192v2", NID_X9_62_prime192v2 },
+--    {"prime192v3", NID_X9_62_prime192v3 },
+--    {"prime239v1", NID_X9_62_prime239v1 },
+--    {"prime239v2", NID_X9_62_prime239v2 },
+--    {"prime239v3", NID_X9_62_prime239v3 },
+-     {"prime256v1", NID_X9_62_prime256v1 },
++-    { "prime192v1", NID_X9_62_prime192v1 },
++-    { "prime192v2", NID_X9_62_prime192v2 },
++-    { "prime192v3", NID_X9_62_prime192v3 },
++-    { "prime239v1", NID_X9_62_prime239v1 },
++-    { "prime239v2", NID_X9_62_prime239v2 },
++-    { "prime239v3", NID_X9_62_prime239v3 },
++     { "prime256v1", NID_X9_62_prime256v1 },
+      /* characteristic two field curves */
+      /* NIST/SECG curves */
+--    {"sect113r1", NID_sect113r1 },
+--    {"sect113r2", NID_sect113r2 },
+--    {"sect131r1", NID_sect131r1 },
+--    {"sect131r2", NID_sect131r2 },
+--    {"sect163k1", NID_sect163k1 },
+--    {"sect163r1", NID_sect163r1 },
+--    {"sect163r2", NID_sect163r2 },
+--    {"sect193r1", NID_sect193r1 },
+--    {"sect193r2", NID_sect193r2 },
+--    {"sect233k1", NID_sect233k1 },
+--    {"sect233r1", NID_sect233r1 },
+--    {"sect239k1", NID_sect239k1 },
+--    {"sect283k1", NID_sect283k1 },
+--    {"sect283r1", NID_sect283r1 },
+--    {"sect409k1", NID_sect409k1 },
+--    {"sect409r1", NID_sect409r1 },
+--    {"sect571k1", NID_sect571k1 },
+--    {"sect571r1", NID_sect571r1 },
++-    { "sect113r1", NID_sect113r1 },
++-    { "sect113r2", NID_sect113r2 },
++-    { "sect131r1", NID_sect131r1 },
++-    { "sect131r2", NID_sect131r2 },
++-    { "sect163k1", NID_sect163k1 },
++-    { "sect163r1", NID_sect163r1 },
++-    { "sect163r2", NID_sect163r2 },
++-    { "sect193r1", NID_sect193r1 },
++-    { "sect193r2", NID_sect193r2 },
++-    { "sect233k1", NID_sect233k1 },
++-    { "sect233r1", NID_sect233r1 },
++-    { "sect239k1", NID_sect239k1 },
++-    { "sect283k1", NID_sect283k1 },
++-    { "sect283r1", NID_sect283r1 },
++-    { "sect409k1", NID_sect409k1 },
++-    { "sect409r1", NID_sect409r1 },
++-    { "sect571k1", NID_sect571k1 },
++-    { "sect571r1", NID_sect571r1 },
+ -    /* X9.62 curves */
+--    {"c2pnb163v1", NID_X9_62_c2pnb163v1 },
+--    {"c2pnb163v2", NID_X9_62_c2pnb163v2 },
+--    {"c2pnb163v3", NID_X9_62_c2pnb163v3 },
+--    {"c2pnb176v1", NID_X9_62_c2pnb176v1 },
+--    {"c2tnb191v1", NID_X9_62_c2tnb191v1 },
+--    {"c2tnb191v2", NID_X9_62_c2tnb191v2 },
+--    {"c2tnb191v3", NID_X9_62_c2tnb191v3 },
+--    {"c2pnb208w1", NID_X9_62_c2pnb208w1 },
+--    {"c2tnb239v1", NID_X9_62_c2tnb239v1 },
+--    {"c2tnb239v2", NID_X9_62_c2tnb239v2 },
+--    {"c2tnb239v3", NID_X9_62_c2tnb239v3 },
+--    {"c2pnb272w1", NID_X9_62_c2pnb272w1 },
+--    {"c2pnb304w1", NID_X9_62_c2pnb304w1 },
+--    {"c2tnb359v1", NID_X9_62_c2tnb359v1 },
+--    {"c2pnb368w1", NID_X9_62_c2pnb368w1 },
+--    {"c2tnb431r1", NID_X9_62_c2tnb431r1 },
++-    { "c2pnb163v1", NID_X9_62_c2pnb163v1 },
++-    { "c2pnb163v2", NID_X9_62_c2pnb163v2 },
++-    { "c2pnb163v3", NID_X9_62_c2pnb163v3 },
++-    { "c2pnb176v1", NID_X9_62_c2pnb176v1 },
++-    { "c2tnb191v1", NID_X9_62_c2tnb191v1 },
++-    { "c2tnb191v2", NID_X9_62_c2tnb191v2 },
++-    { "c2tnb191v3", NID_X9_62_c2tnb191v3 },
++-    { "c2pnb208w1", NID_X9_62_c2pnb208w1 },
++-    { "c2tnb239v1", NID_X9_62_c2tnb239v1 },
++-    { "c2tnb239v2", NID_X9_62_c2tnb239v2 },
++-    { "c2tnb239v3", NID_X9_62_c2tnb239v3 },
++-    { "c2pnb272w1", NID_X9_62_c2pnb272w1 },
++-    { "c2pnb304w1", NID_X9_62_c2pnb304w1 },
++-    { "c2tnb359v1", NID_X9_62_c2tnb359v1 },
++-    { "c2pnb368w1", NID_X9_62_c2pnb368w1 },
++-    { "c2tnb431r1", NID_X9_62_c2tnb431r1 },
+ -    /*
+ -     * the WAP/WTLS curves [unlike SECG, spec has its own OIDs for curves
+ -     * from X9.62]
+ -     */
+--    {"wap-wsg-idm-ecid-wtls1", NID_wap_wsg_idm_ecid_wtls1 },
+--    {"wap-wsg-idm-ecid-wtls3", NID_wap_wsg_idm_ecid_wtls3 },
+--    {"wap-wsg-idm-ecid-wtls4", NID_wap_wsg_idm_ecid_wtls4 },
+--    {"wap-wsg-idm-ecid-wtls5", NID_wap_wsg_idm_ecid_wtls5 },
+--    {"wap-wsg-idm-ecid-wtls6", NID_wap_wsg_idm_ecid_wtls6 },
+--    {"wap-wsg-idm-ecid-wtls7", NID_wap_wsg_idm_ecid_wtls7 },
+--    {"wap-wsg-idm-ecid-wtls8", NID_wap_wsg_idm_ecid_wtls8 },
+--    {"wap-wsg-idm-ecid-wtls9", NID_wap_wsg_idm_ecid_wtls9 },
+--    {"wap-wsg-idm-ecid-wtls10", NID_wap_wsg_idm_ecid_wtls10 },
+--    {"wap-wsg-idm-ecid-wtls11", NID_wap_wsg_idm_ecid_wtls11 },
+--    {"wap-wsg-idm-ecid-wtls12", NID_wap_wsg_idm_ecid_wtls12 },
++-    { "wap-wsg-idm-ecid-wtls1", NID_wap_wsg_idm_ecid_wtls1 },
++-    { "wap-wsg-idm-ecid-wtls3", NID_wap_wsg_idm_ecid_wtls3 },
++-    { "wap-wsg-idm-ecid-wtls4", NID_wap_wsg_idm_ecid_wtls4 },
++-    { "wap-wsg-idm-ecid-wtls5", NID_wap_wsg_idm_ecid_wtls5 },
++-    { "wap-wsg-idm-ecid-wtls6", NID_wap_wsg_idm_ecid_wtls6 },
++-    { "wap-wsg-idm-ecid-wtls7", NID_wap_wsg_idm_ecid_wtls7 },
++-    { "wap-wsg-idm-ecid-wtls8", NID_wap_wsg_idm_ecid_wtls8 },
++-    { "wap-wsg-idm-ecid-wtls9", NID_wap_wsg_idm_ecid_wtls9 },
++-    { "wap-wsg-idm-ecid-wtls10", NID_wap_wsg_idm_ecid_wtls10 },
++-    { "wap-wsg-idm-ecid-wtls11", NID_wap_wsg_idm_ecid_wtls11 },
++-    { "wap-wsg-idm-ecid-wtls12", NID_wap_wsg_idm_ecid_wtls12 },
+ -    /* IPSec curves */
+--    {"Oakley-EC2N-3", NID_ipsec3 },
+--    {"Oakley-EC2N-4", NID_ipsec4 },
++-    { "Oakley-EC2N-3", NID_ipsec3 },
++-    { "Oakley-EC2N-4", NID_ipsec4 },
+      /* brainpool curves */
+--    {"brainpoolP160r1", NID_brainpoolP160r1 },
+--    {"brainpoolP160t1", NID_brainpoolP160t1 },
+--    {"brainpoolP192r1", NID_brainpoolP192r1 },
+--    {"brainpoolP192t1", NID_brainpoolP192t1 },
+--    {"brainpoolP224r1", NID_brainpoolP224r1 },
+--    {"brainpoolP224t1", NID_brainpoolP224t1 },
+-     {"brainpoolP256r1", NID_brainpoolP256r1 },
+-     {"brainpoolP256t1", NID_brainpoolP256t1 },
+-     {"brainpoolP320r1", NID_brainpoolP320r1 },
++-    { "brainpoolP160r1", NID_brainpoolP160r1 },
++-    { "brainpoolP160t1", NID_brainpoolP160t1 },
++-    { "brainpoolP192r1", NID_brainpoolP192r1 },
++-    { "brainpoolP192t1", NID_brainpoolP192t1 },
++-    { "brainpoolP224r1", NID_brainpoolP224r1 },
++-    { "brainpoolP224t1", NID_brainpoolP224t1 },
++     { "brainpoolP256r1", NID_brainpoolP256r1 },
++     { "brainpoolP256t1", NID_brainpoolP256t1 },
++     { "brainpoolP320r1", NID_brainpoolP320r1 },
+ @@ -111,8 +37,6 @@ static const EC_NAME2NID curve_list[] =
+-     {"brainpoolP384t1", NID_brainpoolP384t1 },
+-     {"brainpoolP512r1", NID_brainpoolP512r1 },
+-     {"brainpoolP512t1", NID_brainpoolP512t1 },
++     { "brainpoolP384t1", NID_brainpoolP384t1 },
++     { "brainpoolP512r1", NID_brainpoolP512r1 },
++     { "brainpoolP512t1", NID_brainpoolP512t1 },
+ -    /* SM2 curve */
+--    {"SM2", NID_sm2 },
++-    { "SM2", NID_sm2 },
+  };
+  
+  const char *OSSL_EC_curve_nid2name(int nid)
+-diff -up ./test/acvp_test.inc.ec-curves ./test/acvp_test.inc
+---- ./test/acvp_test.inc.ec-curves	2023-03-14 06:38:20.563712586 +0100
+-+++ ./test/acvp_test.inc	2023-03-14 06:39:01.631080059 +0100
++diff -rup openssl-3.0.19/test/acvp_test.inc openssl-3.0.19.new/test/acvp_test.inc
++--- openssl-3.0.19/test/acvp_test.inc	2026-01-27 14:09:55.000000000 +0000
+++++ openssl-3.0.19.new/test/acvp_test.inc	2026-07-20 17:11:05.067303432 +0100
+ @@ -212,15 +212,6 @@ static const unsigned char ecdsa_sigver_
+  };
+  static const struct ecdsa_sigver_st ecdsa_sigver_data[] = {
+@@ -158,36 +158,36 @@ diff -up ./test/acvp_test.inc.ec-curves ./test/acvp_test.inc
+          "SHA2-512",
+          "P-521",
+          ITM(ecdsa_sigver_msg1),
+-diff -up ./test/ecdsatest.h.ec-curves ./test/ecdsatest.h
+---- ./test/ecdsatest.h.ec-curves	2023-03-14 04:49:16.148154472 +0100
+-+++ ./test/ecdsatest.h	2023-03-14 04:51:01.376096037 +0100
++diff -rup openssl-3.0.19/test/ecdsatest.h openssl-3.0.19.new/test/ecdsatest.h
++--- openssl-3.0.19/test/ecdsatest.h	2026-01-27 14:09:55.000000000 +0000
+++++ openssl-3.0.19.new/test/ecdsatest.h	2026-07-20 17:12:07.302488657 +0100
+ @@ -32,23 +32,6 @@ typedef struct {
+  } ecdsa_cavs_kat_t;
+  
+  static const ecdsa_cavs_kat_t ecdsa_cavs_kats[] = {
+ -    /* prime KATs from X9.62 */
+--    {NID_X9_62_prime192v1, NID_sha1,
+--     "616263",                  /* "abc" */
+--     "1a8d598fc15bf0fd89030b5cb1111aeb92ae8baf5ea475fb",
+--     "0462b12d60690cdcf330babab6e69763b471f994dd702d16a563bf5ec08069705ffff65e"
+--     "5ca5c0d69716dfcb3474373902",
+--     "fa6de29746bbeb7f8bb1e761f85f7dfb2983169d82fa2f4e",
+--     "885052380ff147b734c330c43d39b2c4a89f29b0f749fead",
+--     "e9ecc78106def82bf1070cf1d4d804c3cb390046951df686"},
+--    {NID_X9_62_prime239v1, NID_sha1,
+--     "616263",                  /* "abc" */
+--     "7ef7c6fabefffdea864206e80b0b08a9331ed93e698561b64ca0f7777f3d",
+--     "045b6dc53bc61a2548ffb0f671472de6c9521a9d2d2534e65abfcbd5fe0c707fd9f1ed2e"
+--     "65f09f6ce0893baf5e8e31e6ae82ea8c3592335be906d38dee",
+--     "656c7196bf87dcc5d1f1020906df2782360d36b2de7a17ece37d503784af",
+--     "2cb7f36803ebb9c427c58d8265f11fc5084747133078fc279de874fbecb0",
+--     "2eeae988104e9c2234a3c2beb1f53bfa5dc11ff36a875d1e3ccb1f7e45cf"},
++-    { NID_X9_62_prime192v1, NID_sha1,
++-        "616263", /* "abc" */
++-        "1a8d598fc15bf0fd89030b5cb1111aeb92ae8baf5ea475fb",
++-        "0462b12d60690cdcf330babab6e69763b471f994dd702d16a563bf5ec08069705ffff65e"
++-        "5ca5c0d69716dfcb3474373902",
++-        "fa6de29746bbeb7f8bb1e761f85f7dfb2983169d82fa2f4e",
++-        "885052380ff147b734c330c43d39b2c4a89f29b0f749fead",
++-        "e9ecc78106def82bf1070cf1d4d804c3cb390046951df686" },
++-    { NID_X9_62_prime239v1, NID_sha1,
++-        "616263", /* "abc" */
++-        "7ef7c6fabefffdea864206e80b0b08a9331ed93e698561b64ca0f7777f3d",
++-        "045b6dc53bc61a2548ffb0f671472de6c9521a9d2d2534e65abfcbd5fe0c707fd9f1ed2e"
++-        "65f09f6ce0893baf5e8e31e6ae82ea8c3592335be906d38dee",
++-        "656c7196bf87dcc5d1f1020906df2782360d36b2de7a17ece37d503784af",
++-        "2cb7f36803ebb9c427c58d8265f11fc5084747133078fc279de874fbecb0",
++-        "2eeae988104e9c2234a3c2beb1f53bfa5dc11ff36a875d1e3ccb1f7e45cf" },
+      /* prime KATs from NIST CAVP */
+-     {NID_secp224r1, NID_sha224,
+-      "699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc1"
+-diff -up ./test/recipes/15-test_genec.t.ec-curves ./test/recipes/15-test_genec.t
+---- ./test/recipes/15-test_genec.t.ec-curves	2023-03-14 04:51:45.215488277 +0100
+-+++ ./test/recipes/15-test_genec.t	2023-03-21 11:26:58.613885435 +0100
++     { NID_secp224r1, NID_sha224,
++         "699325d6fc8fbbb4981a6ded3c3a54ad2e4e3db8a5669201912064c64e700c139248cdc1"
++diff -rup openssl-3.0.19/test/recipes/15-test_genec.t openssl-3.0.19.new/test/recipes/15-test_genec.t
++--- openssl-3.0.19/test/recipes/15-test_genec.t	2026-01-27 14:09:55.000000000 +0000
+++++ openssl-3.0.19.new/test/recipes/15-test_genec.t	2026-07-20 17:11:05.070539526 +0100
+ @@ -41,37 +41,11 @@ plan skip_all => "This test is unsupport
+      if disabled("ec");
+  
+diff --git a/openssl_source/0012-Disable-explicit-ec.patch b/openssl_source/0012-Disable-explicit-ec.patch
+index 0cae2fa..5e9f311 100644
+--- a/openssl_source/0012-Disable-explicit-ec.patch
++++ b/openssl_source/0012-Disable-explicit-ec.patch
+@@ -1,7 +1,7 @@
+-diff -up openssl-3.0.1/crypto/ec/ec_asn1.c.disable_explicit_ec openssl-3.0.1/crypto/ec/ec_asn1.c
+---- openssl-3.0.1/crypto/ec/ec_asn1.c.disable_explicit_ec	2022-03-22 13:10:45.718077845 +0100
+-+++ openssl-3.0.1/crypto/ec/ec_asn1.c	2022-03-22 13:12:46.626599016 +0100
+-@@ -895,6 +895,12 @@ EC_GROUP *d2i_ECPKParameters(EC_GROUP **
++diff -rup openssl-3.0.19/crypto/ec/ec_asn1.c openssl-3.0.19.new/crypto/ec/ec_asn1.c
++--- openssl-3.0.19/crypto/ec/ec_asn1.c	2026-01-27 14:09:55.000000000 +0000
+++++ openssl-3.0.19.new/crypto/ec/ec_asn1.c	2026-07-20 17:15:52.006629497 +0100
++@@ -893,6 +893,12 @@ EC_GROUP *d2i_ECPKParameters(EC_GROUP **
+      if (params->type == ECPKPARAMETERS_TYPE_EXPLICIT)
+          group->decoded_from_explicit_params = 1;
+  
+@@ -14,7 +14,7 @@ diff -up openssl-3.0.1/crypto/ec/ec_asn1.c.disable_explicit_ec openssl-3.0.1/cry
+      if (a) {
+          EC_GROUP_free(*a);
+          *a = group;
+-@@ -954,6 +959,11 @@ EC_KEY *d2i_ECPrivateKey(EC_KEY **a, con
++@@ -952,6 +958,11 @@ EC_KEY *d2i_ECPrivateKey(EC_KEY **a, con
+          goto err;
+      }
+  
+@@ -26,10 +26,10 @@ diff -up openssl-3.0.1/crypto/ec/ec_asn1.c.disable_explicit_ec openssl-3.0.1/cry
+      ret->version = priv_key->version;
+  
+      if (priv_key->privateKey) {
+-diff -up openssl-3.0.9/crypto/ec/ec_lib.c.noec openssl-3.0.9/crypto/ec/ec_lib.c
+---- openssl-3.0.9/crypto/ec/ec_lib.c.noec	2023-07-27 10:32:52.870910095 +0200
+-+++ openssl-3.0.9/crypto/ec/ec_lib.c	2023-07-27 10:35:18.029151181 +0200
+-@@ -1728,6 +1728,11 @@ EC_GROUP *EC_GROUP_new_from_params(const
++diff -rup openssl-3.0.19/crypto/ec/ec_lib.c openssl-3.0.19.new/crypto/ec/ec_lib.c
++--- openssl-3.0.19/crypto/ec/ec_lib.c	2026-01-27 14:09:55.000000000 +0000
+++++ openssl-3.0.19.new/crypto/ec/ec_lib.c	2026-07-20 17:15:52.007144448 +0100
++@@ -1723,6 +1723,11 @@ EC_GROUP *EC_GROUP_new_from_params(const
+          goto err;
+      }
+      if (named_group == group) {
+@@ -41,7 +41,7 @@ diff -up openssl-3.0.9/crypto/ec/ec_lib.c.noec openssl-3.0.9/crypto/ec/ec_lib.c
+          /*
+           * If we did not find a named group then the encoding should be explicit
+           * if it was specified
+-@@ -1743,6 +1748,7 @@ EC_GROUP *EC_GROUP_new_from_params(const
++@@ -1738,6 +1743,7 @@ EC_GROUP *EC_GROUP_new_from_params(const
+              goto err;
+          }
+          EC_GROUP_set_asn1_flag(group, OPENSSL_EC_EXPLICIT_CURVE);
+@@ -49,19 +49,83 @@ diff -up openssl-3.0.9/crypto/ec/ec_lib.c.noec openssl-3.0.9/crypto/ec/ec_lib.c
+      } else {
+          EC_GROUP_free(group);
+          group = named_group;
+-diff -up openssl-3.0.1/test/endecode_test.c.disable_explicit_ec openssl-3.0.1/test/endecode_test.c
+---- openssl-3.0.1/test/endecode_test.c.disable_explicit_ec	2022-03-21 16:55:46.005558779 +0100
+-+++ openssl-3.0.1/test/endecode_test.c	2022-03-21 16:56:12.636792762 +0100
+-@@ -57,7 +57,7 @@ static BN_CTX *bnctx = NULL;
++diff -rup openssl-3.0.19/test/ectest.c openssl-3.0.19.new/test/ectest.c
++--- openssl-3.0.19/test/ectest.c	2026-07-20 16:41:27.096703470 +0100
+++++ openssl-3.0.19.new/test/ectest.c	2026-07-20 17:19:36.304261819 +0100
++@@ -2444,6 +2444,7 @@ static int cardinality_test(int n)
++         || !TEST_true(BN_lshift(g1_order, g1_p, 2))
++         || !TEST_false(EC_GROUP_set_generator(g2, g2_gen, g1_order, NULL)))
++         goto err;
+++#endif
++     ret = 1;
++ err:
++     EC_POINT_free(g2_gen);
++@@ -2680,11 +2681,12 @@ static int do_test_custom_explicit_fromd
++     if (!TEST_ptr(params = OSSL_PARAM_BLD_to_param(bld))
++         || !TEST_ptr(pctx = EVP_PKEY_CTX_new_from_name(NULL, "EC", NULL))
++         || !TEST_int_gt(EVP_PKEY_fromdata_init(pctx), 0)
++-        || !TEST_int_gt(EVP_PKEY_fromdata(pctx, &pkeyparam,
+++        || !TEST_int_le(EVP_PKEY_fromdata(pctx, &pkeyparam,
++                             EVP_PKEY_KEY_PARAMETERS, params),
++             0))
++         goto err;
++-
+++/* As creating the key should fail, the rest of the test is pointless */
+++# if 0
++     /*- Check that all the set values are retrievable -*/
++ 
++     /* There should be no match to a group name since the generator changed */
++@@ -2899,7 +2901,7 @@ static int custom_generator_test(int id)
++ 
++     if (!do_test_custom_explicit_fromdata(group, ctx, b1, bsize))
++         goto err;
++-
+++#endif
++     ret = 1;
++ 
++ err:
++@@ -3106,21 +3108,21 @@ static int custom_params_test(int id)
++ 
++     /* Compute keyexchange in both directions */
++     if (!TEST_ptr(pctx1 = EVP_PKEY_CTX_new(pkey1, NULL))
++-        || !TEST_int_eq(EVP_PKEY_derive_init(pctx1), 1)
++-        || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx1, pkey2), 1)
+++        || !TEST_int_le(EVP_PKEY_derive_init(pctx1), 0)
+++/*      || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx1, pkey2), 1)
++         || !TEST_int_eq(EVP_PKEY_derive(pctx1, NULL, &sslen), 1)
++         || !TEST_int_gt(bsize, sslen)
++-        || !TEST_int_eq(EVP_PKEY_derive(pctx1, buf1, &sslen), 1))
+++        || !TEST_int_eq(EVP_PKEY_derive(pctx1, buf1, &sslen), 1)*/)
++         goto err;
++     if (!TEST_ptr(pctx2 = EVP_PKEY_CTX_new(pkey2, NULL))
++-        || !TEST_int_eq(EVP_PKEY_derive_init(pctx2), 1)
++-        || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx2, pkey1), 1)
+++        || !TEST_int_le(EVP_PKEY_derive_init(pctx2), 1)
+++/*      || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx2, pkey1), 1)
++         || !TEST_int_eq(EVP_PKEY_derive(pctx2, NULL, &t), 1)
++         || !TEST_int_gt(bsize, t)
++         || !TEST_int_le(sslen, t)
++-        || !TEST_int_eq(EVP_PKEY_derive(pctx2, buf2, &t), 1))
+++        || !TEST_int_eq(EVP_PKEY_derive(pctx2, buf2, &t), 1)*/)
++         goto err;
++-
+++#if 0
++     /* Both sides should expect the same shared secret */
++     if (!TEST_mem_eq(buf1, sslen, buf2, t))
++         goto err;
++diff -rup openssl-3.0.19/test/endecode_test.c openssl-3.0.19.new/test/endecode_test.c
++--- openssl-3.0.19/test/endecode_test.c	2026-01-27 14:09:55.000000000 +0000
+++++ openssl-3.0.19.new/test/endecode_test.c	2026-07-20 17:21:16.380230560 +0100
++@@ -58,7 +58,7 @@ static BN_CTX *bnctx = NULL;
+  static OSSL_PARAM_BLD *bld_prime_nc = NULL;
+  static OSSL_PARAM_BLD *bld_prime = NULL;
+  static OSSL_PARAM *ec_explicit_prime_params_nc = NULL;
+ -static OSSL_PARAM *ec_explicit_prime_params_explicit = NULL;
+ +/*static OSSL_PARAM *ec_explicit_prime_params_explicit = NULL;*/
+  
+- # ifndef OPENSSL_NO_EC2M
++ #ifndef OPENSSL_NO_EC2M
+  static OSSL_PARAM_BLD *bld_tri_nc = NULL;
+-@@ -990,9 +990,9 @@ IMPLEMENT_TEST_SUITE_LEGACY(EC, "EC")
++@@ -1008,9 +1008,9 @@ IMPLEMENT_TEST_SUITE_LEGACY(EC, "EC")
+  DOMAIN_KEYS(ECExplicitPrimeNamedCurve);
+  IMPLEMENT_TEST_SUITE(ECExplicitPrimeNamedCurve, "EC", 1)
+  IMPLEMENT_TEST_SUITE_LEGACY(ECExplicitPrimeNamedCurve, "EC")
+@@ -71,28 +135,28 @@ diff -up openssl-3.0.1/test/endecode_test.c.disable_explicit_ec openssl-3.0.1/te
+ +/*DOMAIN_KEYS(ECExplicitPrime2G);*/
+ +/*IMPLEMENT_TEST_SUITE(ECExplicitPrime2G, "EC", 0)*/
+ +/*IMPLEMENT_TEST_SUITE_LEGACY(ECExplicitPrime2G, "EC")*/
+- # ifndef OPENSSL_NO_EC2M
++ #ifndef OPENSSL_NO_EC2M
+  DOMAIN_KEYS(ECExplicitTriNamedCurve);
+  IMPLEMENT_TEST_SUITE(ECExplicitTriNamedCurve, "EC", 1)
+-@@ -1318,7 +1318,7 @@ int setup_tests(void)
++@@ -1392,7 +1392,7 @@ int setup_tests(void)
+          || !create_ec_explicit_prime_params_namedcurve(bld_prime_nc)
+          || !create_ec_explicit_prime_params(bld_prime)
+          || !TEST_ptr(ec_explicit_prime_params_nc = OSSL_PARAM_BLD_to_param(bld_prime_nc))
+ -        || !TEST_ptr(ec_explicit_prime_params_explicit = OSSL_PARAM_BLD_to_param(bld_prime))
+ +/*        || !TEST_ptr(ec_explicit_prime_params_explicit = OSSL_PARAM_BLD_to_param(bld_prime))*/
+- # ifndef OPENSSL_NO_EC2M
++ #ifndef OPENSSL_NO_EC2M
+          || !TEST_ptr(bld_tri_nc = OSSL_PARAM_BLD_new())
+          || !TEST_ptr(bld_tri = OSSL_PARAM_BLD_new())
+-@@ -1346,7 +1346,7 @@ int setup_tests(void)
++@@ -1420,7 +1420,7 @@ int setup_tests(void)
+      TEST_info("Generating EC keys...");
+      MAKE_DOMAIN_KEYS(EC, "EC", EC_params);
+      MAKE_DOMAIN_KEYS(ECExplicitPrimeNamedCurve, "EC", ec_explicit_prime_params_nc);
+ -    MAKE_DOMAIN_KEYS(ECExplicitPrime2G, "EC", ec_explicit_prime_params_explicit);
+ +/*    MAKE_DOMAIN_KEYS(ECExplicitPrime2G, "EC", ec_explicit_prime_params_explicit);*/
+- # ifndef OPENSSL_NO_EC2M
++ #ifndef OPENSSL_NO_EC2M
+      MAKE_DOMAIN_KEYS(ECExplicitTriNamedCurve, "EC", ec_explicit_tri_params_nc);
+      MAKE_DOMAIN_KEYS(ECExplicitTri2G, "EC", ec_explicit_tri_params_explicit);
+-@@ -1389,8 +1389,8 @@ int setup_tests(void)
++@@ -1467,8 +1467,8 @@ int setup_tests(void)
+          ADD_TEST_SUITE_LEGACY(EC);
+          ADD_TEST_SUITE(ECExplicitPrimeNamedCurve);
+          ADD_TEST_SUITE_LEGACY(ECExplicitPrimeNamedCurve);
+@@ -100,10 +164,10 @@ diff -up openssl-3.0.1/test/endecode_test.c.disable_explicit_ec openssl-3.0.1/te
+ -        ADD_TEST_SUITE_LEGACY(ECExplicitPrime2G);
+ +/*        ADD_TEST_SUITE(ECExplicitPrime2G);*/
+ +/*        ADD_TEST_SUITE_LEGACY(ECExplicitPrime2G);*/
+- # ifndef OPENSSL_NO_EC2M
++ #ifndef OPENSSL_NO_EC2M
+          ADD_TEST_SUITE(ECExplicitTriNamedCurve);
+          ADD_TEST_SUITE_LEGACY(ECExplicitTriNamedCurve);
+-@@ -1427,7 +1427,7 @@ void cleanup_tests(void)
++@@ -1511,7 +1511,7 @@ void cleanup_tests(void)
+  {
+  #ifndef OPENSSL_NO_EC
+      OSSL_PARAM_free(ec_explicit_prime_params_nc);
+@@ -111,20 +175,20 @@ diff -up openssl-3.0.1/test/endecode_test.c.disable_explicit_ec openssl-3.0.1/te
+ +/*    OSSL_PARAM_free(ec_explicit_prime_params_explicit);*/
+      OSSL_PARAM_BLD_free(bld_prime_nc);
+      OSSL_PARAM_BLD_free(bld_prime);
+- # ifndef OPENSSL_NO_EC2M
+-@@ -1449,7 +1449,7 @@ void cleanup_tests(void)
++ #ifndef OPENSSL_NO_EC2M
++@@ -1533,7 +1533,7 @@ void cleanup_tests(void)
+  #ifndef OPENSSL_NO_EC
+      FREE_DOMAIN_KEYS(EC);
+      FREE_DOMAIN_KEYS(ECExplicitPrimeNamedCurve);
+ -    FREE_DOMAIN_KEYS(ECExplicitPrime2G);
+ +/*    FREE_DOMAIN_KEYS(ECExplicitPrime2G);*/
+- # ifndef OPENSSL_NO_EC2M
++ #ifndef OPENSSL_NO_EC2M
+      FREE_DOMAIN_KEYS(ECExplicitTriNamedCurve);
+      FREE_DOMAIN_KEYS(ECExplicitTri2G);
+-diff -up openssl-3.0.1/test/recipes/30-test_evp_data/evppkey_ecdsa.txt.disable_explicit_ec openssl-3.0.1/test/recipes/30-test_evp_data/evppkey_ecdsa.txt
+---- openssl-3.0.1/test/recipes/30-test_evp_data/evppkey_ecdsa.txt.disable_explicit_ec	2022-03-25 11:20:50.920949208 +0100
+-+++ openssl-3.0.1/test/recipes/30-test_evp_data/evppkey_ecdsa.txt	2022-03-25 11:21:13.177147598 +0100
+-@@ -121,18 +121,6 @@ AAAA//////////+85vqtpxeehPO5ysL8YyVRAgEB
++diff -rup openssl-3.0.19/test/recipes/30-test_evp_data/evppkey_ecdsa.txt openssl-3.0.19.new/test/recipes/30-test_evp_data/evppkey_ecdsa.txt
++--- openssl-3.0.19/test/recipes/30-test_evp_data/evppkey_ecdsa.txt	2026-01-27 14:09:55.000000000 +0000
+++++ openssl-3.0.19.new/test/recipes/30-test_evp_data/evppkey_ecdsa.txt	2026-07-20 17:15:52.008539721 +0100
++@@ -133,18 +133,6 @@ AAAA//////////+85vqtpxeehPO5ysL8YyVRAgEB
+  3ev1gTwRBduzqqlwd54AUSgI+pjttW8zrWNitO8H1sf59MPWOESKxNtZ1+Nl
+  -----END PRIVATE KEY-----
+  
+@@ -143,66 +207,3 @@ diff -up openssl-3.0.1/test/recipes/30-test_evp_data/evppkey_ecdsa.txt.disable_e
+  PrivateKey = B-163
+  -----BEGIN PRIVATE KEY-----
+  MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUDnQW0mLiHVha/jqFznX/K
+-diff -up openssl-3.0.9/test/ectest.c.noec openssl-3.0.9/test/ectest.c
+---- openssl-3.0.9/test/ectest.c.noec	2023-07-27 11:30:24.078979261 +0200
+-+++ openssl-3.0.9/test/ectest.c	2023-07-27 11:35:12.335576107 +0200
+-@@ -2301,10 +2301,11 @@ static int do_test_custom_explicit_fromd
+-     if (!TEST_ptr(params = OSSL_PARAM_BLD_to_param(bld))
+-         || !TEST_ptr(pctx = EVP_PKEY_CTX_new_from_name(NULL, "EC", NULL))
+-         || !TEST_int_gt(EVP_PKEY_fromdata_init(pctx), 0)
+--        || !TEST_int_gt(EVP_PKEY_fromdata(pctx, &pkeyparam,
+-+        || !TEST_int_le(EVP_PKEY_fromdata(pctx, &pkeyparam,
+-                                           EVP_PKEY_KEY_PARAMETERS, params), 0))
+-         goto err;
+--
+-+/* As creating the key should fail, the rest of the test is pointless */
+-+# if 0
+-     /*- Check that all the set values are retrievable -*/
+- 
+-     /* There should be no match to a group name since the generator changed */
+-@@ -2433,6 +2434,7 @@ static int do_test_custom_explicit_fromd
+- #endif
+-         )
+-         goto err;
+-+#endif
+-     ret = 1;
+- err:
+-     BN_free(order_out);
+-@@ -2714,21 +2716,21 @@ static int custom_params_test(int id)
+- 
+-     /* Compute keyexchange in both directions */
+-     if (!TEST_ptr(pctx1 = EVP_PKEY_CTX_new(pkey1, NULL))
+--            || !TEST_int_eq(EVP_PKEY_derive_init(pctx1), 1)
+--            || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx1, pkey2), 1)
+-+            || !TEST_int_le(EVP_PKEY_derive_init(pctx1), 0)
+-+/*          || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx1, pkey2), 1)
+-             || !TEST_int_eq(EVP_PKEY_derive(pctx1, NULL, &sslen), 1)
+-             || !TEST_int_gt(bsize, sslen)
+--            || !TEST_int_eq(EVP_PKEY_derive(pctx1, buf1, &sslen), 1))
+-+            || !TEST_int_eq(EVP_PKEY_derive(pctx1, buf1, &sslen), 1)*/)
+-         goto err;
+-     if (!TEST_ptr(pctx2 = EVP_PKEY_CTX_new(pkey2, NULL))
+--            || !TEST_int_eq(EVP_PKEY_derive_init(pctx2), 1)
+--            || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx2, pkey1), 1)
+-+            || !TEST_int_le(EVP_PKEY_derive_init(pctx2), 1)
+-+/*          || !TEST_int_eq(EVP_PKEY_derive_set_peer(pctx2, pkey1), 1)
+-             || !TEST_int_eq(EVP_PKEY_derive(pctx2, NULL, &t), 1)
+-             || !TEST_int_gt(bsize, t)
+-             || !TEST_int_le(sslen, t)
+--            || !TEST_int_eq(EVP_PKEY_derive(pctx2, buf2, &t), 1))
+-+            || !TEST_int_eq(EVP_PKEY_derive(pctx2, buf2, &t), 1) */)
+-         goto err;
+--
+-+#if 0
+-     /* Both sides should expect the same shared secret */
+-     if (!TEST_mem_eq(buf1, sslen, buf2, t))
+-         goto err;
+-@@ -2780,7 +2782,7 @@ static int custom_params_test(int id)
+-             /* compare with previous result */
+-             || !TEST_mem_eq(buf1, t, buf2, sslen))
+-         goto err;
+--
+-+#endif
+-     ret = 1;
+- 
+-  err:
+-- 
+2.55.0
+

diff --git a/0400-Fix-constness-for-OpenSSL4-X509-ASN1-APIs.patch b/0400-Fix-constness-for-OpenSSL4-X509-ASN1-APIs.patch
new file mode 100644
index 0000000..93dd26b
--- /dev/null
+++ b/0400-Fix-constness-for-OpenSSL4-X509-ASN1-APIs.patch
@@ -0,0 +1,422 @@
+From 5512707e0185c85f778c7e8b13f3d7f4c6ce7c62 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
+Date: Mon, 20 Jul 2026 13:23:50 +0100
+Subject: [PATCH] Fix constness for OpenSSL4 X509/ASN1 APIs
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The OpenSSL 4 release changes APIs to add const on the returned
+struct type where possible.
+
+Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
+---
+ .../src/PckParser/PckParser.cpp               | 42 ++++++++++---------
+ .../SgxEcdsaAttestation/AttestationParsers.h  |  6 +--
+ .../src/OpensslHelpers/OidUtils.cpp           | 17 ++++----
+ Src/AttestationParsers/src/ParserUtils.cpp    |  6 +--
+ Src/AttestationParsers/src/ParserUtils.h      |  2 +-
+ .../src/X509/Certificate.cpp                  | 13 +++---
+ .../src/X509/DistinguishedName.cpp            |  2 +-
+ Src/AttestationParsers/src/X509/Extension.cpp | 20 +++++----
+ Src/AttestationParsers/src/X509/Signature.cpp |  5 ++-
+ 9 files changed, 61 insertions(+), 52 deletions(-)
+
+diff --git a/Src/AttestationLibrary/src/PckParser/PckParser.cpp b/Src/AttestationLibrary/src/PckParser/PckParser.cpp
+index 2ec8c2b..3392d6c 100644
+--- a/Src/AttestationLibrary/src/PckParser/PckParser.cpp
++++ b/Src/AttestationLibrary/src/PckParser/PckParser.cpp
+@@ -158,8 +158,9 @@ std::vector<uint8_t> bn2Vec(const BIGNUM* bn)
+ 
+ Signature getSignature(const ASN1_BIT_STRING* psig)
+ {
+-    std::vector<uint8_t> rawDerSequence(static_cast<size_t>(psig->length));
+-    safeMemcpy(rawDerSequence.data(), psig->data, static_cast<size_t>(psig->length));
++    std::vector<uint8_t> rawDerSequence(static_cast<size_t>(ASN1_STRING_length(psig)));
++    safeMemcpy(rawDerSequence.data(), ASN1_STRING_get0_data(psig),
++	       static_cast<size_t>(ASN1_STRING_length(psig)));
+ 
+     const uint8_t *derSeqIt = rawDerSequence.data();
+     const auto sig = crypto::make_unique(d2i_ECDSA_SIG(nullptr, &derSeqIt , static_cast<long>(rawDerSequence.size())));
+@@ -211,7 +212,7 @@ std::string x509NameToString(const X509_NAME* name)
+     return ret;
+ }
+ 
+-std::string getNameEntry(X509_NAME* name, int nid)
++std::string getNameEntry(const X509_NAME* name, int nid)
+ {
+     // sad, defensive code
+ 
+@@ -236,14 +237,14 @@ std::string getNameEntry(X509_NAME* name, int nid)
+         return "";
+     }
+ 
+-    X509_NAME_ENTRY *entry = X509_NAME_get_entry(name, position);
++    const X509_NAME_ENTRY *entry = X509_NAME_get_entry(name, position);
+ 
+     if(!entry)
+     {
+         return "";
+     }
+ 
+-    ASN1_STRING *asn1 = X509_NAME_ENTRY_get_data(entry);
++    const ASN1_STRING *asn1 = X509_NAME_ENTRY_get_data(entry);
+     const int asn1EstimatedStrLen = ASN1_STRING_length(asn1);
+     if(asn1EstimatedStrLen <= 0)
+     {
+@@ -302,12 +303,12 @@ std::string asn1ToString(const ASN1_TIME* time)
+     return std::string(buff);
+ }
+ 
+-Extension getExtension(X509_EXTENSION* ex)
++Extension getExtension(const X509_EXTENSION* ex)
+ {
+     // I do not check for nullptr below cause this func is not part of
+     // public API and given a place from where call is perfmormed I'm pretty certain
+     // there won't be any here
+-    const ASN1_OBJECT *asn1Obj = X509_EXTENSION_get_object(ex);
++    const ASN1_OBJECT *asn1Obj = X509_EXTENSION_get_object(const_cast<X509_EXTENSION *>(ex));
+ 
+     const int nid = OBJ_obj2nid(asn1Obj);
+ 
+@@ -318,15 +319,16 @@ Extension getExtension(X509_EXTENSION* ex)
+ 
+         const std::string extName = obj2Str(asn1Obj);
+ 
+-        const auto val = X509_EXTENSION_get_data(ex);
++        const auto val = X509_EXTENSION_get_data(const_cast<X509_EXTENSION *>(ex));
+ 
+         if(!val)
+         {
+             throw FormatException("Invalid Extension");
+         }
+ 
+-        std::vector<uint8_t> data(static_cast<size_t>(val->length));
+-        std::copy_n(val->data, val->length, data.begin());
++        std::vector<uint8_t> data(static_cast<size_t>(ASN1_STRING_length(val)));
++        std::copy_n(ASN1_STRING_get0_data(val),
++		    ASN1_STRING_length(val), data.begin());
+ 
+         return Extension {
+             nid,
+@@ -336,15 +338,16 @@ Extension getExtension(X509_EXTENSION* ex)
+     }
+ 
+     auto bio = crypto::make_unique(BIO_new(BIO_s_mem()));
+-    if(!X509V3_EXT_print(bio.get(), ex, 0, 0))
++    if(!X509V3_EXT_print(bio.get(), const_cast<X509_EXTENSION *>(ex), 0, 0))
+     {   // revocation extensions may not be printable,
+         // at the time of writing this code, there was no revocation
+         // extensions planned so this 'if' statement probably won't be
+         // hit at all
+-        const auto val = X509_EXTENSION_get_data(ex);
++        const auto val = X509_EXTENSION_get_data(const_cast<X509_EXTENSION *>(ex));
+ 
+-        std::vector<uint8_t> data(static_cast<size_t>(val->length));
+-        std::copy_n(val->data, val->length, data.begin());
++        std::vector<uint8_t> data(static_cast<size_t>(ASN1_STRING_length(val)));
++        std::copy_n(ASN1_STRING_get0_data(val),
++		    ASN1_STRING_length(val), data.begin());
+ 
+         return Extension{
+             nid,
+@@ -387,13 +390,14 @@ Revoked getRevoked(const STACK_OF(X509_REVOKED)* revokedStack, int index)
+         return {};
+     }
+ 
+-    if(serialNumber->length <= 0)
++    if(ASN1_STRING_length(serialNumber) <= 0)
+     {
+         return {};
+     }
+ 
+-    std::vector<uint8_t> retSerial(static_cast<size_t>(serialNumber->length));
+-    std::copy_n(serialNumber->data, serialNumber->length, retSerial.begin());
++    std::vector<uint8_t> retSerial(static_cast<size_t>(ASN1_STRING_length(serialNumber)));
++    std::copy_n(ASN1_STRING_get0_data(serialNumber),
++		ASN1_STRING_length(serialNumber), retSerial.begin());
+ 
+     // Revoked entry can have its extensions
+     // but at the time of writing this code there was no
+@@ -511,7 +515,7 @@ long getVersion(const X509_CRL& crl)
+ 
+ Issuer getIssuer(const X509_CRL& crl)
+ {
+-    X509_NAME *issuer = X509_CRL_get_issuer(&crl);
++    const X509_NAME *issuer = X509_CRL_get_issuer(&crl);
+     if(!issuer)
+     {
+         throw FormatException(getLastError());
+@@ -567,7 +571,7 @@ Signature getSignature(const X509_CRL& crl)
+         throw FormatException(getLastError());
+     }
+ 
+-    if(psig->length == 0)
++    if(ASN1_STRING_length(psig) == 0)
+     {
+         return {};
+     }
+diff --git a/Src/AttestationParsers/include/SgxEcdsaAttestation/AttestationParsers.h b/Src/AttestationParsers/include/SgxEcdsaAttestation/AttestationParsers.h
+index b393d23..db2e4ca 100644
+--- a/Src/AttestationParsers/include/SgxEcdsaAttestation/AttestationParsers.h
++++ b/Src/AttestationParsers/include/SgxEcdsaAttestation/AttestationParsers.h
+@@ -812,7 +812,7 @@ namespace intel { namespace sgx { namespace dcap { namespace parser
+             std::string _locationName;
+             std::string _stateName;
+ 
+-            explicit DistinguishedName(X509_name_st *x509Name);
++            explicit DistinguishedName(const X509_name_st *x509Name);
+ 
+             friend class Certificate;
+         };
+@@ -945,7 +945,7 @@ namespace intel { namespace sgx { namespace dcap { namespace parser
+             std::string _name;
+             std::vector<uint8_t> _value;
+ 
+-            explicit Extension(X509_EXTENSION *ext);
++            explicit Extension(const X509_EXTENSION *ext);
+ 
+             friend class Certificate;
+             friend class UnitTests;
+@@ -1461,4 +1461,4 @@ namespace intel { namespace sgx { namespace dcap { namespace parser
+ 
+ }}}}
+ 
+-#endif // SGX_DCAP_PARSERS_H_
+\ No newline at end of file
++#endif // SGX_DCAP_PARSERS_H_
+diff --git a/Src/AttestationParsers/src/OpensslHelpers/OidUtils.cpp b/Src/AttestationParsers/src/OpensslHelpers/OidUtils.cpp
+index d339b7a..ea673a5 100644
+--- a/Src/AttestationParsers/src/OpensslHelpers/OidUtils.cpp
++++ b/Src/AttestationParsers/src/OpensslHelpers/OidUtils.cpp
+@@ -60,16 +60,16 @@ void validateOid(const std::string& oidName, const ASN1_TYPE *oidValue, int expe
+     switch (oidValue->type)
+     {
+         case V_ASN1_INTEGER:
+-            oidValueLen = oidValue->value.integer->length;
++            oidValueLen = ASN1_STRING_length(oidValue->value.integer);
+             break;
+         case V_ASN1_OCTET_STRING:
+-            oidValueLen = oidValue->value.octet_string->length;
++            oidValueLen = ASN1_STRING_length(oidValue->value.octet_string);
+             break;
+         case V_ASN1_ENUMERATED:
+-            oidValueLen = oidValue->value.enumerated->length;
++            oidValueLen = ASN1_STRING_length(oidValue->value.enumerated);
+             break;
+         case V_ASN1_SEQUENCE:
+-            oidValueLen = oidValue->value.sequence->length;
++            oidValueLen = ASN1_STRING_length(oidValue->value.sequence);
+             break;
+         default:
+         {
+@@ -87,9 +87,9 @@ void validateOid(const std::string& oidName, const ASN1_TYPE *oidValue, int expe
+ 
+ std::vector<uint8_t> oidToBytes(const ASN1_TYPE *oidValue)
+ {
+-    const auto oidValueLen = oidValue->value.octet_string->length;
++  const auto oidValueLen = ASN1_STRING_length(oidValue->value.octet_string);
+     auto bytes = std::vector<uint8_t>(static_cast<size_t>(oidValueLen));
+-    std::copy_n(oidValue->value.octet_string->data,
++    std::copy_n(ASN1_STRING_get0_data(oidValue->value.octet_string),
+                 oidValueLen,
+                 bytes.begin());
+     return bytes;
+@@ -115,8 +115,9 @@ int oidToEnum(const ASN1_TYPE *oidValue)
+ 
+ STACK_OF_ASN1TYPE_uptr oidToStack(const ASN1_TYPE *oidValue)
+ {
+-    const unsigned char *data = oidValue->value.sequence->data;
+-    auto stack = crypto::make_unique(d2i_ASN1_SEQUENCE_ANY(nullptr, &data, oidValue->value.sequence->length));
++    const unsigned char *data = ASN1_STRING_get0_data(oidValue->value.sequence);
++    auto stack = crypto::make_unique(d2i_ASN1_SEQUENCE_ANY(nullptr, &data,
++							   ASN1_STRING_length(oidValue->value.sequence)));
+ 
+     if(!stack)
+     {
+diff --git a/Src/AttestationParsers/src/ParserUtils.cpp b/Src/AttestationParsers/src/ParserUtils.cpp
+index 3f94f43..7723448 100644
+--- a/Src/AttestationParsers/src/ParserUtils.cpp
++++ b/Src/AttestationParsers/src/ParserUtils.cpp
+@@ -113,7 +113,7 @@ std::string x509NameToString(const X509_NAME* name)
+     return ret;
+ }
+ 
+-std::string getNameEntry(X509_NAME* name, int nid)
++std::string getNameEntry(const X509_NAME* name, int nid)
+ {
+     // sad, defensive code
+ 
+@@ -141,7 +141,7 @@ std::string getNameEntry(X509_NAME* name, int nid)
+         return "";
+     }
+ 
+-    X509_NAME_ENTRY *entry = X509_NAME_get_entry(name, position);
++    const X509_NAME_ENTRY *entry = X509_NAME_get_entry(name, position);
+ 
+     if(!entry)
+     {
+@@ -149,7 +149,7 @@ std::string getNameEntry(X509_NAME* name, int nid)
+         return "";
+     }
+ 
+-    ASN1_STRING *asn1 = X509_NAME_ENTRY_get_data(entry);
++    const ASN1_STRING *asn1 = X509_NAME_ENTRY_get_data(entry);
+     const int asn1EstimatedStrLen = ASN1_STRING_length(asn1);
+     if(asn1EstimatedStrLen <= 0)
+     {
+diff --git a/Src/AttestationParsers/src/ParserUtils.h b/Src/AttestationParsers/src/ParserUtils.h
+index 0245a82..ffaa1a9 100644
+--- a/Src/AttestationParsers/src/ParserUtils.h
++++ b/Src/AttestationParsers/src/ParserUtils.h
+@@ -48,7 +48,7 @@ namespace intel { namespace sgx { namespace dcap { namespace parser {
+ std::string obj2Str(const ASN1_OBJECT* obj);
+ std::vector<uint8_t> bn2Vec(const BIGNUM* bn);
+ std::string x509NameToString(const X509_NAME* name);
+-std::string getNameEntry(X509_NAME* name, int nid);
++std::string getNameEntry(const X509_NAME* name, int nid);
+ std::tuple<time_t, time_t> asn1TimePeriodToCTime(const ASN1_TIME* validityBegin, const ASN1_TIME* validityEnd);
+ std::string getLastError();
+ 
+diff --git a/Src/AttestationParsers/src/X509/Certificate.cpp b/Src/AttestationParsers/src/X509/Certificate.cpp
+index c783dd8..233e98e 100644
+--- a/Src/AttestationParsers/src/X509/Certificate.cpp
++++ b/Src/AttestationParsers/src/X509/Certificate.cpp
+@@ -182,7 +182,7 @@ void Certificate::setSerialNumber(const X509 *x509)
+ void Certificate::setSubject(const X509 *x509)
+ {
+     // this is an internal pointer and must not be freed !
+-    X509_NAME *subject = X509_get_subject_name(x509);
++    const X509_NAME *subject = X509_get_subject_name(x509);
+ 
+     if(!subject)
+     {
+@@ -197,7 +197,7 @@ void Certificate::setSubject(const X509 *x509)
+ void Certificate::setIssuer(const X509 *x509)
+ {
+     // this is an internal pointer and must not be freed !
+-    X509_NAME *issuer = X509_get_issuer_name(x509);
++    const X509_NAME *issuer = X509_get_issuer_name(x509);
+ 
+     if(!issuer)
+     {
+@@ -290,7 +290,7 @@ void Certificate::setSignature(const X509 *x509)
+         LOG_AND_THROW(FormatException, err);
+     }
+ 
+-    if(psig->length == 0)
++    if(ASN1_STRING_length(psig) == 0)
+     {
+         LOG_AND_THROW(FormatException, "Signature should not be empty")
+     }
+@@ -300,16 +300,17 @@ void Certificate::setSignature(const X509 *x509)
+ 
+ void Certificate::setPublicKey(const X509 *x509)
+ {
+-    ASN1_BIT_STRING* asn1PubKey = X509_get0_pubkey_bitstr(x509);
++    const ASN1_BIT_STRING* asn1PubKey = X509_get0_pubkey_bitstr(x509);
+ 
+     if(asn1PubKey == nullptr)
+     {
+         LOG_AND_THROW(FormatException, "Certificate should not be NULL");
+     }
+ 
+-    size_t len = static_cast<size_t>(asn1PubKey->length);
++    size_t len = static_cast<size_t>(ASN1_STRING_length(asn1PubKey));
++    const uint8_t *data = static_cast<const uint8_t *>(ASN1_STRING_get0_data(asn1PubKey));
+ 
+-    _pubKey = std::vector<uint8_t>(asn1PubKey->data, asn1PubKey->data + len);
++    _pubKey = std::vector<uint8_t>(data, data + len);
+ }
+ 
+ void Certificate::setCrlDistributionPoint(const X509 *x509)
+diff --git a/Src/AttestationParsers/src/X509/DistinguishedName.cpp b/Src/AttestationParsers/src/X509/DistinguishedName.cpp
+index cf5fecd..61e72db 100644
+--- a/Src/AttestationParsers/src/X509/DistinguishedName.cpp
++++ b/Src/AttestationParsers/src/X509/DistinguishedName.cpp
+@@ -95,7 +95,7 @@ bool DistinguishedName::operator!=(const DistinguishedName &other) const {
+ 
+ // Private
+ 
+-DistinguishedName::DistinguishedName(X509_name_st *x509Name):
++DistinguishedName::DistinguishedName(const X509_name_st *x509Name):
+                                                       DistinguishedName(x509NameToString(x509Name),
+                                                                         getNameEntry(x509Name, NID_commonName),
+                                                                         getNameEntry(x509Name, NID_countryName),
+diff --git a/Src/AttestationParsers/src/X509/Extension.cpp b/Src/AttestationParsers/src/X509/Extension.cpp
+index 85ddc84..66b15e9 100644
+--- a/Src/AttestationParsers/src/X509/Extension.cpp
++++ b/Src/AttestationParsers/src/X509/Extension.cpp
+@@ -80,12 +80,12 @@ bool Extension::operator!=(const Extension& other) const
+ 
+ // Private
+ 
+-Extension::Extension(X509_EXTENSION *ext)
++Extension::Extension(const X509_EXTENSION *ext)
+ {
+     // I do not check for nullptr below cause this func is not part of
+     // public API and given a place from where call is performed I'm pretty certain
+     // there won't be any here
+-    const ASN1_OBJECT *asn1Obj = X509_EXTENSION_get_object(ext);
++    const ASN1_OBJECT *asn1Obj = X509_EXTENSION_get_object(const_cast<X509_EXTENSION *>(ext));
+ 
+     _nid = OBJ_obj2nid(asn1Obj);
+ 
+@@ -96,29 +96,31 @@ Extension::Extension(X509_EXTENSION *ext)
+ 
+         _name = obj2Str(asn1Obj);
+ 
+-        const auto val = X509_EXTENSION_get_data(ext);
++        const auto val = X509_EXTENSION_get_data(const_cast<X509_EXTENSION *>(ext));
+ 
+         if(!val)
+         {
+             throw FormatException("Invalid Extension");
+         }
+ 
+-        _value = std::vector<uint8_t>(static_cast<size_t>(val->length));
+-        std::copy_n(val->data, val->length, _value.begin());
++        _value = std::vector<uint8_t>(static_cast<size_t>(ASN1_STRING_length(val)));
++        std::copy_n(ASN1_STRING_get0_data(val),
++		    ASN1_STRING_length(val), _value.begin());
+ 
+         return;
+     }
+ 
+     auto bio = crypto::make_unique(BIO_new(BIO_s_mem()));
+-    if(!X509V3_EXT_print(bio.get(), ext, 0, 0))
++    if(!X509V3_EXT_print(bio.get(), const_cast<X509_EXTENSION *>(ext), 0, 0))
+     {   // revocation extensions may not be printable,
+         // at the time of writing this code, there was no revocation
+         // extensions planned so this 'if' statement probably won't be
+         // hit at all
+-        const auto val = X509_EXTENSION_get_data(ext);
++        const auto val = X509_EXTENSION_get_data(const_cast<X509_EXTENSION *>(ext));
+ 
+-        _value = std::vector<uint8_t>(static_cast<size_t>(val->length));
+-        std::copy_n(val->data, val->length, _value.begin());
++        _value = std::vector<uint8_t>(static_cast<size_t>(ASN1_STRING_length(val)));
++        std::copy_n(ASN1_STRING_get0_data(val),
++		    ASN1_STRING_length(val), _value.begin());
+ 
+         _name = std::string(OBJ_nid2ln(_nid));
+ 
+diff --git a/Src/AttestationParsers/src/X509/Signature.cpp b/Src/AttestationParsers/src/X509/Signature.cpp
+index 0df63a7..4478060 100644
+--- a/Src/AttestationParsers/src/X509/Signature.cpp
++++ b/Src/AttestationParsers/src/X509/Signature.cpp
+@@ -78,8 +78,9 @@ const std::vector<uint8_t>& Signature::getS() const
+ // Private
+ Signature::Signature(const ASN1_BIT_STRING* pSig)
+ {
+-    _rawDer = std::vector<uint8_t>(static_cast<size_t>(pSig->length));
+-    safeMemcpy(_rawDer.data(), pSig->data, static_cast<size_t>(pSig->length));
++    _rawDer = std::vector<uint8_t>(static_cast<size_t>(ASN1_STRING_length(pSig)));
++    safeMemcpy(_rawDer.data(), ASN1_STRING_get0_data(pSig),
++	       static_cast<size_t>(ASN1_STRING_length(pSig)));
+ 
+     const uint8_t *derSeqIt = _rawDer.data();
+     const auto sig = crypto::make_unique(d2i_ECDSA_SIG(nullptr, &derSeqIt , static_cast<long>(_rawDer.size())));
+-- 
+2.55.0
+

diff --git a/linux-sgx.spec b/linux-sgx.spec
index 4d0c05f..4eebcbe 100644
--- a/linux-sgx.spec
+++ b/linux-sgx.spec
@@ -315,6 +315,7 @@ Patch0013: 0013-linux-installer-drop-PCCS-package-from-BOM.patch
 Patch0014: 0014-sdk-avoid-failure-due-to-attribute-regparam-with-GCC.patch
 Patch0015: 0015-fix-BOM-for-mpa_manage-mpa_registration-files.patch
 Patch0016: 0016-fix-missing-def-of-uncaught_exception.patch
+Patch0017: 0017-sdk-adapt-to-openssl4-API-changes.patch
 # Optional patches
 Patch0050: 0050-Disable-inclusion-of-AESM-in-installer.patch
 
@@ -353,6 +354,8 @@ Patch0122: 0122-Disable-PcsClientTool-package-build.patch
 Patch0123: 0123-disable-building-of-WASM-SIMDE-code.patch
 Patch0124: 0124-ensure-build-terminates-if-prepare_sgxssl.sh-fails.patch
 Patch0125: 0125-Support-for-26.04-enabled-in-SGXSDK-and-DCAP.patch
+Patch0126: 0126-qpl-fix-const-correctness-for-ASN1_STRING-X509_NAME_.patch
+Patch0127: 0127-qal-force-compat-with-CMake-3.5.patch
 
 
 # 0200-0299 -> against intel-sgx-ssl.git
@@ -363,6 +366,7 @@ Patch0200: 0200-Enable-pointing-sgxssl-build-to-alternative-glibc-he.patch
 Patch0201: 0201-Workaround-missing-output-directory.patch
 Patch0202: 0202-Disable-various-EC-crypto-features.patch
 Patch0203: 0203-Disable-sm2-and-sm4-crypto-algorithms.patch
+Patch0204: 0204-Update-patches-for-openssl-3.0.19.patch
 
 
 # 0300-0399 -> against ipp-crypto.git
@@ -373,6 +377,12 @@ Patch0300: 0300-Drop-min-openssl-from-3.0.8-to-3.0.7.patch
 Patch0301: 0301-Drop-Werror-from-build-flags.patch
 
 
+# 0400-0499 -> against confidential-computing.tee.dcap.qvl.git
+#
+# Maintained in https://github.com/berrange/confidential-computing.tee.dcap.qvl
+#
+Patch0400: 0400-Fix-constness-for-OpenSSL4-X509-ASN1-APIs.patch
+
 BuildRequires: sgx-rpm-macros
 BuildRequires: autoconf
 BuildRequires: automake
@@ -640,6 +650,7 @@ rm -rf external/{dnnl,openmp,protobuf} sdk/sample_libcrypto
     cd QuoteVerification/QVL
 
     tar zxf %{SOURCE7} --strip 1
+    %autopatch -m 400 -M 499 -p1
   )
 
   (

                 reply	other threads:[~2026-07-23 11:18 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178480552879.1.12349014832050574955.rpms-linux-sgx-0f24fac4cedf@fedoraproject.org \
    --to=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox