From 705e3644d7552298d1e6f6809ea4404153427ad4 Mon Sep 17 00:00:00 2001 From: remm Date: Tue, 2 Jan 2024 13:51:56 +0100 Subject: [PATCH] Cleanup typing for password callbacks Although this adds two more classes, removing type hacks is likely better. Also essentially removes the default password callback since right now I don't see where it is used. Will test further if anything bad happens. --- .../net/openssl/panama/OpenSSLContext.java | 36 +- .../openssl/PEM_read_bio_PrivateKey$cb.java | 65 ++ .../openssl/PEM_read_bio_X509_AUX$cb.java | 65 ++ .../apache/tomcat/util/openssl/openssl_h.java | 1000 +++++++++-------- 4 files changed, 646 insertions(+), 520 deletions(-) create mode 100644 java/org/apache/tomcat/util/openssl/PEM_read_bio_PrivateKey$cb.java create mode 100644 java/org/apache/tomcat/util/openssl/PEM_read_bio_X509_AUX$cb.java diff --git a/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLContext.java b/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLContext.java index 13691d58d873..a1ae1a1b872a 100644 --- a/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLContext.java +++ b/java/org/apache/tomcat/util/net/openssl/panama/OpenSSLContext.java @@ -66,6 +66,8 @@ 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; @@ -133,9 +135,6 @@ public class OpenSSLContext implements org.apache.tomcat.util.net.SSLContext { private boolean noOcspCheck = false; - // Password callback - private final MemorySegment openSSLCallbackPassword; - private static final ConcurrentHashMap states = new ConcurrentHashMap<>(); private static ContextState getState(MemorySegment ctx) { return states.get(Long.valueOf(ctx.address())); @@ -279,8 +278,8 @@ public OpenSSLContext(SSLHostConfigCertificate certificate, List negotia // 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; @@ -891,15 +890,16 @@ private static String getCipherAuthenticationMethod(int auth, int kx) { } } - private static ThreadLocal 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); @@ -1020,12 +1020,9 @@ private boolean addCertificate(SSLHostConfigCertificate certificate, Arena local } 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 +1045,9 @@ private boolean addCertificate(SSLHostConfigCertificate certificate, Arena local 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) { diff --git a/java/org/apache/tomcat/util/openssl/PEM_read_bio_PrivateKey$cb.java b/java/org/apache/tomcat/util/openssl/PEM_read_bio_PrivateKey$cb.java new file mode 100644 index 000000000000..a753174b69ed --- /dev/null +++ b/java/org/apache/tomcat/util/openssl/PEM_read_bio_PrivateKey$cb.java @@ -0,0 +1,65 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Generated by jextract + +package org.apache.tomcat.util.openssl; + +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.ByteOrder; +import java.lang.foreign.*; +import static java.lang.foreign.ValueLayout.*; + +/** + * {@snippet lang=c : + * int (*PEM_read_bio_PrivateKey$cb)(char* buf,int size,int rwflag,void* userdata); + * } + */ +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 + ); + + MethodHandle UP$MH = openssl_h.upcallHandle(PEM_read_bio_PrivateKey$cb.class, "apply", $DESC); + + 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 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 { + return (int) DOWN$MH.invokeExact(symbol, _buf, _size, _rwflag, _userdata); + } catch (Throwable ex$) { + throw new AssertionError("should not reach here", ex$); + } + }; + } +} + diff --git a/java/org/apache/tomcat/util/openssl/PEM_read_bio_X509_AUX$cb.java b/java/org/apache/tomcat/util/openssl/PEM_read_bio_X509_AUX$cb.java new file mode 100644 index 000000000000..be273cf02d45 --- /dev/null +++ b/java/org/apache/tomcat/util/openssl/PEM_read_bio_X509_AUX$cb.java @@ -0,0 +1,65 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Generated by jextract + +package org.apache.tomcat.util.openssl; + +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.ByteOrder; +import java.lang.foreign.*; +import static java.lang.foreign.ValueLayout.*; + +/** + * {@snippet lang=c : + * int (*PEM_read_bio_X509_AUX$cb)(char* buf,int size,int rwflag,void* userdata); + * } + */ +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 + ); + + MethodHandle UP$MH = openssl_h.upcallHandle(PEM_read_bio_X509_AUX$cb.class, "apply", $DESC); + + 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 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 { + return (int) DOWN$MH.invokeExact(symbol, _buf, _size, _rwflag, _userdata); + } catch (Throwable ex$) { + throw new AssertionError("should not reach here", ex$); + } + }; + } +} + diff --git a/java/org/apache/tomcat/util/openssl/openssl_h.java b/java/org/apache/tomcat/util/openssl/openssl_h.java index fef9a1d9dcfd..a35c5553cafc 100644 --- a/java/org/apache/tomcat/util/openssl/openssl_h.java +++ b/java/org/apache/tomcat/util/openssl/openssl_h.java @@ -18,24 +18,26 @@ // Generated by jextract package org.apache.tomcat.util.openssl; -//Generated by jextract import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; 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 +48,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 +106,7 @@ public static int BIO_CLOSE() { return BIO_CLOSE; } private static final int BIO_CTRL_RESET = (int)1L; - + /** * {@snippet lang=c : * #define BIO_CTRL_RESET 1 @@ -67,7 +116,7 @@ public static int BIO_CTRL_RESET() { return BIO_CTRL_RESET; } private static final int BIO_FP_READ = (int)2L; - + /** * {@snippet lang=c : * #define BIO_FP_READ 2 @@ -77,7 +126,7 @@ public static int BIO_FP_READ() { 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 +136,7 @@ public static int BIO_C_SET_FILENAME() { return BIO_C_SET_FILENAME; } private static final int NID_info_access = (int)177L; - + /** * {@snippet lang=c : * #define NID_info_access 177 @@ -97,7 +146,7 @@ public static int NID_info_access() { return NID_info_access; } private static final int X509_FILETYPE_PEM = (int)1L; - + /** * {@snippet lang=c : * #define X509_FILETYPE_PEM 1 @@ -107,7 +156,7 @@ public static int X509_FILETYPE_PEM() { 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 +166,7 @@ public static int X509_L_FILE_LOAD() { 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 +176,7 @@ public static int X509_L_ADD_DIR() { return X509_L_ADD_DIR; } private static final int X509_V_OK = (int)0L; - + /** * {@snippet lang=c : * #define X509_V_OK 0 @@ -137,7 +186,7 @@ public static int X509_V_OK() { 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 +196,7 @@ public static int X509_V_ERR_CRL_HAS_EXPIRED() { 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 +206,7 @@ public static int X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT() { 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 +216,7 @@ public static int X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN() { 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 +226,7 @@ public static int X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY() { 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 +236,7 @@ public static int X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE() { 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 +246,7 @@ public static int X509_V_ERR_CERT_UNTRUSTED() { 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 +256,7 @@ public static int X509_V_ERR_APPLICATION_VERIFICATION() { 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 +266,7 @@ public static int X509_V_FLAG_CRL_CHECK() { 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 +276,7 @@ public static int X509_V_FLAG_CRL_CHECK_ALL() { 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 +286,7 @@ public static int PEM_R_NO_START_LINE() { return PEM_R_NO_START_LINE; } private static final int SSL3_VERSION = (int)768L; - + /** * {@snippet lang=c : * #define SSL3_VERSION 768 @@ -247,7 +296,7 @@ public static int SSL3_VERSION() { return SSL3_VERSION; } private static final int TLS1_VERSION = (int)769L; - + /** * {@snippet lang=c : * #define TLS1_VERSION 769 @@ -257,7 +306,7 @@ public static int TLS1_VERSION() { return TLS1_VERSION; } private static final int TLS1_1_VERSION = (int)770L; - + /** * {@snippet lang=c : * #define TLS1_1_VERSION 770 @@ -267,7 +316,7 @@ public static int TLS1_1_VERSION() { return TLS1_1_VERSION; } private static final int TLS1_2_VERSION = (int)771L; - + /** * {@snippet lang=c : * #define TLS1_2_VERSION 771 @@ -277,7 +326,7 @@ public static int TLS1_2_VERSION() { return TLS1_2_VERSION; } private static final int TLS1_3_VERSION = (int)772L; - + /** * {@snippet lang=c : * #define TLS1_3_VERSION 772 @@ -287,7 +336,7 @@ public static int TLS1_3_VERSION() { return TLS1_3_VERSION; } private static final int SSL_SENT_SHUTDOWN = (int)1L; - + /** * {@snippet lang=c : * #define SSL_SENT_SHUTDOWN 1 @@ -297,7 +346,7 @@ public static int SSL_SENT_SHUTDOWN() { return SSL_SENT_SHUTDOWN; } private static final int SSL_RECEIVED_SHUTDOWN = (int)2L; - + /** * {@snippet lang=c : * #define SSL_RECEIVED_SHUTDOWN 2 @@ -307,7 +356,7 @@ public static int SSL_RECEIVED_SHUTDOWN() { 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 +366,7 @@ public static int SSL_OP_SINGLE_ECDH_USE() { 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 +376,7 @@ public static int SSL_OP_SINGLE_DH_USE() { 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 +386,7 @@ public static int SSL_OP_NO_SSLv2() { 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 +396,7 @@ public static int SSL_CONF_FLAG_FILE() { 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 +406,7 @@ public static int SSL_CONF_FLAG_SERVER() { 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 +416,7 @@ public static int SSL_CONF_FLAG_SHOW_ERRORS() { 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 +426,7 @@ public static int SSL_CONF_FLAG_CERTIFICATE() { 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 +436,7 @@ public static int SSL_CONF_TYPE_UNKNOWN() { 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 +446,7 @@ public static int SSL_CONF_TYPE_FILE() { 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 +456,7 @@ public static int SSL_CONF_TYPE_DIR() { 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 +466,7 @@ public static int SSL_SESS_CACHE_OFF() { 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 +476,7 @@ public static int SSL_SESS_CACHE_SERVER() { return SSL_SESS_CACHE_SERVER; } private static final int SSL2_VERSION = (int)2L; - + /** * {@snippet lang=c : * #define SSL2_VERSION 2 @@ -437,7 +486,7 @@ public static int SSL2_VERSION() { return SSL2_VERSION; } private static final int SSL_TLSEXT_ERR_OK = (int)0L; - + /** * {@snippet lang=c : * #define SSL_TLSEXT_ERR_OK 0 @@ -447,7 +496,7 @@ public static int SSL_TLSEXT_ERR_OK() { 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 +506,7 @@ public static int SSL_TLSEXT_ERR_NOACK() { 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 +516,7 @@ public static int SSL_CB_HANDSHAKE_DONE() { return SSL_CB_HANDSHAKE_DONE; } private static final int SSL_VERIFY_NONE = (int)0L; - + /** * {@snippet lang=c : * #define SSL_VERIFY_NONE 0 @@ -477,7 +526,7 @@ public static int SSL_VERIFY_NONE() { return SSL_VERIFY_NONE; } private static final int SSL_VERIFY_PEER = (int)1L; - + /** * {@snippet lang=c : * #define SSL_VERIFY_PEER 1 @@ -487,7 +536,7 @@ public static int SSL_VERIFY_PEER() { 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 +546,7 @@ public static int SSL_VERIFY_FAIL_IF_NO_PEER_CERT() { 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 +556,7 @@ public static int SSL_ERROR_NONE() { 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 +566,7 @@ public static int SSL_CTRL_SET_TMP_DH() { 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 +576,7 @@ public static int SSL_CTRL_SET_TMP_ECDH() { 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 +586,7 @@ public static int SSL_CTRL_SESS_NUMBER() { 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 +596,7 @@ public static int SSL_CTRL_SESS_CONNECT() { 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 +606,7 @@ public static int SSL_CTRL_SESS_CONNECT_GOOD() { 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 +616,7 @@ public static int SSL_CTRL_SESS_CONNECT_RENEGOTIATE() { 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 +626,7 @@ public static int SSL_CTRL_SESS_ACCEPT() { 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 +636,7 @@ public static int SSL_CTRL_SESS_ACCEPT_GOOD() { 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 +646,7 @@ public static int SSL_CTRL_SESS_ACCEPT_RENEGOTIATE() { 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 +656,7 @@ public static int SSL_CTRL_SESS_HIT() { 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 +666,7 @@ public static int SSL_CTRL_SESS_CB_HIT() { 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 +676,7 @@ public static int SSL_CTRL_SESS_MISSES() { 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 +686,7 @@ public static int SSL_CTRL_SESS_TIMEOUTS() { 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 +696,7 @@ public static int SSL_CTRL_SESS_CACHE_FULL() { 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 +706,7 @@ public static int SSL_CTRL_SET_SESS_CACHE_SIZE() { 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 +716,7 @@ public static int SSL_CTRL_GET_SESS_CACHE_SIZE() { 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 +726,7 @@ public static int SSL_CTRL_SET_SESS_CACHE_MODE() { 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 +736,7 @@ public static int SSL_CTRL_GET_SESS_CACHE_MODE() { 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 +746,7 @@ public static int SSL_CTRL_SET_TLSEXT_TICKET_KEYS() { 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 +756,7 @@ public static int SSL_CTRL_CHAIN_CERT() { 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 +766,7 @@ public static int SSL_CTRL_SET_GROUPS() { 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 +776,7 @@ public static int SSL_CTRL_SET_DH_AUTO() { 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 +786,7 @@ public static int SSL_CTRL_SET_MIN_PROTO_VERSION() { 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 +796,7 @@ public static int SSL_CTRL_SET_MAX_PROTO_VERSION() { 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 +806,7 @@ public static int ERR_REASON_MASK() { 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 +816,7 @@ public static int OCSP_RESPONSE_STATUS_SUCCESSFUL() { 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 +826,7 @@ public static int V_OCSP_CERTSTATUS_GOOD() { 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 +836,7 @@ public static int V_OCSP_CERTSTATUS_REVOKED() { 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 +856,14 @@ class Holder { 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 +884,14 @@ class Holder { 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 +909,14 @@ public static MemorySegment OPENSSL_sk_value(MemorySegment x0, int x1) { 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 +936,14 @@ class Holder { 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 +964,14 @@ class Holder { 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 +991,14 @@ class Holder { 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 +1016,14 @@ public static long BIO_ctrl_pending(MemorySegment b) { 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 +1044,14 @@ class Holder { 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 +1071,14 @@ class Holder { 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 +1098,14 @@ class Holder { 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 +1127,14 @@ class Holder { 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 +1156,14 @@ class Holder { 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 +1186,14 @@ class Holder { 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 +1211,14 @@ public static long BIO_ctrl(MemorySegment bp, int cmd, long larg, MemorySegment 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 +1236,14 @@ public static MemorySegment BIO_s_mem() { 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 +1266,14 @@ class Holder { 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 +1291,14 @@ public static int BIO_new_bio_pair(MemorySegment bio1, long writebuf1, MemorySeg 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 +1319,14 @@ class Holder { 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 +1346,14 @@ class Holder { 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 +1373,14 @@ class Holder { 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 +1400,14 @@ class Holder { 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 +1427,14 @@ class Holder { 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 +1454,14 @@ class Holder { 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 +1481,14 @@ class Holder { 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 +1508,14 @@ class Holder { 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 +1535,14 @@ class Holder { 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 +1562,14 @@ class Holder { 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 +1589,14 @@ class Holder { 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 +1616,14 @@ class Holder { 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 +1645,14 @@ class Holder { 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 +1671,14 @@ class Holder { 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 +1698,14 @@ class Holder { 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 +1725,14 @@ class Holder { 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 +1751,14 @@ class Holder { 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 +1777,14 @@ class Holder { 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 +1804,14 @@ class Holder { 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 +1833,14 @@ class Holder { 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 +1860,14 @@ class Holder { 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 +1886,14 @@ class Holder { 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 +1911,14 @@ public static void EC_KEY_free(MemorySegment key) { 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 +1937,14 @@ class Holder { 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 +1967,14 @@ class Holder { 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 +1995,14 @@ class Holder { 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 +2022,14 @@ class Holder { 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 +2050,14 @@ class Holder { 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 +2075,14 @@ public static MemorySegment X509_STORE_add_lookup(MemorySegment v, MemorySegment 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 +2100,14 @@ public static MemorySegment X509_LOOKUP_hash_dir() { 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 +2131,14 @@ class Holder { 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 +2159,14 @@ class Holder { 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 +2186,14 @@ class Holder { 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 +2213,14 @@ class Holder { 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 +2240,14 @@ class Holder { 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 +2267,14 @@ class Holder { 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 +2294,14 @@ class Holder { 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 +2322,14 @@ class Holder { 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 +2348,14 @@ class Holder { static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid( openssl_h.C_POINTER ); - + static final MethodHandle MH = Linker.nativeLinker().downcallHandle( openssl_h.findOrThrow("X509_free"), DESC); } return Holder.MH; } - + public static void X509_free(MemorySegment a) { var mh$ = X509_free$MH(); try { @@ -2317,7 +2366,7 @@ public static void X509_free(MemorySegment a) { } /** * {@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 +2377,14 @@ class Holder { 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 +2405,14 @@ class Holder { 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 +2434,14 @@ class Holder { 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 +2462,14 @@ class Holder { 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 +2489,14 @@ class Holder { 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 +2521,14 @@ class Holder { 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 +2551,14 @@ class Holder { 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 +2581,14 @@ class Holder { 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 +2611,14 @@ class Holder { 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 +2641,14 @@ class Holder { 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 +2669,14 @@ class Holder { 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 +2696,14 @@ class Holder { 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 +2723,14 @@ class Holder { 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 +2751,14 @@ class Holder { 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 +2779,14 @@ class Holder { 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 +2807,14 @@ class Holder { 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 +2835,14 @@ class Holder { 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 +2863,14 @@ class Holder { 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 +2890,14 @@ class Holder { 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 +2918,14 @@ class Holder { 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 +2946,14 @@ class Holder { 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 +2973,14 @@ class Holder { 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 +2999,14 @@ class Holder { 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 +3027,14 @@ class Holder { 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 +3054,14 @@ class Holder { 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 +3081,14 @@ class Holder { 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 +3108,14 @@ class Holder { 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 +3135,14 @@ class Holder { 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 +3162,14 @@ class Holder { 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 +3189,14 @@ class Holder { 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 +3216,14 @@ class Holder { 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 +3244,14 @@ class Holder { 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 +3272,14 @@ class Holder { 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 +3300,14 @@ class Holder { 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 +3328,14 @@ class Holder { 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 +3356,14 @@ class Holder { 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 +3383,14 @@ class Holder { 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 +3411,14 @@ class Holder { 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 +3438,14 @@ class Holder { 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 +3466,14 @@ class Holder { 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 +3493,14 @@ class Holder { 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 +3520,14 @@ class Holder { 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 +3548,14 @@ class Holder { 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 +3576,14 @@ class Holder { 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 +3604,14 @@ class Holder { 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 +3632,14 @@ class Holder { 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 +3659,14 @@ class Holder { 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 +3686,14 @@ class Holder { 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 +3715,14 @@ class Holder { 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 +3742,14 @@ class Holder { 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 +3768,14 @@ class Holder { 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 +3797,14 @@ class Holder { 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 +3826,14 @@ class Holder { 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 +3856,14 @@ class Holder { 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 +3883,14 @@ class Holder { 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 +3908,14 @@ public static MemorySegment SSL_get_version(MemorySegment s) { 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 +3935,14 @@ class Holder { 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 +3962,14 @@ class Holder { 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 +3989,14 @@ class Holder { 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 +4016,14 @@ class Holder { 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 +4043,14 @@ class Holder { 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 +4070,14 @@ class Holder { 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 +4097,14 @@ class Holder { 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 +4124,14 @@ class Holder { 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 +4151,14 @@ class Holder { 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 +4179,14 @@ class Holder { 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 +4205,14 @@ class Holder { 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 +4231,14 @@ class Holder { 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 +4258,14 @@ class Holder { 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 +4285,14 @@ class Holder { 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 +4312,14 @@ class Holder { 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 +4341,14 @@ class Holder { 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 +4368,14 @@ class Holder { 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 +4395,14 @@ class Holder { 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 +4422,14 @@ class Holder { 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 +4447,14 @@ public static void SSL_set_verify_result(MemorySegment ssl, long v) { 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 +4474,14 @@ class Holder { 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 +4499,14 @@ public static void SSL_CTX_set_tmp_dh_callback(MemorySegment ctx, MemorySegment 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 +4526,14 @@ class Holder { 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 +4552,14 @@ class Holder { 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 +4580,14 @@ class Holder { 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 +4607,14 @@ class Holder { 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 +4636,14 @@ class Holder { 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 +4664,14 @@ class Holder { 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 +4692,14 @@ class Holder { 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 +4717,14 @@ public static int OPENSSL_init_ssl(long opts, MemorySegment settings) { 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 +4742,14 @@ public static long ERR_get_error() { 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 +4766,14 @@ public static long ERR_peek_last_error() { 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 +4794,14 @@ class Holder { 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 +4823,14 @@ class Holder { 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 +4849,14 @@ class Holder { static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid( openssl_h.C_POINTER ); - + static final MethodHandle MH = Linker.nativeLinker().downcallHandle( openssl_h.findOrThrow("PKCS12_free"), DESC); } return Holder.MH; } - + public static void PKCS12_free(MemorySegment a) { var mh$ = PKCS12_free$MH(); try { @@ -4831,14 +4880,14 @@ class Holder { 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 +4908,14 @@ class Holder { 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 +4935,14 @@ class Holder { 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 +4963,14 @@ class Holder { 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 +4991,14 @@ class Holder { 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 +5018,14 @@ class Holder { 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 +5043,14 @@ public static MemorySegment ENGINE_by_id(MemorySegment id) { 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 +5073,14 @@ class Holder { 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 +5100,14 @@ class Holder { 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 +5130,14 @@ class Holder { 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 +5158,14 @@ class Holder { 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 +5187,14 @@ class Holder { 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 +5215,14 @@ class Holder { 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 +5242,14 @@ class Holder { 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 +5269,14 @@ class Holder { 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 +5297,14 @@ class Holder { 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 +5326,14 @@ class Holder { 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 +5357,14 @@ class Holder { 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 +5383,14 @@ class Holder { static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid( openssl_h.C_POINTER ); - + static final MethodHandle MH = Linker.nativeLinker().downcallHandle( openssl_h.findOrThrow("OCSP_BASICRESP_free"), DESC); } return Holder.MH; } - + public static void OCSP_BASICRESP_free(MemorySegment a) { var mh$ = OCSP_BASICRESP_free$MH(); try { @@ -5360,14 +5409,14 @@ class Holder { static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid( openssl_h.C_POINTER ); - + static final MethodHandle MH = Linker.nativeLinker().downcallHandle( openssl_h.findOrThrow("OCSP_RESPONSE_free"), DESC); } return Holder.MH; } - + public static void OCSP_RESPONSE_free(MemorySegment a) { var mh$ = OCSP_RESPONSE_free$MH(); try { @@ -5378,7 +5427,7 @@ public static void OCSP_RESPONSE_free(MemorySegment a) { } /** * {@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 +5438,14 @@ class Holder { 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 +5464,14 @@ class Holder { static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid( openssl_h.C_POINTER ); - + static final MethodHandle MH = Linker.nativeLinker().downcallHandle( openssl_h.findOrThrow("OCSP_CERTID_free"), DESC); } return Holder.MH; } - + public static void OCSP_CERTID_free(MemorySegment a) { var mh$ = OCSP_CERTID_free$MH(); try { @@ -5440,14 +5489,14 @@ public static void OCSP_CERTID_free(MemorySegment a) { 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 +5515,14 @@ class Holder { static final FunctionDescriptor DESC = FunctionDescriptor.ofVoid( openssl_h.C_POINTER ); - + static final MethodHandle MH = Linker.nativeLinker().downcallHandle( openssl_h.findOrThrow("OCSP_REQUEST_free"), DESC); } return Holder.MH; } - + public static void OCSP_REQUEST_free(MemorySegment a) { var mh$ = OCSP_REQUEST_free$MH(); try { @@ -5494,14 +5543,14 @@ class Holder { 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 +5570,14 @@ class Holder { 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 +5586,18 @@ public static MemorySegment OSSL_PROVIDER_get0_name(MemorySegment prov) { 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 +5607,7 @@ public static int OPENSSL_LINE() { 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 +5617,7 @@ public static long OPENSSL_INIT_ENGINE_ALL_BUILTIN() { 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 +5627,7 @@ public static int EVP_PKEY_NONE() { return EVP_PKEY_NONE; } private static final int EVP_PKEY_RSA = (int)6L; - + /** * {@snippet lang=c : * #define EVP_PKEY_RSA 6 @@ -5588,7 +5637,7 @@ public static int EVP_PKEY_RSA() { return EVP_PKEY_RSA; } private static final int EVP_PKEY_DSA = (int)116L; - + /** * {@snippet lang=c : * #define EVP_PKEY_DSA 116 @@ -5598,7 +5647,7 @@ public static int EVP_PKEY_DSA() { return EVP_PKEY_DSA; } private static final MemorySegment PEM_STRING_ECPARAMETERS = Arena.ofAuto().allocateFrom("EC PARAMETERS");; - + /** * {@snippet lang=c : * #define PEM_STRING_ECPARAMETERS "EC PARAMETERS" @@ -5608,7 +5657,7 @@ public static MemorySegment PEM_STRING_ECPARAMETERS() { return PEM_STRING_ECPARAMETERS; } private static final long SSL_OP_NO_TICKET = 16384L; - + /** * {@snippet lang=c : * #define SSL_OP_NO_TICKET 16384 @@ -5618,7 +5667,7 @@ public static long SSL_OP_NO_TICKET() { 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 +5677,7 @@ public static long SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION() { 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 +5687,7 @@ public static long SSL_OP_NO_COMPRESSION() { 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 +5697,7 @@ public static long SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION() { 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 +5707,7 @@ public static long SSL_OP_CIPHER_SERVER_PREFERENCE() { 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 +5717,7 @@ public static long SSL_OP_NO_SSLv3() { 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 +5727,7 @@ public static long SSL_OP_NO_TLSv1() { 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 +5737,7 @@ public static long SSL_OP_NO_TLSv1_2() { 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 +5747,7 @@ public static long SSL_OP_NO_TLSv1_1() { 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 +5757,7 @@ public static long SSL_OP_NO_TLSv1_3() { return SSL_OP_NO_TLSv1_3; } private static final long SSL_OP_ALL = 2147485776L; - + /** * {@snippet lang=c : * #define SSL_OP_ALL 2147485776 @@ -5718,7 +5767,7 @@ public static long SSL_OP_ALL() { return SSL_OP_ALL; } private static final int ENGINE_METHOD_ALL = (int)65535L; - + /** * {@snippet lang=c : * #define ENGINE_METHOD_ALL 65535 @@ -5727,52 +5776,5 @@ public static long SSL_OP_ALL() { 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()); - } } -