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 2024/01/11 15:46:25 UTC

(tomcat) branch main updated: Sync FFM code

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

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


The following commit(s) were added to refs/heads/main by this push:
     new 86d1b1d282 Sync FFM code
86d1b1d282 is described below

commit 86d1b1d28294990d516dde9bb08e5c4fd023d34d
Author: remm <re...@apache.org>
AuthorDate: Thu Jan 11 16:46:02 2024 +0100

    Sync FFM code
---
 .../util/net/openssl/panama/OpenSSLContext.java    |  120 +--
 .../util/net/openssl/panama/OpenSSLEngine.java     |    5 +-
 ..._cb$cb.java => PEM_read_bio_PrivateKey$cb.java} |   15 +-
 ...wd_cb$cb.java => PEM_read_bio_X509_AUX$cb.java} |   15 +-
 .../openssl/SSL_CTX_set_alpn_select_cb$cb.java     |    1 +
 .../SSL_CTX_set_cert_verify_callback$cb.java       |    1 +
 .../openssl/SSL_CTX_set_default_passwd_cb$cb.java  |    1 +
 .../openssl/SSL_CTX_set_tmp_dh_callback$dh.java    |    1 +
 .../util/openssl/SSL_CTX_set_verify$callback.java  |    1 +
 .../util/openssl/SSL_set_info_callback$cb.java     |    1 +
 .../util/openssl/SSL_set_verify$callback.java      |    1 +
 .../org/apache/tomcat/util/openssl/openssl_h.java  | 1001 ++++++++++----------
 .../tomcat/util/openssl/openssl_h_Macros.java      |    1 +
 13 files changed, 564 insertions(+), 600 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 13691d58d8..2a3dfec8dd 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
@@ -36,7 +36,6 @@ import java.util.Arrays;
 import java.util.Base64;
 import java.util.Iterator;
 import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
 import java.util.function.Consumer;
 
 import javax.net.ssl.KeyManager;
@@ -66,6 +65,8 @@ import org.apache.tomcat.util.net.openssl.OpenSSLConf;
 import org.apache.tomcat.util.net.openssl.OpenSSLConfCmd;
 import org.apache.tomcat.util.net.openssl.OpenSSLStatus;
 import org.apache.tomcat.util.net.openssl.OpenSSLUtil;
+import org.apache.tomcat.util.openssl.PEM_read_bio_PrivateKey$cb;
+import org.apache.tomcat.util.openssl.PEM_read_bio_X509_AUX$cb;
 import org.apache.tomcat.util.openssl.SSL_CTX_set_alpn_select_cb$cb;
 import org.apache.tomcat.util.openssl.SSL_CTX_set_cert_verify_callback$cb;
 import org.apache.tomcat.util.openssl.SSL_CTX_set_default_passwd_cb$cb;
@@ -126,20 +127,14 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
     private final boolean alpn;
     private final int minTlsVersion;
     private final int maxTlsVersion;
+    private final List<byte[]> negotiableProtocols;
 
     private OpenSSLSessionContext sessionContext;
     private String enabledProtocol;
     private boolean initialized = false;
 
     private boolean noOcspCheck = false;
-
-    // Password callback
-    private final MemorySegment openSSLCallbackPassword;
-
-    private static final ConcurrentHashMap<Long, ContextState> states = new ConcurrentHashMap<>();
-    private static ContextState getState(MemorySegment ctx) {
-        return states.get(Long.valueOf(ctx.address()));
-    }
+    private X509TrustManager x509TrustManager;
 
     private final ContextState state;
     private final Arena contextArena;
@@ -274,13 +269,9 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
             // Longer session timeout
             SSL_CTX_set_timeout(sslCtx, 14400);
 
-            // From SSLContext.make, possibly set ssl_callback_ServerNameIndication
-            // From SSLContext.make, possibly set ssl_callback_ClientHello
-            // Probably not needed
-
             // Set int pem_password_cb(char *buf, int size, int rwflag, void *u) callback
-            openSSLCallbackPassword = SSL_CTX_set_default_passwd_cb$cb.allocate(new PasswordCallback(), contextArena);
-            SSL_CTX_set_default_passwd_cb(sslCtx, openSSLCallbackPassword);
+            SSL_CTX_set_default_passwd_cb(sslCtx,
+                    SSL_CTX_set_default_passwd_cb$cb.allocate(new PasswordCallback(null), contextArena));
 
             if (negotiableProtocols != null && negotiableProtocols.size() > 0) {
                 alpn = true;
@@ -297,7 +288,8 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
         } catch(Exception e) {
             throw new SSLException(sm.getString("openssl.errorSSLCtxInit"), e);
         } finally {
-            state = new ContextState(sslCtx, confCtx, negotiableProtocolsBytes);
+            this.negotiableProtocols = negotiableProtocolsBytes;
+            state = new ContextState(sslCtx, confCtx);
             /*
              * When an SSLHostConfig is replaced at runtime, it is not possible to
              * call destroy() on the associated OpenSSLContext since it is likely
@@ -353,7 +345,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
                 log.debug(sm.getString("opensslconf.checkCommand", name, value));
             }
             try (var localArena = Arena.ofConfined()) {
-                // rc = SSLConf.check(confCtx, name, value);
                 if (name.equals("NO_OCSP_CHECK")) {
                     rc = 1;
                 } else {
@@ -407,7 +398,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
 
     private boolean applyConf(OpenSSLConf conf) throws Exception {
         boolean result = true;
-        // SSLConf.assign(confCtx, sslCtx);
         SSL_CONF_CTX_set_ssl_ctx(state.confCtx, state.sslCtx);
         OpenSSLConfCmd cmd;
         String name;
@@ -426,7 +416,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
                 log.debug(sm.getString("opensslconf.applyCommand", name, value));
             }
             try (var localArena = Arena.ofConfined()) {
-                // rc = SSLConf.apply(confCtx, name, value);
                 if (name.equals("NO_OCSP_CHECK")) {
                     noOcspCheck = Boolean.parseBoolean(value);
                     rc = 1;
@@ -530,7 +519,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
 
             success = addCertificate(certificate, localArena);
 
-            // SSLContext.setVerify(state.ctx, value, sslHostConfig.getCertificateVerificationDepth());
             // Client certificate verification
             int value = 0;
             switch (sslHostConfig.getCertificateVerification()) {
@@ -555,16 +543,15 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
             // Trust and certificate verification
             if (tms != null) {
                 // Client certificate verification based on custom trust managers
-                state.x509TrustManager = chooseTrustManager(tms);
+                x509TrustManager = chooseTrustManager(tms);
                 SSL_CTX_set_cert_verify_callback(state.sslCtx,
-                        SSL_CTX_set_cert_verify_callback$cb.allocate(new CertVerifyCallback(), contextArena), state.sslCtx);
+                        SSL_CTX_set_cert_verify_callback$cb.allocate(new CertVerifyCallback(x509TrustManager), contextArena), state.sslCtx);
 
                 // Pass along the DER encoded certificates of the accepted client
                 // certificate issuers, so that their subjects can be presented
                 // by the server during the handshake to allow the client choosing
                 // an acceptable certificate
-                for (X509Certificate caCert : state.x509TrustManager.getAcceptedIssuers()) {
-                    //SSLContext.addClientCACertificateRaw(state.ctx, caCert.getEncoded());
+                for (X509Certificate caCert : x509TrustManager.getAcceptedIssuers()) {
                     var rawCACertificate = localArena.allocateFrom(ValueLayout.JAVA_BYTE, caCert.getEncoded());
                     var rawCACertificatePointer = localArena.allocateFrom(ValueLayout.ADDRESS, rawCACertificate);
                     var x509CACert = d2i_X509(MemorySegment.NULL, rawCACertificatePointer, rawCACertificate.byteSize());
@@ -578,9 +565,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
                 }
             } else {
                 // Client certificate verification based on trusted CA files and dirs
-                //SSLContext.setCACertificate(state.ctx,
-                //        SSLHostConfig.adjustRelativePath(sslHostConfig.getCaCertificateFile()),
-                //        SSLHostConfig.adjustRelativePath(sslHostConfig.getCaCertificatePath()));
                 MemorySegment caCertificateFileNative = sslHostConfig.getCaCertificateFile() != null
                         ? localArena.allocateFrom(SSLHostConfig.adjustRelativePath(sslHostConfig.getCaCertificateFile())) : null;
                 MemorySegment caCertificatePathNative = sslHostConfig.getCaCertificatePath() != null
@@ -609,11 +593,9 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
                 }
             }
 
-            if (state.negotiableProtocols != null && state.negotiableProtocols.size() > 0) {
-                // int openSSLCallbackAlpnSelectProto(MemoryAddress ssl, MemoryAddress out, MemoryAddress outlen,
-                //        MemoryAddress in, int inlen, MemoryAddress arg
+            if (negotiableProtocols != null && negotiableProtocols.size() > 0) {
                 SSL_CTX_set_alpn_select_cb(state.sslCtx,
-                        SSL_CTX_set_alpn_select_cb$cb.allocate(new ALPNSelectCallback(), contextArena), state.sslCtx);
+                        SSL_CTX_set_alpn_select_cb$cb.allocate(new ALPNSelectCallback(negotiableProtocols), contextArena), state.sslCtx);
             }
 
             // Apply OpenSSLConfCmd if used
@@ -725,18 +707,17 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
     // int SSL_callback_alpn_select_proto(SSL* ssl, const unsigned char **out, unsigned char *outlen,
     //        const unsigned char *in, unsigned int inlen, void *arg)
     private static class ALPNSelectCallback implements SSL_CTX_set_alpn_select_cb$cb {
+        private final List<byte[]> negotiableProtocols;
+        ALPNSelectCallback(List<byte[]> negotiableProtocols) {
+            this.negotiableProtocols = negotiableProtocols;
+        }
         @Override
         public int apply(MemorySegment ssl, MemorySegment out,
                 MemorySegment outlen, MemorySegment in, int inlen, MemorySegment arg) {
-            ContextState state = getState(arg);
-            if (state == null) {
-                log.warn(sm.getString("context.noSSL", Long.valueOf(arg.address())));
-                return SSL_TLSEXT_ERR_NOACK();
-            }
             try (var localArena = Arena.ofConfined()) {
                 MemorySegment inSeg = in.reinterpret(inlen, localArena, null);
                 byte[] advertisedBytes = inSeg.toArray(ValueLayout.JAVA_BYTE);
-                for (byte[] negotiableProtocolBytes : state.negotiableProtocols) {
+                for (byte[] negotiableProtocolBytes : negotiableProtocols) {
                     for (int i = 0; i <= advertisedBytes.length - negotiableProtocolBytes.length; i++) {
                         if (advertisedBytes[i] == negotiableProtocolBytes[0]) {
                             for (int j = 0; j < negotiableProtocolBytes.length; j++) {
@@ -763,6 +744,10 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
 
 
     private static class CertVerifyCallback implements SSL_CTX_set_cert_verify_callback$cb {
+        private final X509TrustManager x509TrustManager;
+        CertVerifyCallback(X509TrustManager x509TrustManager) {
+            this.x509TrustManager = x509TrustManager;
+        }
         @Override
         public int apply(MemorySegment /*X509_STORE_CTX*/ x509_ctx, MemorySegment param) {
             if (log.isDebugEnabled()) {
@@ -771,11 +756,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
             if (MemorySegment.NULL.equals(param)) {
                 return 0;
             }
-            ContextState state = getState(param);
-            if (state == null) {
-                log.warn(sm.getString("context.noSSL", Long.valueOf(param.address())));
-                return 0;
-            }
             MemorySegment ssl = X509_STORE_CTX_get_ex_data(x509_ctx, SSL_get_ex_data_X509_STORE_CTX_idx());
             MemorySegment /*STACK_OF(X509)*/ sk = X509_STORE_CTX_get0_untrusted(x509_ctx);
             int len = OPENSSL_sk_num(sk);
@@ -798,7 +778,7 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
                         : getCipherAuthenticationMethod(SSL_CIPHER_get_auth_nid(cipher), SSL_CIPHER_get_kx_nid(cipher));
                 X509Certificate[] peerCerts = certificates(certificateChain);
                 try {
-                    state.x509TrustManager.checkClientTrusted(peerCerts, authMethod);
+                    x509TrustManager.checkClientTrusted(peerCerts, authMethod);
                     return 1;
                 } catch (Exception e) {
                     log.debug(sm.getString("openssl.certificateVerificationFailed"), e);
@@ -891,15 +871,16 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
         }
     }
 
-    private static ThreadLocal<String> callbackPasswordTheadLocal = new ThreadLocal<>();
-
-    private static class PasswordCallback implements SSL_CTX_set_default_passwd_cb$cb {
+    private static class PasswordCallback implements SSL_CTX_set_default_passwd_cb$cb, PEM_read_bio_X509_AUX$cb, PEM_read_bio_PrivateKey$cb {
+        private final String callbackPassword;
+        PasswordCallback(String callbackPassword) {
+            this.callbackPassword = callbackPassword;
+        }
         @Override
         public int apply(MemorySegment /* char **/ buf, int bufsiz, int verify, MemorySegment /* void **/ cb) {
             if (log.isDebugEnabled()) {
                 log.debug("Return password for certificate");
             }
-            String callbackPassword = callbackPasswordTheadLocal.get();
             if (callbackPassword != null && callbackPassword.length() > 0) {
                 try (var localArena = Arena.ofConfined()) {
                     MemorySegment callbackPasswordNative = localArena.allocateFrom(callbackPassword);
@@ -946,10 +927,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
                 keyPassToUse = keyPass;
             }
             // Set certificate
-            //SSLContext.setCertificate(state.ctx,
-            //        SSLHostConfig.adjustRelativePath(certificate.getCertificateFile()),
-            //        SSLHostConfig.adjustRelativePath(certificate.getCertificateKeyFile()),
-            //        certificate.getCertificateKeyPassword(), getCertificateIndex(certificate));
             byte[] certificateFileBytes = null;
             try (Resource resource = ConfigFileLoader.getSource().getResource(certificate.getCertificateFile())) {
                 certificateFileBytes = resource.getInputStream().readAllBytes();
@@ -1020,12 +997,9 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
                         }
                         key = MemorySegment.NULL;
                         for (int i = 0; i < 3; i++) {
-                            try {
-                                callbackPasswordTheadLocal.set(keyPassToUse);
-                                key = PEM_read_bio_PrivateKey(keyBIO, MemorySegment.NULL, openSSLCallbackPassword, MemorySegment.NULL);
-                            } finally {
-                                callbackPasswordTheadLocal.set(null);
-                            }
+                            key = PEM_read_bio_PrivateKey(keyBIO, MemorySegment.NULL,
+                                    PEM_read_bio_PrivateKey$cb.allocate(new PasswordCallback(keyPassToUse), contextArena),
+                                    MemorySegment.NULL);
                             if (!MemorySegment.NULL.equals(key)) {
                                 break;
                             }
@@ -1048,12 +1022,9 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
                         return false;
                     }
                     // Load certificate
-                    try {
-                        callbackPasswordTheadLocal.set(keyPassToUse);
-                        cert = PEM_read_bio_X509_AUX(certificateBIO, MemorySegment.NULL, openSSLCallbackPassword, MemorySegment.NULL);
-                    } finally {
-                        callbackPasswordTheadLocal.set(null);
-                    }
+                    cert = PEM_read_bio_X509_AUX(certificateBIO, MemorySegment.NULL,
+                            PEM_read_bio_X509_AUX$cb.allocate(new PasswordCallback(keyPassToUse), contextArena),
+                            MemorySegment.NULL);
                     if (MemorySegment.NULL.equals(cert) &&
                             // Missing ERR_GET_REASON(ERR_peek_last_error())
                             /*int ERR_GET_REASON(unsigned long errcode) {
@@ -1151,8 +1122,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
                         log.error(sm.getString("openssl.errorLoadingCertificate", certificate.getCertificateChainFile()), e);
                         return false;
                     }
-                    // SSLContext.setCertificateChainFile(state.ctx,
-                    //        SSLHostConfig.adjustRelativePath(certificate.getCertificateChainFile()), false);
                     MemorySegment certificateChainBytesNative = localArena.allocateFrom(ValueLayout.JAVA_BYTE, certificateChainBytes);
                     MemorySegment certificateChainBIO = BIO_new(BIO_s_mem());
                     try {
@@ -1183,11 +1152,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
                     }
                 }
                 // Set revocation
-                //SSLContext.setCARevocation(state.ctx,
-                //        SSLHostConfig.adjustRelativePath(
-                //                sslHostConfig.getCertificateRevocationListFile()),
-                //        SSLHostConfig.adjustRelativePath(
-                //                sslHostConfig.getCertificateRevocationListPath()));
                 MemorySegment certificateStore = SSL_CTX_get_cert_store(state.sslCtx);
                 if (sslHostConfig.getCertificateRevocationListFile() != null) {
                     MemorySegment x509Lookup = X509_STORE_add_lookup(certificateStore, X509_LOOKUP_file());
@@ -1227,9 +1191,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
             StringBuilder sb = new StringBuilder(BEGIN_KEY);
             sb.append(Base64.getMimeEncoder(64, new byte[] {'\n'}).encodeToString(x509KeyManager.getPrivateKey(alias).getEncoded()));
             sb.append(END_KEY);
-            //SSLContext.setCertificateRaw(state.ctx, chain[0].getEncoded(),
-            //        sb.toString().getBytes(StandardCharsets.US_ASCII),
-            //        getCertificateIndex(certificate));
             var rawCertificate = localArena.allocateFrom(ValueLayout.JAVA_BYTE, chain[0].getEncoded());
             var rawCertificatePointer = localArena.allocateFrom(ValueLayout.ADDRESS, rawCertificate);
             var rawKey = localArena.allocateFrom(ValueLayout.JAVA_BYTE, sb.toString().getBytes(StandardCharsets.US_ASCII));
@@ -1278,7 +1239,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
                     }
                 }
                 for (int i = 1; i < chain.length; i++) {
-                    //SSLContext.addChainCertificateRaw(state.ctx, chain[i].getEncoded());
                     var rawCertificateChain = localArena.allocateFrom(ValueLayout.JAVA_BYTE, chain[i].getEncoded());
                     var rawCertificateChainPointer = localArena.allocateFrom(ValueLayout.ADDRESS, rawCertificateChain);
                     var x509certChain = d2i_X509(MemorySegment.NULL, rawCertificateChainPointer, rawCertificateChain.byteSize());
@@ -1446,8 +1406,8 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
     @Override
     public X509Certificate[] getAcceptedIssuers() {
         X509Certificate[] acceptedCerts = null;
-        if (state.x509TrustManager != null) {
-            acceptedCerts = state.x509TrustManager.getAcceptedIssuers();
+        if (x509TrustManager != null) {
+            acceptedCerts = x509TrustManager.getAcceptedIssuers();
         }
         return acceptedCerts;
     }
@@ -1458,13 +1418,8 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
         private final Arena stateArena = Arena.ofShared();
         private final MemorySegment sslCtx;
         private final MemorySegment confCtx;
-        private final List<byte[]> negotiableProtocols;
 
-        private X509TrustManager x509TrustManager = null;
-
-        private ContextState(MemorySegment sslCtx, MemorySegment confCtx, List<byte[]> negotiableProtocols) {
-            states.put(Long.valueOf(sslCtx.address()), this);
-            this.negotiableProtocols = negotiableProtocols;
+        private ContextState(MemorySegment sslCtx, MemorySegment confCtx) {
             // Use another arena to avoid keeping a reference through segments
             // This also allows making further accesses to the main pointers safer
             this.sslCtx = sslCtx.reinterpret(ValueLayout.ADDRESS.byteSize(), stateArena,
@@ -1487,7 +1442,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext {
 
         @Override
         public void run() {
-            states.remove(Long.valueOf(sslCtx.address()));
             stateArena.close();
         }
     }
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 9ac43a7be6..76541ebe59 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
@@ -1096,7 +1096,6 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
                 case REQUIRE -> SSL_VERIFY_FAIL_IF_NO_PEER_CERT();
                 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
             int value = switch (mode) {
                 case NONE -> SSL_VERIFY_NONE();
@@ -1209,7 +1208,6 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
 
     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);
         if (!MemorySegment.NULL.equals(x509)) {
             // No need to check cert->valid, because ssl_verify_OCSP() only
@@ -1322,7 +1320,7 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
                 return V_OCSP_CERTSTATUS_UNKNOWN();
             }
             MemorySegment buf = bufPointer.get(ValueLayout.ADDRESS, 0);
-            // HTTP request with the following header
+            // HTTP request with the following header:
             // POST urlPath HTTP/1.1
             // Host: urlHost:urlPort
             // Content-Type: application/ocsp-request
@@ -1534,7 +1532,6 @@ public final class OpenSSLEngine extends SSLEngine implements SSLUtil.ProtocolIn
                     if (!clientMode) {
                         // if used on the server side SSL_get_peer_cert_chain(...) will not include the remote peer certificate.
                         // We use SSL_get_peer_certificate to get it in this case and add it to our array later.
-                        //
                         // See https://www.openssl.org/docs/ssl/SSL_get_peer_cert_chain.html
                         clientCert = getPeerCertificate();
                     } else {
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/PEM_read_bio_PrivateKey$cb.java
similarity index 80%
copy from modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_default_passwd_cb$cb.java
copy to modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/PEM_read_bio_PrivateKey$cb.java
index c286929484..683af17192 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/PEM_read_bio_PrivateKey$cb.java
@@ -26,25 +26,26 @@ import java.lang.foreign.MemorySegment;
 import java.lang.invoke.MethodHandle;
 
 /**
- * {@snippet lang = c : * int (*SSL_CTX_set_default_passwd_cb$cb)(char* buf,int size,int rwflag,void* userdata);
+ * {@snippet lang = c : * int (*PEM_read_bio_PrivateKey$cb)(char* buf,int size,int rwflag,void* userdata);
  * }
  */
-public interface SSL_CTX_set_default_passwd_cb$cb {
+@SuppressWarnings("javadoc")
+public interface PEM_read_bio_PrivateKey$cb {
+
+    int apply(MemorySegment buf, int size, int rwflag, MemorySegment userdata);
 
     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 buf, int size, int rwflag, MemorySegment userdata);
-
-    MethodHandle UP$MH = openssl_h.upcallHandle(SSL_CTX_set_default_passwd_cb$cb.class, "apply", $DESC);
+    MethodHandle UP$MH = openssl_h.upcallHandle(PEM_read_bio_PrivateKey$cb.class, "apply", $DESC);
 
-    static MemorySegment allocate(SSL_CTX_set_default_passwd_cb$cb fi, Arena scope) {
+    static MemorySegment allocate(PEM_read_bio_PrivateKey$cb fi, Arena scope) {
         return Linker.nativeLinker().upcallStub(UP$MH.bindTo(fi), $DESC, scope);
     }
 
     MethodHandle DOWN$MH = Linker.nativeLinker().downcallHandle($DESC);
 
-    static SSL_CTX_set_default_passwd_cb$cb ofAddress(MemorySegment addr, Arena arena) {
+    static PEM_read_bio_PrivateKey$cb ofAddress(MemorySegment addr, Arena arena) {
         MemorySegment symbol = addr.reinterpret(arena, null);
         return (MemorySegment _buf, int _size, int _rwflag, MemorySegment _userdata) -> {
             try {
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/PEM_read_bio_X509_AUX$cb.java
similarity index 80%
copy from modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/SSL_CTX_set_default_passwd_cb$cb.java
copy to modules/openssl-foreign/src/main/java/org/apache/tomcat/util/openssl/PEM_read_bio_X509_AUX$cb.java
index c286929484..237c99d445 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/PEM_read_bio_X509_AUX$cb.java
@@ -26,25 +26,26 @@ import java.lang.foreign.MemorySegment;
 import java.lang.invoke.MethodHandle;
 
 /**
- * {@snippet lang = c : * int (*SSL_CTX_set_default_passwd_cb$cb)(char* buf,int size,int rwflag,void* userdata);
+ * {@snippet lang = c : * int (*PEM_read_bio_X509_AUX$cb)(char* buf,int size,int rwflag,void* userdata);
  * }
  */
-public interface SSL_CTX_set_default_passwd_cb$cb {
+@SuppressWarnings("javadoc")
+public interface PEM_read_bio_X509_AUX$cb {
+
+    int apply(MemorySegment buf, int size, int rwflag, MemorySegment userdata);
 
     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 buf, int size, int rwflag, MemorySegment userdata);
-
-    MethodHandle UP$MH = openssl_h.upcallHandle(SSL_CTX_set_default_passwd_cb$cb.class, "apply", $DESC);
+    MethodHandle UP$MH = openssl_h.upcallHandle(PEM_read_bio_X509_AUX$cb.class, "apply", $DESC);
 
-    static MemorySegment allocate(SSL_CTX_set_default_passwd_cb$cb fi, Arena scope) {
+    static MemorySegment allocate(PEM_read_bio_X509_AUX$cb fi, Arena scope) {
         return Linker.nativeLinker().upcallStub(UP$MH.bindTo(fi), $DESC, scope);
     }
 
     MethodHandle DOWN$MH = Linker.nativeLinker().downcallHandle($DESC);
 
-    static SSL_CTX_set_default_passwd_cb$cb ofAddress(MemorySegment addr, Arena arena) {
+    static PEM_read_bio_X509_AUX$cb ofAddress(MemorySegment addr, Arena arena) {
         MemorySegment symbol = addr.reinterpret(arena, null);
         return (MemorySegment _buf, int _size, int _rwflag, MemorySegment _userdata) -> {
             try {
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 b871ecf568..df0538dd72 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
@@ -30,6 +30,7 @@ import java.lang.invoke.MethodHandle;
  * : * int (*SSL_CTX_set_alpn_select_cb$cb)(struct ssl_st*,unsigned char**,unsigned char*,unsigned char*,unsigned int,void*);
  * }
  */
+@SuppressWarnings("javadoc")
 public interface SSL_CTX_set_alpn_select_cb$cb {
 
     FunctionDescriptor $DESC = FunctionDescriptor.of(openssl_h.C_INT, openssl_h.C_POINTER, openssl_h.C_POINTER,
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 9c5d69e264..38498ecb23 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
@@ -29,6 +29,7 @@ import java.lang.invoke.MethodHandle;
  * {@snippet lang = c : * int (*SSL_CTX_set_cert_verify_callback$cb)(X509_STORE_CTX*,void*);
  * }
  */
+@SuppressWarnings("javadoc")
 public interface SSL_CTX_set_cert_verify_callback$cb {
 
     FunctionDescriptor $DESC = FunctionDescriptor.of(openssl_h.C_INT, openssl_h.C_POINTER, openssl_h.C_POINTER);
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 c286929484..d0e37471f6 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
@@ -29,6 +29,7 @@ import java.lang.invoke.MethodHandle;
  * {@snippet lang = c : * int (*SSL_CTX_set_default_passwd_cb$cb)(char* buf,int size,int rwflag,void* userdata);
  * }
  */
+@SuppressWarnings("javadoc")
 public interface SSL_CTX_set_default_passwd_cb$cb {
 
     FunctionDescriptor $DESC = FunctionDescriptor.of(openssl_h.C_INT, openssl_h.C_POINTER, openssl_h.C_INT,
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 35b116c817..b92f8938d3 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
@@ -29,6 +29,7 @@ import java.lang.invoke.MethodHandle;
  * {@snippet lang = c : * DH* (*SSL_CTX_set_tmp_dh_callback$dh)(SSL*,int,int);
  * }
  */
+@SuppressWarnings("javadoc")
 public interface SSL_CTX_set_tmp_dh_callback$dh {
 
     FunctionDescriptor $DESC = FunctionDescriptor.of(openssl_h.C_POINTER, openssl_h.C_POINTER, openssl_h.C_INT,
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 cf44ca8da7..ee09e754f4 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
@@ -29,6 +29,7 @@ import java.lang.invoke.MethodHandle;
  * {@snippet lang = c : * int (*SSL_CTX_set_verify$callback)(int,struct x509_store_ctx_st*);
  * }
  */
+@SuppressWarnings("javadoc")
 public interface SSL_CTX_set_verify$callback {
 
     FunctionDescriptor $DESC = FunctionDescriptor.of(openssl_h.C_INT, openssl_h.C_INT, openssl_h.C_POINTER);
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 e23ccd2d7e..1f8849ea51 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
@@ -29,6 +29,7 @@ import java.lang.invoke.MethodHandle;
  * {@snippet lang = c : * void (*SSL_set_info_callback$cb)(SSL*,int,int);
  * }
  */
+@SuppressWarnings("javadoc")
 public interface SSL_set_info_callback$cb {
 
     FunctionDescriptor $DESC = FunctionDescriptor.ofVoid(openssl_h.C_POINTER, openssl_h.C_INT, openssl_h.C_INT);
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 f750562e71..f2348665a6 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
@@ -29,6 +29,7 @@ import java.lang.invoke.MethodHandle;
  * {@snippet lang = c : * int (*SSL_set_verify$callback)(int,struct x509_store_ctx_st*);
  * }
  */
+@SuppressWarnings("javadoc")
 public interface SSL_set_verify$callback {
 
     FunctionDescriptor $DESC = FunctionDescriptor.of(openssl_h.C_INT, openssl_h.C_INT, openssl_h.C_POINTER);
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 fef9a1d9dc..3ee1643805 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
@@ -18,7 +18,6 @@
 // Generated by jextract
 
 package org.apache.tomcat.util.openssl;
-//Generated by jextract
 
 import java.lang.invoke.MethodHandle;
 import java.lang.invoke.MethodHandles;
@@ -26,16 +25,20 @@ import java.lang.foreign.*;
 import static java.lang.foreign.ValueLayout.*;
 
 @SuppressWarnings("javadoc")
-public class openssl_h  {
+public class openssl_h {
+
+    static final SymbolLookup SYMBOL_LOOKUP
+            = SymbolLookup.loaderLookup().or(Linker.nativeLinker().defaultLookup());
 
-    static final SymbolLookup SYMBOL_LOOKUP;
     static {
         System.loadLibrary("ssl");
-    
-    SymbolLookup loaderLookup = SymbolLookup.loaderLookup();
-    Linker linker = Linker.nativeLinker();
-    SYMBOL_LOOKUP = name -> loaderLookup.find(name).or(() -> linker.defaultLookup().find(name));
     }
+
+    openssl_h() {
+        // Suppresses public default constructor, ensuring non-instantiability,
+        // but allows generated subclasses in same package.
+    }
+
     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;
@@ -46,8 +49,55 @@ public class openssl_h  {
     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;
+
+    static MemorySegment findOrThrow(String symbol) {
+        return SYMBOL_LOOKUP.find(symbol)
+            .orElseThrow(() -> new UnsatisfiedLinkError("unresolved symbol: " + symbol));
+    }
+
+    static MemoryLayout[] inferVariadicLayouts(Object[] varargs) {
+        MemoryLayout[] result = new MemoryLayout[varargs.length];
+        for (int i = 0; i < varargs.length; i++) {
+            result[i] = variadicLayout(varargs[i].getClass());
+        }
+        return result;
+    }
+
+    static MethodHandle upcallHandle(Class<?> fi, String name, FunctionDescriptor fdesc) {
+        try {
+            return MethodHandles.lookup().findVirtual(fi, name, fdesc.toMethodType());
+        } catch (ReflectiveOperationException ex) {
+            throw new AssertionError(ex);
+        }
+    }
+
+    static MethodHandle downcallHandleVariadic(String name, FunctionDescriptor baseDesc, MemoryLayout[] variadicLayouts) {
+        FunctionDescriptor variadicDesc = baseDesc.appendArgumentLayouts(variadicLayouts);
+        Linker.Option fva = Linker.Option.firstVariadicArg(baseDesc.argumentLayouts().size());
+        return SYMBOL_LOOKUP.find(name)
+                .map(addr -> Linker.nativeLinker().downcallHandle(addr, variadicDesc, fva)
+                        .asSpreader(Object[].class, variadicLayouts.length))
+                .orElse(null);
+    }
+
+    // Internals only below this point
+
+    private static MemoryLayout variadicLayout(Class<?> c) {
+        // apply default argument promotions per C spec
+        // note that all primitives are boxed, since they are passed through an Object[]
+        if (c == Boolean.class || c == Byte.class || c == Character.class || c == Short.class || c == Integer.class) {
+            return JAVA_INT;
+        } else if (c == Long.class) {
+            return JAVA_LONG;
+        } else if (c == Float.class || c == Double.class) {
+            return JAVA_DOUBLE;
+        } else if (MemorySegment.class.isAssignableFrom(c)) {
+            return ADDRESS;
+        }
+        throw new IllegalArgumentException("Invalid type for ABI: " + c.getTypeName());
+    }
     private static final int BIO_CLOSE = (int)1L;
-    
+
     /**
      * {@snippet lang=c :
      * #define BIO_CLOSE 1
@@ -57,7 +107,7 @@ public class openssl_h  {
         return BIO_CLOSE;
     }
     private static final int BIO_CTRL_RESET = (int)1L;
-    
+
     /**
      * {@snippet lang=c :
      * #define BIO_CTRL_RESET 1
@@ -67,7 +117,7 @@ public class openssl_h  {
         return BIO_CTRL_RESET;
     }
     private static final int BIO_FP_READ = (int)2L;
-    
+
     /**
      * {@snippet lang=c :
      * #define BIO_FP_READ 2
@@ -77,7 +127,7 @@ public class openssl_h  {
         return BIO_FP_READ;
     }
     private static final int BIO_C_SET_FILENAME = (int)108L;
-    
+
     /**
      * {@snippet lang=c :
      * #define BIO_C_SET_FILENAME 108
@@ -87,7 +137,7 @@ public class openssl_h  {
         return BIO_C_SET_FILENAME;
     }
     private static final int NID_info_access = (int)177L;
-    
+
     /**
      * {@snippet lang=c :
      * #define NID_info_access 177
@@ -97,7 +147,7 @@ public class openssl_h  {
         return NID_info_access;
     }
     private static final int X509_FILETYPE_PEM = (int)1L;
-    
+
     /**
      * {@snippet lang=c :
      * #define X509_FILETYPE_PEM 1
@@ -107,7 +157,7 @@ public class openssl_h  {
         return X509_FILETYPE_PEM;
     }
     private static final int X509_L_FILE_LOAD = (int)1L;
-    
+
     /**
      * {@snippet lang=c :
      * #define X509_L_FILE_LOAD 1
@@ -117,7 +167,7 @@ public class openssl_h  {
         return X509_L_FILE_LOAD;
     }
     private static final int X509_L_ADD_DIR = (int)2L;
-    
+
     /**
      * {@snippet lang=c :
      * #define X509_L_ADD_DIR 2
@@ -127,7 +177,7 @@ public class openssl_h  {
         return X509_L_ADD_DIR;
     }
     private static final int X509_V_OK = (int)0L;
-    
+
     /**
      * {@snippet lang=c :
      * #define X509_V_OK 0
@@ -137,7 +187,7 @@ public class openssl_h  {
         return X509_V_OK;
     }
     private static final int X509_V_ERR_CRL_HAS_EXPIRED = (int)12L;
-    
+
     /**
      * {@snippet lang=c :
      * #define X509_V_ERR_CRL_HAS_EXPIRED 12
@@ -147,7 +197,7 @@ public class openssl_h  {
         return X509_V_ERR_CRL_HAS_EXPIRED;
     }
     private static final int X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT = (int)18L;
-    
+
     /**
      * {@snippet lang=c :
      * #define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18
@@ -157,7 +207,7 @@ public class openssl_h  {
         return X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT;
     }
     private static final int X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN = (int)19L;
-    
+
     /**
      * {@snippet lang=c :
      * #define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19
@@ -167,7 +217,7 @@ public class openssl_h  {
         return X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN;
     }
     private static final int X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY = (int)20L;
-    
+
     /**
      * {@snippet lang=c :
      * #define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20
@@ -177,7 +227,7 @@ public class openssl_h  {
         return X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY;
     }
     private static final int X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE = (int)21L;
-    
+
     /**
      * {@snippet lang=c :
      * #define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21
@@ -187,7 +237,7 @@ public class openssl_h  {
         return X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE;
     }
     private static final int X509_V_ERR_CERT_UNTRUSTED = (int)27L;
-    
+
     /**
      * {@snippet lang=c :
      * #define X509_V_ERR_CERT_UNTRUSTED 27
@@ -197,7 +247,7 @@ public class openssl_h  {
         return X509_V_ERR_CERT_UNTRUSTED;
     }
     private static final int X509_V_ERR_APPLICATION_VERIFICATION = (int)50L;
-    
+
     /**
      * {@snippet lang=c :
      * #define X509_V_ERR_APPLICATION_VERIFICATION 50
@@ -207,7 +257,7 @@ public class openssl_h  {
         return X509_V_ERR_APPLICATION_VERIFICATION;
     }
     private static final int X509_V_FLAG_CRL_CHECK = (int)4L;
-    
+
     /**
      * {@snippet lang=c :
      * #define X509_V_FLAG_CRL_CHECK 4
@@ -217,7 +267,7 @@ public class openssl_h  {
         return X509_V_FLAG_CRL_CHECK;
     }
     private static final int X509_V_FLAG_CRL_CHECK_ALL = (int)8L;
-    
+
     /**
      * {@snippet lang=c :
      * #define X509_V_FLAG_CRL_CHECK_ALL 8
@@ -227,7 +277,7 @@ public class openssl_h  {
         return X509_V_FLAG_CRL_CHECK_ALL;
     }
     private static final int PEM_R_NO_START_LINE = (int)108L;
-    
+
     /**
      * {@snippet lang=c :
      * #define PEM_R_NO_START_LINE 108
@@ -237,7 +287,7 @@ public class openssl_h  {
         return PEM_R_NO_START_LINE;
     }
     private static final int SSL3_VERSION = (int)768L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL3_VERSION 768
@@ -247,7 +297,7 @@ public class openssl_h  {
         return SSL3_VERSION;
     }
     private static final int TLS1_VERSION = (int)769L;
-    
+
     /**
      * {@snippet lang=c :
      * #define TLS1_VERSION 769
@@ -257,7 +307,7 @@ public class openssl_h  {
         return TLS1_VERSION;
     }
     private static final int TLS1_1_VERSION = (int)770L;
-    
+
     /**
      * {@snippet lang=c :
      * #define TLS1_1_VERSION 770
@@ -267,7 +317,7 @@ public class openssl_h  {
         return TLS1_1_VERSION;
     }
     private static final int TLS1_2_VERSION = (int)771L;
-    
+
     /**
      * {@snippet lang=c :
      * #define TLS1_2_VERSION 771
@@ -277,7 +327,7 @@ public class openssl_h  {
         return TLS1_2_VERSION;
     }
     private static final int TLS1_3_VERSION = (int)772L;
-    
+
     /**
      * {@snippet lang=c :
      * #define TLS1_3_VERSION 772
@@ -287,7 +337,7 @@ public class openssl_h  {
         return TLS1_3_VERSION;
     }
     private static final int SSL_SENT_SHUTDOWN = (int)1L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_SENT_SHUTDOWN 1
@@ -297,7 +347,7 @@ public class openssl_h  {
         return SSL_SENT_SHUTDOWN;
     }
     private static final int SSL_RECEIVED_SHUTDOWN = (int)2L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_RECEIVED_SHUTDOWN 2
@@ -307,7 +357,7 @@ public class openssl_h  {
         return SSL_RECEIVED_SHUTDOWN;
     }
     private static final int SSL_OP_SINGLE_ECDH_USE = (int)0L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_SINGLE_ECDH_USE 0
@@ -317,7 +367,7 @@ public class openssl_h  {
         return SSL_OP_SINGLE_ECDH_USE;
     }
     private static final int SSL_OP_SINGLE_DH_USE = (int)0L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_SINGLE_DH_USE 0
@@ -327,7 +377,7 @@ public class openssl_h  {
         return SSL_OP_SINGLE_DH_USE;
     }
     private static final int SSL_OP_NO_SSLv2 = (int)0L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_NO_SSLv2 0
@@ -337,7 +387,7 @@ public class openssl_h  {
         return SSL_OP_NO_SSLv2;
     }
     private static final int SSL_CONF_FLAG_FILE = (int)2L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CONF_FLAG_FILE 2
@@ -347,7 +397,7 @@ public class openssl_h  {
         return SSL_CONF_FLAG_FILE;
     }
     private static final int SSL_CONF_FLAG_SERVER = (int)8L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CONF_FLAG_SERVER 8
@@ -357,7 +407,7 @@ public class openssl_h  {
         return SSL_CONF_FLAG_SERVER;
     }
     private static final int SSL_CONF_FLAG_SHOW_ERRORS = (int)16L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CONF_FLAG_SHOW_ERRORS 16
@@ -367,7 +417,7 @@ public class openssl_h  {
         return SSL_CONF_FLAG_SHOW_ERRORS;
     }
     private static final int SSL_CONF_FLAG_CERTIFICATE = (int)32L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CONF_FLAG_CERTIFICATE 32
@@ -377,7 +427,7 @@ public class openssl_h  {
         return SSL_CONF_FLAG_CERTIFICATE;
     }
     private static final int SSL_CONF_TYPE_UNKNOWN = (int)0L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CONF_TYPE_UNKNOWN 0
@@ -387,7 +437,7 @@ public class openssl_h  {
         return SSL_CONF_TYPE_UNKNOWN;
     }
     private static final int SSL_CONF_TYPE_FILE = (int)2L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CONF_TYPE_FILE 2
@@ -397,7 +447,7 @@ public class openssl_h  {
         return SSL_CONF_TYPE_FILE;
     }
     private static final int SSL_CONF_TYPE_DIR = (int)3L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CONF_TYPE_DIR 3
@@ -407,7 +457,7 @@ public class openssl_h  {
         return SSL_CONF_TYPE_DIR;
     }
     private static final int SSL_SESS_CACHE_OFF = (int)0L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_SESS_CACHE_OFF 0
@@ -417,7 +467,7 @@ public class openssl_h  {
         return SSL_SESS_CACHE_OFF;
     }
     private static final int SSL_SESS_CACHE_SERVER = (int)2L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_SESS_CACHE_SERVER 2
@@ -427,7 +477,7 @@ public class openssl_h  {
         return SSL_SESS_CACHE_SERVER;
     }
     private static final int SSL2_VERSION = (int)2L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL2_VERSION 2
@@ -437,7 +487,7 @@ public class openssl_h  {
         return SSL2_VERSION;
     }
     private static final int SSL_TLSEXT_ERR_OK = (int)0L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_TLSEXT_ERR_OK 0
@@ -447,7 +497,7 @@ public class openssl_h  {
         return SSL_TLSEXT_ERR_OK;
     }
     private static final int SSL_TLSEXT_ERR_NOACK = (int)3L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_TLSEXT_ERR_NOACK 3
@@ -457,7 +507,7 @@ public class openssl_h  {
         return SSL_TLSEXT_ERR_NOACK;
     }
     private static final int SSL_CB_HANDSHAKE_DONE = (int)32L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CB_HANDSHAKE_DONE 32
@@ -467,7 +517,7 @@ public class openssl_h  {
         return SSL_CB_HANDSHAKE_DONE;
     }
     private static final int SSL_VERIFY_NONE = (int)0L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_VERIFY_NONE 0
@@ -477,7 +527,7 @@ public class openssl_h  {
         return SSL_VERIFY_NONE;
     }
     private static final int SSL_VERIFY_PEER = (int)1L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_VERIFY_PEER 1
@@ -487,7 +537,7 @@ public class openssl_h  {
         return SSL_VERIFY_PEER;
     }
     private static final int SSL_VERIFY_FAIL_IF_NO_PEER_CERT = (int)2L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 2
@@ -497,7 +547,7 @@ public class openssl_h  {
         return SSL_VERIFY_FAIL_IF_NO_PEER_CERT;
     }
     private static final int SSL_ERROR_NONE = (int)0L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_ERROR_NONE 0
@@ -507,7 +557,7 @@ public class openssl_h  {
         return SSL_ERROR_NONE;
     }
     private static final int SSL_CTRL_SET_TMP_DH = (int)3L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SET_TMP_DH 3
@@ -517,7 +567,7 @@ public class openssl_h  {
         return SSL_CTRL_SET_TMP_DH;
     }
     private static final int SSL_CTRL_SET_TMP_ECDH = (int)4L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SET_TMP_ECDH 4
@@ -527,7 +577,7 @@ public class openssl_h  {
         return SSL_CTRL_SET_TMP_ECDH;
     }
     private static final int SSL_CTRL_SESS_NUMBER = (int)20L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SESS_NUMBER 20
@@ -537,7 +587,7 @@ public class openssl_h  {
         return SSL_CTRL_SESS_NUMBER;
     }
     private static final int SSL_CTRL_SESS_CONNECT = (int)21L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SESS_CONNECT 21
@@ -547,7 +597,7 @@ public class openssl_h  {
         return SSL_CTRL_SESS_CONNECT;
     }
     private static final int SSL_CTRL_SESS_CONNECT_GOOD = (int)22L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SESS_CONNECT_GOOD 22
@@ -557,7 +607,7 @@ public class openssl_h  {
         return SSL_CTRL_SESS_CONNECT_GOOD;
     }
     private static final int SSL_CTRL_SESS_CONNECT_RENEGOTIATE = (int)23L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23
@@ -567,7 +617,7 @@ public class openssl_h  {
         return SSL_CTRL_SESS_CONNECT_RENEGOTIATE;
     }
     private static final int SSL_CTRL_SESS_ACCEPT = (int)24L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SESS_ACCEPT 24
@@ -577,7 +627,7 @@ public class openssl_h  {
         return SSL_CTRL_SESS_ACCEPT;
     }
     private static final int SSL_CTRL_SESS_ACCEPT_GOOD = (int)25L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SESS_ACCEPT_GOOD 25
@@ -587,7 +637,7 @@ public class openssl_h  {
         return SSL_CTRL_SESS_ACCEPT_GOOD;
     }
     private static final int SSL_CTRL_SESS_ACCEPT_RENEGOTIATE = (int)26L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26
@@ -597,7 +647,7 @@ public class openssl_h  {
         return SSL_CTRL_SESS_ACCEPT_RENEGOTIATE;
     }
     private static final int SSL_CTRL_SESS_HIT = (int)27L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SESS_HIT 27
@@ -607,7 +657,7 @@ public class openssl_h  {
         return SSL_CTRL_SESS_HIT;
     }
     private static final int SSL_CTRL_SESS_CB_HIT = (int)28L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SESS_CB_HIT 28
@@ -617,7 +667,7 @@ public class openssl_h  {
         return SSL_CTRL_SESS_CB_HIT;
     }
     private static final int SSL_CTRL_SESS_MISSES = (int)29L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SESS_MISSES 29
@@ -627,7 +677,7 @@ public class openssl_h  {
         return SSL_CTRL_SESS_MISSES;
     }
     private static final int SSL_CTRL_SESS_TIMEOUTS = (int)30L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SESS_TIMEOUTS 30
@@ -637,7 +687,7 @@ public class openssl_h  {
         return SSL_CTRL_SESS_TIMEOUTS;
     }
     private static final int SSL_CTRL_SESS_CACHE_FULL = (int)31L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SESS_CACHE_FULL 31
@@ -647,7 +697,7 @@ public class openssl_h  {
         return SSL_CTRL_SESS_CACHE_FULL;
     }
     private static final int SSL_CTRL_SET_SESS_CACHE_SIZE = (int)42L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SET_SESS_CACHE_SIZE 42
@@ -657,7 +707,7 @@ public class openssl_h  {
         return SSL_CTRL_SET_SESS_CACHE_SIZE;
     }
     private static final int SSL_CTRL_GET_SESS_CACHE_SIZE = (int)43L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_GET_SESS_CACHE_SIZE 43
@@ -667,7 +717,7 @@ public class openssl_h  {
         return SSL_CTRL_GET_SESS_CACHE_SIZE;
     }
     private static final int SSL_CTRL_SET_SESS_CACHE_MODE = (int)44L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SET_SESS_CACHE_MODE 44
@@ -677,7 +727,7 @@ public class openssl_h  {
         return SSL_CTRL_SET_SESS_CACHE_MODE;
     }
     private static final int SSL_CTRL_GET_SESS_CACHE_MODE = (int)45L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_GET_SESS_CACHE_MODE 45
@@ -687,7 +737,7 @@ public class openssl_h  {
         return SSL_CTRL_GET_SESS_CACHE_MODE;
     }
     private static final int SSL_CTRL_SET_TLSEXT_TICKET_KEYS = (int)59L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59
@@ -697,7 +747,7 @@ public class openssl_h  {
         return SSL_CTRL_SET_TLSEXT_TICKET_KEYS;
     }
     private static final int SSL_CTRL_CHAIN_CERT = (int)89L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_CHAIN_CERT 89
@@ -707,7 +757,7 @@ public class openssl_h  {
         return SSL_CTRL_CHAIN_CERT;
     }
     private static final int SSL_CTRL_SET_GROUPS = (int)91L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SET_GROUPS 91
@@ -717,7 +767,7 @@ public class openssl_h  {
         return SSL_CTRL_SET_GROUPS;
     }
     private static final int SSL_CTRL_SET_DH_AUTO = (int)118L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SET_DH_AUTO 118
@@ -727,7 +777,7 @@ public class openssl_h  {
         return SSL_CTRL_SET_DH_AUTO;
     }
     private static final int SSL_CTRL_SET_MIN_PROTO_VERSION = (int)123L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SET_MIN_PROTO_VERSION 123
@@ -737,7 +787,7 @@ public class openssl_h  {
         return SSL_CTRL_SET_MIN_PROTO_VERSION;
     }
     private static final int SSL_CTRL_SET_MAX_PROTO_VERSION = (int)124L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_CTRL_SET_MAX_PROTO_VERSION 124
@@ -747,7 +797,7 @@ public class openssl_h  {
         return SSL_CTRL_SET_MAX_PROTO_VERSION;
     }
     private static final int ERR_REASON_MASK = (int)8388607L;
-    
+
     /**
      * {@snippet lang=c :
      * #define ERR_REASON_MASK 8388607
@@ -757,7 +807,7 @@ public class openssl_h  {
         return ERR_REASON_MASK;
     }
     private static final int OCSP_RESPONSE_STATUS_SUCCESSFUL = (int)0L;
-    
+
     /**
      * {@snippet lang=c :
      * #define OCSP_RESPONSE_STATUS_SUCCESSFUL 0
@@ -767,7 +817,7 @@ public class openssl_h  {
         return OCSP_RESPONSE_STATUS_SUCCESSFUL;
     }
     private static final int V_OCSP_CERTSTATUS_GOOD = (int)0L;
-    
+
     /**
      * {@snippet lang=c :
      * #define V_OCSP_CERTSTATUS_GOOD 0
@@ -777,7 +827,7 @@ public class openssl_h  {
         return V_OCSP_CERTSTATUS_GOOD;
     }
     private static final int V_OCSP_CERTSTATUS_REVOKED = (int)1L;
-    
+
     /**
      * {@snippet lang=c :
      * #define V_OCSP_CERTSTATUS_REVOKED 1
@@ -787,7 +837,7 @@ public class openssl_h  {
         return V_OCSP_CERTSTATUS_REVOKED;
     }
     private static final int V_OCSP_CERTSTATUS_UNKNOWN = (int)2L;
-    
+
     /**
      * {@snippet lang=c :
      * #define V_OCSP_CERTSTATUS_UNKNOWN 2
@@ -807,14 +857,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OPENSSL_sk_num"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int OPENSSL_sk_num(MemorySegment x0) {
         var mh$ = OPENSSL_sk_num$MH();
         try {
@@ -835,14 +885,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OPENSSL_sk_value"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment OPENSSL_sk_value(MemorySegment x0, int x1) {
         var mh$ = OPENSSL_sk_value$MH();
         try {
@@ -860,14 +910,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_LONG        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OpenSSL_version_num"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long OpenSSL_version_num() {
         var mh$ = OpenSSL_version_num$MH();
         try {
@@ -887,14 +937,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OpenSSL_version"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment OpenSSL_version(int type) {
         var mh$ = OpenSSL_version$MH();
         try {
@@ -915,14 +965,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("CRYPTO_free"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void CRYPTO_free(MemorySegment ptr, MemorySegment file, int line) {
         var mh$ = CRYPTO_free$MH();
         try {
@@ -942,14 +992,14 @@ public class openssl_h  {
                 openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BIO_ctrl_pending"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long BIO_ctrl_pending(MemorySegment b) {
         var mh$ = BIO_ctrl_pending$MH();
         try {
@@ -967,14 +1017,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BIO_s_file"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BIO_s_file() {
         var mh$ = BIO_s_file$MH();
         try {
@@ -995,14 +1045,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BIO_new_file"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BIO_new_file(MemorySegment filename, MemorySegment mode) {
         var mh$ = BIO_new_file$MH();
         try {
@@ -1022,14 +1072,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BIO_new"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BIO_new(MemorySegment type) {
         var mh$ = BIO_new$MH();
         try {
@@ -1049,14 +1099,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BIO_free"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int BIO_free(MemorySegment a) {
         var mh$ = BIO_free$MH();
         try {
@@ -1078,14 +1128,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BIO_read"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int BIO_read(MemorySegment b, MemorySegment data, int dlen) {
         var mh$ = BIO_read$MH();
         try {
@@ -1107,14 +1157,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BIO_write"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int BIO_write(MemorySegment b, MemorySegment data, int dlen) {
         var mh$ = BIO_write$MH();
         try {
@@ -1137,14 +1187,14 @@ public class openssl_h  {
                 openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BIO_ctrl"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long BIO_ctrl(MemorySegment bp, int cmd, long larg, MemorySegment parg) {
         var mh$ = BIO_ctrl$MH();
         try {
@@ -1162,14 +1212,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BIO_s_mem"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BIO_s_mem() {
         var mh$ = BIO_s_mem$MH();
         try {
@@ -1187,14 +1237,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BIO_s_bio"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BIO_s_bio() {
         var mh$ = BIO_s_bio$MH();
         try {
@@ -1217,14 +1267,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_LONG
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BIO_new_bio_pair"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int BIO_new_bio_pair(MemorySegment bio1, long writebuf1, MemorySegment bio2, long writebuf2) {
         var mh$ = BIO_new_bio_pair$MH();
         try {
@@ -1242,14 +1292,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BN_new"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BN_new() {
         var mh$ = BN_new$MH();
         try {
@@ -1270,14 +1320,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_LONG
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BN_set_word"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int BN_set_word(MemorySegment a, long w) {
         var mh$ = BN_set_word$MH();
         try {
@@ -1297,14 +1347,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BN_get_rfc2409_prime_768"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BN_get_rfc2409_prime_768(MemorySegment bn) {
         var mh$ = BN_get_rfc2409_prime_768$MH();
         try {
@@ -1324,14 +1374,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BN_get_rfc2409_prime_1024"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BN_get_rfc2409_prime_1024(MemorySegment bn) {
         var mh$ = BN_get_rfc2409_prime_1024$MH();
         try {
@@ -1351,14 +1401,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BN_get_rfc3526_prime_1536"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BN_get_rfc3526_prime_1536(MemorySegment bn) {
         var mh$ = BN_get_rfc3526_prime_1536$MH();
         try {
@@ -1378,14 +1428,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BN_get_rfc3526_prime_2048"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BN_get_rfc3526_prime_2048(MemorySegment bn) {
         var mh$ = BN_get_rfc3526_prime_2048$MH();
         try {
@@ -1405,14 +1455,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BN_get_rfc3526_prime_3072"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BN_get_rfc3526_prime_3072(MemorySegment bn) {
         var mh$ = BN_get_rfc3526_prime_3072$MH();
         try {
@@ -1432,14 +1482,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BN_get_rfc3526_prime_4096"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BN_get_rfc3526_prime_4096(MemorySegment bn) {
         var mh$ = BN_get_rfc3526_prime_4096$MH();
         try {
@@ -1459,14 +1509,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BN_get_rfc3526_prime_6144"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BN_get_rfc3526_prime_6144(MemorySegment bn) {
         var mh$ = BN_get_rfc3526_prime_6144$MH();
         try {
@@ -1486,14 +1536,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("BN_get_rfc3526_prime_8192"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment BN_get_rfc3526_prime_8192(MemorySegment bn) {
         var mh$ = BN_get_rfc3526_prime_8192$MH();
         try {
@@ -1513,14 +1563,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ASN1_STRING_length"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int ASN1_STRING_length(MemorySegment x) {
         var mh$ = ASN1_STRING_length$MH();
         try {
@@ -1540,14 +1590,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ASN1_STRING_get0_data"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment ASN1_STRING_get0_data(MemorySegment x) {
         var mh$ = ASN1_STRING_get0_data$MH();
         try {
@@ -1567,14 +1617,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("EVP_MD_get0_provider"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment EVP_MD_get0_provider(MemorySegment md) {
         var mh$ = EVP_MD_get0_provider$MH();
         try {
@@ -1596,14 +1646,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("EVP_MD_fetch"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment EVP_MD_fetch(MemorySegment ctx, MemorySegment algorithm, MemorySegment properties) {
         var mh$ = EVP_MD_fetch$MH();
         try {
@@ -1622,14 +1672,14 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("EVP_MD_free"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void EVP_MD_free(MemorySegment md) {
         var mh$ = EVP_MD_free$MH();
         try {
@@ -1649,14 +1699,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("EVP_PKEY_get_base_id"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int EVP_PKEY_get_base_id(MemorySegment pkey) {
         var mh$ = EVP_PKEY_get_base_id$MH();
         try {
@@ -1676,14 +1726,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("EVP_PKEY_get_bits"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int EVP_PKEY_get_bits(MemorySegment pkey) {
         var mh$ = EVP_PKEY_get_bits$MH();
         try {
@@ -1702,14 +1752,14 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("EVP_PKEY_free"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void EVP_PKEY_free(MemorySegment pkey) {
         var mh$ = EVP_PKEY_free$MH();
         try {
@@ -1728,14 +1778,14 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("EC_GROUP_free"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void EC_GROUP_free(MemorySegment group) {
         var mh$ = EC_GROUP_free$MH();
         try {
@@ -1755,14 +1805,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("EC_GROUP_get_curve_name"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int EC_GROUP_get_curve_name(MemorySegment group) {
         var mh$ = EC_GROUP_get_curve_name$MH();
         try {
@@ -1784,14 +1834,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_LONG
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("d2i_ECPKParameters"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment d2i_ECPKParameters(MemorySegment x0, MemorySegment in, long len) {
         var mh$ = d2i_ECPKParameters$MH();
         try {
@@ -1811,14 +1861,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("EC_KEY_new_by_curve_name"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment EC_KEY_new_by_curve_name(int nid) {
         var mh$ = EC_KEY_new_by_curve_name$MH();
         try {
@@ -1837,14 +1887,14 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("EC_KEY_free"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void EC_KEY_free(MemorySegment key) {
         var mh$ = EC_KEY_free$MH();
         try {
@@ -1862,14 +1912,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("DH_new"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment DH_new() {
         var mh$ = DH_new$MH();
         try {
@@ -1888,14 +1938,14 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("DH_free"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void DH_free(MemorySegment dh) {
         var mh$ = DH_free$MH();
         try {
@@ -1918,14 +1968,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("DH_set0_pqg"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int DH_set0_pqg(MemorySegment dh, MemorySegment p, MemorySegment q, MemorySegment g) {
         var mh$ = DH_set0_pqg$MH();
         try {
@@ -1946,14 +1996,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_LONG
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_STORE_set_flags"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int X509_STORE_set_flags(MemorySegment ctx, long flags) {
         var mh$ = X509_STORE_set_flags$MH();
         try {
@@ -1973,14 +2023,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_STORE_CTX_get0_untrusted"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment X509_STORE_CTX_get0_untrusted(MemorySegment ctx) {
         var mh$ = X509_STORE_CTX_get0_untrusted$MH();
         try {
@@ -2001,14 +2051,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_STORE_add_lookup"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment X509_STORE_add_lookup(MemorySegment v, MemorySegment m) {
         var mh$ = X509_STORE_add_lookup$MH();
         try {
@@ -2026,14 +2076,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_LOOKUP_hash_dir"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment X509_LOOKUP_hash_dir() {
         var mh$ = X509_LOOKUP_hash_dir$MH();
         try {
@@ -2051,14 +2101,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_LOOKUP_file"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment X509_LOOKUP_file() {
         var mh$ = X509_LOOKUP_file$MH();
         try {
@@ -2082,14 +2132,14 @@ public class openssl_h  {
                 openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_LOOKUP_ctrl"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int X509_LOOKUP_ctrl(MemorySegment ctx, int cmd, MemorySegment argc, long argl, MemorySegment ret) {
         var mh$ = X509_LOOKUP_ctrl$MH();
         try {
@@ -2110,14 +2160,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_STORE_CTX_get_ex_data"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment X509_STORE_CTX_get_ex_data(MemorySegment ctx, int idx) {
         var mh$ = X509_STORE_CTX_get_ex_data$MH();
         try {
@@ -2137,14 +2187,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_STORE_CTX_get_error"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int X509_STORE_CTX_get_error(MemorySegment ctx) {
         var mh$ = X509_STORE_CTX_get_error$MH();
         try {
@@ -2164,14 +2214,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_STORE_CTX_set_error"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void X509_STORE_CTX_set_error(MemorySegment ctx, int s) {
         var mh$ = X509_STORE_CTX_set_error$MH();
         try {
@@ -2191,14 +2241,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_STORE_CTX_get_error_depth"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int X509_STORE_CTX_get_error_depth(MemorySegment ctx) {
         var mh$ = X509_STORE_CTX_get_error_depth$MH();
         try {
@@ -2218,14 +2268,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_STORE_CTX_get_current_cert"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment X509_STORE_CTX_get_current_cert(MemorySegment ctx) {
         var mh$ = X509_STORE_CTX_get_current_cert$MH();
         try {
@@ -2245,14 +2295,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_STORE_CTX_get0_current_issuer"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment X509_STORE_CTX_get0_current_issuer(MemorySegment ctx) {
         var mh$ = X509_STORE_CTX_get0_current_issuer$MH();
         try {
@@ -2273,14 +2323,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("d2i_X509_bio"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment d2i_X509_bio(MemorySegment bp, MemorySegment x509) {
         var mh$ = d2i_X509_bio$MH();
         try {
@@ -2299,14 +2349,14 @@ public class openssl_h  {
             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 {
@@ -2317,7 +2367,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * X509* d2i_X509(X509* a, unsigned char** in, long len);
+     * X509* d2i_X509(X509** a, unsigned char** in, long len);
      * }
      */
     public static MethodHandle d2i_X509$MH() {
@@ -2328,14 +2378,14 @@ public class openssl_h  {
                 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 {
@@ -2356,14 +2406,14 @@ public class openssl_h  {
                 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 {
@@ -2385,14 +2435,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_get_ext_by_NID"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int X509_get_ext_by_NID(MemorySegment x, int nid, int lastpos) {
         var mh$ = X509_get_ext_by_NID$MH();
         try {
@@ -2413,14 +2463,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_get_ext"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment X509_get_ext(MemorySegment x, int loc) {
         var mh$ = X509_get_ext$MH();
         try {
@@ -2440,14 +2490,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_EXTENSION_get_data"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment X509_EXTENSION_get_data(MemorySegment ne) {
         var mh$ = X509_EXTENSION_get_data$MH();
         try {
@@ -2472,14 +2522,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("PEM_ASN1_read_bio"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment PEM_ASN1_read_bio(MemorySegment d2i, MemorySegment name, MemorySegment bp, MemorySegment x, MemorySegment cb, MemorySegment u) {
         var mh$ = PEM_ASN1_read_bio$MH();
         try {
@@ -2502,14 +2552,14 @@ public class openssl_h  {
                 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 {
@@ -2532,14 +2582,14 @@ public class openssl_h  {
                 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 {
@@ -2562,14 +2612,14 @@ public class openssl_h  {
                 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 {
@@ -2592,14 +2642,14 @@ public class openssl_h  {
                 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 {
@@ -2620,14 +2670,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("PEM_read_bio_Parameters"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment PEM_read_bio_Parameters(MemorySegment bp, MemorySegment x) {
         var mh$ = PEM_read_bio_Parameters$MH();
         try {
@@ -2647,14 +2697,14 @@ public class openssl_h  {
                 openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_get_options"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long SSL_CTX_get_options(MemorySegment ctx) {
         var mh$ = SSL_CTX_get_options$MH();
         try {
@@ -2674,14 +2724,14 @@ public class openssl_h  {
                 openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_get_options"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long SSL_get_options(MemorySegment s) {
         var mh$ = SSL_get_options$MH();
         try {
@@ -2702,14 +2752,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_LONG
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_clear_options"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long SSL_CTX_clear_options(MemorySegment ctx, long op) {
         var mh$ = SSL_CTX_clear_options$MH();
         try {
@@ -2730,14 +2780,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_LONG
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_set_options"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long SSL_CTX_set_options(MemorySegment ctx, long op) {
         var mh$ = SSL_CTX_set_options$MH();
         try {
@@ -2758,14 +2808,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_LONG
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_set_options"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long SSL_set_options(MemorySegment s, long op) {
         var mh$ = SSL_set_options$MH();
         try {
@@ -2786,14 +2836,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_set_alpn_select_cb"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_CTX_set_alpn_select_cb(MemorySegment ctx, MemorySegment cb, MemorySegment arg) {
         var mh$ = SSL_CTX_set_alpn_select_cb$MH();
         try {
@@ -2814,14 +2864,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_get0_alpn_selected"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_get0_alpn_selected(MemorySegment ssl, MemorySegment data, MemorySegment len) {
         var mh$ = SSL_get0_alpn_selected$MH();
         try {
@@ -2841,14 +2891,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_in_init"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_in_init(MemorySegment s) {
         var mh$ = SSL_in_init$MH();
         try {
@@ -2869,14 +2919,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_set0_tmp_dh_pkey"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CTX_set0_tmp_dh_pkey(MemorySegment ctx, MemorySegment dhpkey) {
         var mh$ = SSL_CTX_set0_tmp_dh_pkey$MH();
         try {
@@ -2897,14 +2947,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_set_cipher_list"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CTX_set_cipher_list(MemorySegment x0, MemorySegment str) {
         var mh$ = SSL_CTX_set_cipher_list$MH();
         try {
@@ -2924,14 +2974,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_new"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_CTX_new(MemorySegment meth) {
         var mh$ = SSL_CTX_new$MH();
         try {
@@ -2950,14 +3000,14 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_free"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_CTX_free(MemorySegment x0) {
         var mh$ = SSL_CTX_free$MH();
         try {
@@ -2978,14 +3028,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_LONG
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_set_timeout"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long SSL_CTX_set_timeout(MemorySegment ctx, long t) {
         var mh$ = SSL_CTX_set_timeout$MH();
         try {
@@ -3005,14 +3055,14 @@ public class openssl_h  {
                 openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_get_timeout"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long SSL_CTX_get_timeout(MemorySegment ctx) {
         var mh$ = SSL_CTX_get_timeout$MH();
         try {
@@ -3032,14 +3082,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_get_cert_store"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_CTX_get_cert_store(MemorySegment x0) {
         var mh$ = SSL_CTX_get_cert_store$MH();
         try {
@@ -3059,14 +3109,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_get_current_cipher"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_get_current_cipher(MemorySegment s) {
         var mh$ = SSL_get_current_cipher$MH();
         try {
@@ -3086,14 +3136,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CIPHER_get_name"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_CIPHER_get_name(MemorySegment c) {
         var mh$ = SSL_CIPHER_get_name$MH();
         try {
@@ -3113,14 +3163,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CIPHER_get_kx_nid"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CIPHER_get_kx_nid(MemorySegment c) {
         var mh$ = SSL_CIPHER_get_kx_nid$MH();
         try {
@@ -3140,14 +3190,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CIPHER_get_auth_nid"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CIPHER_get_auth_nid(MemorySegment c) {
         var mh$ = SSL_CIPHER_get_auth_nid$MH();
         try {
@@ -3167,14 +3217,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_pending"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_pending(MemorySegment s) {
         var mh$ = SSL_pending$MH();
         try {
@@ -3195,14 +3245,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_set_bio"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_set_bio(MemorySegment s, MemorySegment rbio, MemorySegment wbio) {
         var mh$ = SSL_set_bio$MH();
         try {
@@ -3223,14 +3273,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_set_cipher_list"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_set_cipher_list(MemorySegment s, MemorySegment str) {
         var mh$ = SSL_set_cipher_list$MH();
         try {
@@ -3251,14 +3301,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_set_ciphersuites"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CTX_set_ciphersuites(MemorySegment ctx, MemorySegment str) {
         var mh$ = SSL_CTX_set_ciphersuites$MH();
         try {
@@ -3279,14 +3329,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_set_verify"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_set_verify(MemorySegment s, int mode, MemorySegment callback) {
         var mh$ = SSL_set_verify$MH();
         try {
@@ -3307,14 +3357,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_use_certificate_chain_file"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CTX_use_certificate_chain_file(MemorySegment ctx, MemorySegment file) {
         var mh$ = SSL_CTX_use_certificate_chain_file$MH();
         try {
@@ -3334,14 +3384,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_load_client_CA_file"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_load_client_CA_file(MemorySegment file) {
         var mh$ = SSL_load_client_CA_file$MH();
         try {
@@ -3362,14 +3412,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_add_file_cert_subjects_to_stack"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_add_file_cert_subjects_to_stack(MemorySegment stackCAs, MemorySegment file) {
         var mh$ = SSL_add_file_cert_subjects_to_stack$MH();
         try {
@@ -3389,14 +3439,14 @@ public class openssl_h  {
                 openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_SESSION_get_time"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long SSL_SESSION_get_time(MemorySegment s) {
         var mh$ = SSL_SESSION_get_time$MH();
         try {
@@ -3417,14 +3467,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_SESSION_get_id"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_SESSION_get_id(MemorySegment s, MemorySegment len) {
         var mh$ = SSL_SESSION_get_id$MH();
         try {
@@ -3444,14 +3494,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_get1_peer_certificate"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_get1_peer_certificate(MemorySegment s) {
         var mh$ = SSL_get1_peer_certificate$MH();
         try {
@@ -3471,14 +3521,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_get_peer_cert_chain"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_get_peer_cert_chain(MemorySegment s) {
         var mh$ = SSL_get_peer_cert_chain$MH();
         try {
@@ -3499,14 +3549,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_set_verify"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_CTX_set_verify(MemorySegment ctx, int mode, MemorySegment callback) {
         var mh$ = SSL_CTX_set_verify$MH();
         try {
@@ -3527,14 +3577,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_set_cert_verify_callback"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_CTX_set_cert_verify_callback(MemorySegment ctx, MemorySegment cb, MemorySegment arg) {
         var mh$ = SSL_CTX_set_cert_verify_callback$MH();
         try {
@@ -3555,14 +3605,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_use_PrivateKey"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CTX_use_PrivateKey(MemorySegment ctx, MemorySegment pkey) {
         var mh$ = SSL_CTX_use_PrivateKey$MH();
         try {
@@ -3583,14 +3633,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_use_certificate"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CTX_use_certificate(MemorySegment ctx, MemorySegment x) {
         var mh$ = SSL_CTX_use_certificate$MH();
         try {
@@ -3610,14 +3660,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_set_default_passwd_cb"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_CTX_set_default_passwd_cb(MemorySegment ctx, MemorySegment cb) {
         var mh$ = SSL_CTX_set_default_passwd_cb$MH();
         try {
@@ -3637,14 +3687,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_check_private_key"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CTX_check_private_key(MemorySegment ctx) {
         var mh$ = SSL_CTX_check_private_key$MH();
         try {
@@ -3666,14 +3716,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_set_session_id_context"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CTX_set_session_id_context(MemorySegment ctx, MemorySegment sid_ctx, int sid_ctx_len) {
         var mh$ = SSL_CTX_set_session_id_context$MH();
         try {
@@ -3693,14 +3743,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_new"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_new(MemorySegment ctx) {
         var mh$ = SSL_new$MH();
         try {
@@ -3719,14 +3769,14 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_free"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_free(MemorySegment ssl) {
         var mh$ = SSL_free$MH();
         try {
@@ -3748,14 +3798,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_read"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_read(MemorySegment ssl, MemorySegment buf, int num) {
         var mh$ = SSL_read$MH();
         try {
@@ -3777,14 +3827,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_write"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_write(MemorySegment ssl, MemorySegment buf, int num) {
         var mh$ = SSL_write$MH();
         try {
@@ -3807,14 +3857,14 @@ public class openssl_h  {
                 openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_ctrl"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long SSL_CTX_ctrl(MemorySegment ctx, int cmd, long larg, MemorySegment parg) {
         var mh$ = SSL_CTX_ctrl$MH();
         try {
@@ -3834,14 +3884,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_get_version"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_get_version(MemorySegment s) {
         var mh$ = SSL_get_version$MH();
         try {
@@ -3859,14 +3909,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("TLS_server_method"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment TLS_server_method() {
         var mh$ = TLS_server_method$MH();
         try {
@@ -3886,14 +3936,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_get_ciphers"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_get_ciphers(MemorySegment s) {
         var mh$ = SSL_get_ciphers$MH();
         try {
@@ -3913,14 +3963,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_get_ciphers"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_CTX_get_ciphers(MemorySegment ctx) {
         var mh$ = SSL_CTX_get_ciphers$MH();
         try {
@@ -3940,14 +3990,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_do_handshake"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_do_handshake(MemorySegment s) {
         var mh$ = SSL_do_handshake$MH();
         try {
@@ -3967,14 +4017,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_renegotiate"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_renegotiate(MemorySegment s) {
         var mh$ = SSL_renegotiate$MH();
         try {
@@ -3994,14 +4044,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_renegotiate_pending"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_renegotiate_pending(MemorySegment s) {
         var mh$ = SSL_renegotiate_pending$MH();
         try {
@@ -4021,14 +4071,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_shutdown"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_shutdown(MemorySegment s) {
         var mh$ = SSL_shutdown$MH();
         try {
@@ -4048,14 +4098,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_verify_client_post_handshake"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_verify_client_post_handshake(MemorySegment s) {
         var mh$ = SSL_verify_client_post_handshake$MH();
         try {
@@ -4075,14 +4125,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_set_client_CA_list"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_CTX_set_client_CA_list(MemorySegment ctx, MemorySegment name_list) {
         var mh$ = SSL_CTX_set_client_CA_list$MH();
         try {
@@ -4102,14 +4152,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_get_client_CA_list"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_CTX_get_client_CA_list(MemorySegment s) {
         var mh$ = SSL_CTX_get_client_CA_list$MH();
         try {
@@ -4130,14 +4180,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_add_client_CA"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CTX_add_client_CA(MemorySegment ctx, MemorySegment x) {
         var mh$ = SSL_CTX_add_client_CA$MH();
         try {
@@ -4156,14 +4206,14 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_set_connect_state"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_set_connect_state(MemorySegment s) {
         var mh$ = SSL_set_connect_state$MH();
         try {
@@ -4182,14 +4232,14 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_set_accept_state"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_set_accept_state(MemorySegment s) {
         var mh$ = SSL_set_accept_state$MH();
         try {
@@ -4209,14 +4259,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_get_privatekey"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_get_privatekey(MemorySegment ssl) {
         var mh$ = SSL_get_privatekey$MH();
         try {
@@ -4236,14 +4286,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_get_shutdown"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_get_shutdown(MemorySegment ssl) {
         var mh$ = SSL_get_shutdown$MH();
         try {
@@ -4263,14 +4313,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_set_default_verify_paths"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CTX_set_default_verify_paths(MemorySegment ctx) {
         var mh$ = SSL_CTX_set_default_verify_paths$MH();
         try {
@@ -4292,14 +4342,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_load_verify_locations"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CTX_load_verify_locations(MemorySegment ctx, MemorySegment CAfile, MemorySegment CApath) {
         var mh$ = SSL_CTX_load_verify_locations$MH();
         try {
@@ -4319,14 +4369,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_get_session"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_get_session(MemorySegment ssl) {
         var mh$ = SSL_get_session$MH();
         try {
@@ -4346,14 +4396,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_set_info_callback"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_set_info_callback(MemorySegment ssl, MemorySegment cb) {
         var mh$ = SSL_set_info_callback$MH();
         try {
@@ -4373,14 +4423,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_LONG
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_set_verify_result"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_set_verify_result(MemorySegment ssl, long v) {
         var mh$ = SSL_set_verify_result$MH();
         try {
@@ -4398,14 +4448,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_INT        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_get_ex_data_X509_STORE_CTX_idx"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_get_ex_data_X509_STORE_CTX_idx() {
         var mh$ = SSL_get_ex_data_X509_STORE_CTX_idx$MH();
         try {
@@ -4425,14 +4475,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CTX_set_tmp_dh_callback"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_CTX_set_tmp_dh_callback(MemorySegment ctx, MemorySegment dh) {
         var mh$ = SSL_CTX_set_tmp_dh_callback$MH();
         try {
@@ -4450,14 +4500,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_POINTER        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CONF_CTX_new"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment SSL_CONF_CTX_new() {
         var mh$ = SSL_CONF_CTX_new$MH();
         try {
@@ -4477,14 +4527,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CONF_CTX_finish"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CONF_CTX_finish(MemorySegment cctx) {
         var mh$ = SSL_CONF_CTX_finish$MH();
         try {
@@ -4503,14 +4553,14 @@ public class openssl_h  {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CONF_CTX_free"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_CONF_CTX_free(MemorySegment cctx) {
         var mh$ = SSL_CONF_CTX_free$MH();
         try {
@@ -4531,14 +4581,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CONF_CTX_set_flags"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CONF_CTX_set_flags(MemorySegment cctx, int flags) {
         var mh$ = SSL_CONF_CTX_set_flags$MH();
         try {
@@ -4558,14 +4608,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CONF_CTX_set_ssl_ctx"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void SSL_CONF_CTX_set_ssl_ctx(MemorySegment cctx, MemorySegment ctx) {
         var mh$ = SSL_CONF_CTX_set_ssl_ctx$MH();
         try {
@@ -4587,14 +4637,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CONF_cmd"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CONF_cmd(MemorySegment cctx, MemorySegment cmd, MemorySegment value) {
         var mh$ = SSL_CONF_cmd$MH();
         try {
@@ -4615,14 +4665,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("SSL_CONF_cmd_value_type"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int SSL_CONF_cmd_value_type(MemorySegment cctx, MemorySegment cmd) {
         var mh$ = SSL_CONF_cmd_value_type$MH();
         try {
@@ -4643,14 +4693,14 @@ public class openssl_h  {
                 openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OPENSSL_init_ssl"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int OPENSSL_init_ssl(long opts, MemorySegment settings) {
         var mh$ = OPENSSL_init_ssl$MH();
         try {
@@ -4668,14 +4718,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_LONG        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ERR_get_error"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long ERR_get_error() {
         var mh$ = ERR_get_error$MH();
         try {
@@ -4693,14 +4743,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_LONG        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ERR_peek_last_error"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static long ERR_peek_last_error() {
         var mh$ = ERR_peek_last_error$MH();
         try {
@@ -4717,14 +4767,14 @@ public class openssl_h  {
     public static MethodHandle ERR_clear_error$MH() {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid(        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ERR_clear_error"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void ERR_clear_error() {
         var mh$ = ERR_clear_error$MH();
         try {
@@ -4745,14 +4795,14 @@ public class openssl_h  {
                 openssl_h.C_LONG,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ERR_error_string"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment ERR_error_string(long e, MemorySegment buf) {
         var mh$ = ERR_error_string$MH();
         try {
@@ -4774,14 +4824,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("PKCS12_verify_mac"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int PKCS12_verify_mac(MemorySegment p12, MemorySegment pass, int passlen) {
         var mh$ = PKCS12_verify_mac$MH();
         try {
@@ -4800,14 +4850,14 @@ public class openssl_h  {
             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 {
@@ -4831,14 +4881,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("PKCS12_parse"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int PKCS12_parse(MemorySegment p12, MemorySegment pass, MemorySegment pkey, MemorySegment cert, MemorySegment ca) {
         var mh$ = PKCS12_parse$MH();
         try {
@@ -4859,14 +4909,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("d2i_PKCS12_bio"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment d2i_PKCS12_bio(MemorySegment bp, MemorySegment p12) {
         var mh$ = d2i_PKCS12_bio$MH();
         try {
@@ -4886,14 +4936,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("RAND_seed"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static void RAND_seed(MemorySegment buf, int num) {
         var mh$ = RAND_seed$MH();
         try {
@@ -4914,14 +4964,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_LONG
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("RAND_load_file"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int RAND_load_file(MemorySegment file, long max_bytes) {
         var mh$ = RAND_load_file$MH();
         try {
@@ -4942,14 +4992,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("X509_check_issued"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int X509_check_issued(MemorySegment issuer, MemorySegment subject) {
         var mh$ = X509_check_issued$MH();
         try {
@@ -4969,14 +5019,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ENGINE_by_id"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment ENGINE_by_id(MemorySegment id) {
         var mh$ = ENGINE_by_id$MH();
         try {
@@ -4994,14 +5044,14 @@ public class openssl_h  {
         class Holder {
             static final FunctionDescriptor DESC = FunctionDescriptor.of(
                 openssl_h.C_INT        );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ENGINE_register_all_complete"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int ENGINE_register_all_complete() {
         var mh$ = ENGINE_register_all_complete$MH();
         try {
@@ -5024,14 +5074,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ENGINE_ctrl_cmd_string"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int ENGINE_ctrl_cmd_string(MemorySegment e, MemorySegment cmd_name, MemorySegment arg, int cmd_optional) {
         var mh$ = ENGINE_ctrl_cmd_string$MH();
         try {
@@ -5051,14 +5101,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ENGINE_free"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int ENGINE_free(MemorySegment e) {
         var mh$ = ENGINE_free$MH();
         try {
@@ -5081,14 +5131,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ENGINE_load_private_key"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment ENGINE_load_private_key(MemorySegment e, MemorySegment key_id, MemorySegment ui_method, MemorySegment callback_data) {
         var mh$ = ENGINE_load_private_key$MH();
         try {
@@ -5109,14 +5159,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("ENGINE_set_default"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int ENGINE_set_default(MemorySegment e, int flags) {
         var mh$ = ENGINE_set_default$MH();
         try {
@@ -5138,14 +5188,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OCSP_cert_to_id"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment OCSP_cert_to_id(MemorySegment dgst, MemorySegment subject, MemorySegment issuer) {
         var mh$ = OCSP_cert_to_id$MH();
         try {
@@ -5166,14 +5216,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OCSP_request_add0_id"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment OCSP_request_add0_id(MemorySegment req, MemorySegment cid) {
         var mh$ = OCSP_request_add0_id$MH();
         try {
@@ -5193,14 +5243,14 @@ public class openssl_h  {
                 openssl_h.C_INT,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OCSP_response_status"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int OCSP_response_status(MemorySegment resp) {
         var mh$ = OCSP_response_status$MH();
         try {
@@ -5220,14 +5270,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OCSP_response_get1_basic"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment OCSP_response_get1_basic(MemorySegment resp) {
         var mh$ = OCSP_response_get1_basic$MH();
         try {
@@ -5248,14 +5298,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OCSP_resp_get0"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment OCSP_resp_get0(MemorySegment bs, int idx) {
         var mh$ = OCSP_resp_get0$MH();
         try {
@@ -5277,14 +5327,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_INT
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OCSP_resp_find"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int OCSP_resp_find(MemorySegment bs, MemorySegment id, int last) {
         var mh$ = OCSP_resp_find$MH();
         try {
@@ -5308,14 +5358,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OCSP_single_get0_status"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static int OCSP_single_get0_status(MemorySegment single, MemorySegment reason, MemorySegment revtime, MemorySegment thisupd, MemorySegment nextupd) {
         var mh$ = OCSP_single_get0_status$MH();
         try {
@@ -5334,14 +5384,14 @@ public class openssl_h  {
             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 {
@@ -5360,14 +5410,14 @@ public class openssl_h  {
             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 {
@@ -5378,7 +5428,7 @@ public class openssl_h  {
     }
     /**
      * {@snippet lang=c :
-     * OCSP_RESPONSE* d2i_OCSP_RESPONSE(OCSP_RESPONSE* a, unsigned char** in, long len);
+     * OCSP_RESPONSE* d2i_OCSP_RESPONSE(OCSP_RESPONSE** a, unsigned char** in, long len);
      * }
      */
     public static MethodHandle d2i_OCSP_RESPONSE$MH() {
@@ -5389,14 +5439,14 @@ public class openssl_h  {
                 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 {
@@ -5415,14 +5465,14 @@ public class openssl_h  {
             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 {
@@ -5440,14 +5490,14 @@ public class openssl_h  {
         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 {
@@ -5466,14 +5516,14 @@ public class openssl_h  {
             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 {
@@ -5494,14 +5544,14 @@ public class openssl_h  {
                 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 {
@@ -5521,14 +5571,14 @@ public class openssl_h  {
                 openssl_h.C_POINTER,
                 openssl_h.C_POINTER
             );
-    
+
             static final MethodHandle MH = Linker.nativeLinker().downcallHandle(
                     openssl_h.findOrThrow("OSSL_PROVIDER_get0_name"),
                     DESC);
         }
         return Holder.MH;
     }
-    
+
     public static MemorySegment OSSL_PROVIDER_get0_name(MemorySegment prov) {
         var mh$ = OSSL_PROVIDER_get0_name$MH();
         try {
@@ -5537,18 +5587,18 @@ public class openssl_h  {
            throw new AssertionError("should not reach here", ex$);
         }
     }
-    private static final MemorySegment OPENSSL_FILE = Arena.ofAuto().allocateFrom("/tmp/jextract$7266064093665146871.h");;
-    
+    private static final MemorySegment OPENSSL_FILE = Arena.ofAuto().allocateFrom("/tmp/jextract$12868569411196900360.h");
+
     /**
      * {@snippet lang=c :
-     * #define OPENSSL_FILE "/tmp/jextract$7266064093665146871.h"
+     * #define OPENSSL_FILE "/tmp/jextract$12868569411196900360.h"
      * }
      */
     public static MemorySegment OPENSSL_FILE() {
         return OPENSSL_FILE;
     }
     private static final int OPENSSL_LINE = (int)50L;
-    
+
     /**
      * {@snippet lang=c :
      * #define OPENSSL_LINE 50
@@ -5558,7 +5608,7 @@ public class openssl_h  {
         return OPENSSL_LINE;
     }
     private static final long OPENSSL_INIT_ENGINE_ALL_BUILTIN = 30208L;
-    
+
     /**
      * {@snippet lang=c :
      * #define OPENSSL_INIT_ENGINE_ALL_BUILTIN 30208
@@ -5568,7 +5618,7 @@ public class openssl_h  {
         return OPENSSL_INIT_ENGINE_ALL_BUILTIN;
     }
     private static final int EVP_PKEY_NONE = (int)0L;
-    
+
     /**
      * {@snippet lang=c :
      * #define EVP_PKEY_NONE 0
@@ -5578,7 +5628,7 @@ public class openssl_h  {
         return EVP_PKEY_NONE;
     }
     private static final int EVP_PKEY_RSA = (int)6L;
-    
+
     /**
      * {@snippet lang=c :
      * #define EVP_PKEY_RSA 6
@@ -5588,7 +5638,7 @@ public class openssl_h  {
         return EVP_PKEY_RSA;
     }
     private static final int EVP_PKEY_DSA = (int)116L;
-    
+
     /**
      * {@snippet lang=c :
      * #define EVP_PKEY_DSA 116
@@ -5597,8 +5647,8 @@ 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 :
      * #define PEM_STRING_ECPARAMETERS "EC PARAMETERS"
@@ -5608,7 +5658,7 @@ public class openssl_h  {
         return PEM_STRING_ECPARAMETERS;
     }
     private static final long SSL_OP_NO_TICKET = 16384L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_NO_TICKET 16384
@@ -5618,7 +5668,7 @@ public class openssl_h  {
         return SSL_OP_NO_TICKET;
     }
     private static final long SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION = 65536L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 65536
@@ -5628,7 +5678,7 @@ public class openssl_h  {
         return SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION;
     }
     private static final long SSL_OP_NO_COMPRESSION = 131072L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_NO_COMPRESSION 131072
@@ -5638,7 +5688,7 @@ public class openssl_h  {
         return SSL_OP_NO_COMPRESSION;
     }
     private static final long SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION = 262144L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 262144
@@ -5648,7 +5698,7 @@ public class openssl_h  {
         return SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION;
     }
     private static final long SSL_OP_CIPHER_SERVER_PREFERENCE = 4194304L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_CIPHER_SERVER_PREFERENCE 4194304
@@ -5658,7 +5708,7 @@ public class openssl_h  {
         return SSL_OP_CIPHER_SERVER_PREFERENCE;
     }
     private static final long SSL_OP_NO_SSLv3 = 33554432L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_NO_SSLv3 33554432
@@ -5668,7 +5718,7 @@ public class openssl_h  {
         return SSL_OP_NO_SSLv3;
     }
     private static final long SSL_OP_NO_TLSv1 = 67108864L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_NO_TLSv1 67108864
@@ -5678,7 +5728,7 @@ public class openssl_h  {
         return SSL_OP_NO_TLSv1;
     }
     private static final long SSL_OP_NO_TLSv1_2 = 134217728L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_NO_TLSv1_2 134217728
@@ -5688,7 +5738,7 @@ public class openssl_h  {
         return SSL_OP_NO_TLSv1_2;
     }
     private static final long SSL_OP_NO_TLSv1_1 = 268435456L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_NO_TLSv1_1 268435456
@@ -5698,7 +5748,7 @@ public class openssl_h  {
         return SSL_OP_NO_TLSv1_1;
     }
     private static final long SSL_OP_NO_TLSv1_3 = 536870912L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_NO_TLSv1_3 536870912
@@ -5708,7 +5758,7 @@ public class openssl_h  {
         return SSL_OP_NO_TLSv1_3;
     }
     private static final long SSL_OP_ALL = 2147485776L;
-    
+
     /**
      * {@snippet lang=c :
      * #define SSL_OP_ALL 2147485776
@@ -5718,7 +5768,7 @@ public class openssl_h  {
         return SSL_OP_ALL;
     }
     private static final int ENGINE_METHOD_ALL = (int)65535L;
-    
+
     /**
      * {@snippet lang=c :
      * #define ENGINE_METHOD_ALL 65535
@@ -5727,52 +5777,5 @@ public class openssl_h  {
     public static int ENGINE_METHOD_ALL() {
         return ENGINE_METHOD_ALL;
     }
-    static MemorySegment findOrThrow(String symbol) {
-        return SYMBOL_LOOKUP.find(symbol)
-            .orElseThrow(() -> new UnsatisfiedLinkError("unresolved symbol: " + symbol));
-    }
-    
-    static MemoryLayout[] inferVariadicLayouts(Object[] varargs) {
-        MemoryLayout[] result = new MemoryLayout[varargs.length];
-        for (int i = 0; i < varargs.length; i++) {
-            result[i] = variadicLayout(varargs[i].getClass());
-        }
-        return result;
-    }
-    
-    static MethodHandle upcallHandle(Class<?> fi, String name, FunctionDescriptor fdesc) {
-        try {
-            return MethodHandles.lookup().findVirtual(fi, name, fdesc.toMethodType());
-        } catch (ReflectiveOperationException ex) {
-            throw new AssertionError(ex);
-        }
-    }
-    
-    static MethodHandle downcallHandleVariadic(String name, FunctionDescriptor baseDesc, MemoryLayout[] variadicLayouts) {
-        FunctionDescriptor variadicDesc = baseDesc.appendArgumentLayouts(variadicLayouts);
-        Linker.Option fva = Linker.Option.firstVariadicArg(baseDesc.argumentLayouts().size());
-        return SYMBOL_LOOKUP.find(name)
-                .map(addr -> Linker.nativeLinker().downcallHandle(addr, variadicDesc, fva)
-                        .asSpreader(Object[].class, variadicLayouts.length))
-                .orElse(null);
-    }
-    
-    // Internals only below this point
-    
-    private static MemoryLayout variadicLayout(Class<?> c) {
-        // apply default argument promotions per C spec
-        // note that all primitives are boxed, since they are passed through an Object[]
-        if (c == Boolean.class || c == Byte.class || c == Character.class || c == Short.class || c == Integer.class) {
-            return JAVA_INT;
-        } else if (c == Long.class) {
-            return JAVA_LONG;
-        } else if (c == Float.class || c == Double.class) {
-            return JAVA_DOUBLE;
-        } else if (MemorySegment.class.isAssignableFrom(c)) {
-            return ADDRESS;
-        }
-        throw new IllegalArgumentException("Invalid type for ABI: " + c.getTypeName());
-    }
 }
 
-
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 bcef231520..e84d50b27b 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
@@ -24,6 +24,7 @@ import static org.apache.tomcat.util.openssl.openssl_h.*;
 /**
  * Functional macros not handled by jextract.
  */
+@SuppressWarnings("javadoc")
 public class openssl_h_Macros {
 
 


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