public abstract class io.netty.handler.ssl.ReferenceCountedOpenSslContext extends io.netty.handler.ssl.SslContext implements io.netty.util.ReferenceCounted
{
private static final io.netty.util.internal.logging.InternalLogger logger;
private static final int DEFAULT_BIO_NON_APPLICATION_BUFFER_SIZE;
static final boolean USE_TASKS;
private static final java.lang.Integer DH_KEY_LENGTH;
private static final io.netty.util.ResourceLeakDetector leakDetector;
protected static final int VERIFY_DEPTH;
static final boolean CLIENT_ENABLE_SESSION_TICKET;
static final boolean CLIENT_ENABLE_SESSION_TICKET_TLSV13;
static final boolean SERVER_ENABLE_SESSION_TICKET;
static final boolean SERVER_ENABLE_SESSION_TICKET_TLSV13;
static final boolean SERVER_ENABLE_SESSION_CACHE;
static final boolean CLIENT_ENABLE_SESSION_CACHE;
protected long ctx;
private final java.util.List unmodifiableCiphers;
private final io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator apn;
private final int mode;
private final io.netty.util.ResourceLeakTracker leak;
private final io.netty.util.AbstractReferenceCounted refCnt;
final java.security.cert.Certificate[] keyCertChain;
final io.netty.handler.ssl.ClientAuth clientAuth;
final java.lang.String[] protocols;
final boolean enableOcsp;
final io.netty.handler.ssl.OpenSslEngineMap engineMap;
final java.util.concurrent.locks.ReadWriteLock ctxLock;
private volatile int bioNonApplicationBufferSize;
static final io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator NONE_PROTOCOL_NEGOTIATOR;
final boolean tlsFalseStart;
transient void <init>(java.lang.Iterable, io.netty.handler.ssl.CipherSuiteFilter, io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator, int, java.security.cert.Certificate[], io.netty.handler.ssl.ClientAuth, java.lang.String[], boolean, boolean, boolean, java.util.Map$Entry[]) throws javax.net.ssl.SSLException
{
io.netty.handler.ssl.ReferenceCountedOpenSslContext$1 v;
java.lang.Integer v, v;
io.netty.handler.ssl.ClientAuth v;
byte v;
io.netty.util.internal.logging.InternalLogger v, v;
java.lang.StringBuilder v, v;
java.lang.Object[] v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext$PrivateKeyMethod v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.handler.ssl.ApplicationProtocolConfig$Protocol v;
int[] v, v;
io.netty.handler.ssl.OpenSslEngineMap v, v, v;
io.netty.handler.ssl.OpenSslContextOption v, v, v, v, v;
java.security.cert.Certificate[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.util.ResourceLeakTracker v;
io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator v;
java.lang.Class v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.handler.ssl.OpenSslCertificateCompressionConfig$AlgorithmMode v;
io.netty.handler.ssl.CipherSuiteFilter v;
java.util.Set v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext$DefaultOpenSslEngineMap v;
java.lang.Exception v, v;
javax.net.ssl.SSLException v, v, v;
java.lang.Throwable v;
java.lang.Error v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
java.util.ArrayList v;
java.lang.String v, v, v, v, v, v, v, v, v;
java.util.LinkedHashSet v;
java.util.Map$Entry v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
java.lang.IllegalStateException v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.util.ResourceLeakDetector v;
java.util.List v, v, v, v, v;
io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext$AsyncPrivateKeyMethod v;
java.lang.String[] v, v, v, v, v;
java.lang.Iterable v;
io.netty.handler.ssl.OpenSslCertificateCompressionAlgorithm v;
java.util.Map$Entry[] v;
java.util.Iterator v;
java.lang.IllegalArgumentException v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext$CompressionAlgorithm v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: java.lang.Iterable;
v := @parameter: io.netty.handler.ssl.CipherSuiteFilter;
v := @parameter: io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator;
v := @parameter: int;
v := @parameter: java.security.cert.Certificate[];
v := @parameter: io.netty.handler.ssl.ClientAuth;
v := @parameter: java.lang.String[];
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: java.util.Map$Entry[];
specialinvoke v.<io.netty.handler.ssl.SslContext: void <init>(boolean)>(v);
v = new io.netty.handler.ssl.ReferenceCountedOpenSslContext$1;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext$1: void <init>(io.netty.handler.ssl.ReferenceCountedOpenSslContext)>(v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.AbstractReferenceCounted refCnt> = v;
v = new io.netty.handler.ssl.ReferenceCountedOpenSslContext$DefaultOpenSslEngineMap;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext$DefaultOpenSslEngineMap: void <init>()>();
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslEngineMap engineMap> = v;
v = new java.util.concurrent.locks.ReentrantReadWriteLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: void <init>()>();
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.util.concurrent.locks.ReadWriteLock ctxLock> = v;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext: int DEFAULT_BIO_NON_APPLICATION_BUFFER_SIZE>;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: int bioNonApplicationBufferSize> = v;
staticinvoke <io.netty.handler.ssl.OpenSsl: void ensureAvailability()>();
if v == 0 goto label;
v = staticinvoke <io.netty.handler.ssl.OpenSsl: boolean isOcspSupported()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("OCSP is not supported.");
throw v;
label:
if v == 1 goto label;
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("mode most be either SSL.SSL_MODE_SERVER or SSL.SSL_MODE_CLIENT");
throw v;
label:
v = 0;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean USE_TASKS>;
if v == null goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = <io.netty.handler.ssl.OpenSslContextOption: io.netty.handler.ssl.OpenSslContextOption TLS_FALSE_START>;
if v != v goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
goto label;
label:
v = <io.netty.handler.ssl.OpenSslContextOption: io.netty.handler.ssl.OpenSslContextOption USE_TASKS>;
if v != v goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
goto label;
label:
v = <io.netty.handler.ssl.OpenSslContextOption: io.netty.handler.ssl.OpenSslContextOption PRIVATE_KEY_METHOD>;
if v != v goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
goto label;
label:
v = <io.netty.handler.ssl.OpenSslContextOption: io.netty.handler.ssl.OpenSslContextOption ASYNC_PRIVATE_KEY_METHOD>;
if v != v goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
goto label;
label:
v = <io.netty.handler.ssl.OpenSslContextOption: io.netty.handler.ssl.OpenSslContextOption CERTIFICATE_COMPRESSION_ALGORITHMS>;
if v != v goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
goto label;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.internal.logging.InternalLogger logger>;
v = class "Lio/netty/handler/ssl/SslContextOption;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.Object)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Skipping unsupported \u0001: \u0001");
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String)>(v);
label:
v = v + 1;
goto label;
label:
if v == null goto label;
if v == null goto label;
v = new java.lang.IllegalArgumentException;
v = class "Lio/netty/handler/ssl/OpenSslAsyncPrivateKeyMethod;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
v = class "Lio/netty/handler/ssl/OpenSslPrivateKeyMethod;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("You can either only use \u or \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean tlsFalseStart> = v;
if v == 0 goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.ResourceLeakDetector leakDetector>;
v = virtualinvoke v.<io.netty.util.ResourceLeakDetector: io.netty.util.ResourceLeakTracker track(java.lang.Object)>(v);
goto label;
label:
v = null;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.ResourceLeakTracker leak> = v;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: int mode> = v;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean isServer()>();
if v == 0 goto label;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "clientAuth");
goto label;
label:
v = <io.netty.handler.ssl.ClientAuth: io.netty.handler.ssl.ClientAuth NONE>;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.ClientAuth clientAuth> = v;
if v != null goto label;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = staticinvoke <io.netty.handler.ssl.OpenSsl: java.lang.String[] defaultProtocols(boolean)>(v);
goto label;
label:
v = v;
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.lang.String[] protocols> = v;
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean enableOcsp> = v;
if v == null goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Object clone()>();
label:
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.security.cert.Certificate[] keyCertChain> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "cipherFilter");
v = <io.netty.handler.ssl.OpenSsl: java.util.List DEFAULT_CIPHERS>;
v = staticinvoke <io.netty.handler.ssl.OpenSsl: java.util.Set availableJavaCipherSuites()>();
v = interfaceinvoke v.<io.netty.handler.ssl.CipherSuiteFilter: java.lang.String[] filterCipherSuites(java.lang.Iterable,java.util.List,java.util.Set)>(v, v, v);
v = new java.util.LinkedHashSet;
v = lengthof v;
specialinvoke v.<java.util.LinkedHashSet: void <init>(int)>(v);
staticinvoke <java.util.Collections: boolean addAll(java.util.Collection,java.lang.Object[])>(v, v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.util.List unmodifiableCiphers> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "apn");
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator apn> = v;
label:
v = staticinvoke <io.netty.handler.ssl.OpenSsl: boolean isTlsv13Supported()>();
label:
v = 30;
if v == 0 goto label;
v = 62;
label:
v = staticinvoke <io.netty.internal.tcnative.SSLContext: long make(int,int)>(v, v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx> = v;
label:
goto label;
label:
v := @caughtexception;
v = new javax.net.ssl.SSLException;
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String,java.lang.Throwable)>("failed to create an SSL_CTX", v);
throw v;
label:
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.util.List unmodifiableCiphers>;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: boolean setCipherSuite(long,java.lang.String,boolean)>(v, "", 0);
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: boolean setCipherSuite(long,java.lang.String,boolean)>(v, "", 1);
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.util.List unmodifiableCiphers>;
v = staticinvoke <io.netty.handler.ssl.OpenSsl: boolean isBoringSSL()>();
staticinvoke <io.netty.handler.ssl.CipherSuiteConverter: void convertToCipherStrings(java.lang.Iterable,java.lang.StringBuilder,java.lang.StringBuilder,boolean)>(v, v, v, v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
staticinvoke <io.netty.internal.tcnative.SSLContext: boolean setCipherSuite(long,java.lang.String,boolean)>(v, v, 0);
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.internal.logging.InternalLogger logger>;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
v = staticinvoke <io.netty.handler.ssl.OpenSsl: java.lang.String checkTls13Ciphers(io.netty.util.internal.logging.InternalLogger,java.lang.String)>(v, v);
staticinvoke <io.netty.internal.tcnative.SSLContext: boolean setCipherSuite(long,java.lang.String,boolean)>(v, v, 1);
label:
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new javax.net.ssl.SSLException;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.util.List unmodifiableCiphers>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.List)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("failed to set cipher suite: \u0001");
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = staticinvoke <io.netty.internal.tcnative.SSLContext: int getOptions(long)>(v);
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_SSLv2>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_SSLv3>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_1>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_CIPHER_SERVER_PREFERENCE>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_COMPRESSION>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TICKET>;
v = v | v;
v = virtualinvoke v.<java.lang.StringBuilder: int length()>();
if v != 0 goto label;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_SSLv2>;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_SSLv3>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_1>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_2>;
v = v | v;
v = v | v;
label:
if v != 0 goto label;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TLSv1_3>;
v = v | v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: void setOptions(long,int)>(v, v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = staticinvoke <io.netty.internal.tcnative.SSLContext: int getMode(long)>(v);
v = <io.netty.internal.tcnative.SSL: int SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER>;
v = v | v;
staticinvoke <io.netty.internal.tcnative.SSLContext: int setMode(long,int)>(v, v);
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.lang.Integer DH_KEY_LENGTH>;
if v == null goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.lang.Integer DH_KEY_LENGTH>;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
staticinvoke <io.netty.internal.tcnative.SSLContext: void setTmpDHLength(long,int)>(v, v);
label:
v = interfaceinvoke v.<io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator: java.util.List protocols()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = newarray (java.lang.String)[0];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = interfaceinvoke v.<io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator: io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior selectorFailureBehavior()>();
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: int opensslSelectorFailureBehavior(io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior)>(v);
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext$3: int[] $SwitchMap$io$netty$handler$ssl$ApplicationProtocolConfig$Protocol>;
v = interfaceinvoke v.<io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator: io.netty.handler.ssl.ApplicationProtocolConfig$Protocol protocol()>();
v = virtualinvoke v.<io.netty.handler.ssl.ApplicationProtocolConfig$Protocol: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: void setNpnProtos(long,java.lang.String[],int)>(v, v, v);
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: void setAlpnProtos(long,java.lang.String[],int)>(v, v, v);
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: void setNpnProtos(long,java.lang.String[],int)>(v, v, v);
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: void setAlpnProtos(long,java.lang.String[],int)>(v, v, v);
goto label;
label:
v = new java.lang.Error;
specialinvoke v.<java.lang.Error: void <init>()>();
throw v;
label:
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean isClient()>();
staticinvoke <io.netty.internal.tcnative.SSLContext: void enableOcsp(long,boolean)>(v, v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: void setUseTasks(long,boolean)>(v, v);
if v == null goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = new io.netty.handler.ssl.ReferenceCountedOpenSslContext$PrivateKeyMethod;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslEngineMap engineMap>;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext$PrivateKeyMethod: void <init>(io.netty.handler.ssl.OpenSslEngineMap,io.netty.handler.ssl.OpenSslPrivateKeyMethod)>(v, v);
staticinvoke <io.netty.internal.tcnative.SSLContext: void setPrivateKeyMethod(long,io.netty.internal.tcnative.SSLPrivateKeyMethod)>(v, v);
label:
if v == null goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = new io.netty.handler.ssl.ReferenceCountedOpenSslContext$AsyncPrivateKeyMethod;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslEngineMap engineMap>;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext$AsyncPrivateKeyMethod: void <init>(io.netty.handler.ssl.OpenSslEngineMap,io.netty.handler.ssl.OpenSslAsyncPrivateKeyMethod)>(v, v);
staticinvoke <io.netty.internal.tcnative.SSLContext: void setPrivateKeyMethod(long,io.netty.internal.tcnative.AsyncSSLPrivateKeyMethod)>(v, v);
label:
if v == null goto label;
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslCertificateCompressionConfig: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new io.netty.handler.ssl.ReferenceCountedOpenSslContext$CompressionAlgorithm;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslEngineMap engineMap>;
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslCertificateCompressionConfig$AlgorithmConfig: io.netty.handler.ssl.OpenSslCertificateCompressionAlgorithm algorithm()>();
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext$CompressionAlgorithm: void <init>(io.netty.handler.ssl.OpenSslEngineMap,io.netty.handler.ssl.OpenSslCertificateCompressionAlgorithm)>(v, v);
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext$3: int[] $SwitchMap$io$netty$handler$ssl$OpenSslCertificateCompressionConfig$AlgorithmMode>;
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslCertificateCompressionConfig$AlgorithmConfig: io.netty.handler.ssl.OpenSslCertificateCompressionConfig$AlgorithmMode mode()>();
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslCertificateCompressionConfig$AlgorithmMode: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = <io.netty.internal.tcnative.SSL: int SSL_CERT_COMPRESSION_DIRECTION_DECOMPRESS>;
staticinvoke <io.netty.internal.tcnative.SSLContext: int addCertificateCompressionAlgorithm(long,int,io.netty.internal.tcnative.CertificateCompressionAlgo)>(v, v, v);
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = <io.netty.internal.tcnative.SSL: int SSL_CERT_COMPRESSION_DIRECTION_COMPRESS>;
staticinvoke <io.netty.internal.tcnative.SSLContext: int addCertificateCompressionAlgorithm(long,int,io.netty.internal.tcnative.CertificateCompressionAlgo)>(v, v, v);
goto label;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = <io.netty.internal.tcnative.SSL: int SSL_CERT_COMPRESSION_DIRECTION_BOTH>;
staticinvoke <io.netty.internal.tcnative.SSLContext: int addCertificateCompressionAlgorithm(long,int,io.netty.internal.tcnative.CertificateCompressionAlgo)>(v, v, v);
goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>()>();
throw v;
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = <io.netty.handler.ssl.OpenSsl: java.lang.String[] NAMED_GROUPS>;
staticinvoke <io.netty.internal.tcnative.SSLContext: boolean setCurvesList(long,java.lang.String[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean release()>();
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
catch javax.net.ssl.SSLException from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static int opensslSelectorFailureBehavior(io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior)
{
io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior v;
int[] v;
int v, v;
java.lang.Error v;
v := @parameter: io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext$3: int[] $SwitchMap$io$netty$handler$ssl$ApplicationProtocolConfig$SelectorFailureBehavior>;
v = virtualinvoke v.<io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior: int ordinal()>();
v = v[v];
lookupswitch(v)
{
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
return 0;
label:
return 1;
label:
v = new java.lang.Error;
specialinvoke v.<java.lang.Error: void <init>()>();
throw v;
}
public final java.util.List cipherSuites()
{
java.util.List v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.util.List unmodifiableCiphers>;
return v;
}
public io.netty.handler.ssl.ApplicationProtocolNegotiator applicationProtocolNegotiator()
{
io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator apn>;
return v;
}
public final boolean isClient()
{
int v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: int mode>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public final javax.net.ssl.SSLEngine newEngine(io.netty.buffer.ByteBufAllocator, java.lang.String, int)
{
io.netty.buffer.ByteBufAllocator v;
int v;
java.lang.String v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
javax.net.ssl.SSLEngine v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: io.netty.buffer.ByteBufAllocator;
v := @parameter: java.lang.String;
v := @parameter: int;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: javax.net.ssl.SSLEngine newEngine0(io.netty.buffer.ByteBufAllocator,java.lang.String,int,boolean)>(v, v, v, 1);
return v;
}
protected final io.netty.handler.ssl.SslHandler newHandler(io.netty.buffer.ByteBufAllocator, boolean)
{
io.netty.handler.ssl.SslHandler v;
io.netty.buffer.ByteBufAllocator v;
int v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
boolean v;
javax.net.ssl.SSLEngine v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: io.netty.buffer.ByteBufAllocator;
v := @parameter: boolean;
v = new io.netty.handler.ssl.SslHandler;
v = (int) -1;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: javax.net.ssl.SSLEngine newEngine0(io.netty.buffer.ByteBufAllocator,java.lang.String,int,boolean)>(v, null, v, 0);
specialinvoke v.<io.netty.handler.ssl.SslHandler: void <init>(javax.net.ssl.SSLEngine,boolean)>(v, v);
return v;
}
protected final io.netty.handler.ssl.SslHandler newHandler(io.netty.buffer.ByteBufAllocator, java.lang.String, int, boolean)
{
io.netty.handler.ssl.SslHandler v;
io.netty.buffer.ByteBufAllocator v;
int v;
java.lang.String v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
boolean v;
javax.net.ssl.SSLEngine v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: io.netty.buffer.ByteBufAllocator;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: boolean;
v = new io.netty.handler.ssl.SslHandler;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: javax.net.ssl.SSLEngine newEngine0(io.netty.buffer.ByteBufAllocator,java.lang.String,int,boolean)>(v, v, v, 0);
specialinvoke v.<io.netty.handler.ssl.SslHandler: void <init>(javax.net.ssl.SSLEngine,boolean)>(v, v);
return v;
}
protected io.netty.handler.ssl.SslHandler newHandler(io.netty.buffer.ByteBufAllocator, boolean, java.util.concurrent.Executor)
{
io.netty.handler.ssl.SslHandler v;
java.util.concurrent.Executor v;
io.netty.buffer.ByteBufAllocator v;
int v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
boolean v;
javax.net.ssl.SSLEngine v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: io.netty.buffer.ByteBufAllocator;
v := @parameter: boolean;
v := @parameter: java.util.concurrent.Executor;
v = new io.netty.handler.ssl.SslHandler;
v = (int) -1;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: javax.net.ssl.SSLEngine newEngine0(io.netty.buffer.ByteBufAllocator,java.lang.String,int,boolean)>(v, null, v, 0);
specialinvoke v.<io.netty.handler.ssl.SslHandler: void <init>(javax.net.ssl.SSLEngine,boolean,java.util.concurrent.Executor)>(v, v, v);
return v;
}
protected io.netty.handler.ssl.SslHandler newHandler(io.netty.buffer.ByteBufAllocator, java.lang.String, int, boolean, java.util.concurrent.Executor)
{
java.util.concurrent.Executor v;
io.netty.buffer.ByteBufAllocator v;
javax.net.ssl.SSLEngine v;
io.netty.handler.ssl.SslHandler v;
int v;
java.lang.String v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: io.netty.buffer.ByteBufAllocator;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: java.util.concurrent.Executor;
v = new io.netty.handler.ssl.SslHandler;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: javax.net.ssl.SSLEngine newEngine0(io.netty.buffer.ByteBufAllocator,java.lang.String,int,boolean)>(v, v, v, 0);
specialinvoke v.<io.netty.handler.ssl.SslHandler: void <init>(javax.net.ssl.SSLEngine,java.util.concurrent.Executor)>(v, v);
return v;
}
javax.net.ssl.SSLEngine newEngine0(io.netty.buffer.ByteBufAllocator, java.lang.String, int, boolean)
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
io.netty.buffer.ByteBufAllocator v;
int v;
java.lang.String v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: io.netty.buffer.ByteBufAllocator;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: boolean;
v = new io.netty.handler.ssl.ReferenceCountedOpenSslEngine;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslEngine: void <init>(io.netty.handler.ssl.ReferenceCountedOpenSslContext,io.netty.buffer.ByteBufAllocator,java.lang.String,int,boolean,boolean)>(v, v, v, v, v, 1);
return v;
}
public final javax.net.ssl.SSLEngine newEngine(io.netty.buffer.ByteBufAllocator)
{
io.netty.buffer.ByteBufAllocator v;
int v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
javax.net.ssl.SSLEngine v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: io.netty.buffer.ByteBufAllocator;
v = (int) -1;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: javax.net.ssl.SSLEngine newEngine(io.netty.buffer.ByteBufAllocator,java.lang.String,int)>(v, null, v);
return v;
}
public final long context()
{
long v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long sslCtxPointer()>();
return v;
}
public final io.netty.handler.ssl.OpenSslSessionStats stats()
{
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.OpenSslSessionStats v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslSessionContext sessionContext()>();
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionStats stats()>();
return v;
}
public void setRejectRemoteInitiatedRenegotiation(boolean)
{
java.lang.UnsupportedOperationException v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: boolean;
if v != 0 goto label;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("Renegotiation is not supported");
throw v;
label:
return;
}
public boolean getRejectRemoteInitiatedRenegotiation()
{
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
return 1;
}
public void setBioNonApplicationBufferSize(int)
{
int v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.ObjectUtil: int checkPositiveOrZero(int,java.lang.String)>(v, "bioNonApplicationBufferSize");
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: int bioNonApplicationBufferSize> = v;
return;
}
public int getBioNonApplicationBufferSize()
{
int v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: int bioNonApplicationBufferSize>;
return v;
}
public final void setTicketKeys(byte[])
{
byte[] v;
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: byte[];
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslSessionContext sessionContext()>();
virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionContext: void setTicketKeys(byte[])>(v);
return;
}
public abstract io.netty.handler.ssl.OpenSslSessionContext sessionContext();
public final long sslCtxPointer()
{
java.lang.Throwable v;
java.util.concurrent.locks.Lock v;
long v, v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
java.util.concurrent.locks.ReadWriteLock v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.util.concurrent.locks.ReadWriteLock ctxLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock readLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = staticinvoke <io.netty.internal.tcnative.SSLContext: long getSslCtx(long)>(v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return v;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public final void setPrivateKeyMethod(io.netty.handler.ssl.OpenSslPrivateKeyMethod)
{
java.lang.Throwable v;
io.netty.handler.ssl.OpenSslEngineMap v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext$PrivateKeyMethod v;
long v;
java.util.concurrent.locks.Lock v;
io.netty.handler.ssl.OpenSslPrivateKeyMethod v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
java.util.concurrent.locks.ReadWriteLock v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: io.netty.handler.ssl.OpenSslPrivateKeyMethod;
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "method");
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.util.concurrent.locks.ReadWriteLock ctxLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = new io.netty.handler.ssl.ReferenceCountedOpenSslContext$PrivateKeyMethod;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslEngineMap engineMap>;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext$PrivateKeyMethod: void <init>(io.netty.handler.ssl.OpenSslEngineMap,io.netty.handler.ssl.OpenSslPrivateKeyMethod)>(v, v);
staticinvoke <io.netty.internal.tcnative.SSLContext: void setPrivateKeyMethod(long,io.netty.internal.tcnative.SSLPrivateKeyMethod)>(v, v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public final void setUseTasks(boolean)
{
java.lang.Throwable v;
java.util.concurrent.locks.Lock v;
long v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
java.util.concurrent.locks.ReadWriteLock v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: boolean;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.util.concurrent.locks.ReadWriteLock ctxLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: void setUseTasks(long,boolean)>(v, v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private void destroy()
{
java.lang.Throwable v;
long v, v, v;
java.util.concurrent.locks.Lock v;
byte v;
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
java.util.concurrent.locks.ReadWriteLock v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.util.concurrent.locks.ReadWriteLock ctxLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock writeLock()>();
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = v cmp 0L;
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean enableOcsp>;
if v == 0 goto label;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: void disableOcsp(long)>(v);
label:
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: int free(long)>(v);
v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx> = 0L;
v = virtualinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslSessionContext sessionContext()>();
if v == null goto label;
virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionContext: void destroy()>();
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected static java.security.cert.X509Certificate[] certificates(byte[][])
{
byte[] v;
byte[][] v;
int v, v, v;
io.netty.handler.ssl.util.LazyX509Certificate v;
java.security.cert.X509Certificate[] v;
v := @parameter: byte[][];
v = lengthof v;
v = newarray (java.security.cert.X509Certificate)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = new io.netty.handler.ssl.util.LazyX509Certificate;
v = v[v];
specialinvoke v.<io.netty.handler.ssl.util.LazyX509Certificate: void <init>(byte[])>(v);
v[v] = v;
v = v + 1;
goto label;
label:
return v;
}
protected static javax.net.ssl.X509TrustManager chooseTrustManager(javax.net.ssl.TrustManager[])
{
java.lang.IllegalStateException v;
javax.net.ssl.TrustManager v;
javax.net.ssl.TrustManager[] v;
javax.net.ssl.X509TrustManager v;
int v, v, v;
boolean v;
v := @parameter: javax.net.ssl.TrustManager[];
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v instanceof javax.net.ssl.X509TrustManager;
if v == 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 7 goto label;
v = staticinvoke <io.netty.handler.ssl.OpenSslX509TrustManagerWrapper: javax.net.ssl.X509TrustManager wrapIfNeeded(javax.net.ssl.X509TrustManager)>(v);
return v;
label:
return v;
label:
v = v + 1;
goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("no X509TrustManager found");
throw v;
}
protected static javax.net.ssl.X509KeyManager chooseX509KeyManager(javax.net.ssl.KeyManager[])
{
java.lang.IllegalStateException v;
int v, v;
javax.net.ssl.KeyManager v;
boolean v;
javax.net.ssl.KeyManager[] v;
v := @parameter: javax.net.ssl.KeyManager[];
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v instanceof javax.net.ssl.X509KeyManager;
if v == 0 goto label;
return v;
label:
v = v + 1;
goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("no X509KeyManager found");
throw v;
}
static io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator toNegotiator(io.netty.handler.ssl.ApplicationProtocolConfig)
{
java.lang.Error v;
io.netty.handler.ssl.ApplicationProtocolConfig$Protocol v;
io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior v, v;
int[] v, v, v;
int v, v, v, v, v, v;
java.lang.String v, v;
io.netty.handler.ssl.ApplicationProtocolConfig v;
java.lang.UnsupportedOperationException v, v;
io.netty.handler.ssl.OpenSslDefaultApplicationProtocolNegotiator v;
io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior v, v;
io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator v, v;
java.lang.StringBuilder v, v;
v := @parameter: io.netty.handler.ssl.ApplicationProtocolConfig;
if v != null goto label;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator NONE_PROTOCOL_NEGOTIATOR>;
return v;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext$3: int[] $SwitchMap$io$netty$handler$ssl$ApplicationProtocolConfig$Protocol>;
v = virtualinvoke v.<io.netty.handler.ssl.ApplicationProtocolConfig: io.netty.handler.ssl.ApplicationProtocolConfig$Protocol protocol()>();
v = virtualinvoke v.<io.netty.handler.ssl.ApplicationProtocolConfig$Protocol: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
default: goto label;
};
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator NONE_PROTOCOL_NEGOTIATOR>;
return v;
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext$3: int[] $SwitchMap$io$netty$handler$ssl$ApplicationProtocolConfig$SelectedListenerFailureBehavior>;
v = virtualinvoke v.<io.netty.handler.ssl.ApplicationProtocolConfig: io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior selectedListenerFailureBehavior()>();
v = virtualinvoke v.<io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior: int ordinal()>();
v = v[v];
lookupswitch(v)
{
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext$3: int[] $SwitchMap$io$netty$handler$ssl$ApplicationProtocolConfig$SelectorFailureBehavior>;
v = virtualinvoke v.<io.netty.handler.ssl.ApplicationProtocolConfig: io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior selectorFailureBehavior()>();
v = virtualinvoke v.<io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior: int ordinal()>();
v = v[v];
lookupswitch(v)
{
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v = new io.netty.handler.ssl.OpenSslDefaultApplicationProtocolNegotiator;
specialinvoke v.<io.netty.handler.ssl.OpenSslDefaultApplicationProtocolNegotiator: void <init>(io.netty.handler.ssl.ApplicationProtocolConfig)>(v);
return v;
label:
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("OpenSSL provider does not support ");
v = virtualinvoke v.<io.netty.handler.ssl.ApplicationProtocolConfig: io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior selectorFailureBehavior()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (io.netty.handler.ssl.ApplicationProtocolConfig$SelectorFailureBehavior)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u behavior");
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("OpenSSL provider does not support ");
v = virtualinvoke v.<io.netty.handler.ssl.ApplicationProtocolConfig: io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior selectedListenerFailureBehavior()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (io.netty.handler.ssl.ApplicationProtocolConfig$SelectedListenerFailureBehavior)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u behavior");
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new java.lang.Error;
specialinvoke v.<java.lang.Error: void <init>()>();
throw v;
}
static boolean useExtendedTrustManager(javax.net.ssl.X509TrustManager)
{
javax.net.ssl.X509TrustManager v;
int v;
boolean v, v;
v := @parameter: javax.net.ssl.X509TrustManager;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 7 goto label;
v = v instanceof javax.net.ssl.X509ExtendedTrustManager;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public final int refCnt()
{
int v;
io.netty.util.AbstractReferenceCounted v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.AbstractReferenceCounted refCnt>;
v = virtualinvoke v.<io.netty.util.AbstractReferenceCounted: int refCnt()>();
return v;
}
public final io.netty.util.ReferenceCounted retain()
{
io.netty.util.AbstractReferenceCounted v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.AbstractReferenceCounted refCnt>;
virtualinvoke v.<io.netty.util.AbstractReferenceCounted: io.netty.util.ReferenceCounted retain()>();
return v;
}
public final io.netty.util.ReferenceCounted retain(int)
{
int v;
io.netty.util.AbstractReferenceCounted v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: int;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.AbstractReferenceCounted refCnt>;
virtualinvoke v.<io.netty.util.AbstractReferenceCounted: io.netty.util.ReferenceCounted retain(int)>(v);
return v;
}
public final io.netty.util.ReferenceCounted touch()
{
io.netty.util.AbstractReferenceCounted v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.AbstractReferenceCounted refCnt>;
virtualinvoke v.<io.netty.util.AbstractReferenceCounted: io.netty.util.ReferenceCounted touch()>();
return v;
}
public final io.netty.util.ReferenceCounted touch(java.lang.Object)
{
io.netty.util.AbstractReferenceCounted v;
java.lang.Object v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: java.lang.Object;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.AbstractReferenceCounted refCnt>;
virtualinvoke v.<io.netty.util.AbstractReferenceCounted: io.netty.util.ReferenceCounted touch(java.lang.Object)>(v);
return v;
}
public final boolean release()
{
io.netty.util.AbstractReferenceCounted v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.AbstractReferenceCounted refCnt>;
v = virtualinvoke v.<io.netty.util.AbstractReferenceCounted: boolean release()>();
return v;
}
public final boolean release(int)
{
int v;
io.netty.util.AbstractReferenceCounted v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
boolean v;
v := @this: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: int;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.AbstractReferenceCounted refCnt>;
v = virtualinvoke v.<io.netty.util.AbstractReferenceCounted: boolean release(int)>(v);
return v;
}
static void setKeyMaterial(long, java.security.cert.X509Certificate[], java.security.PrivateKey, java.lang.String) throws javax.net.ssl.SSLException
{
java.lang.Throwable v;
io.netty.buffer.ByteBufAllocator v, v, v, v;
io.netty.handler.ssl.PemEncoded v, v, v;
long v, v, v, v, v, v;
java.lang.String v, v;
java.lang.Exception v;
javax.net.ssl.SSLException v, v;
java.security.PrivateKey v;
java.security.cert.X509Certificate[] v;
v := @parameter: long;
v := @parameter: java.security.cert.X509Certificate[];
v := @parameter: java.security.PrivateKey;
v := @parameter: java.lang.String;
v = 0L;
v = 0L;
v = 0L;
v = null;
label:
v = <io.netty.buffer.ByteBufAllocator: io.netty.buffer.ByteBufAllocator DEFAULT>;
v = staticinvoke <io.netty.handler.ssl.PemX509Certificate: io.netty.handler.ssl.PemEncoded toPEM(io.netty.buffer.ByteBufAllocator,boolean,java.security.cert.X509Certificate[])>(v, 1, v);
v = <io.netty.buffer.ByteBufAllocator: io.netty.buffer.ByteBufAllocator DEFAULT>;
v = interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: io.netty.handler.ssl.PemEncoded retain()>();
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: long toBIO(io.netty.buffer.ByteBufAllocator,io.netty.handler.ssl.PemEncoded)>(v, v);
v = <io.netty.buffer.ByteBufAllocator: io.netty.buffer.ByteBufAllocator DEFAULT>;
v = interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: io.netty.handler.ssl.PemEncoded retain()>();
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: long toBIO(io.netty.buffer.ByteBufAllocator,io.netty.handler.ssl.PemEncoded)>(v, v);
if v == null goto label;
v = <io.netty.buffer.ByteBufAllocator: io.netty.buffer.ByteBufAllocator DEFAULT>;
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: long toBIO(io.netty.buffer.ByteBufAllocator,java.security.PrivateKey)>(v, v);
label:
v = v;
v = v;
if v != null goto label;
v = "";
goto label;
label:
v = v;
label:
staticinvoke <io.netty.internal.tcnative.SSLContext: boolean setCertificateBio(long,long,long,java.lang.String)>(v, v, v, v);
staticinvoke <io.netty.internal.tcnative.SSLContext: boolean setCertificateChainBio(long,long,boolean)>(v, v, 1);
label:
staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: void freeBio(long)>(v);
staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: void freeBio(long)>(v);
staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: void freeBio(long)>(v);
interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: boolean release()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new javax.net.ssl.SSLException;
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String,java.lang.Throwable)>("failed to set certificate and key", v);
throw v;
label:
v := @caughtexception;
staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: void freeBio(long)>(v);
staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: void freeBio(long)>(v);
staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: void freeBio(long)>(v);
if v == null goto label;
interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: boolean release()>();
label:
throw v;
label:
return;
catch javax.net.ssl.SSLException from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
}
static void freeBio(long)
{
long v;
byte v;
v := @parameter: long;
v = v cmp 0L;
if v == 0 goto label;
staticinvoke <io.netty.internal.tcnative.SSL: void freeBIO(long)>(v);
label:
return;
}
static long toBIO(io.netty.buffer.ByteBufAllocator, java.security.PrivateKey) throws java.lang.Exception
{
java.lang.Throwable v;
java.security.PrivateKey v;
io.netty.buffer.ByteBufAllocator v;
io.netty.handler.ssl.PemEncoded v, v;
long v;
v := @parameter: io.netty.buffer.ByteBufAllocator;
v := @parameter: java.security.PrivateKey;
if v != null goto label;
return 0L;
label:
v = staticinvoke <io.netty.handler.ssl.PemPrivateKey: io.netty.handler.ssl.PemEncoded toPEM(io.netty.buffer.ByteBufAllocator,boolean,java.security.PrivateKey)>(v, 1, v);
label:
v = interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: io.netty.handler.ssl.PemEncoded retain()>();
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: long toBIO(io.netty.buffer.ByteBufAllocator,io.netty.handler.ssl.PemEncoded)>(v, v);
label:
interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: boolean release()>();
return v;
label:
v := @caughtexception;
interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: boolean release()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
static transient long toBIO(io.netty.buffer.ByteBufAllocator, java.security.cert.X509Certificate[]) throws java.lang.Exception
{
java.lang.Throwable v;
io.netty.buffer.ByteBufAllocator v;
io.netty.handler.ssl.PemEncoded v, v;
long v;
java.security.cert.X509Certificate[] v;
v := @parameter: io.netty.buffer.ByteBufAllocator;
v := @parameter: java.security.cert.X509Certificate[];
if v != null goto label;
return 0L;
label:
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object[] checkNonEmpty(java.lang.Object[],java.lang.String)>(v, "certChain");
v = staticinvoke <io.netty.handler.ssl.PemX509Certificate: io.netty.handler.ssl.PemEncoded toPEM(io.netty.buffer.ByteBufAllocator,boolean,java.security.cert.X509Certificate[])>(v, 1, v);
label:
v = interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: io.netty.handler.ssl.PemEncoded retain()>();
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: long toBIO(io.netty.buffer.ByteBufAllocator,io.netty.handler.ssl.PemEncoded)>(v, v);
label:
interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: boolean release()>();
return v;
label:
v := @caughtexception;
interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: boolean release()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
static long toBIO(io.netty.buffer.ByteBufAllocator, io.netty.handler.ssl.PemEncoded) throws java.lang.Exception
{
java.lang.Throwable v, v, v, v;
io.netty.buffer.ByteBufAllocator v;
io.netty.handler.ssl.PemEncoded v;
long v, v;
io.netty.buffer.ByteBuf v, v, v, v;
int v, v, v;
boolean v, v, v;
v := @parameter: io.netty.buffer.ByteBufAllocator;
v := @parameter: io.netty.handler.ssl.PemEncoded;
label:
v = interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: io.netty.buffer.ByteBuf content()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: boolean isDirect()>();
if v == 0 goto label;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf retainedSlice()>();
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: long newBIO(io.netty.buffer.ByteBuf)>(v);
label:
interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: boolean release()>();
return v;
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = interfaceinvoke v.<io.netty.buffer.ByteBufAllocator: io.netty.buffer.ByteBuf directBuffer(int)>(v);
label:
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf writeBytes(io.netty.buffer.ByteBuf,int,int)>(v, v, v);
v = virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf retainedSlice()>();
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: long newBIO(io.netty.buffer.ByteBuf)>(v);
label:
v = interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: boolean isSensitive()>();
if v == 0 goto label;
staticinvoke <io.netty.handler.ssl.SslUtils: void zeroout(io.netty.buffer.ByteBuf)>(v);
label:
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
throw v;
label:
interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: boolean release()>();
return v;
label:
v := @caughtexception;
label:
v = interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: boolean isSensitive()>();
if v == 0 goto label;
staticinvoke <io.netty.handler.ssl.SslUtils: void zeroout(io.netty.buffer.ByteBuf)>(v);
label:
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
throw v;
label:
throw v;
label:
v := @caughtexception;
interfaceinvoke v.<io.netty.handler.ssl.PemEncoded: boolean release()>();
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static long newBIO(io.netty.buffer.ByteBuf) throws java.lang.Exception
{
java.lang.Throwable v;
java.lang.IllegalStateException v;
long v, v, v;
io.netty.buffer.ByteBuf v;
int v, v, v;
v := @parameter: io.netty.buffer.ByteBuf;
label:
v = staticinvoke <io.netty.internal.tcnative.SSL: long newMemBIO()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = staticinvoke <io.netty.handler.ssl.OpenSsl: long memoryAddress(io.netty.buffer.ByteBuf)>(v);
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readerIndex()>();
v = v + v;
v = staticinvoke <io.netty.internal.tcnative.SSL: int bioWrite(long,long,int)>(v, v, v);
if v == v goto label;
staticinvoke <io.netty.internal.tcnative.SSL: void freeBIO(long)>(v);
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Could not write data to memory BIO");
throw v;
label:
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
return v;
label:
v := @caughtexception;
virtualinvoke v.<io.netty.buffer.ByteBuf: boolean release()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
static io.netty.handler.ssl.OpenSslKeyMaterialProvider providerFor(javax.net.ssl.KeyManagerFactory, java.lang.String)
{
javax.net.ssl.X509KeyManager v;
io.netty.handler.ssl.OpenSslKeyMaterialProvider v, v, v;
javax.net.ssl.KeyManagerFactory v;
java.lang.String v;
boolean v, v;
javax.net.ssl.KeyManager[] v;
v := @parameter: javax.net.ssl.KeyManagerFactory;
v := @parameter: java.lang.String;
v = v instanceof io.netty.handler.ssl.OpenSslX509KeyManagerFactory;
if v == 0 goto label;
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslX509KeyManagerFactory: io.netty.handler.ssl.OpenSslKeyMaterialProvider newProvider()>();
return v;
label:
v = v instanceof io.netty.handler.ssl.OpenSslCachingX509KeyManagerFactory;
if v == 0 goto label;
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslCachingX509KeyManagerFactory: io.netty.handler.ssl.OpenSslKeyMaterialProvider newProvider(java.lang.String)>(v);
return v;
label:
v = new io.netty.handler.ssl.OpenSslKeyMaterialProvider;
v = virtualinvoke v.<javax.net.ssl.KeyManagerFactory: javax.net.ssl.KeyManager[] getKeyManagers()>();
v = staticinvoke <io.netty.handler.ssl.ReferenceCountedOpenSslContext: javax.net.ssl.X509KeyManager chooseX509KeyManager(javax.net.ssl.KeyManager[])>(v);
specialinvoke v.<io.netty.handler.ssl.OpenSslKeyMaterialProvider: void <init>(javax.net.ssl.X509KeyManager,java.lang.String)>(v, v);
return v;
}
private static io.netty.handler.ssl.ReferenceCountedOpenSslEngine retrieveEngine(io.netty.handler.ssl.OpenSslEngineMap, long) throws javax.net.ssl.SSLException
{
io.netty.handler.ssl.ReferenceCountedOpenSslEngine v;
javax.net.ssl.SSLException v;
io.netty.handler.ssl.OpenSslEngineMap v;
long v;
java.lang.String v, v;
v := @parameter: io.netty.handler.ssl.OpenSslEngineMap;
v := @parameter: long;
v = interfaceinvoke v.<io.netty.handler.ssl.OpenSslEngineMap: io.netty.handler.ssl.ReferenceCountedOpenSslEngine get(long)>(v);
if v != null goto label;
v = new javax.net.ssl.SSLException;
v = staticinvoke <io.netty.util.internal.StringUtil: java.lang.String simpleClassName(java.lang.Class)>(class "Lio/netty/handler/ssl/ReferenceCountedOpenSslEngine;");
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,long)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Could not find a \u for sslPointer \u0001");
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
private static byte[] verifyResult(byte[]) throws java.security.SignatureException
{
byte[] v;
java.security.SignatureException v;
v := @parameter: byte[];
if v != null goto label;
v = new java.security.SignatureException;
specialinvoke v.<java.security.SignatureException: void <init>()>();
throw v;
label:
return v;
}
static void <clinit>()
{
java.lang.Throwable v;
java.lang.Integer v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext$2 v;
int v, v;
java.lang.String v, v;
boolean v, v, v, v, v, v, v;
java.lang.NumberFormatException v;
io.netty.util.ResourceLeakDetector v;
io.netty.util.internal.logging.InternalLogger v, v;
io.netty.util.ResourceLeakDetectorFactory v;
v = staticinvoke <io.netty.util.internal.logging.InternalLoggerFactory: io.netty.util.internal.logging.InternalLogger getInstance(java.lang.Class)>(class "Lio/netty/handler/ssl/ReferenceCountedOpenSslContext;");
<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.internal.logging.InternalLogger logger> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: int getInt(java.lang.String,int)>("io.netty.handler.ssl.openssl.bioNonApplicationBufferSize", 2048);
v = staticinvoke <java.lang.Math: int max(int,int)>(1, v);
<io.netty.handler.ssl.ReferenceCountedOpenSslContext: int DEFAULT_BIO_NON_APPLICATION_BUFFER_SIZE> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: boolean getBoolean(java.lang.String,boolean)>("io.netty.handler.ssl.openssl.useTasks", 1);
<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean USE_TASKS> = v;
v = staticinvoke <io.netty.util.ResourceLeakDetectorFactory: io.netty.util.ResourceLeakDetectorFactory instance()>();
v = virtualinvoke v.<io.netty.util.ResourceLeakDetectorFactory: io.netty.util.ResourceLeakDetector newResourceLeakDetector(java.lang.Class)>(class "Lio/netty/handler/ssl/ReferenceCountedOpenSslContext;");
<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.ResourceLeakDetector leakDetector> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: boolean getBoolean(java.lang.String,boolean)>("jdk.tls.client.enableSessionTicketExtension", 0);
<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean CLIENT_ENABLE_SESSION_TICKET> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: boolean getBoolean(java.lang.String,boolean)>("jdk.tls.client.enableSessionTicketExtension", 1);
<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean CLIENT_ENABLE_SESSION_TICKET_TLSV13> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: boolean getBoolean(java.lang.String,boolean)>("jdk.tls.server.enableSessionTicketExtension", 0);
<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean SERVER_ENABLE_SESSION_TICKET> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: boolean getBoolean(java.lang.String,boolean)>("jdk.tls.server.enableSessionTicketExtension", 1);
<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean SERVER_ENABLE_SESSION_TICKET_TLSV13> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: boolean getBoolean(java.lang.String,boolean)>("io.netty.handler.ssl.openssl.sessionCacheServer", 1);
<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean SERVER_ENABLE_SESSION_CACHE> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: boolean getBoolean(java.lang.String,boolean)>("io.netty.handler.ssl.openssl.sessionCacheClient", 0);
<io.netty.handler.ssl.ReferenceCountedOpenSslContext: boolean CLIENT_ENABLE_SESSION_CACHE> = v;
v = new io.netty.handler.ssl.ReferenceCountedOpenSslContext$2;
specialinvoke v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext$2: void <init>()>();
<io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.handler.ssl.OpenSslApplicationProtocolNegotiator NONE_PROTOCOL_NEGOTIATOR> = v;
v = null;
label:
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: java.lang.String get(java.lang.String)>("jdk.tls.ephemeralDHKeySize");
if v == null goto label;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <io.netty.handler.ssl.ReferenceCountedOpenSslContext: io.netty.util.internal.logging.InternalLogger logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("ReferenceCountedOpenSslContext supports -Djdk.tls.ephemeralDHKeySize={int}, but got: \u0001");
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
<io.netty.handler.ssl.ReferenceCountedOpenSslContext: java.lang.Integer DH_KEY_LENGTH> = v;
return;
catch java.lang.NumberFormatException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
}