public final class org.glassfish.grizzly.ssl.SSLUtils extends java.lang.Object
{
private static final boolean ANDROID_WORKAROUND_NEEDED;
private static final int LOLLIPOP_VER;
private static final java.lang.String SSL_CONNECTION_CTX_ATTR_NAME;
static final org.glassfish.grizzly.attributes.Attribute SSL_CTX_ATTR;
private static final org.glassfish.grizzly.ssl.SSLConnectionContext$Allocator HS_UNWRAP_ALLOCATOR;
private static final org.glassfish.grizzly.ssl.SSLConnectionContext$Allocator HS_WRAP_ALLOCATOR;
private static final byte CHANGE_CIPHER_SPECT_CONTENT_TYPE;
private static final byte APPLICATION_DATA_CONTENT_TYPE;
private static final int SSLV3_RECORD_HEADER_SIZE;
private static final int SSL20_HELLO_VERSION;
private static final int MIN_VERSION;
private static final int MAX_MAJOR_VERSION;
private static final org.glassfish.grizzly.ThreadCache$CachedTypeIndex SSL_OUTPUT_BUFFER_IDX;
static final boolean $assertionsDisabled;
public void <init>()
{
org.glassfish.grizzly.ssl.SSLUtils v;
v := @this: org.glassfish.grizzly.ssl.SSLUtils;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static org.glassfish.grizzly.ssl.SSLConnectionContext getSslConnectionContext(org.glassfish.grizzly.Connection)
{
org.glassfish.grizzly.Connection v;
java.lang.Object v;
org.glassfish.grizzly.attributes.Attribute v;
v := @parameter: org.glassfish.grizzly.Connection;
v = <org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.attributes.Attribute SSL_CTX_ATTR>;
v = virtualinvoke v.<org.glassfish.grizzly.attributes.Attribute: java.lang.Object get(org.glassfish.grizzly.attributes.AttributeStorage)>(v);
return v;
}
public static javax.net.ssl.SSLEngine getSSLEngine(org.glassfish.grizzly.Connection)
{
org.glassfish.grizzly.Connection v;
org.glassfish.grizzly.ssl.SSLConnectionContext v;
javax.net.ssl.SSLEngine v;
v := @parameter: org.glassfish.grizzly.Connection;
v = staticinvoke <org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.ssl.SSLConnectionContext getSslConnectionContext(org.glassfish.grizzly.Connection)>(v);
if v != null goto label;
v = null;
goto label;
label:
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext: javax.net.ssl.SSLEngine getSslEngine()>();
label:
return v;
}
public static void setSSLEngine(org.glassfish.grizzly.Connection, javax.net.ssl.SSLEngine)
{
org.glassfish.grizzly.attributes.Attribute v;
org.glassfish.grizzly.Connection v;
org.glassfish.grizzly.ssl.SSLConnectionContext v, v;
javax.net.ssl.SSLEngine v;
v := @parameter: org.glassfish.grizzly.Connection;
v := @parameter: javax.net.ssl.SSLEngine;
v = staticinvoke <org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.ssl.SSLConnectionContext getSslConnectionContext(org.glassfish.grizzly.Connection)>(v);
if v != null goto label;
v = new org.glassfish.grizzly.ssl.SSLConnectionContext;
specialinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext: void <init>(org.glassfish.grizzly.Connection)>(v);
v = v;
v = <org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.attributes.Attribute SSL_CTX_ATTR>;
virtualinvoke v.<org.glassfish.grizzly.attributes.Attribute: void set(org.glassfish.grizzly.attributes.AttributeStorage,java.lang.Object)>(v, v);
label:
virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext: void configure(javax.net.ssl.SSLEngine)>(v);
return;
}
public static int getSSLPacketSize(org.glassfish.grizzly.Buffer) throws javax.net.ssl.SSLException
{
byte[] v;
byte v, v, v, v, v, v, v, v, v, v;
boolean v, v;
org.glassfish.grizzly.Buffer v;
javax.net.ssl.SSLException v, v, v;
short v, v, v, v, v, 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;
java.lang.String v, v;
v := @parameter: org.glassfish.grizzly.Buffer;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: int remaining()>();
if v >= 5 goto label;
v = (int) -1;
return v;
label:
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: boolean hasArray()>();
if v == 0 goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: byte[] array()>();
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: int arrayOffset()>();
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: int position()>();
v = v + v;
v = v + 1;
v = v[v];
v = v + 1;
v = v[v];
v = v + 1;
v = v[v];
v = v + 1;
v = v[v];
v = v[v];
goto label;
label:
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: int position()>();
v = v + 1;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: byte get(int)>(v);
v = v + 1;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: byte get(int)>(v);
v = v + 1;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: byte get(int)>(v);
v = v + 1;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: byte get(int)>(v);
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: byte get(int)>(v);
label:
if v < 20 goto label;
if v > 23 goto label;
v = v;
v = v;
v = v << 8;
v = v & 255;
v = v | v;
if v < 768 goto label;
if v <= 3 goto label;
label:
v = new javax.net.ssl.SSLException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (byte,byte)>(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[])>("Unsupported record version major=\u minor=\u0001");
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v & 255;
v = v << 8;
v = v & 255;
v = v + v;
v = v + 5;
goto label;
label:
v = v & 128;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
if v == 0 goto label;
if v == 1 goto label;
if v != 4 goto label;
label:
v = v;
v = v;
v = v << 8;
v = v & 255;
v = v | v;
if v < 768 goto label;
if v <= 3 goto label;
label:
if v == 2 goto label;
v = new javax.net.ssl.SSLException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (byte,byte)>(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[])>("Unsupported record version major=\u minor=\u0001");
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v & 127;
v = v << 8;
v = v & 255;
v = v + v;
v = v + 2;
goto label;
label:
v = new javax.net.ssl.SSLException;
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String)>("Unrecognized SSL message, plaintext connection?");
throw v;
label:
return v;
}
public static void executeDelegatedTask(javax.net.ssl.SSLEngine)
{
java.lang.Runnable v;
javax.net.ssl.SSLEngine v;
v := @parameter: javax.net.ssl.SSLEngine;
label:
v = virtualinvoke v.<javax.net.ssl.SSLEngine: java.lang.Runnable getDelegatedTask()>();
if v == null goto label;
interfaceinvoke v.<java.lang.Runnable: void run()>();
goto label;
label:
return;
}
public static boolean isHandshaking(javax.net.ssl.SSLEngine)
{
javax.net.ssl.SSLEngineResult$HandshakeStatus v, v, v;
boolean v;
javax.net.ssl.SSLEngine v;
v := @parameter: javax.net.ssl.SSLEngine;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult$HandshakeStatus getHandshakeStatus()>();
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus FINISHED>;
if v == v goto label;
v = <javax.net.ssl.SSLEngineResult$HandshakeStatus: javax.net.ssl.SSLEngineResult$HandshakeStatus NOT_HANDSHAKING>;
if v == v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static javax.net.ssl.SSLEngineResult handshakeUnwrap(int, org.glassfish.grizzly.ssl.SSLConnectionContext, org.glassfish.grizzly.Buffer, org.glassfish.grizzly.Buffer) throws javax.net.ssl.SSLException
{
org.glassfish.grizzly.ssl.SSLConnectionContext$Allocator v;
org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult v;
org.glassfish.grizzly.Buffer v, v, v;
java.lang.AssertionError v;
javax.net.ssl.SSLEngineResult v;
javax.net.ssl.SSLException v;
int v;
org.glassfish.grizzly.ssl.SSLConnectionContext v;
boolean v, v, v;
v := @parameter: int;
v := @parameter: org.glassfish.grizzly.ssl.SSLConnectionContext;
v := @parameter: org.glassfish.grizzly.Buffer;
v := @parameter: org.glassfish.grizzly.Buffer;
v = <org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.ssl.SSLConnectionContext$Allocator HS_UNWRAP_ALLOCATOR>;
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext: org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult unwrap(int,org.glassfish.grizzly.Buffer,org.glassfish.grizzly.Buffer,org.glassfish.grizzly.ssl.SSLConnectionContext$Allocator)>(v, v, v, v);
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult: org.glassfish.grizzly.Buffer getOutput()>();
v = <org.glassfish.grizzly.ssl.SSLUtils: boolean $assertionsDisabled>;
if v != 0 goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: boolean isComposite()>();
if v == 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
if v == v goto label;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: void dispose()>();
label:
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult: boolean isError()>();
if v == 0 goto label;
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult: javax.net.ssl.SSLException getError()>();
throw v;
label:
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult: javax.net.ssl.SSLEngineResult getSslEngineResult()>();
return v;
}
public static org.glassfish.grizzly.Buffer handshakeWrap(org.glassfish.grizzly.Connection, org.glassfish.grizzly.ssl.SSLConnectionContext, org.glassfish.grizzly.Buffer) throws javax.net.ssl.SSLException
{
org.glassfish.grizzly.ssl.SSLConnectionContext$Allocator v;
org.glassfish.grizzly.memory.MemoryManager v;
int v, v, v, v, v, v, v;
boolean v, v;
org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult v;
org.glassfish.grizzly.Buffer v, v, v, v, v;
javax.net.ssl.SSLException v;
org.glassfish.grizzly.Connection v;
org.glassfish.grizzly.ssl.SSLConnectionContext v;
v := @parameter: org.glassfish.grizzly.Connection;
v := @parameter: org.glassfish.grizzly.ssl.SSLConnectionContext;
v := @parameter: org.glassfish.grizzly.Buffer;
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext: int getNetBufferSize()>();
if v == null goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: boolean isComposite()>();
if v != 0 goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: int capacity()>();
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: int limit()>();
v = v - v;
if v < v goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: int limit()>();
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer position(int)>(v);
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: int capacity()>();
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer limit(int)>(v);
v = v;
goto label;
label:
v = v * 2;
v = staticinvoke <org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.Buffer allocateOutputBuffer(int)>(v);
label:
v = <org.glassfish.grizzly.memory.Buffers: org.glassfish.grizzly.Buffer EMPTY_BUFFER>;
v = <org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.ssl.SSLConnectionContext$Allocator HS_WRAP_ALLOCATOR>;
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext: org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult wrap(org.glassfish.grizzly.Buffer,org.glassfish.grizzly.Buffer,org.glassfish.grizzly.ssl.SSLConnectionContext$Allocator)>(v, v, v);
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult: org.glassfish.grizzly.Buffer getOutput()>();
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer flip()>();
if v == v goto label;
if v == null goto label;
if v != v goto label;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer flip()>();
label:
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult: boolean isError()>();
if v == 0 goto label;
if v == v goto label;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: void dispose()>();
label:
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult: javax.net.ssl.SSLException getError()>();
throw v;
label:
if v == v goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Connection: org.glassfish.grizzly.memory.MemoryManager getMemoryManager()>();
v = staticinvoke <org.glassfish.grizzly.memory.Buffers: org.glassfish.grizzly.Buffer appendBuffers(org.glassfish.grizzly.memory.MemoryManager,org.glassfish.grizzly.Buffer,org.glassfish.grizzly.Buffer)>(v, v, v);
v = staticinvoke <org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.Buffer allowDispose(org.glassfish.grizzly.Buffer)>(v);
label:
return v;
}
static org.glassfish.grizzly.Buffer allocateOutputBuffer(int)
{
org.glassfish.grizzly.ssl.SSLUtils$3 v;
int v, v;
org.glassfish.grizzly.ThreadCache$CachedTypeIndex v;
java.lang.Object v;
java.nio.ByteBuffer v;
boolean v;
v := @parameter: int;
v = <org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.ThreadCache$CachedTypeIndex SSL_OUTPUT_BUFFER_IDX>;
v = staticinvoke <org.glassfish.grizzly.ThreadCache: java.lang.Object takeFromCache(org.glassfish.grizzly.ThreadCache$CachedTypeIndex)>(v);
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
if v == 0 goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: int remaining()>();
if v >= v goto label;
label:
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer allocate(int)>(v);
v = new org.glassfish.grizzly.ssl.SSLUtils$3;
specialinvoke v.<org.glassfish.grizzly.ssl.SSLUtils$3: void <init>(java.nio.ByteBuffer)>(v);
v = v;
label:
return v;
}
public static org.glassfish.grizzly.Buffer allocateInputBuffer(org.glassfish.grizzly.ssl.SSLConnectionContext)
{
int v, v;
org.glassfish.grizzly.Buffer v;
org.glassfish.grizzly.ssl.SSLConnectionContext v;
javax.net.ssl.SSLEngine v;
v := @parameter: org.glassfish.grizzly.ssl.SSLConnectionContext;
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext: javax.net.ssl.SSLEngine getSslEngine()>();
if v != null goto label;
return null;
label:
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext: int getNetBufferSize()>();
v = v * 2;
v = staticinvoke <org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.Buffer allocateOutputBuffer(int)>(v);
return v;
}
static org.glassfish.grizzly.Buffer makeInputRemainder(org.glassfish.grizzly.ssl.SSLConnectionContext, org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.Buffer)
{
org.glassfish.grizzly.memory.MemoryManager v;
org.glassfish.grizzly.Buffer v, v, v;
org.glassfish.grizzly.ssl.InputBufferWrapper v;
org.glassfish.grizzly.filterchain.FilterChainContext v;
int v;
org.glassfish.grizzly.ssl.SSLConnectionContext v;
boolean v;
v := @parameter: org.glassfish.grizzly.ssl.SSLConnectionContext;
v := @parameter: org.glassfish.grizzly.filterchain.FilterChainContext;
v := @parameter: org.glassfish.grizzly.Buffer;
if v != null goto label;
return null;
label:
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: boolean hasRemaining()>();
if v != 0 goto label;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: boolean tryDispose()>();
return null;
label:
v = virtualinvoke v.<org.glassfish.grizzly.ssl.SSLConnectionContext: org.glassfish.grizzly.ssl.InputBufferWrapper resetLastInputBuffer()>();
if v != null goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: int position()>();
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer split(int)>(v);
interfaceinvoke v.<org.glassfish.grizzly.Buffer: boolean tryDispose()>();
return v;
label:
v = virtualinvoke v.<org.glassfish.grizzly.filterchain.FilterChainContext: org.glassfish.grizzly.memory.MemoryManager getMemoryManager()>();
v = staticinvoke <org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.Buffer move(org.glassfish.grizzly.memory.MemoryManager,org.glassfish.grizzly.Buffer)>(v, v);
return v;
}
static org.glassfish.grizzly.Buffer copy(org.glassfish.grizzly.memory.MemoryManager, org.glassfish.grizzly.Buffer)
{
org.glassfish.grizzly.memory.MemoryManager v;
int v;
org.glassfish.grizzly.Buffer v, v, v;
v := @parameter: org.glassfish.grizzly.memory.MemoryManager;
v := @parameter: org.glassfish.grizzly.Buffer;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: int remaining()>();
v = interfaceinvoke v.<org.glassfish.grizzly.memory.MemoryManager: org.glassfish.grizzly.Buffer allocate(int)>(v);
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer put(org.glassfish.grizzly.Buffer)>(v);
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer flip()>();
return v;
}
static org.glassfish.grizzly.Buffer move(org.glassfish.grizzly.memory.MemoryManager, org.glassfish.grizzly.Buffer)
{
org.glassfish.grizzly.Buffer v, v;
org.glassfish.grizzly.memory.MemoryManager v;
v := @parameter: org.glassfish.grizzly.memory.MemoryManager;
v := @parameter: org.glassfish.grizzly.Buffer;
v = staticinvoke <org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.Buffer copy(org.glassfish.grizzly.memory.MemoryManager,org.glassfish.grizzly.Buffer)>(v, v);
interfaceinvoke v.<org.glassfish.grizzly.Buffer: boolean tryDispose()>();
return v;
}
public static org.glassfish.grizzly.Buffer allowDispose(org.glassfish.grizzly.Buffer)
{
org.glassfish.grizzly.Buffer v;
boolean v;
v := @parameter: org.glassfish.grizzly.Buffer;
if v != null goto label;
return null;
label:
interfaceinvoke v.<org.glassfish.grizzly.Buffer: void allowBufferDispose(boolean)>(1);
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: boolean isComposite()>();
if v == 0 goto label;
virtualinvoke v.<org.glassfish.grizzly.memory.CompositeBuffer: void allowInternalBuffersDispose(boolean)>(1);
label:
return v;
}
static javax.net.ssl.SSLEngineResult sslEngineWrap(javax.net.ssl.SSLEngine, java.nio.ByteBuffer, java.nio.ByteBuffer) throws javax.net.ssl.SSLException
{
javax.net.ssl.SSLEngineResult v;
java.nio.ByteBuffer v, v;
javax.net.ssl.SSLEngine v;
v := @parameter: javax.net.ssl.SSLEngine;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: java.nio.ByteBuffer;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer,java.nio.ByteBuffer)>(v, v);
return v;
}
static javax.net.ssl.SSLEngineResult sslEngineWrap(javax.net.ssl.SSLEngine, java.nio.ByteBuffer[], int, int, java.nio.ByteBuffer) throws javax.net.ssl.SSLException
{
java.nio.ByteBuffer[] v;
javax.net.ssl.SSLEngineResult v;
int v, v;
java.nio.ByteBuffer v;
boolean v;
javax.net.ssl.SSLEngine v;
v := @parameter: javax.net.ssl.SSLEngine;
v := @parameter: java.nio.ByteBuffer[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.nio.ByteBuffer;
v = <org.glassfish.grizzly.ssl.SSLUtils: boolean ANDROID_WORKAROUND_NEEDED>;
if v == 0 goto label;
v = staticinvoke <org.glassfish.grizzly.ssl.SSLUtils$AndroidWorkAround: javax.net.ssl.SSLEngineResult wrapArray(javax.net.ssl.SSLEngine,java.nio.ByteBuffer[],int,int,java.nio.ByteBuffer)>(v, v, v, v, v);
goto label;
label:
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult wrap(java.nio.ByteBuffer[],int,int,java.nio.ByteBuffer)>(v, v, v, v);
label:
return v;
}
static javax.net.ssl.SSLEngineResult sslEngineUnwrap(javax.net.ssl.SSLEngine, java.nio.ByteBuffer, java.nio.ByteBuffer) throws javax.net.ssl.SSLException
{
javax.net.ssl.SSLEngineResult v;
java.nio.ByteBuffer v, v;
javax.net.ssl.SSLEngine v;
v := @parameter: javax.net.ssl.SSLEngine;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: java.nio.ByteBuffer;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer,java.nio.ByteBuffer)>(v, v);
return v;
}
static javax.net.ssl.SSLEngineResult sslEngineUnwrap(javax.net.ssl.SSLEngine, java.nio.ByteBuffer, java.nio.ByteBuffer[], int, int) throws javax.net.ssl.SSLException
{
java.nio.ByteBuffer[] v;
javax.net.ssl.SSLEngineResult v;
int v, v;
java.nio.ByteBuffer v;
boolean v;
javax.net.ssl.SSLEngine v;
v := @parameter: javax.net.ssl.SSLEngine;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: java.nio.ByteBuffer[];
v := @parameter: int;
v := @parameter: int;
v = <org.glassfish.grizzly.ssl.SSLUtils: boolean ANDROID_WORKAROUND_NEEDED>;
if v == 0 goto label;
v = staticinvoke <org.glassfish.grizzly.ssl.SSLUtils$AndroidWorkAround: javax.net.ssl.SSLEngineResult unwrapArray(javax.net.ssl.SSLEngine,java.nio.ByteBuffer,java.nio.ByteBuffer[],int,int)>(v, v, v, v, v);
goto label;
label:
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLEngineResult unwrap(java.nio.ByteBuffer,java.nio.ByteBuffer[],int,int)>(v, v, v, v);
label:
return v;
}
static void <clinit>()
{
java.lang.Throwable v;
org.glassfish.grizzly.attributes.Attribute v;
org.glassfish.grizzly.ThreadCache$CachedTypeIndex v;
org.glassfish.grizzly.ssl.SSLUtils$1 v;
org.glassfish.grizzly.ssl.SSLUtils$2 v;
int v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v, v, v;
java.lang.reflect.Field v;
org.glassfish.grizzly.attributes.AttributeBuilder v;
java.lang.Class v, v, v;
v = class "Lorg/glassfish/grizzly/ssl/SSLUtils;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<org.glassfish.grizzly.ssl.SSLUtils: boolean $assertionsDisabled> = v;
v = 0;
v = "android runtime";
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("java.runtime.name");
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("android.os.Build$VERSION");
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getField(java.lang.String)>("SDK_INT");
v = virtualinvoke v.<java.lang.reflect.Field: int getInt(java.lang.Object)>(null);
if v < 21 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
goto label;
label:
v := @caughtexception;
label:
<org.glassfish.grizzly.ssl.SSLUtils: boolean ANDROID_WORKAROUND_NEEDED> = v;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Class)>(class "Lorg/glassfish/grizzly/ssl/SSLUtils;") <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.ssl-connection-context");
<org.glassfish.grizzly.ssl.SSLUtils: java.lang.String SSL_CONNECTION_CTX_ATTR_NAME> = v;
v = <org.glassfish.grizzly.Grizzly: org.glassfish.grizzly.attributes.AttributeBuilder DEFAULT_ATTRIBUTE_BUILDER>;
v = <org.glassfish.grizzly.ssl.SSLUtils: java.lang.String SSL_CONNECTION_CTX_ATTR_NAME>;
v = interfaceinvoke v.<org.glassfish.grizzly.attributes.AttributeBuilder: org.glassfish.grizzly.attributes.Attribute createAttribute(java.lang.String)>(v);
<org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.attributes.Attribute SSL_CTX_ATTR> = v;
v = new org.glassfish.grizzly.ssl.SSLUtils$1;
specialinvoke v.<org.glassfish.grizzly.ssl.SSLUtils$1: void <init>()>();
<org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.ssl.SSLConnectionContext$Allocator HS_UNWRAP_ALLOCATOR> = v;
v = new org.glassfish.grizzly.ssl.SSLUtils$2;
specialinvoke v.<org.glassfish.grizzly.ssl.SSLUtils$2: void <init>()>();
<org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.ssl.SSLConnectionContext$Allocator HS_WRAP_ALLOCATOR> = v;
v = class "Lorg/glassfish/grizzly/ssl/SSLBaseFilter;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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[])>("\u.output-buffer-cache");
v = staticinvoke <org.glassfish.grizzly.ThreadCache: org.glassfish.grizzly.ThreadCache$CachedTypeIndex obtainIndex(java.lang.String,java.lang.Class,int)>(v, class "Lorg/glassfish/grizzly/Buffer;", 4);
<org.glassfish.grizzly.ssl.SSLUtils: org.glassfish.grizzly.ThreadCache$CachedTypeIndex SSL_OUTPUT_BUFFER_IDX> = v;
return;
catch java.lang.Throwable from label to label with label;
}
}