public abstract class io.netty.handler.ssl.OpenSslSessionContext extends java.lang.Object implements javax.net.ssl.SSLSessionContext
{
private final io.netty.handler.ssl.OpenSslSessionStats stats;
private final io.netty.handler.ssl.OpenSslKeyMaterialProvider provider;
final io.netty.handler.ssl.ReferenceCountedOpenSslContext context;
private final io.netty.handler.ssl.OpenSslSessionCache sessionCache;
private final long mask;
void <init>(io.netty.handler.ssl.ReferenceCountedOpenSslContext, io.netty.handler.ssl.OpenSslKeyMaterialProvider, long, io.netty.handler.ssl.OpenSslSessionCache)
{
io.netty.handler.ssl.OpenSslSessionStats v;
io.netty.handler.ssl.OpenSslKeyMaterialProvider v;
io.netty.handler.ssl.OpenSslSessionContext v;
long v, v;
io.netty.handler.ssl.OpenSslSessionCache v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v := @parameter: io.netty.handler.ssl.ReferenceCountedOpenSslContext;
v := @parameter: io.netty.handler.ssl.OpenSslKeyMaterialProvider;
v := @parameter: long;
v := @parameter: io.netty.handler.ssl.OpenSslSessionCache;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.ReferenceCountedOpenSslContext context> = v;
v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslKeyMaterialProvider provider> = v;
v.<io.netty.handler.ssl.OpenSslSessionContext: long mask> = v;
v = new io.netty.handler.ssl.OpenSslSessionStats;
specialinvoke v.<io.netty.handler.ssl.OpenSslSessionStats: void <init>(io.netty.handler.ssl.ReferenceCountedOpenSslContext)>(v);
v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionStats stats> = v;
v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionCache sessionCache> = v;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: void setSSLSessionCache(long,io.netty.internal.tcnative.SSLSessionCache)>(v, v);
return;
}
final boolean useKeyManager()
{
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.OpenSslKeyMaterialProvider v;
boolean v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslKeyMaterialProvider provider>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void setSessionCacheSize(int)
{
int v;
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.OpenSslSessionCache v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v := @parameter: int;
staticinvoke <io.netty.util.internal.ObjectUtil: int checkPositiveOrZero(int,java.lang.String)>(v, "size");
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionCache sessionCache>;
virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache: void setSessionCacheSize(int)>(v);
return;
}
public int getSessionCacheSize()
{
int v;
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.OpenSslSessionCache v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionCache sessionCache>;
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache: int getSessionCacheSize()>();
return v;
}
public void setSessionTimeout(int)
{
java.lang.Throwable v;
long v;
io.netty.handler.ssl.OpenSslSessionCache v;
java.util.concurrent.locks.Lock v;
int v;
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v, v;
java.util.concurrent.locks.ReadWriteLock v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v := @parameter: int;
staticinvoke <io.netty.util.internal.ObjectUtil: int checkPositiveOrZero(int,java.lang.String)>(v, "seconds");
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.ReferenceCountedOpenSslContext context>;
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.OpenSslSessionContext: io.netty.handler.ssl.ReferenceCountedOpenSslContext context>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: long setSessionCacheTimeout(long,long)>(v, v);
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionCache sessionCache>;
virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache: void setSessionTimeout(int)>(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 int getSessionTimeout()
{
int v;
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.OpenSslSessionCache v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionCache sessionCache>;
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache: int getSessionTimeout()>();
return v;
}
public javax.net.ssl.SSLSession getSession(byte[])
{
byte[] v;
io.netty.handler.ssl.OpenSslSession v;
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.OpenSslSessionCache v;
io.netty.handler.ssl.OpenSslSessionId v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v := @parameter: byte[];
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionCache sessionCache>;
v = new io.netty.handler.ssl.OpenSslSessionId;
specialinvoke v.<io.netty.handler.ssl.OpenSslSessionId: void <init>(byte[])>(v);
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache: io.netty.handler.ssl.OpenSslSession getSession(io.netty.handler.ssl.OpenSslSessionId)>(v);
return v;
}
public java.util.Enumeration getIds()
{
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.OpenSslSessionContext$1 v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v = new io.netty.handler.ssl.OpenSslSessionContext$1;
specialinvoke v.<io.netty.handler.ssl.OpenSslSessionContext$1: void <init>(io.netty.handler.ssl.OpenSslSessionContext)>(v);
return v;
}
public void setTicketKeys(byte[])
{
java.lang.Throwable v;
byte[] v, v, v, v;
long v, v;
io.netty.internal.tcnative.SessionTicketKey[] v;
int v, v, v, v, v, v, v, v, v, v;
java.util.concurrent.locks.ReadWriteLock v;
java.lang.IllegalArgumentException v;
java.util.concurrent.locks.Lock v;
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.internal.tcnative.SessionTicketKey v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v, v, v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v := @parameter: byte[];
v = lengthof v;
v = v % 48;
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("keys.length % 48 != 0");
throw v;
label:
v = lengthof v;
v = v / 48;
v = newarray (io.netty.internal.tcnative.SessionTicketKey)[v];
v = 0;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = staticinvoke <java.util.Arrays: byte[] copyOfRange(byte[],int,int)>(v, v, 16);
v = v + 16;
v = staticinvoke <java.util.Arrays: byte[] copyOfRange(byte[],int,int)>(v, v, 16);
v = v + 16;
v = staticinvoke <java.util.Arrays: byte[] copyOfRange(byte[],int,int)>(v, v, 16);
v = v + 16;
v = new io.netty.internal.tcnative.SessionTicketKey;
specialinvoke v.<io.netty.internal.tcnative.SessionTicketKey: void <init>(byte[],byte[],byte[])>(v, v, v);
v[v] = v;
v = v + 1;
goto label;
label:
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.ReferenceCountedOpenSslContext context>;
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.OpenSslSessionContext: io.netty.handler.ssl.ReferenceCountedOpenSslContext context>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TICKET>;
staticinvoke <io.netty.internal.tcnative.SSLContext: void clearOptions(long,int)>(v, v);
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.ReferenceCountedOpenSslContext context>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: void setSessionTicketKeys(long,io.netty.internal.tcnative.SessionTicketKey[])>(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 transient void setTicketKeys(io.netty.handler.ssl.OpenSslSessionTicketKey[])
{
java.lang.Throwable v;
long v, v;
io.netty.handler.ssl.OpenSslSessionTicketKey v;
io.netty.internal.tcnative.SessionTicketKey[] v;
int v, v, v, v, v;
java.util.concurrent.locks.ReadWriteLock v;
io.netty.handler.ssl.OpenSslSessionTicketKey[] v;
java.util.concurrent.locks.Lock v;
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.internal.tcnative.SessionTicketKey v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v, v, v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v := @parameter: io.netty.handler.ssl.OpenSslSessionTicketKey[];
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "keys");
v = lengthof v;
v = newarray (io.netty.internal.tcnative.SessionTicketKey)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = v.<io.netty.handler.ssl.OpenSslSessionTicketKey: io.netty.internal.tcnative.SessionTicketKey key>;
v[v] = v;
v = v + 1;
goto label;
label:
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.ReferenceCountedOpenSslContext context>;
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.OpenSslSessionContext: io.netty.handler.ssl.ReferenceCountedOpenSslContext context>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = <io.netty.internal.tcnative.SSL: int SSL_OP_NO_TICKET>;
staticinvoke <io.netty.internal.tcnative.SSLContext: void clearOptions(long,int)>(v, v);
v = lengthof v;
if v <= 0 goto label;
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.ReferenceCountedOpenSslContext context>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: void setSessionTicketKeys(long,io.netty.internal.tcnative.SessionTicketKey[])>(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 void setSessionCacheEnabled(boolean)
{
java.lang.Throwable v;
long v, v, v, v, v, v;
io.netty.handler.ssl.OpenSslSessionCache v;
java.util.concurrent.locks.Lock v;
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v, v;
java.util.concurrent.locks.ReadWriteLock v;
boolean v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v := @parameter: boolean;
if v == 0 goto label;
v = v.<io.netty.handler.ssl.OpenSslSessionContext: long mask>;
v = <io.netty.internal.tcnative.SSL: long SSL_SESS_CACHE_NO_INTERNAL_LOOKUP>;
v = v | v;
v = <io.netty.internal.tcnative.SSL: long SSL_SESS_CACHE_NO_INTERNAL_STORE>;
v = v | v;
goto label;
label:
v = <io.netty.internal.tcnative.SSL: long SSL_SESS_CACHE_OFF>;
label:
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.ReferenceCountedOpenSslContext context>;
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.OpenSslSessionContext: io.netty.handler.ssl.ReferenceCountedOpenSslContext context>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
staticinvoke <io.netty.internal.tcnative.SSLContext: long setSessionCacheMode(long,long)>(v, v);
if v != 0 goto label;
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionCache sessionCache>;
virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache: void clear()>();
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 boolean isSessionCacheEnabled()
{
java.lang.Throwable v;
long v, v, v, v;
java.util.concurrent.locks.Lock v;
byte v;
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.ReferenceCountedOpenSslContext v, v;
java.util.concurrent.locks.ReadWriteLock v;
boolean v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.ReferenceCountedOpenSslContext context>;
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.OpenSslSessionContext: io.netty.handler.ssl.ReferenceCountedOpenSslContext context>;
v = v.<io.netty.handler.ssl.ReferenceCountedOpenSslContext: long ctx>;
v = staticinvoke <io.netty.internal.tcnative.SSLContext: long getSessionCacheMode(long)>(v);
v = v.<io.netty.handler.ssl.OpenSslSessionContext: long mask>;
v = v & v;
v = v cmp 0L;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
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 io.netty.handler.ssl.OpenSslSessionStats stats()
{
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.OpenSslSessionStats v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionStats stats>;
return v;
}
final void removeFromCache(io.netty.handler.ssl.OpenSslSessionId)
{
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.OpenSslSessionCache v;
io.netty.handler.ssl.OpenSslSessionId v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v := @parameter: io.netty.handler.ssl.OpenSslSessionId;
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionCache sessionCache>;
virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache: void removeSessionWithId(io.netty.handler.ssl.OpenSslSessionId)>(v);
return;
}
final boolean isInCache(io.netty.handler.ssl.OpenSslSessionId)
{
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.OpenSslSessionCache v;
io.netty.handler.ssl.OpenSslSessionId v;
boolean v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v := @parameter: io.netty.handler.ssl.OpenSslSessionId;
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionCache sessionCache>;
v = virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache: boolean containsSessionWithId(io.netty.handler.ssl.OpenSslSessionId)>(v);
return v;
}
void setSessionFromCache(java.lang.String, int, long)
{
int v;
io.netty.handler.ssl.OpenSslSessionContext v;
long v;
java.lang.String v;
io.netty.handler.ssl.OpenSslSessionCache v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: long;
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionCache sessionCache>;
virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache: void setSession(long,java.lang.String,int)>(v, v, v);
return;
}
final void destroy()
{
io.netty.handler.ssl.OpenSslKeyMaterialProvider v, v;
io.netty.handler.ssl.OpenSslSessionContext v;
io.netty.handler.ssl.OpenSslSessionCache v;
v := @this: io.netty.handler.ssl.OpenSslSessionContext;
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslKeyMaterialProvider provider>;
if v == null goto label;
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslKeyMaterialProvider provider>;
virtualinvoke v.<io.netty.handler.ssl.OpenSslKeyMaterialProvider: void destroy()>();
label:
v = v.<io.netty.handler.ssl.OpenSslSessionContext: io.netty.handler.ssl.OpenSslSessionCache sessionCache>;
virtualinvoke v.<io.netty.handler.ssl.OpenSslSessionCache: void clear()>();
return;
}
}