You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2023/12/14 10:35:44 UTC

(tomcat) branch 9.0.x updated (29323ed485 -> c73e6335f3)

This is an automated email from the ASF dual-hosted git repository.

remm pushed a change to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


    from 29323ed485 Improve verify-release
     new 4e9d600d38 Sync OpenSSL jextract
     new c73e6335f3 Sync cleanups

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../util/net/openssl/panama/OpenSSLContext.java    |  54 +-
 .../util/net/openssl/panama/OpenSSLEngine.java     | 166 +++--
 .../openssl/SSL_CTX_set_alpn_select_cb$cb.java     |  13 +-
 .../SSL_CTX_set_cert_verify_callback$cb.java       |  13 +-
 .../openssl/SSL_CTX_set_default_passwd_cb$cb.java  |  21 +-
 .../openssl/SSL_CTX_set_tmp_dh_callback$dh.java    |  14 +-
 .../util/openssl/SSL_CTX_set_verify$callback.java  |  11 +-
 .../util/openssl/SSL_set_info_callback$cb.java     |  13 +-
 .../util/openssl/SSL_set_verify$callback.java      |  11 +-
 .../org/apache/tomcat/util/openssl/openssl_h.java  | 781 ++++++++++++++++-----
 .../tomcat/util/openssl/openssl_h_Macros.java      | 293 --------
 11 files changed, 764 insertions(+), 626 deletions(-)


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


(tomcat) 01/02: Sync OpenSSL jextract

Posted by re...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

remm pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 4e9d600d38f1f59826aeb0edaba299be1109f9ad
Author: remm <re...@apache.org>
AuthorDate: Thu Dec 14 11:11:07 2023 +0100

    Sync OpenSSL jextract
---
 .../openssl/SSL_CTX_set_alpn_select_cb$cb.java     |  13 +-
 .../SSL_CTX_set_cert_verify_callback$cb.java       |  13 +-
 .../openssl/SSL_CTX_set_default_passwd_cb$cb.java  |  21 +-
 .../openssl/SSL_CTX_set_tmp_dh_callback$dh.java    |  14 +-
 .../util/openssl/SSL_CTX_set_verify$callback.java  |  11 +-
 .../util/openssl/SSL_set_info_callback$cb.java     |  13 +-
 .../util/openssl/SSL_set_verify$callback.java      |  11 +-
 .../org/apache/tomcat/util/openssl/openssl_h.java  | 781 ++++++++++++++++-----
 .../tomcat/util/openssl/openssl_h_Macros.java      | 293 --------
 9 files changed, 657 insertions(+), 513 deletions(-)

diff --git a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_alpn_select_cb$cb.java b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_alpn_select_cb$cb.java
index 1ace09bee7..b871ecf568 100644
--- a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_alpn_select_cb$cb.java
+++ b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_alpn_select_cb$cb.java
@@ -19,9 +19,11 @@
 
 package org.apache.tomcat.util.openssl;
 
+import java.lang.foreign.Arena;
+import java.lang.foreign.FunctionDescriptor;
+import java.lang.foreign.Linker;
+import java.lang.foreign.MemorySegment;
 import java.lang.invoke.MethodHandle;
-import java.lang.foreign.*;
-import static java.lang.foreign.ValueLayout.*;
 
 /**
  * {@snippet lang = c
@@ -30,8 +32,8 @@ import static java.lang.foreign.ValueLayout.*;
  */
 public interface SSL_CTX_set_alpn_select_cb$cb {
 
-    FunctionDescriptor $DESC = FunctionDescriptor.of(JAVA_INT, openssl_h.C_POINTER, openssl_h.C_POINTER,
-            openssl_h.C_POINTER, openssl_h.C_POINTER, JAVA_INT, openssl_h.C_POINTER);
+    FunctionDescriptor $DESC = FunctionDescriptor.of(openssl_h.C_INT, openssl_h.C_POINTER, openssl_h.C_POINTER,
+            openssl_h.C_POINTER, openssl_h.C_POINTER, openssl_h.C_INT, openssl_h.C_POINTER);
 
     int apply(MemorySegment _x0, MemorySegment _x1, MemorySegment _x2, MemorySegment _x3, int _x4, MemorySegment _x5);
 
@@ -54,4 +56,5 @@ public interface SSL_CTX_set_alpn_select_cb$cb {
             }
         };
     }
-}
\ No newline at end of file
+}
+
diff --git a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_cert_verify_callback$cb.java b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_cert_verify_callback$cb.java
index 40f20e3c34..9c5d69e264 100644
--- a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_cert_verify_callback$cb.java
+++ b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_cert_verify_callback$cb.java
@@ -19,17 +19,19 @@
 
 package org.apache.tomcat.util.openssl;
 
+import java.lang.foreign.Arena;
+import java.lang.foreign.FunctionDescriptor;
+import java.lang.foreign.Linker;
+import java.lang.foreign.MemorySegment;
 import java.lang.invoke.MethodHandle;
-import java.lang.foreign.*;
-import static java.lang.foreign.ValueLayout.*;
 
 /**
- * {@snippet lang = c : * int (*SSL_CTX_set_cert_verify_callback$cb)(struct x509_store_ctx_st*,void*);
+ * {@snippet lang = c : * int (*SSL_CTX_set_cert_verify_callback$cb)(X509_STORE_CTX*,void*);
  * }
  */
 public interface SSL_CTX_set_cert_verify_callback$cb {
 
-    FunctionDescriptor $DESC = FunctionDescriptor.of(JAVA_INT, openssl_h.C_POINTER, openssl_h.C_POINTER);
+    FunctionDescriptor $DESC = FunctionDescriptor.of(openssl_h.C_INT, openssl_h.C_POINTER, openssl_h.C_POINTER);
 
     int apply(MemorySegment _x0, MemorySegment _x1);
 
@@ -51,4 +53,5 @@ public interface SSL_CTX_set_cert_verify_callback$cb {
             }
         };
     }
-}
\ No newline at end of file
+}
+
diff --git a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_default_passwd_cb$cb.java b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_default_passwd_cb$cb.java
index 2d12398c98..c286929484 100644
--- a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_default_passwd_cb$cb.java
+++ b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_default_passwd_cb$cb.java
@@ -19,20 +19,22 @@
 
 package org.apache.tomcat.util.openssl;
 
+import java.lang.foreign.Arena;
+import java.lang.foreign.FunctionDescriptor;
+import java.lang.foreign.Linker;
+import java.lang.foreign.MemorySegment;
 import java.lang.invoke.MethodHandle;
-import java.lang.foreign.*;
-import static java.lang.foreign.ValueLayout.*;
 
 /**
- * {@snippet lang = c : * int (*SSL_CTX_set_default_passwd_cb$cb)(char*,int,int,void*);
+ * {@snippet lang = c : * int (*SSL_CTX_set_default_passwd_cb$cb)(char* buf,int size,int rwflag,void* userdata);
  * }
  */
 public interface SSL_CTX_set_default_passwd_cb$cb {
 
-    FunctionDescriptor $DESC = FunctionDescriptor.of(JAVA_INT, openssl_h.C_POINTER, JAVA_INT, JAVA_INT,
-            openssl_h.C_POINTER);
+    FunctionDescriptor $DESC = FunctionDescriptor.of(openssl_h.C_INT, openssl_h.C_POINTER, openssl_h.C_INT,
+            openssl_h.C_INT, openssl_h.C_POINTER);
 
-    int apply(MemorySegment _x0, int _x1, int _x2, MemorySegment _x3);
+    int apply(MemorySegment buf, int size, int rwflag, MemorySegment userdata);
 
     MethodHandle UP$MH = openssl_h.upcallHandle(SSL_CTX_set_default_passwd_cb$cb.class, "apply", $DESC);
 
@@ -44,12 +46,13 @@ public interface SSL_CTX_set_default_passwd_cb$cb {
 
     static SSL_CTX_set_default_passwd_cb$cb ofAddress(MemorySegment addr, Arena arena) {
         MemorySegment symbol = addr.reinterpret(arena, null);
-        return (MemorySegment __x0, int __x1, int __x2, MemorySegment __x3) -> {
+        return (MemorySegment _buf, int _size, int _rwflag, MemorySegment _userdata) -> {
             try {
-                return (int) DOWN$MH.invokeExact(symbol, __x0, __x1, __x2, __x3);
+                return (int) DOWN$MH.invokeExact(symbol, _buf, _size, _rwflag, _userdata);
             } catch (Throwable ex$) {
                 throw new AssertionError("should not reach here", ex$);
             }
         };
     }
-}
\ No newline at end of file
+}
+
diff --git a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_tmp_dh_callback$dh.java b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_tmp_dh_callback$dh.java
index 3062227589..35b116c817 100644
--- a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_tmp_dh_callback$dh.java
+++ b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_tmp_dh_callback$dh.java
@@ -19,17 +19,20 @@
 
 package org.apache.tomcat.util.openssl;
 
+import java.lang.foreign.Arena;
+import java.lang.foreign.FunctionDescriptor;
+import java.lang.foreign.Linker;
+import java.lang.foreign.MemorySegment;
 import java.lang.invoke.MethodHandle;
-import java.lang.foreign.*;
-import static java.lang.foreign.ValueLayout.*;
 
 /**
- * {@snippet lang = c : * struct dh_st* (*SSL_CTX_set_tmp_dh_callback$dh)(struct ssl_st*,int,int);
+ * {@snippet lang = c : * DH* (*SSL_CTX_set_tmp_dh_callback$dh)(SSL*,int,int);
  * }
  */
 public interface SSL_CTX_set_tmp_dh_callback$dh {
 
-    FunctionDescriptor $DESC = FunctionDescriptor.of(openssl_h.C_POINTER, openssl_h.C_POINTER, JAVA_INT, JAVA_INT);
+    FunctionDescriptor $DESC = FunctionDescriptor.of(openssl_h.C_POINTER, openssl_h.C_POINTER, openssl_h.C_INT,
+            openssl_h.C_INT);
 
     MemorySegment apply(MemorySegment _x0, int _x1, int _x2);
 
@@ -51,4 +54,5 @@ public interface SSL_CTX_set_tmp_dh_callback$dh {
             }
         };
     }
-}
\ No newline at end of file
+}
+
diff --git a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_verify$callback.java b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_verify$callback.java
index cffcc12233..cf44ca8da7 100644
--- a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_verify$callback.java
+++ b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_verify$callback.java
@@ -19,9 +19,11 @@
 
 package org.apache.tomcat.util.openssl;
 
+import java.lang.foreign.Arena;
+import java.lang.foreign.FunctionDescriptor;
+import java.lang.foreign.Linker;
+import java.lang.foreign.MemorySegment;
 import java.lang.invoke.MethodHandle;
-import java.lang.foreign.*;
-import static java.lang.foreign.ValueLayout.*;
 
 /**
  * {@snippet lang = c : * int (*SSL_CTX_set_verify$callback)(int,struct x509_store_ctx_st*);
@@ -29,7 +31,7 @@ import static java.lang.foreign.ValueLayout.*;
  */
 public interface SSL_CTX_set_verify$callback {
 
-    FunctionDescriptor $DESC = FunctionDescriptor.of(JAVA_INT, JAVA_INT, openssl_h.C_POINTER);
+    FunctionDescriptor $DESC = FunctionDescriptor.of(openssl_h.C_INT, openssl_h.C_INT, openssl_h.C_POINTER);
 
     int apply(int _x0, MemorySegment _x1);
 
@@ -51,4 +53,5 @@ public interface SSL_CTX_set_verify$callback {
             }
         };
     }
-}
\ No newline at end of file
+}
+
diff --git a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_set_info_callback$cb.java b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_set_info_callback$cb.java
index d746b82e5c..e23ccd2d7e 100644
--- a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_set_info_callback$cb.java
+++ b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_set_info_callback$cb.java
@@ -19,17 +19,19 @@
 
 package org.apache.tomcat.util.openssl;
 
+import java.lang.foreign.Arena;
+import java.lang.foreign.FunctionDescriptor;
+import java.lang.foreign.Linker;
+import java.lang.foreign.MemorySegment;
 import java.lang.invoke.MethodHandle;
-import java.lang.foreign.*;
-import static java.lang.foreign.ValueLayout.*;
 
 /**
- * {@snippet lang = c : * void (*SSL_set_info_callback$cb)(struct ssl_st*,int,int);
+ * {@snippet lang = c : * void (*SSL_set_info_callback$cb)(SSL*,int,int);
  * }
  */
 public interface SSL_set_info_callback$cb {
 
-    FunctionDescriptor $DESC = FunctionDescriptor.ofVoid(openssl_h.C_POINTER, JAVA_INT, JAVA_INT);
+    FunctionDescriptor $DESC = FunctionDescriptor.ofVoid(openssl_h.C_POINTER, openssl_h.C_INT, openssl_h.C_INT);
 
     void apply(MemorySegment _x0, int _x1, int _x2);
 
@@ -51,4 +53,5 @@ public interface SSL_set_info_callback$cb {
             }
         };
     }
-}
\ No newline at end of file
+}
+
diff --git a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_set_verify$callback.java b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_set_verify$callback.java
index a5bd44c14a..f750562e71 100644
--- a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_set_verify$callback.java
+++ b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_set_verify$callback.java
@@ -19,9 +19,11 @@
 
 package org.apache.tomcat.util.openssl;
 
+import java.lang.foreign.Arena;
+import java.lang.foreign.FunctionDescriptor;
+import java.lang.foreign.Linker;
+import java.lang.foreign.MemorySegment;
 import java.lang.invoke.MethodHandle;
-import java.lang.foreign.*;
-import static java.lang.foreign.ValueLayout.*;
 
 /**
  * {@snippet lang = c : * int (*SSL_set_verify$callback)(int,struct x509_store_ctx_st*);
@@ -29,7 +31,7 @@ import static java.lang.foreign.ValueLayout.*;
  */
 public interface SSL_set_verify$callback {
 
-    FunctionDescriptor $DESC = FunctionDescriptor.of(JAVA_INT, JAVA_INT, openssl_h.C_POINTER);
+    FunctionDescriptor $DESC = FunctionDescriptor.of(openssl_h.C_INT, openssl_h.C_INT, openssl_h.C_POINTER);
 
     int apply(int _x0, MemorySegment _x1);
 
@@ -51,4 +53,5 @@ public interface SSL_set_verify$callback {
             }
         };
     }
-}
\ No newline at end of file
+}
+
diff --git a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/openssl_h.java b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/openssl_h.java
index cec6621950..fef9a1d9dc 100644
--- a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/openssl_h.java
+++ b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/openssl_h.java
@@ -36,16 +36,16 @@ public class openssl_h  {
     Linker linker = Linker.nativeLinker();
     SYMBOL_LOOKUP = name -> loaderLookup.find(name).or(() -> linker.defaultLookup().find(name));
     }
-    public static final OfBoolean C_BOOL = JAVA_BOOLEAN;
-    public static final OfByte C_CHAR = JAVA_BYTE;
-    public static final OfShort C_SHORT = JAVA_SHORT;
-    public static final OfInt C_INT = JAVA_INT;
-    public static final OfLong C_LONG = JAVA_LONG;
-    public static final OfLong C_LONG_LONG = JAVA_LONG;
-    public static final OfFloat C_FLOAT = JAVA_FLOAT;
-    public static final OfDouble C_DOUBLE = JAVA_DOUBLE;
+    public static final ValueLayout.OfBoolean C_BOOL = ValueLayout.JAVA_BOOLEAN;
+    public static final ValueLayout.OfByte C_CHAR = ValueLayout.JAVA_BYTE;
+    public static final ValueLayout.OfShort C_SHORT = ValueLayout.JAVA_SHORT;
+    public static final ValueLayout.OfInt C_INT = ValueLayout.JAVA_INT;
+    public static final ValueLayout.OfLong C_LONG_LONG = ValueLayout.JAVA_LONG;
+    public static final ValueLayout.OfFloat C_FLOAT = ValueLayout.JAVA_FLOAT;
+    public static final ValueLayout.OfDouble C_DOUBLE = ValueLayout.JAVA_DOUBLE;
     public static final AddressLayout C_POINTER = ValueLayout.ADDRESS
             .withTargetLayout(MemoryLayout.sequenceLayout(java.lang.Long.MAX_VALUE, JAVA_BYTE));
+    public static final ValueLayout.OfLong C_LONG = ValueLayout.JAVA_LONG;
     private static final int BIO_CLOSE = (int)1L;
     
     /**
@@ -798,13 +798,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int OPENSSL_sk_num(const OPENSSL_STACK*);
+     * int OPENSSL_sk_num(OPENSSL_STACK*);
      * }
      */
     public static MethodHandle OPENSSL_sk_num$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -825,7 +825,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * void* OPENSSL_sk_value(const OPENSSL_STACK*, int);
+     * void* OPENSSL_sk_value(OPENSSL_STACK*, int);
      * }
      */
     public static MethodHandle OPENSSL_sk_value$MH() {
@@ -833,7 +833,7 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -859,7 +859,7 @@ public class openssl_h  {
     public static MethodHandle OpenSSL_version_num$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG        );
+                openssl_h.C_LONG        );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OpenSSL_version_num"),
@@ -885,7 +885,7 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -913,7 +913,7 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -933,13 +933,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * size_t BIO_ctrl_pending(BIO* b);
+     * unsigned long BIO_ctrl_pending(BIO* b);
      * }
      */
     public static MethodHandle BIO_ctrl_pending$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
     
@@ -960,7 +960,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * const BIO_METHOD* BIO_s_file();
+     * BIO_METHOD* BIO_s_file();
      * }
      */
     public static MethodHandle BIO_s_file$MH() {
@@ -1013,7 +1013,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * BIO* BIO_new(const BIO_METHOD* type);
+     * BIO* BIO_new(BIO_METHOD* type);
      * }
      */
     public static MethodHandle BIO_new$MH() {
@@ -1046,7 +1046,7 @@ public class openssl_h  {
     public static MethodHandle BIO_free$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -1073,10 +1073,10 @@ public class openssl_h  {
     public static MethodHandle BIO_read$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -1102,10 +1102,10 @@ public class openssl_h  {
     public static MethodHandle BIO_write$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -1131,10 +1131,10 @@ public class openssl_h  {
     public static MethodHandle BIO_ctrl$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER,
-                JAVA_INT,
-                JAVA_LONG,
+                openssl_h.C_INT,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
     
@@ -1155,7 +1155,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * const BIO_METHOD* BIO_s_mem();
+     * BIO_METHOD* BIO_s_mem();
      * }
      */
     public static MethodHandle BIO_s_mem$MH() {
@@ -1180,7 +1180,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * const BIO_METHOD* BIO_s_bio();
+     * BIO_METHOD* BIO_s_bio();
      * }
      */
     public static MethodHandle BIO_s_bio$MH() {
@@ -1205,17 +1205,17 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int BIO_new_bio_pair(BIO** bio1, size_t writebuf1, BIO** bio2, size_t writebuf2);
+     * int BIO_new_bio_pair(BIO** bio1, unsigned long writebuf1, BIO** bio2, unsigned long writebuf2);
      * }
      */
     public static MethodHandle BIO_new_bio_pair$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER,
-                JAVA_LONG
+                openssl_h.C_LONG
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -1266,9 +1266,9 @@ public class openssl_h  {
     public static MethodHandle BN_set_word$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
-                JAVA_LONG
+                openssl_h.C_LONG
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -1504,13 +1504,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int ASN1_STRING_length(const ASN1_STRING* x);
+     * int ASN1_STRING_length(ASN1_STRING* x);
      * }
      */
     public static MethodHandle ASN1_STRING_length$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -1531,7 +1531,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * unsigned char* ASN1_STRING_get0_data(const ASN1_STRING* x);
+     * unsigned char* ASN1_STRING_get0_data(ASN1_STRING* x);
      * }
      */
     public static MethodHandle ASN1_STRING_get0_data$MH() {
@@ -1558,7 +1558,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * const OSSL_PROVIDER* EVP_MD_get0_provider(const EVP_MD* md);
+     * OSSL_PROVIDER* EVP_MD_get0_provider(EVP_MD* md);
      * }
      */
     public static MethodHandle EVP_MD_get0_provider$MH() {
@@ -1640,13 +1640,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int EVP_PKEY_get_base_id(const EVP_PKEY* pkey);
+     * int EVP_PKEY_get_base_id(EVP_PKEY* pkey);
      * }
      */
     public static MethodHandle EVP_PKEY_get_base_id$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -1667,13 +1667,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int EVP_PKEY_get_bits(const EVP_PKEY* pkey);
+     * int EVP_PKEY_get_bits(EVP_PKEY* pkey);
      * }
      */
     public static MethodHandle EVP_PKEY_get_bits$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -1746,13 +1746,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int EC_GROUP_get_curve_name(const EC_GROUP* group);
+     * int EC_GROUP_get_curve_name(EC_GROUP* group);
      * }
      */
     public static MethodHandle EC_GROUP_get_curve_name$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -1782,7 +1782,7 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_LONG
+                openssl_h.C_LONG
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -1809,7 +1809,7 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -1912,7 +1912,7 @@ public class openssl_h  {
     public static MethodHandle DH_set0_pqg$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
@@ -1942,9 +1942,9 @@ public class openssl_h  {
     public static MethodHandle X509_STORE_set_flags$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
-                JAVA_LONG
+                openssl_h.C_LONG
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -1964,7 +1964,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * struct stack_st_X509* X509_STORE_CTX_get0_untrusted(const X509_STORE_CTX* ctx);
+     * struct stack_st_X509* X509_STORE_CTX_get0_untrusted(X509_STORE_CTX* ctx);
      * }
      */
     public static MethodHandle X509_STORE_CTX_get0_untrusted$MH() {
@@ -2075,11 +2075,11 @@ public class openssl_h  {
     public static MethodHandle X509_LOOKUP_ctrl$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
     
@@ -2100,7 +2100,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * void* X509_STORE_CTX_get_ex_data(const X509_STORE_CTX* ctx, int idx);
+     * void* X509_STORE_CTX_get_ex_data(X509_STORE_CTX* ctx, int idx);
      * }
      */
     public static MethodHandle X509_STORE_CTX_get_ex_data$MH() {
@@ -2108,7 +2108,7 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -2128,13 +2128,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int X509_STORE_CTX_get_error(const X509_STORE_CTX* ctx);
+     * int X509_STORE_CTX_get_error(X509_STORE_CTX* ctx);
      * }
      */
     public static MethodHandle X509_STORE_CTX_get_error$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -2162,7 +2162,7 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -2182,13 +2182,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int X509_STORE_CTX_get_error_depth(const X509_STORE_CTX* ctx);
+     * int X509_STORE_CTX_get_error_depth(X509_STORE_CTX* ctx);
      * }
      */
     public static MethodHandle X509_STORE_CTX_get_error_depth$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -2209,7 +2209,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * X509* X509_STORE_CTX_get_current_cert(const X509_STORE_CTX* ctx);
+     * X509* X509_STORE_CTX_get_current_cert(X509_STORE_CTX* ctx);
      * }
      */
     public static MethodHandle X509_STORE_CTX_get_current_cert$MH() {
@@ -2236,7 +2236,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * X509* X509_STORE_CTX_get0_current_issuer(const X509_STORE_CTX* ctx);
+     * X509* X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX* ctx);
      * }
      */
     public static MethodHandle X509_STORE_CTX_get0_current_issuer$MH() {
@@ -2291,16 +2291,99 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int X509_get_ext_by_NID(const X509* x, int nid, int lastpos);
+     * void X509_free(X509* a);
+     * }
+     */
+    public static MethodHandle X509_free$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
+                openssl_h.C_POINTER
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("X509_free"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static void X509_free(MemorySegment a) {
+        var mh$ = X509_free$MH();
+        try {
+            mh$.invokeExact(a);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
+    /**
+     * {@snippet lang=c :
+     * X509* d2i_X509(X509* a, unsigned char** in, long len);
+     * }
+     */
+    public static MethodHandle d2i_X509$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.of(
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_LONG
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("d2i_X509"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static MemorySegment d2i_X509(MemorySegment a, MemorySegment in, long len) {
+        var mh$ = d2i_X509$MH();
+        try {
+            return (MemorySegment) mh$.invokeExact(a, in, len);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
+    /**
+     * {@snippet lang=c :
+     * int i2d_X509(X509* a, unsigned char** out);
+     * }
+     */
+    public static MethodHandle i2d_X509$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.of(
+                openssl_h.C_INT,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("i2d_X509"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static int i2d_X509(MemorySegment a, MemorySegment out) {
+        var mh$ = i2d_X509$MH();
+        try {
+            return (int) mh$.invokeExact(a, out);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
+    /**
+     * {@snippet lang=c :
+     * int X509_get_ext_by_NID(X509* x, int nid, int lastpos);
      * }
      */
     public static MethodHandle X509_get_ext_by_NID$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
-                JAVA_INT,
-                JAVA_INT
+                openssl_h.C_INT,
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -2320,7 +2403,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * X509_EXTENSION* X509_get_ext(const X509* x, int loc);
+     * X509_EXTENSION* X509_get_ext(X509* x, int loc);
      * }
      */
     public static MethodHandle X509_get_ext$MH() {
@@ -2328,7 +2411,7 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -2405,6 +2488,126 @@ public class openssl_h  {
            throw new AssertionError("should not reach here", ex$);
         }
     }
+    /**
+     * {@snippet lang=c :
+     * X509* PEM_read_bio_X509_AUX(BIO* out, X509** x, pem_password_cb* cb, void* u);
+     * }
+     */
+    public static MethodHandle PEM_read_bio_X509_AUX$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.of(
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("PEM_read_bio_X509_AUX"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static MemorySegment PEM_read_bio_X509_AUX(MemorySegment out, MemorySegment x, MemorySegment cb, MemorySegment u) {
+        var mh$ = PEM_read_bio_X509_AUX$MH();
+        try {
+            return (MemorySegment) mh$.invokeExact(out, x, cb, u);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
+    /**
+     * {@snippet lang=c :
+     * EC_GROUP* PEM_read_bio_ECPKParameters(BIO* out, EC_GROUP** x, pem_password_cb* cb, void* u);
+     * }
+     */
+    public static MethodHandle PEM_read_bio_ECPKParameters$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.of(
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("PEM_read_bio_ECPKParameters"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static MemorySegment PEM_read_bio_ECPKParameters(MemorySegment out, MemorySegment x, MemorySegment cb, MemorySegment u) {
+        var mh$ = PEM_read_bio_ECPKParameters$MH();
+        try {
+            return (MemorySegment) mh$.invokeExact(out, x, cb, u);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
+    /**
+     * {@snippet lang=c :
+     * DH* PEM_read_bio_DHparams(BIO* out, DH** x, pem_password_cb* cb, void* u);
+     * }
+     */
+    public static MethodHandle PEM_read_bio_DHparams$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.of(
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("PEM_read_bio_DHparams"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static MemorySegment PEM_read_bio_DHparams(MemorySegment out, MemorySegment x, MemorySegment cb, MemorySegment u) {
+        var mh$ = PEM_read_bio_DHparams$MH();
+        try {
+            return (MemorySegment) mh$.invokeExact(out, x, cb, u);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
+    /**
+     * {@snippet lang=c :
+     * EVP_PKEY* PEM_read_bio_PrivateKey(BIO* out, EVP_PKEY** x, pem_password_cb* cb, void* u);
+     * }
+     */
+    public static MethodHandle PEM_read_bio_PrivateKey$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.of(
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("PEM_read_bio_PrivateKey"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static MemorySegment PEM_read_bio_PrivateKey(MemorySegment out, MemorySegment x, MemorySegment cb, MemorySegment u) {
+        var mh$ = PEM_read_bio_PrivateKey$MH();
+        try {
+            return (MemorySegment) mh$.invokeExact(out, x, cb, u);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
     /**
      * {@snippet lang=c :
      * EVP_PKEY* PEM_read_bio_Parameters(BIO* bp, EVP_PKEY** x);
@@ -2435,13 +2638,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * uint64_t SSL_CTX_get_options(const SSL_CTX* ctx);
+     * unsigned long SSL_CTX_get_options(SSL_CTX* ctx);
      * }
      */
     public static MethodHandle SSL_CTX_get_options$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
     
@@ -2462,13 +2665,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * uint64_t SSL_get_options(const SSL* s);
+     * unsigned long SSL_get_options(SSL* s);
      * }
      */
     public static MethodHandle SSL_get_options$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
     
@@ -2489,15 +2692,15 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * uint64_t SSL_CTX_clear_options(SSL_CTX* ctx, uint64_t op);
+     * unsigned long SSL_CTX_clear_options(SSL_CTX* ctx, unsigned long op);
      * }
      */
     public static MethodHandle SSL_CTX_clear_options$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER,
-                JAVA_LONG
+                openssl_h.C_LONG
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -2517,15 +2720,15 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * uint64_t SSL_CTX_set_options(SSL_CTX* ctx, uint64_t op);
+     * unsigned long SSL_CTX_set_options(SSL_CTX* ctx, unsigned long op);
      * }
      */
     public static MethodHandle SSL_CTX_set_options$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER,
-                JAVA_LONG
+                openssl_h.C_LONG
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -2545,15 +2748,15 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * uint64_t SSL_set_options(SSL* s, uint64_t op);
+     * unsigned long SSL_set_options(SSL* s, unsigned long op);
      * }
      */
     public static MethodHandle SSL_set_options$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER,
-                JAVA_LONG
+                openssl_h.C_LONG
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -2573,7 +2776,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * void SSL_CTX_set_alpn_select_cb(SSL_CTX* ctx, SSL_CTX_alpn_select_cb_func cb, void* arg);
+     * void SSL_CTX_set_alpn_select_cb(SSL_CTX* ctx, int (*cb)(struct ssl_st*,unsigned char**,unsigned char*,unsigned char*,unsigned int,void*), void* arg);
      * }
      */
     public static MethodHandle SSL_CTX_set_alpn_select_cb$MH() {
@@ -2601,7 +2804,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * void SSL_get0_alpn_selected(const SSL* ssl, unsigned char** data, unsigned int* len);
+     * void SSL_get0_alpn_selected(SSL* ssl, unsigned char** data, unsigned int* len);
      * }
      */
     public static MethodHandle SSL_get0_alpn_selected$MH() {
@@ -2629,13 +2832,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int SSL_in_init(const SSL* s);
+     * int SSL_in_init(SSL* s);
      * }
      */
     public static MethodHandle SSL_in_init$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -2662,7 +2865,7 @@ public class openssl_h  {
     public static MethodHandle SSL_CTX_set0_tmp_dh_pkey$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
@@ -2690,7 +2893,7 @@ public class openssl_h  {
     public static MethodHandle SSL_CTX_set_cipher_list$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
@@ -2712,7 +2915,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * SSL_CTX* SSL_CTX_new(const SSL_METHOD* meth);
+     * SSL_CTX* SSL_CTX_new(SSL_METHOD* meth);
      * }
      */
     public static MethodHandle SSL_CTX_new$MH() {
@@ -2771,9 +2974,9 @@ public class openssl_h  {
     public static MethodHandle SSL_CTX_set_timeout$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER,
-                JAVA_LONG
+                openssl_h.C_LONG
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -2793,13 +2996,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * long SSL_CTX_get_timeout(const SSL_CTX* ctx);
+     * long SSL_CTX_get_timeout(SSL_CTX* ctx);
      * }
      */
     public static MethodHandle SSL_CTX_get_timeout$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
     
@@ -2820,7 +3023,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * X509_STORE* SSL_CTX_get_cert_store(const SSL_CTX*);
+     * X509_STORE* SSL_CTX_get_cert_store(SSL_CTX*);
      * }
      */
     public static MethodHandle SSL_CTX_get_cert_store$MH() {
@@ -2847,7 +3050,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * const SSL_CIPHER* SSL_get_current_cipher(const SSL* s);
+     * SSL_CIPHER* SSL_get_current_cipher(SSL* s);
      * }
      */
     public static MethodHandle SSL_get_current_cipher$MH() {
@@ -2874,7 +3077,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * char* SSL_CIPHER_get_name(const SSL_CIPHER* c);
+     * char* SSL_CIPHER_get_name(SSL_CIPHER* c);
      * }
      */
     public static MethodHandle SSL_CIPHER_get_name$MH() {
@@ -2901,13 +3104,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int SSL_CIPHER_get_kx_nid(const SSL_CIPHER* c);
+     * int SSL_CIPHER_get_kx_nid(SSL_CIPHER* c);
      * }
      */
     public static MethodHandle SSL_CIPHER_get_kx_nid$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -2928,13 +3131,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int SSL_CIPHER_get_auth_nid(const SSL_CIPHER* c);
+     * int SSL_CIPHER_get_auth_nid(SSL_CIPHER* c);
      * }
      */
     public static MethodHandle SSL_CIPHER_get_auth_nid$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -2955,13 +3158,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int SSL_pending(const SSL* s);
+     * int SSL_pending(SSL* s);
      * }
      */
     public static MethodHandle SSL_pending$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -3016,7 +3219,7 @@ public class openssl_h  {
     public static MethodHandle SSL_set_cipher_list$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
@@ -3044,7 +3247,7 @@ public class openssl_h  {
     public static MethodHandle SSL_CTX_set_ciphersuites$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
@@ -3066,14 +3269,14 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * void SSL_set_verify(SSL* s, int mode, SSL_verify_cb callback);
+     * void SSL_set_verify(SSL* s, int mode, int (*callback)(int,struct x509_store_ctx_st*));
      * }
      */
     public static MethodHandle SSL_set_verify$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER,
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -3100,7 +3303,7 @@ public class openssl_h  {
     public static MethodHandle SSL_CTX_use_certificate_chain_file$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
@@ -3155,7 +3358,7 @@ public class openssl_h  {
     public static MethodHandle SSL_add_file_cert_subjects_to_stack$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
@@ -3177,13 +3380,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * long SSL_SESSION_get_time(const SSL_SESSION* s);
+     * long SSL_SESSION_get_time(SSL_SESSION* s);
      * }
      */
     public static MethodHandle SSL_SESSION_get_time$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
     
@@ -3204,7 +3407,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * unsigned char* SSL_SESSION_get_id(const SSL_SESSION* s, unsigned int* len);
+     * unsigned char* SSL_SESSION_get_id(SSL_SESSION* s, unsigned int* len);
      * }
      */
     public static MethodHandle SSL_SESSION_get_id$MH() {
@@ -3232,7 +3435,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * X509* SSL_get1_peer_certificate(const SSL* s);
+     * X509* SSL_get1_peer_certificate(SSL* s);
      * }
      */
     public static MethodHandle SSL_get1_peer_certificate$MH() {
@@ -3259,7 +3462,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * struct stack_st_X509* SSL_get_peer_cert_chain(const SSL* s);
+     * struct stack_st_X509* SSL_get_peer_cert_chain(SSL* s);
      * }
      */
     public static MethodHandle SSL_get_peer_cert_chain$MH() {
@@ -3286,14 +3489,14 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * void SSL_CTX_set_verify(SSL_CTX* ctx, int mode, SSL_verify_cb callback);
+     * void SSL_CTX_set_verify(SSL_CTX* ctx, int mode, int (*callback)(int,struct x509_store_ctx_st*));
      * }
      */
     public static MethodHandle SSL_CTX_set_verify$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER,
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -3348,7 +3551,7 @@ public class openssl_h  {
     public static MethodHandle SSL_CTX_use_PrivateKey$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
@@ -3376,7 +3579,7 @@ public class openssl_h  {
     public static MethodHandle SSL_CTX_use_certificate$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
@@ -3425,13 +3628,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int SSL_CTX_check_private_key(const SSL_CTX* ctx);
+     * int SSL_CTX_check_private_key(SSL_CTX* ctx);
      * }
      */
     public static MethodHandle SSL_CTX_check_private_key$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -3458,10 +3661,10 @@ public class openssl_h  {
     public static MethodHandle SSL_CTX_set_session_id_context$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -3540,10 +3743,10 @@ public class openssl_h  {
     public static MethodHandle SSL_read$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -3569,10 +3772,10 @@ public class openssl_h  {
     public static MethodHandle SSL_write$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -3598,10 +3801,10 @@ public class openssl_h  {
     public static MethodHandle SSL_CTX_ctrl$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER,
-                JAVA_INT,
-                JAVA_LONG,
+                openssl_h.C_INT,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
     
@@ -3622,7 +3825,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * char* SSL_get_version(const SSL* s);
+     * char* SSL_get_version(SSL* s);
      * }
      */
     public static MethodHandle SSL_get_version$MH() {
@@ -3649,7 +3852,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * const SSL_METHOD* TLS_server_method();
+     * SSL_METHOD* TLS_server_method();
      * }
      */
     public static MethodHandle TLS_server_method$MH() {
@@ -3674,7 +3877,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * struct stack_st_SSL_CIPHER* SSL_get_ciphers(const SSL* s);
+     * struct stack_st_SSL_CIPHER* SSL_get_ciphers(SSL* s);
      * }
      */
     public static MethodHandle SSL_get_ciphers$MH() {
@@ -3701,7 +3904,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * struct stack_st_SSL_CIPHER* SSL_CTX_get_ciphers(const SSL_CTX* ctx);
+     * struct stack_st_SSL_CIPHER* SSL_CTX_get_ciphers(SSL_CTX* ctx);
      * }
      */
     public static MethodHandle SSL_CTX_get_ciphers$MH() {
@@ -3734,7 +3937,7 @@ public class openssl_h  {
     public static MethodHandle SSL_do_handshake$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -3761,7 +3964,7 @@ public class openssl_h  {
     public static MethodHandle SSL_renegotiate$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -3782,13 +3985,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int SSL_renegotiate_pending(const SSL* s);
+     * int SSL_renegotiate_pending(SSL* s);
      * }
      */
     public static MethodHandle SSL_renegotiate_pending$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -3815,7 +4018,7 @@ public class openssl_h  {
     public static MethodHandle SSL_shutdown$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -3842,7 +4045,7 @@ public class openssl_h  {
     public static MethodHandle SSL_verify_client_post_handshake$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -3890,7 +4093,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * struct stack_st_X509_NAME* SSL_CTX_get_client_CA_list(const SSL_CTX* s);
+     * struct stack_st_X509_NAME* SSL_CTX_get_client_CA_list(SSL_CTX* s);
      * }
      */
     public static MethodHandle SSL_CTX_get_client_CA_list$MH() {
@@ -3923,7 +4126,7 @@ public class openssl_h  {
     public static MethodHandle SSL_CTX_add_client_CA$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
@@ -3997,7 +4200,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * struct evp_pkey_st* SSL_get_privatekey(const SSL* ssl);
+     * struct evp_pkey_st* SSL_get_privatekey(SSL* ssl);
      * }
      */
     public static MethodHandle SSL_get_privatekey$MH() {
@@ -4024,13 +4227,13 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int SSL_get_shutdown(const SSL* ssl);
+     * int SSL_get_shutdown(SSL* ssl);
      * }
      */
     public static MethodHandle SSL_get_shutdown$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -4057,7 +4260,7 @@ public class openssl_h  {
     public static MethodHandle SSL_CTX_set_default_verify_paths$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -4084,7 +4287,7 @@ public class openssl_h  {
     public static MethodHandle SSL_CTX_load_verify_locations$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
@@ -4107,7 +4310,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * SSL_SESSION* SSL_get_session(const SSL* ssl);
+     * SSL_SESSION* SSL_get_session(SSL* ssl);
      * }
      */
     public static MethodHandle SSL_get_session$MH() {
@@ -4134,7 +4337,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * void SSL_set_info_callback(SSL* ssl, void (*cb)(const SSL*,int,int));
+     * void SSL_set_info_callback(SSL* ssl, void (*cb)(SSL*,int,int));
      * }
      */
     public static MethodHandle SSL_set_info_callback$MH() {
@@ -4168,7 +4371,7 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER,
-                JAVA_LONG
+                openssl_h.C_LONG
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -4194,7 +4397,7 @@ public class openssl_h  {
     public static MethodHandle SSL_get_ex_data_X509_STORE_CTX_idx$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT        );
+                openssl_h.C_INT        );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_get_ex_data_X509_STORE_CTX_idx"),
@@ -4271,7 +4474,7 @@ public class openssl_h  {
     public static MethodHandle SSL_CONF_CTX_finish$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -4324,9 +4527,9 @@ public class openssl_h  {
     public static MethodHandle SSL_CONF_CTX_set_flags$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -4379,7 +4582,7 @@ public class openssl_h  {
     public static MethodHandle SSL_CONF_cmd$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
@@ -4408,7 +4611,7 @@ public class openssl_h  {
     public static MethodHandle SSL_CONF_cmd_value_type$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
@@ -4430,14 +4633,14 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS* settings);
+     * int OPENSSL_init_ssl(unsigned long opts, OPENSSL_INIT_SETTINGS* settings);
      * }
      */
     public static MethodHandle OPENSSL_init_ssl$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
-                JAVA_LONG,
+                openssl_h.C_INT,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
     
@@ -4464,7 +4667,7 @@ public class openssl_h  {
     public static MethodHandle ERR_get_error$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG        );
+                openssl_h.C_LONG        );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ERR_get_error"),
@@ -4489,7 +4692,7 @@ public class openssl_h  {
     public static MethodHandle ERR_peek_last_error$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_LONG        );
+                openssl_h.C_LONG        );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ERR_peek_last_error"),
@@ -4539,7 +4742,7 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER,
-                JAVA_LONG,
+                openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
     
@@ -4566,10 +4769,10 @@ public class openssl_h  {
     public static MethodHandle PKCS12_verify_mac$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -4587,6 +4790,32 @@ public class openssl_h  {
            throw new AssertionError("should not reach here", ex$);
         }
     }
+    /**
+     * {@snippet lang=c :
+     * void PKCS12_free(PKCS12* a);
+     * }
+     */
+    public static MethodHandle PKCS12_free$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
+                openssl_h.C_POINTER
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("PKCS12_free"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static void PKCS12_free(MemorySegment a) {
+        var mh$ = PKCS12_free$MH();
+        try {
+            mh$.invokeExact(a);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
     /**
      * {@snippet lang=c :
      * int PKCS12_parse(PKCS12* p12, char* pass, EVP_PKEY** pkey, X509** cert, struct stack_st_X509** ca);
@@ -4595,7 +4824,7 @@ public class openssl_h  {
     public static MethodHandle PKCS12_parse$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
@@ -4655,7 +4884,7 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -4681,9 +4910,9 @@ public class openssl_h  {
     public static MethodHandle RAND_load_file$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
-                JAVA_LONG
+                openssl_h.C_LONG
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -4709,7 +4938,7 @@ public class openssl_h  {
     public static MethodHandle X509_check_issued$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
@@ -4764,7 +4993,7 @@ public class openssl_h  {
     public static MethodHandle ENGINE_register_all_complete$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT        );
+                openssl_h.C_INT        );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ENGINE_register_all_complete"),
@@ -4789,11 +5018,11 @@ public class openssl_h  {
     public static MethodHandle ENGINE_ctrl_cmd_string$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -4819,7 +5048,7 @@ public class openssl_h  {
     public static MethodHandle ENGINE_free$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -4876,9 +5105,9 @@ public class openssl_h  {
     public static MethodHandle ENGINE_set_default$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -4898,7 +5127,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * OCSP_CERTID* OCSP_cert_to_id(const EVP_MD* dgst, const X509* subject, const X509* issuer);
+     * OCSP_CERTID* OCSP_cert_to_id(EVP_MD* dgst, X509* subject, X509* issuer);
      * }
      */
     public static MethodHandle OCSP_cert_to_id$MH() {
@@ -4961,7 +5190,7 @@ public class openssl_h  {
     public static MethodHandle OCSP_response_status$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
     
@@ -5017,7 +5246,7 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -5043,10 +5272,10 @@ public class openssl_h  {
     public static MethodHandle OCSP_resp_find$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
-                JAVA_INT
+                openssl_h.C_INT
             );
     
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
@@ -5072,7 +5301,7 @@ public class openssl_h  {
     public static MethodHandle OCSP_single_get0_status$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
-                JAVA_INT,
+                openssl_h.C_INT,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER,
@@ -5097,7 +5326,193 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * char* OSSL_PROVIDER_get0_name(const OSSL_PROVIDER* prov);
+     * void OCSP_BASICRESP_free(OCSP_BASICRESP* a);
+     * }
+     */
+    public static MethodHandle OCSP_BASICRESP_free$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
+                openssl_h.C_POINTER
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("OCSP_BASICRESP_free"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static void OCSP_BASICRESP_free(MemorySegment a) {
+        var mh$ = OCSP_BASICRESP_free$MH();
+        try {
+            mh$.invokeExact(a);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
+    /**
+     * {@snippet lang=c :
+     * void OCSP_RESPONSE_free(OCSP_RESPONSE* a);
+     * }
+     */
+    public static MethodHandle OCSP_RESPONSE_free$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
+                openssl_h.C_POINTER
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("OCSP_RESPONSE_free"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static void OCSP_RESPONSE_free(MemorySegment a) {
+        var mh$ = OCSP_RESPONSE_free$MH();
+        try {
+            mh$.invokeExact(a);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
+    /**
+     * {@snippet lang=c :
+     * OCSP_RESPONSE* d2i_OCSP_RESPONSE(OCSP_RESPONSE* a, unsigned char** in, long len);
+     * }
+     */
+    public static MethodHandle d2i_OCSP_RESPONSE$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.of(
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER,
+                openssl_h.C_LONG
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("d2i_OCSP_RESPONSE"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static MemorySegment d2i_OCSP_RESPONSE(MemorySegment a, MemorySegment in, long len) {
+        var mh$ = d2i_OCSP_RESPONSE$MH();
+        try {
+            return (MemorySegment) mh$.invokeExact(a, in, len);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
+    /**
+     * {@snippet lang=c :
+     * void OCSP_CERTID_free(OCSP_CERTID* a);
+     * }
+     */
+    public static MethodHandle OCSP_CERTID_free$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
+                openssl_h.C_POINTER
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("OCSP_CERTID_free"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static void OCSP_CERTID_free(MemorySegment a) {
+        var mh$ = OCSP_CERTID_free$MH();
+        try {
+            mh$.invokeExact(a);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
+    /**
+     * {@snippet lang=c :
+     * OCSP_REQUEST* OCSP_REQUEST_new();
+     * }
+     */
+    public static MethodHandle OCSP_REQUEST_new$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.of(
+                openssl_h.C_POINTER        );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("OCSP_REQUEST_new"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static MemorySegment OCSP_REQUEST_new() {
+        var mh$ = OCSP_REQUEST_new$MH();
+        try {
+            return (MemorySegment) mh$.invokeExact();
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
+    /**
+     * {@snippet lang=c :
+     * void OCSP_REQUEST_free(OCSP_REQUEST* a);
+     * }
+     */
+    public static MethodHandle OCSP_REQUEST_free$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
+                openssl_h.C_POINTER
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("OCSP_REQUEST_free"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static void OCSP_REQUEST_free(MemorySegment a) {
+        var mh$ = OCSP_REQUEST_free$MH();
+        try {
+            mh$.invokeExact(a);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
+    /**
+     * {@snippet lang=c :
+     * int i2d_OCSP_REQUEST(OCSP_REQUEST* a, unsigned char** out);
+     * }
+     */
+    public static MethodHandle i2d_OCSP_REQUEST$MH() {
+        class Holder {
+            static final FunctionDescriptor DESC = FunctionDescriptor.of(
+                openssl_h.C_INT,
+                openssl_h.C_POINTER,
+                openssl_h.C_POINTER
+            );
+    
+            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
+                    openssl_h.findOrThrow("i2d_OCSP_REQUEST"),
+                    DESC);
+        }
+        return Holder.MH;
+    }
+    
+    public static int i2d_OCSP_REQUEST(MemorySegment a, MemorySegment out) {
+        var mh$ = i2d_OCSP_REQUEST$MH();
+        try {
+            return (int) mh$.invokeExact(a, out);
+        } catch (Throwable ex$) {
+           throw new AssertionError("should not reach here", ex$);
+        }
+    }
+    /**
+     * {@snippet lang=c :
+     * char* OSSL_PROVIDER_get0_name(OSSL_PROVIDER* prov);
      * }
      */
     public static MethodHandle OSSL_PROVIDER_get0_name$MH() {
@@ -5122,11 +5537,11 @@ public class openssl_h  {
            throw new AssertionError("should not reach here", ex$);
         }
     }
-    private static final MemorySegment OPENSSL_FILE = Arena.ofAuto().allocateFrom("/tmp/jextract$17086606898854816972.h");
+    private static final MemorySegment OPENSSL_FILE = Arena.ofAuto().allocateFrom("/tmp/jextract$7266064093665146871.h");;
     
     /**
      * {@snippet lang=c :
-     * #define OPENSSL_FILE "/tmp/jextract$17086606898854816972.h"
+     * #define OPENSSL_FILE "/tmp/jextract$7266064093665146871.h"
      * }
      */
     public static MemorySegment OPENSSL_FILE() {
@@ -5182,7 +5597,7 @@ public class openssl_h  {
     public static int EVP_PKEY_DSA() {
         return EVP_PKEY_DSA;
     }
-    private static final MemorySegment PEM_STRING_ECPARAMETERS = Arena.ofAuto().allocateFrom("EC PARAMETERS");
+    private static final MemorySegment PEM_STRING_ECPARAMETERS = Arena.ofAuto().allocateFrom("EC PARAMETERS");;
     
     /**
      * {@snippet lang=c :
diff --git a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/openssl_h_Macros.java b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/openssl_h_Macros.java
index 2f7c4f33ee..bcef231520 100644
--- a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/openssl_h_Macros.java
+++ b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/openssl_h_Macros.java
@@ -17,18 +17,13 @@
 
 package org.apache.tomcat.util.openssl;
 
-import java.lang.foreign.FunctionDescriptor;
-import java.lang.foreign.Linker;
 import java.lang.foreign.MemorySegment;
-import java.lang.foreign.ValueLayout;
-import java.lang.invoke.MethodHandle;
 
 import static org.apache.tomcat.util.openssl.openssl_h.*;
 
 /**
  * Functional macros not handled by jextract.
  */
-@SuppressWarnings("javadoc")
 public class openssl_h_Macros {
 
 
@@ -283,293 +278,5 @@ public class openssl_h_Macros {
         return X509_LOOKUP_ctrl(x509Lookup, X509_L_FILE_LOAD(), name, X509_FILETYPE_PEM(), MemorySegment.NULL);
     }
 
-    // Other symbols that have questionable visibility from jextract
-
-    /**
-     * {@snippet lang = c : * void X509_free(X509* a);
-     * }
-     */
-    public static void X509_free(MemorySegment a) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(openssl_h.C_POINTER);
-            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(openssl_h.findOrThrow("X509_free"),
-                    DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            mh$.invokeExact(a);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-    /**
-     * {@snippet lang = c : * X509* d2i_X509(X509** a, unsigned char** in, long len);
-     * }
-     */
-    public static MemorySegment d2i_X509(MemorySegment a, MemorySegment in, long len) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.of(openssl_h.C_POINTER, openssl_h.C_POINTER,
-                    openssl_h.C_POINTER, ValueLayout.JAVA_LONG);
-            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(openssl_h.findOrThrow("d2i_X509"),
-                    DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            return (MemorySegment) mh$.invokeExact(a, in, len);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-    /**
-     * {@snippet lang = c : * int i2d_X509(const X509* a, unsigned char** out);
-     * }
-     */
-    public static int i2d_X509(MemorySegment a, MemorySegment out) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.of(ValueLayout.JAVA_INT, openssl_h.C_POINTER,
-                    openssl_h.C_POINTER);
-            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(openssl_h.findOrThrow("i2d_X509"),
-                    DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            return (int) mh$.invokeExact(a, out);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-    /**
-     * {@snippet lang = c : * X509* PEM_read_bio_X509_AUX(BIO* out, X509** x, pem_password_cb* cb, void* u);
-     * }
-     */
-    public static MemorySegment PEM_read_bio_X509_AUX(MemorySegment out, MemorySegment x, MemorySegment cb,
-            MemorySegment u) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.of(openssl_h.C_POINTER, openssl_h.C_POINTER,
-                    openssl_h.C_POINTER, openssl_h.C_POINTER, openssl_h.C_POINTER);
-            static final MethodHandle MH = Linker.nativeLinker()
-                    .downcallHandle(openssl_h.findOrThrow("PEM_read_bio_X509_AUX"), DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            return (MemorySegment) mh$.invokeExact(out, x, cb, u);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-    /**
-     * {@snippet lang = c
-     * : * EC_GROUP* PEM_read_bio_ECPKParameters(BIO* out, EC_GROUP** x, pem_password_cb* cb, void* u);
-     * }
-     */
-    @Deprecated
-    public static MemorySegment PEM_read_bio_ECPKParameters(MemorySegment out, MemorySegment x, MemorySegment cb,
-            MemorySegment u) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.of(openssl_h.C_POINTER, openssl_h.C_POINTER,
-                    openssl_h.C_POINTER, openssl_h.C_POINTER, openssl_h.C_POINTER);
-            static final MethodHandle MH = Linker.nativeLinker()
-                    .downcallHandle(openssl_h.findOrThrow("PEM_read_bio_ECPKParameters"), DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            return (MemorySegment) mh$.invokeExact(out, x, cb, u);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-    /**
-     * {@snippet lang = c : * DH* PEM_read_bio_DHparams(BIO* out, DH** x, pem_password_cb* cb, void* u);
-     * }
-     */
-    @Deprecated
-    public static MemorySegment PEM_read_bio_DHparams(MemorySegment out, MemorySegment x, MemorySegment cb,
-            MemorySegment u) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.of(openssl_h.C_POINTER, openssl_h.C_POINTER,
-                    openssl_h.C_POINTER, openssl_h.C_POINTER, openssl_h.C_POINTER);
-
-            static final MethodHandle MH = Linker.nativeLinker()
-                    .downcallHandle(openssl_h.findOrThrow("PEM_read_bio_DHparams"), DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            return (MemorySegment) mh$.invokeExact(out, x, cb, u);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-    /**
-     * {@snippet lang = c : * EVP_PKEY* PEM_read_bio_PrivateKey(BIO* out, EVP_PKEY** x, pem_password_cb* cb, void* u);
-     * }
-     */
-    public static MemorySegment PEM_read_bio_PrivateKey(MemorySegment out, MemorySegment x, MemorySegment cb,
-            MemorySegment u) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.of(openssl_h.C_POINTER, openssl_h.C_POINTER,
-                    openssl_h.C_POINTER, openssl_h.C_POINTER, openssl_h.C_POINTER);
-            static final MethodHandle MH = Linker.nativeLinker()
-                    .downcallHandle(openssl_h.findOrThrow("PEM_read_bio_PrivateKey"), DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            return (MemorySegment) mh$.invokeExact(out, x, cb, u);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-    /**
-     * {@snippet lang = c : * void PKCS12_free(PKCS12* a);
-     * }
-     */
-    public static void PKCS12_free(MemorySegment a) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(openssl_h.C_POINTER);
-            static final MethodHandle MH = Linker.nativeLinker().downcallHandle(openssl_h.findOrThrow("PKCS12_free"),
-                    DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            mh$.invokeExact(a);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-
-    /**
-     * {@snippet lang = c : * void OCSP_BASICRESP_free(OCSP_BASICRESP* a);
-     * }
-     */
-    public static void OCSP_BASICRESP_free(MemorySegment a) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(openssl_h.C_POINTER);
-            static final MethodHandle MH = Linker.nativeLinker()
-                    .downcallHandle(openssl_h.findOrThrow("OCSP_BASICRESP_free"), DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            mh$.invokeExact(a);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-    /**
-     * {@snippet lang = c : * void OCSP_RESPONSE_free(OCSP_RESPONSE* a);
-     * }
-     */
-    public static void OCSP_RESPONSE_free(MemorySegment a) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(openssl_h.C_POINTER);
-            static final MethodHandle MH = Linker.nativeLinker()
-                    .downcallHandle(openssl_h.findOrThrow("OCSP_RESPONSE_free"), DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            mh$.invokeExact(a);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-    /**
-     * {@snippet lang = c : * OCSP_RESPONSE* d2i_OCSP_RESPONSE(OCSP_RESPONSE** a, unsigned char** in, long len);
-     * }
-     */
-    public static MemorySegment d2i_OCSP_RESPONSE(MemorySegment a, MemorySegment in, long len) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.of(openssl_h.C_POINTER, openssl_h.C_POINTER,
-                    openssl_h.C_POINTER, ValueLayout.JAVA_LONG);
-            static final MethodHandle MH = Linker.nativeLinker()
-                    .downcallHandle(openssl_h.findOrThrow("d2i_OCSP_RESPONSE"), DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            return (MemorySegment) mh$.invokeExact(a, in, len);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-    /**
-     * {@snippet lang = c : * void OCSP_CERTID_free(OCSP_CERTID* a);
-     * }
-     */
-    public static void OCSP_CERTID_free(MemorySegment a) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(openssl_h.C_POINTER);
-            static final MethodHandle MH = Linker.nativeLinker()
-                    .downcallHandle(openssl_h.findOrThrow("OCSP_CERTID_free"), DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            mh$.invokeExact(a);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-    /**
-     * {@snippet lang = c : * OCSP_REQUEST* OCSP_REQUEST_new();
-     * }
-     */
-    public static MemorySegment OCSP_REQUEST_new() {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.of(openssl_h.C_POINTER);
-            static final MethodHandle MH = Linker.nativeLinker()
-                    .downcallHandle(openssl_h.findOrThrow("OCSP_REQUEST_new"), DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            return (MemorySegment) mh$.invokeExact();
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-    /**
-     * {@snippet lang = c : * void OCSP_REQUEST_free(OCSP_REQUEST* a);
-     * }
-     */
-    public static void OCSP_REQUEST_free(MemorySegment a) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(openssl_h.C_POINTER);
-            static final MethodHandle MH = Linker.nativeLinker()
-                    .downcallHandle(openssl_h.findOrThrow("OCSP_REQUEST_free"), DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            mh$.invokeExact(a);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
-
-    /**
-     * {@snippet lang = c : * int i2d_OCSP_REQUEST(const OCSP_REQUEST* a, unsigned char** out);
-     * }
-     */
-    public static int i2d_OCSP_REQUEST(MemorySegment a, MemorySegment out) {
-        class Holder {
-            static final FunctionDescriptor DESC = FunctionDescriptor.of(ValueLayout.JAVA_INT, openssl_h.C_POINTER,
-                    openssl_h.C_POINTER);
-            static final MethodHandle MH = Linker.nativeLinker()
-                    .downcallHandle(openssl_h.findOrThrow("i2d_OCSP_REQUEST"), DESC);
-        }
-        var mh$ = Holder.MH;
-        try {
-            return (int) mh$.invokeExact(a, out);
-        } catch (Throwable ex$) {
-            throw new AssertionError("should not reach here", ex$);
-        }
-    }
 }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


(tomcat) 02/02: Sync cleanups

Posted by re...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

remm pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit c73e6335f39c0d5de73fdd28a69b8699ed109941
Author: remm <re...@apache.org>
AuthorDate: Thu Dec 14 11:13:45 2023 +0100

    Sync cleanups
---
 .../util/net/openssl/panama/OpenSSLContext.java    |  54 +++----
 .../util/net/openssl/panama/OpenSSLEngine.java     | 166 ++++++++++-----------
 2 files changed, 107 insertions(+), 113 deletions(-)

diff --git a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLContext.java b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLContext.java
index ba0c1b2d39..12da6c00c7 100644
--- a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLContext.java
+++ b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLContext.java
@@ -99,6 +99,8 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
     public static final int SSL_PROTOCOL_ALL = (SSL_PROTOCOL_TLSV1 | SSL_PROTOCOL_TLSV1_1 | SSL_PROTOCOL_TLSV1_2 |
             SSL_PROTOCOL_TLSV1_3);
 
+    static final int OPTIONAL_NO_CA = 3;
+
     private static final String BEGIN_KEY = "-----BEGIN PRIVATE KEY-----\n";
     private static final Object END_KEY = "\n-----END PRIVATE KEY-----";
 
@@ -135,8 +137,7 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
     private final MemorySegment openSSLCallbackPassword;
 
     private static final ConcurrentHashMap<Long, ContextState> states = new ConcurrentHashMap<>();
-
-    static ContextState getState(MemorySegment ctx) {
+    private static ContextState getState(MemorySegment ctx) {
         return states.get(Long.valueOf(ctx.address()));
     }
 
@@ -476,8 +477,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
         return result;
     }
 
-    private static final int OPTIONAL_NO_CA = 3;
-
     /**
      * Setup the SSL_CTX.
      *
@@ -563,9 +562,8 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
             }
 
             // Set int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx) callback
-            // Leave this just in case but in Tomcat this is always set again by the engine
             SSL_CTX_set_verify(state.sslCtx, value,
-                    SSL_CTX_set_verify$callback.allocate(new VerifyCallback(), contextArena));
+                    SSL_CTX_set_verify$callback.allocate(new OpenSSLEngine.VerifyCallback(), contextArena));
 
             // Trust and certificate verification
             if (tms != null) {
@@ -709,8 +707,7 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
     // DH *(*tmp_dh_callback)(SSL *ssl, int is_export, int keylength)
     private static class TmpDHCallback implements SSL_CTX_set_tmp_dh_callback$dh {
         @Override
-        public MemorySegment apply(MemorySegment ssl, @SuppressWarnings("unused") int isExport,
-                @SuppressWarnings("unused") int keylength) {
+        public MemorySegment apply(MemorySegment ssl, int isExport, int keylength) {
             var pkey = SSL_get_privatekey(ssl);
             int type = (MemorySegment.NULL.equals(pkey)) ? EVP_PKEY_NONE() : EVP_PKEY_base_id(pkey);
             /*
@@ -742,7 +739,7 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
     //        const unsigned char *in, unsigned int inlen, void *arg)
     private static class ALPNSelectCallback implements SSL_CTX_set_alpn_select_cb$cb {
         @Override
-        public int apply(@SuppressWarnings("unused") MemorySegment ssl, MemorySegment out,
+        public int apply(MemorySegment ssl, MemorySegment out,
                 MemorySegment outlen, MemorySegment in, int inlen, MemorySegment arg) {
             ContextState state = getState(arg);
             if (state == null) {
@@ -778,14 +775,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
     }
 
 
-    private static class VerifyCallback implements SSL_CTX_set_verify$callback {
-        @Override
-        public int apply(int preverify_ok, MemorySegment /*X509_STORE_CTX*/ x509ctx) {
-            return OpenSSLEngine.openSSLCallbackVerify(preverify_ok, x509ctx);
-        }
-    }
-
-
     private static class CertVerifyCallback implements SSL_CTX_set_cert_verify_callback$cb {
         @Override
         public int apply(MemorySegment /*X509_STORE_CTX*/ x509_ctx, MemorySegment param) {
@@ -919,8 +908,7 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
 
     private static class PasswordCallback implements SSL_CTX_set_default_passwd_cb$cb {
         @Override
-        public int apply(MemorySegment /*char **/ buf, int bufsiz,
-                @SuppressWarnings("unused") int verify, @SuppressWarnings("unused") MemorySegment /*void **/ cb) {
+        public int apply(MemorySegment /* char **/ buf, int bufsiz, int verify, MemorySegment /* void **/ cb) {
             if (log.isDebugEnabled()) {
                 log.debug("Return password for certificate");
             }
@@ -943,7 +931,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
     }
 
 
-    @SuppressWarnings("deprecation")
     private boolean addCertificate(SSLHostConfigCertificate certificate, Arena localArena) throws Exception {
         int index = getCertificateIndex(certificate);
         // Load Server key and certificate
@@ -1376,10 +1363,26 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
 
 
     private static void logLastError(SegmentAllocator allocator, String string) {
-        var buf = allocator.allocate(ValueLayout.JAVA_BYTE, 128);
-        ERR_error_string(ERR_get_error(), buf);
-        String err = buf.getString(0);
-        log.error(sm.getString(string, err));
+        String sslError = null;
+        long error = ERR_get_error();
+        if (error != SSL_ERROR_NONE()) {
+            do {
+                // Loop until getLastErrorNumber() returns SSL_ERROR_NONE
+                var buf = allocator.allocate(ValueLayout.JAVA_BYTE, 128);
+                ERR_error_string(error, buf);
+                String err = buf.getString(0);
+                if (sslError == null) {
+                    sslError = err;
+                }
+                if (log.isDebugEnabled()) {
+                    log.debug(sm.getString("engine.openSSLError", Long.toString(error), err));
+                }
+            } while ((error = ERR_get_error()) != SSL_ERROR_NONE());
+        }
+        if (sslError == null) {
+            sslError = "";
+        }
+        log.error(sm.getString(string, sslError));
     }
 
 
@@ -1461,8 +1464,7 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
                             @Override
                             public void accept(MemorySegment t) {
                                 SSL_CONF_CTX_free(t);
-                            }
-                });
+                            }});
             } else {
                 this.confCtx = null;
             }
diff --git a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLEngine.java b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLEngine.java
index 9bbd9881e9..9f6593cc42 100644
--- a/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLEngine.java
+++ b/modules/openssl-foreign/src/main/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLEngine.java
@@ -62,6 +62,7 @@ import org.apache.tomcat.util.buf.Asn1Parser;
 import org.apache.tomcat.util.net.Constants;
 import org.apache.tomcat.util.net.SSLUtil;
 import org.apache.tomcat.util.net.openssl.ciphers.OpenSSLCipherConfigurationParser;
+import org.apache.tomcat.util.openssl.SSL_CTX_set_verify$callback;
 import org.apache.tomcat.util.openssl.SSL_set_info_callback$cb;
 import org.apache.tomcat.util.openssl.SSL_set_verify$callback;
 import org.apache.tomcat.util.res.StringManager;
@@ -101,15 +102,10 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
     private static final int MAX_COMPRESSED_LENGTH = MAX_PLAINTEXT_LENGTH + 1024;
     private static final int MAX_CIPHERTEXT_LENGTH = MAX_COMPRESSED_LENGTH + 1024;
 
-    // Protocols
-    static final int VERIFY_DEPTH = 10;
-
     // Header (5) + Data (2^14) + Compression (1024) + Encryption (1024) + MAC (20) + Padding (256)
-    static final int MAX_ENCRYPTED_PACKET_LENGTH = MAX_CIPHERTEXT_LENGTH + 5 + 20 + 256;
-
-    static final int MAX_ENCRYPTION_OVERHEAD_LENGTH = MAX_ENCRYPTED_PACKET_LENGTH - MAX_PLAINTEXT_LENGTH;
+    private static final int MAX_ENCRYPTED_PACKET_LENGTH = MAX_CIPHERTEXT_LENGTH + 5 + 20 + 256;
 
-    enum ClientAuthMode {
+    private enum ClientAuthMode {
         NONE,
         OPTIONAL,
         REQUIRE,
@@ -924,7 +920,7 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
         }
     }
 
-    private synchronized void renegotiate() throws SSLException {
+    private void renegotiate() throws SSLException {
         if (log.isDebugEnabled()) {
             log.debug("Start renegotiate");
         }
@@ -964,7 +960,7 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
     /**
      * Clear out any errors, but log a warning.
      */
-    private void clearLastError() {
+    private static void clearLastError() {
         getLastError();
     }
 
@@ -977,7 +973,7 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
      * zero result.
      * @return the first error in the stack
      */
-    private String getLastError() {
+    private static String getLastError() {
         String sslError = null;
         long error = ERR_get_error();
         if (error != SSL_ERROR_NONE()) {
@@ -1118,8 +1114,6 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
         return clientAuth == ClientAuthMode.OPTIONAL;
     }
 
-    private static final int OPTIONAL_NO_CA = 3;
-
     private void setClientAuth(ClientAuthMode mode) {
         if (clientMode) {
             return;
@@ -1131,7 +1125,7 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
             state.certificateVerifyMode = switch (mode) {
                 case NONE -> SSL_VERIFY_NONE();
                 case REQUIRE -> SSL_VERIFY_FAIL_IF_NO_PEER_CERT();
-                case OPTIONAL -> certificateVerificationOptionalNoCA ? OPTIONAL_NO_CA : SSL_VERIFY_PEER();
+                case OPTIONAL -> certificateVerificationOptionalNoCA ? OpenSSLContext.OPTIONAL_NO_CA : SSL_VERIFY_PEER();
             };
             // SSL.setVerify(state.ssl, value, certificateVerificationDepth);
             // Set int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx) callback
@@ -1140,6 +1134,8 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
                 case REQUIRE -> SSL_VERIFY_PEER() | SSL_VERIFY_FAIL_IF_NO_PEER_CERT();
                 case OPTIONAL -> SSL_VERIFY_PEER();
             };
+            // Note: Since a callback is always set by the context, the callback here could in theory
+            // be set to NULL (at the time of creation of the SSL, the SSL_CTX will have a non null callback)
             SSL_set_verify(state.ssl, value, SSL_set_verify$callback.allocate(new VerifyCallback(), engineArena));
             clientAuth = mode;
         }
@@ -1147,7 +1143,7 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
 
     private static class InfoCallback implements SSL_set_info_callback$cb {
         @Override
-        public void apply(MemorySegment ssl, int where, @SuppressWarnings("unused") int ret) {
+        public void apply(MemorySegment ssl, int where, int ret) {
             EngineState state = getState(ssl);
             if (state == null) {
                 log.warn(sm.getString("engine.noSSL", Long.valueOf(ssl.address())));
@@ -1159,94 +1155,90 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
         }
     }
 
-    private static class VerifyCallback implements SSL_set_verify$callback {
+    static class VerifyCallback implements SSL_set_verify$callback, SSL_CTX_set_verify$callback {
         @Override
         public int apply(int preverify_ok, MemorySegment /*X509_STORE_CTX*/ x509ctx) {
-            return openSSLCallbackVerify(preverify_ok, x509ctx);
-        }
-    }
-
-    public static int openSSLCallbackVerify(int preverify_ok, MemorySegment /*X509_STORE_CTX*/ x509ctx) {
-        MemorySegment ssl = X509_STORE_CTX_get_ex_data(x509ctx, SSL_get_ex_data_X509_STORE_CTX_idx());
-        EngineState state = getState(ssl);
-        if (state == null) {
-            log.warn(sm.getString("engine.noSSL", Long.valueOf(ssl.address())));
-            return 0;
-        }
-        if (log.isDebugEnabled()) {
-            log.debug("Verification in engine with mode [" + state.certificateVerifyMode + "] for " + state.ssl);
-        }
-        int ok = preverify_ok;
-        int errnum = X509_STORE_CTX_get_error(x509ctx);
-        int errdepth = X509_STORE_CTX_get_error_depth(x509ctx);
-        state.phaState = PHAState.COMPLETE;
-        if (state.certificateVerifyMode == -1 /*SSL_CVERIFY_UNSET*/ || state.certificateVerifyMode == SSL_VERIFY_NONE()) {
-            return 1;
-        }
-        /*SSL_VERIFY_ERROR_IS_OPTIONAL(errnum) -> ((errnum == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT)
+            MemorySegment ssl = X509_STORE_CTX_get_ex_data(x509ctx, SSL_get_ex_data_X509_STORE_CTX_idx());
+            EngineState state = getState(ssl);
+            if (state == null) {
+                log.warn(sm.getString("engine.noSSL", Long.valueOf(ssl.address())));
+                return 0;
+            }
+            if (log.isDebugEnabled()) {
+                log.debug("Verification in engine with mode [" + state.certificateVerifyMode + "] for " + state.ssl);
+            }
+            int ok = preverify_ok;
+            int errnum = X509_STORE_CTX_get_error(x509ctx);
+            int errdepth = X509_STORE_CTX_get_error_depth(x509ctx);
+            state.phaState = PHAState.COMPLETE;
+            if (state.certificateVerifyMode == -1 /*SSL_CVERIFY_UNSET*/ || state.certificateVerifyMode == SSL_VERIFY_NONE()) {
+                return 1;
+            }
+            /*SSL_VERIFY_ERROR_IS_OPTIONAL(errnum) -> ((errnum == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT)
                 || (errnum == X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN)
                 || (errnum == X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY)
                 || (errnum == X509_V_ERR_CERT_UNTRUSTED)
                 || (errnum == X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE))*/
-        boolean verifyErrorIsOptional = (errnum == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT())
-                || (errnum == X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN())
-                || (errnum == X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY())
-                || (errnum == X509_V_ERR_CERT_UNTRUSTED())
-                || (errnum == X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE());
-        if (verifyErrorIsOptional && (state.certificateVerifyMode == OPTIONAL_NO_CA)) {
-            ok = 1;
-            SSL_set_verify_result(state.ssl, X509_V_OK());
-        }
-        /*
-         * Expired certificates vs. "expired" CRLs: by default, OpenSSL
-         * turns X509_V_ERR_CRL_HAS_EXPIRED into a "certificate_expired(45)"
-         * SSL alert, but that's not really the message we should convey to the
-         * peer (at the very least, it's confusing, and in many cases, it's also
-         * inaccurate, as the certificate itself may very well not have expired
-         * yet). We set the X509_STORE_CTX error to something which OpenSSL's
-         * s3_both.c:ssl_verify_alarm_type() maps to SSL_AD_CERTIFICATE_UNKNOWN,
-         * i.e. the peer will receive a "certificate_unknown(46)" alert.
-         * We do not touch errnum, though, so that later on we will still log
-         * the "real" error, as returned by OpenSSL.
-         */
-        if (ok == 0 && errnum == X509_V_ERR_CRL_HAS_EXPIRED()) {
-            X509_STORE_CTX_set_error(x509ctx, -1);
-        }
-
-        // OCSP
-        if (!state.noOcspCheck && (ok > 0)) {
-            /* If there was an optional verification error, it's not
-             * possible to perform OCSP validation since the issuer may be
-             * missing/untrusted.  Fail in that case.
+            boolean verifyErrorIsOptional = (errnum == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT())
+                    || (errnum == X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN())
+                    || (errnum == X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY())
+                    || (errnum == X509_V_ERR_CERT_UNTRUSTED())
+                    || (errnum == X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE());
+            if (verifyErrorIsOptional && (state.certificateVerifyMode == OpenSSLContext.OPTIONAL_NO_CA)) {
+                ok = 1;
+                SSL_set_verify_result(state.ssl, X509_V_OK());
+            }
+            /*
+             * Expired certificates vs. "expired" CRLs: by default, OpenSSL
+             * turns X509_V_ERR_CRL_HAS_EXPIRED into a "certificate_expired(45)"
+             * SSL alert, but that's not really the message we should convey to the
+             * peer (at the very least, it's confusing, and in many cases, it's also
+             * inaccurate, as the certificate itself may very well not have expired
+             * yet). We set the X509_STORE_CTX error to something which OpenSSL's
+             * s3_both.c:ssl_verify_alarm_type() maps to SSL_AD_CERTIFICATE_UNKNOWN,
+             * i.e. the peer will receive a "certificate_unknown(46)" alert.
+             * We do not touch errnum, though, so that later on we will still log
+             * the "real" error, as returned by OpenSSL.
              */
-            if (verifyErrorIsOptional) {
-                if (state.certificateVerifyMode != OPTIONAL_NO_CA) {
-                    X509_STORE_CTX_set_error(x509ctx, X509_V_ERR_APPLICATION_VERIFICATION());
-                    errnum = X509_V_ERR_APPLICATION_VERIFICATION();
-                    ok = 0;
-                }
-            } else {
-                int ocspResponse = processOCSP(x509ctx);
-                if (ocspResponse == V_OCSP_CERTSTATUS_REVOKED()) {
-                    ok = 0;
-                    errnum = X509_STORE_CTX_get_error(x509ctx);
-                } else if (ocspResponse == V_OCSP_CERTSTATUS_UNKNOWN()) {
-                    errnum = X509_STORE_CTX_get_error(x509ctx);
-                    if (errnum <= 0) {
+            if (ok == 0 && errnum == X509_V_ERR_CRL_HAS_EXPIRED()) {
+                X509_STORE_CTX_set_error(x509ctx, -1);
+            }
+
+            // OCSP
+            if (!state.noOcspCheck && (ok > 0)) {
+                /* If there was an optional verification error, it's not
+                 * possible to perform OCSP validation since the issuer may be
+                 * missing/untrusted.  Fail in that case.
+                 */
+                if (verifyErrorIsOptional) {
+                    if (state.certificateVerifyMode != OpenSSLContext.OPTIONAL_NO_CA) {
+                        X509_STORE_CTX_set_error(x509ctx, X509_V_ERR_APPLICATION_VERIFICATION());
+                        errnum = X509_V_ERR_APPLICATION_VERIFICATION();
                         ok = 0;
                     }
+                } else {
+                    int ocspResponse = processOCSP(x509ctx);
+                    if (ocspResponse == V_OCSP_CERTSTATUS_REVOKED()) {
+                        ok = 0;
+                        errnum = X509_STORE_CTX_get_error(x509ctx);
+                    } else if (ocspResponse == V_OCSP_CERTSTATUS_UNKNOWN()) {
+                        errnum = X509_STORE_CTX_get_error(x509ctx);
+                        if (errnum <= 0) {
+                            ok = 0;
+                        }
+                    }
                 }
             }
-        }
 
-        if (errdepth > state.certificateVerificationDepth) {
-            // Certificate Verification: Certificate Chain too long
-            ok = 0;
+            if (errdepth > state.certificateVerificationDepth) {
+                // Certificate Verification: Certificate Chain too long
+                ok = 0;
+            }
+            return ok;
         }
-        return ok;
     }
 
-    static int processOCSP(MemorySegment /*X509_STORE_CTX*/ x509ctx) {
+    private static int processOCSP(MemorySegment /*X509_STORE_CTX*/ x509ctx) {
         int ocspResponse = V_OCSP_CERTSTATUS_UNKNOWN();
         // ocspResponse = ssl_verify_OCSP(x509_ctx);
         MemorySegment x509 = X509_STORE_CTX_get_current_cert(x509ctx);


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org