git: b419a572ee2e - main - security/pkcs11-helper: make OpenSSL 3.0 compatible
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 28 Jun 2023 20:54:47 UTC
The branch main has been updated by mandree:
URL: https://cgit.FreeBSD.org/ports/commit/?id=b419a572ee2ea98a2dbf4b1e219e057ffef56cb3
commit b419a572ee2ea98a2dbf4b1e219e057ffef56cb3
Author: Matthias Andree <mandree@FreeBSD.org>
AuthorDate: 2023-06-24 18:32:19 +0000
Commit: Matthias Andree <mandree@FreeBSD.org>
CommitDate: 2023-06-28 20:49:54 +0000
security/pkcs11-helper: make OpenSSL 3.0 compatible
OpenSSL 3.0 changed the prototype for the dup_func
of the customer data callback functions, the third
argument (from_d) switched from void * to void **.
See
https://www.openssl.org/docs/man3.0/man3/CRYPTO_get_ex_new_index.html
This breaks compile on FreeBSD-CURRENT, which also
uses the stricter LLVM/clang 16.
Add an OPENSSL_VERSION_NUMBER #elif case
to support the newer OpenSSL >= 3.0 prototype.
Approved by: ale@ (Alex Dupre, maintainer)
PR: 272190
---
.../files/patch-lib_pkcs11h-openssl.c | 28 ++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)
diff --git a/security/pkcs11-helper/files/patch-lib_pkcs11h-openssl.c b/security/pkcs11-helper/files/patch-lib_pkcs11h-openssl.c
index e0bc64247fc7..e27454eb3d28 100644
--- a/security/pkcs11-helper/files/patch-lib_pkcs11h-openssl.c
+++ b/security/pkcs11-helper/files/patch-lib_pkcs11h-openssl.c
@@ -1,6 +1,6 @@
---- lib/pkcs11h-openssl.c.orig 2022-10-20 14:36:14 UTC
+--- lib/pkcs11h-openssl.c.orig 2022-04-07 17:01:01 UTC
+++ lib/pkcs11h-openssl.c
-@@ -235,9 +235,13 @@ DSA_meth_free (DSA_METHOD *meth)
+@@ -235,9 +235,13 @@ DSA_meth_set1_name (DSA_METHOD *meth, const char *name
static int
DSA_meth_set1_name (DSA_METHOD *meth, const char *name)
{
@@ -14,3 +14,27 @@
}
#endif
+@@ -341,12 +345,22 @@ __pkcs11h_openssl_ex_data_dup (
+ long argl,
+ void *argp
+ ) {
+-#else
++#elif OPENSSL_VERSION_NUMBER < 0x30000000L
+ int
+ __pkcs11h_openssl_ex_data_dup (
+ CRYPTO_EX_DATA *to,
+ const CRYPTO_EX_DATA *from,
+ void *from_d,
++ int idx,
++ long argl,
++ void *argp
++) {
++#else
++int
++__pkcs11h_openssl_ex_data_dup (
++ CRYPTO_EX_DATA *to,
++ const CRYPTO_EX_DATA *from,
++ void **from_d,
+ int idx,
+ long argl,
+ void *argp