public final class org.glassfish.grizzly.ssl.SSLDecoderTransformer extends org.glassfish.grizzly.AbstractTransformer
{
public static final int NEED_HANDSHAKE_ERROR;
public static final int BUFFER_UNDERFLOW_ERROR;
public static final int BUFFER_OVERFLOW_ERROR;
private static final org.glassfish.grizzly.TransformationResult HANDSHAKE_NOT_EXECUTED_RESULT;
private static final java.util.logging.Logger LOGGER;
private final org.glassfish.grizzly.memory.MemoryManager memoryManager;
public void <init>()
{
org.glassfish.grizzly.memory.MemoryManager v;
org.glassfish.grizzly.ssl.SSLDecoderTransformer v;
v := @this: org.glassfish.grizzly.ssl.SSLDecoderTransformer;
v = <org.glassfish.grizzly.memory.MemoryManager: org.glassfish.grizzly.memory.MemoryManager DEFAULT_MEMORY_MANAGER>;
specialinvoke v.<org.glassfish.grizzly.ssl.SSLDecoderTransformer: void <init>(org.glassfish.grizzly.memory.MemoryManager)>(v);
return;
}
public void <init>(org.glassfish.grizzly.memory.MemoryManager)
{
org.glassfish.grizzly.memory.MemoryManager v;
org.glassfish.grizzly.ssl.SSLDecoderTransformer v;
v := @this: org.glassfish.grizzly.ssl.SSLDecoderTransformer;
v := @parameter: org.glassfish.grizzly.memory.MemoryManager;
specialinvoke v.<org.glassfish.grizzly.AbstractTransformer: void <init>()>();
v.<org.glassfish.grizzly.ssl.SSLDecoderTransformer: org.glassfish.grizzly.memory.MemoryManager memoryManager> = v;
return;
}
public java.lang.String getName()
{
java.lang.Class v;
java.lang.String v;
org.glassfish.grizzly.ssl.SSLDecoderTransformer v;
v := @this: org.glassfish.grizzly.ssl.SSLDecoderTransformer;
v = class "Lorg/glassfish/grizzly/ssl/SSLDecoderTransformer;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
return v;
}
protected org.glassfish.grizzly.TransformationResult transformImpl(org.glassfish.grizzly.attributes.AttributeStorage, org.glassfish.grizzly.Buffer) throws org.glassfish.grizzly.TransformationException
{
org.glassfish.grizzly.TransformationException v, v;
org.glassfish.grizzly.memory.MemoryManager v;
java.nio.ByteBuffer v, v, v, v;
org.glassfish.grizzly.TransformationResult v, v, v, v, v;
boolean v, v, v;
org.glassfish.grizzly.Buffer v, v, v;
java.util.logging.Logger v, v, v, v;
javax.net.ssl.SSLException v, v;
org.glassfish.grizzly.ssl.SSLDecoderTransformer v;
java.lang.Object[] v, v;
org.glassfish.grizzly.attributes.AttributeStorage v;
java.util.logging.Level v, v, v, v;
javax.net.ssl.SSLEngine v;
javax.net.ssl.SSLEngineResult v;
javax.net.ssl.SSLSession v;
int v, v, v, v, v, v, v, v, v;
javax.net.ssl.SSLEngineResult$Status v, v, v, v, v;
v := @this: org.glassfish.grizzly.ssl.SSLDecoderTransformer;
v := @parameter: org.glassfish.grizzly.attributes.AttributeStorage;
v := @parameter: org.glassfish.grizzly.Buffer;
v = staticinvoke <org.glassfish.grizzly.ssl.SSLUtils: javax.net.ssl.SSLEngine getSSLEngine(org.glassfish.grizzly.Connection)>(v);
if v != null goto label;
v = <org.glassfish.grizzly.ssl.SSLDecoderTransformer: org.glassfish.grizzly.TransformationResult HANDSHAKE_NOT_EXECUTED_RESULT>;
return v;
label:
v = staticinvoke <org.glassfish.grizzly.ssl.SSLUtils: int getSSLPacketSize(org.glassfish.grizzly.Buffer)>(v);
v = (int) -1;
if v == v goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: int remaining()>();
if v >= v goto label;
label:
v = staticinvoke <org.glassfish.grizzly.TransformationResult: org.glassfish.grizzly.TransformationResult createIncompletedResult(java.lang.Object)>(v);
label:
return v;
label:
v := @caughtexception;
v = new org.glassfish.grizzly.TransformationException;
specialinvoke v.<org.glassfish.grizzly.TransformationException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = v.<org.glassfish.grizzly.ssl.SSLDecoderTransformer: org.glassfish.grizzly.memory.MemoryManager memoryManager>;
v = virtualinvoke v.<javax.net.ssl.SSLEngine: javax.net.ssl.SSLSession getSession()>();
v = interfaceinvoke v.<javax.net.ssl.SSLSession: int getApplicationBufferSize()>();
v = interfaceinvoke v.<org.glassfish.grizzly.memory.MemoryManager: org.glassfish.grizzly.Buffer allocate(int)>(v);
v = null;
label:
v = <org.glassfish.grizzly.ssl.SSLDecoderTransformer: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.grizzly.ssl.SSLDecoderTransformer: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v[1] = v;
v[2] = v;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "SSLDecoder engine: {0} input: {1} output: {2}", v);
label:
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: int position()>();
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: boolean isComposite()>();
if v != 0 goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: java.nio.ByteBuffer toByteBuffer()>();
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: java.nio.ByteBuffer toByteBuffer()>();
v = staticinvoke <org.glassfish.grizzly.ssl.SSLUtils: javax.net.ssl.SSLEngineResult sslEngineUnwrap(javax.net.ssl.SSLEngine,java.nio.ByteBuffer,java.nio.ByteBuffer)>(v, v, v);
goto label;
label:
v = v + v;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: java.nio.ByteBuffer toByteBuffer(int,int)>(v, v);
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: java.nio.ByteBuffer toByteBuffer()>();
v = staticinvoke <org.glassfish.grizzly.ssl.SSLUtils: javax.net.ssl.SSLEngineResult sslEngineUnwrap(javax.net.ssl.SSLEngine,java.nio.ByteBuffer,java.nio.ByteBuffer)>(v, v, v);
label:
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: int bytesConsumed()>();
v = v + v;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer position(int)>(v);
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: int bytesProduced()>();
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer position(int)>(v);
v = virtualinvoke v.<javax.net.ssl.SSLEngineResult: javax.net.ssl.SSLEngineResult$Status getStatus()>();
v = <org.glassfish.grizzly.ssl.SSLDecoderTransformer: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.grizzly.ssl.SSLDecoderTransformer: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v[1] = v;
v[2] = v;
v[3] = v;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "SSLDecoderr done engine: {0} result: {1} input: {2} output: {3}", v);
label:
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status OK>;
if v != v goto label;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: void trim()>();
v = staticinvoke <org.glassfish.grizzly.TransformationResult: org.glassfish.grizzly.TransformationResult createCompletedResult(java.lang.Object,java.lang.Object)>(v, v);
label:
return v;
label:
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status CLOSED>;
if v != v goto label;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: void dispose()>();
v = <org.glassfish.grizzly.memory.Buffers: org.glassfish.grizzly.Buffer EMPTY_BUFFER>;
v = staticinvoke <org.glassfish.grizzly.TransformationResult: org.glassfish.grizzly.TransformationResult createCompletedResult(java.lang.Object,java.lang.Object)>(v, v);
label:
return v;
label:
interfaceinvoke v.<org.glassfish.grizzly.Buffer: void dispose()>();
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_UNDERFLOW>;
if v != v goto label;
v = staticinvoke <org.glassfish.grizzly.TransformationResult: org.glassfish.grizzly.TransformationResult createIncompletedResult(java.lang.Object)>(v);
goto label;
label:
v = <javax.net.ssl.SSLEngineResult$Status: javax.net.ssl.SSLEngineResult$Status BUFFER_OVERFLOW>;
if v != v goto label;
v = staticinvoke <org.glassfish.grizzly.TransformationResult: org.glassfish.grizzly.TransformationResult createErrorResult(int,java.lang.String)>(3, "Buffer overflow during unwrap operation");
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: void dispose()>();
v = new org.glassfish.grizzly.TransformationException;
specialinvoke v.<org.glassfish.grizzly.TransformationException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return v;
catch javax.net.ssl.SSLException from label to label with label;
catch javax.net.ssl.SSLException from label to label with label;
catch javax.net.ssl.SSLException from label to label with label;
catch javax.net.ssl.SSLException from label to label with label;
}
public boolean hasInputRemaining(org.glassfish.grizzly.attributes.AttributeStorage, org.glassfish.grizzly.Buffer)
{
org.glassfish.grizzly.attributes.AttributeStorage v;
org.glassfish.grizzly.Buffer v;
org.glassfish.grizzly.ssl.SSLDecoderTransformer v;
boolean v, v;
v := @this: org.glassfish.grizzly.ssl.SSLDecoderTransformer;
v := @parameter: org.glassfish.grizzly.attributes.AttributeStorage;
v := @parameter: org.glassfish.grizzly.Buffer;
if v == null goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: boolean hasRemaining()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static void <clinit>()
{
java.util.logging.Logger v;
org.glassfish.grizzly.TransformationResult v;
v = staticinvoke <org.glassfish.grizzly.TransformationResult: org.glassfish.grizzly.TransformationResult createErrorResult(int,java.lang.String)>(1, "Handshake was not executed");
<org.glassfish.grizzly.ssl.SSLDecoderTransformer: org.glassfish.grizzly.TransformationResult HANDSHAKE_NOT_EXECUTED_RESULT> = v;
v = staticinvoke <org.glassfish.grizzly.Grizzly: java.util.logging.Logger logger(java.lang.Class)>(class "Lorg/glassfish/grizzly/ssl/SSLDecoderTransformer;");
<org.glassfish.grizzly.ssl.SSLDecoderTransformer: java.util.logging.Logger LOGGER> = v;
return;
}
}