final class io.netty.handler.ssl.Java8SslUtils extends java.lang.Object
{
private void <init>()
{
io.netty.handler.ssl.Java8SslUtils v;
v := @this: io.netty.handler.ssl.Java8SslUtils;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
static java.util.List getSniHostNames(javax.net.ssl.SSLParameters)
{
javax.net.ssl.SNIServerName v;
javax.net.ssl.SSLParameters v;
java.util.ArrayList v;
int v;
java.lang.String v, v, v;
boolean v, v, v;
java.util.Iterator v;
java.lang.IllegalArgumentException v;
java.util.List v, v;
java.lang.Class v;
java.lang.Object v;
v := @parameter: javax.net.ssl.SSLParameters;
v = virtualinvoke v.<javax.net.ssl.SSLParameters: java.util.List getServerNames()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
label:
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
return v;
label:
v = new java.util.ArrayList;
v = interfaceinvoke v.<java.util.List: int size()>();
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
v = interfaceinvoke v.<java.util.List: 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 = v instanceof javax.net.ssl.SNIHostName;
if v == 0 goto label;
v = virtualinvoke v.<javax.net.ssl.SNIHostName: java.lang.String getAsciiName()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = new java.lang.IllegalArgumentException;
v = class "Ljavax/net/ssl/SNIHostName;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,javax.net.ssl.SNIServerName)>(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[])>("Only \u instances are supported, but found: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
static void setSniHostNames(javax.net.ssl.SSLParameters, java.util.List)
{
java.util.List v, v;
javax.net.ssl.SSLParameters v;
v := @parameter: javax.net.ssl.SSLParameters;
v := @parameter: java.util.List;
v = staticinvoke <io.netty.handler.ssl.Java8SslUtils: java.util.List getSniHostNames(java.util.List)>(v);
virtualinvoke v.<javax.net.ssl.SSLParameters: void setServerNames(java.util.List)>(v);
return;
}
static boolean isValidHostNameForSNI(java.lang.String)
{
java.lang.String v;
javax.net.ssl.SNIHostName v;
java.lang.IllegalArgumentException v;
v := @parameter: java.lang.String;
label:
v = new javax.net.ssl.SNIHostName;
specialinvoke v.<javax.net.ssl.SNIHostName: void <init>(java.lang.String)>(v);
label:
return 1;
label:
v := @caughtexception;
return 0;
catch java.lang.IllegalArgumentException from label to label with label;
}
static java.util.List getSniHostNames(java.util.List)
{
byte[] v;
javax.net.ssl.SNIHostName v;
java.util.Iterator v;
java.util.ArrayList v;
java.util.List v, v;
java.nio.charset.Charset v;
int v;
java.lang.Object v;
boolean v, v;
v := @parameter: java.util.List;
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
label:
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
return v;
label:
v = new java.util.ArrayList;
v = interfaceinvoke v.<java.util.List: int size()>();
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
v = interfaceinvoke v.<java.util.List: 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 javax.net.ssl.SNIHostName;
v = <io.netty.util.CharsetUtil: java.nio.charset.Charset UTF_8>;
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.nio.charset.Charset)>(v);
specialinvoke v.<javax.net.ssl.SNIHostName: void <init>(byte[])>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
static java.util.List getSniHostName(byte[])
{
byte[] v;
java.util.List v, v;
javax.net.ssl.SNIHostName v;
int v;
v := @parameter: byte[];
if v == null goto label;
v = lengthof v;
if v != 0 goto label;
label:
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
return v;
label:
v = new javax.net.ssl.SNIHostName;
specialinvoke v.<javax.net.ssl.SNIHostName: void <init>(byte[])>(v);
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
return v;
}
static boolean getUseCipherSuitesOrder(javax.net.ssl.SSLParameters)
{
boolean v;
javax.net.ssl.SSLParameters v;
v := @parameter: javax.net.ssl.SSLParameters;
v = virtualinvoke v.<javax.net.ssl.SSLParameters: boolean getUseCipherSuitesOrder()>();
return v;
}
static void setUseCipherSuitesOrder(javax.net.ssl.SSLParameters, boolean)
{
boolean v;
javax.net.ssl.SSLParameters v;
v := @parameter: javax.net.ssl.SSLParameters;
v := @parameter: boolean;
virtualinvoke v.<javax.net.ssl.SSLParameters: void setUseCipherSuitesOrder(boolean)>(v);
return;
}
static void setSNIMatchers(javax.net.ssl.SSLParameters, java.util.Collection)
{
java.util.Collection v;
javax.net.ssl.SSLParameters v;
v := @parameter: javax.net.ssl.SSLParameters;
v := @parameter: java.util.Collection;
virtualinvoke v.<javax.net.ssl.SSLParameters: void setSNIMatchers(java.util.Collection)>(v);
return;
}
static boolean checkSniHostnameMatch(java.util.Collection, byte[])
{
byte[] v;
javax.net.ssl.SNIHostName v;
java.util.Iterator v;
java.util.Collection v;
int v;
java.lang.Object v;
boolean v, v, v;
v := @parameter: java.util.Collection;
v := @parameter: byte[];
if v == null goto label;
v = interfaceinvoke v.<java.util.Collection: boolean isEmpty()>();
if v != 0 goto label;
v = new javax.net.ssl.SNIHostName;
specialinvoke v.<javax.net.ssl.SNIHostName: void <init>(byte[])>(v);
v = interfaceinvoke v.<java.util.Collection: 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 = virtualinvoke v.<javax.net.ssl.SNIMatcher: int getType()>();
if v != 0 goto label;
v = virtualinvoke v.<javax.net.ssl.SNIMatcher: boolean matches(javax.net.ssl.SNIServerName)>(v);
if v == 0 goto label;
return 1;
label:
return 0;
label:
return 1;
}
}