public abstract class oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier extends java.lang.Object implements oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier
{
static final org.slf4j.Logger LOG;
private static final java.lang.String[] BAD_COUNTRY_2LDS;
private static final java.lang.String[] LOCALHOSTS;
protected void <init>()
{
oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier v;
v := @this: oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public boolean verify(java.lang.String, javax.net.ssl.SSLSession)
{
javax.net.ssl.SSLException v;
java.security.cert.Certificate v;
javax.net.ssl.SSLSession v;
oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier v;
java.lang.String[] v;
java.security.cert.Certificate[] v;
java.lang.String v;
v := @this: oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier;
v := @parameter: java.lang.String;
v := @parameter: javax.net.ssl.SSLSession;
label:
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.security.cert.Certificate[] getPeerCertificates()>();
v = v[0];
v = newarray (java.lang.String)[1];
v[0] = v;
virtualinvoke v.<oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: void check(java.lang.String[],java.security.cert.X509Certificate)>(v, v);
label:
return 1;
label:
v := @caughtexception;
return 0;
catch javax.net.ssl.SSLException from label to label with label;
}
public void check(java.lang.String, javax.net.ssl.SSLSocket) throws java.io.IOException
{
oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier v;
javax.net.ssl.SSLSocket v;
java.lang.String[] v;
java.lang.String v;
v := @this: oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier;
v := @parameter: java.lang.String;
v := @parameter: javax.net.ssl.SSLSocket;
v = newarray (java.lang.String)[1];
v[0] = v;
virtualinvoke v.<oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: void check(java.lang.String[],javax.net.ssl.SSLSocket)>(v, v);
return;
}
public void check(java.lang.String, java.security.cert.X509Certificate) throws javax.net.ssl.SSLException
{
java.security.cert.X509Certificate v;
oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier v;
java.lang.String[] v;
java.lang.String v;
v := @this: oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier;
v := @parameter: java.lang.String;
v := @parameter: java.security.cert.X509Certificate;
v = newarray (java.lang.String)[1];
v[0] = v;
virtualinvoke v.<oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: void check(java.lang.String[],java.security.cert.X509Certificate)>(v, v);
return;
}
public void check(java.lang.String, java.lang.String[], java.lang.String[]) throws javax.net.ssl.SSLException
{
oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier v;
java.lang.String[] v, v, v;
java.lang.String v;
v := @this: oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String[];
v := @parameter: java.lang.String[];
v = newarray (java.lang.String)[1];
v[0] = v;
virtualinvoke v.<oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: void check(java.lang.String[],java.lang.String[],java.lang.String[])>(v, v, v);
return;
}
public void check(java.lang.String[], javax.net.ssl.SSLSocket) throws java.io.IOException
{
oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier v;
javax.net.ssl.SSLSocket v;
java.lang.String[] v;
java.lang.NullPointerException v;
java.security.cert.Certificate v;
javax.net.ssl.SSLSession v;
java.security.cert.Certificate[] v;
java.io.InputStream v, v;
javax.net.ssl.SSLPeerUnverifiedException v;
v := @this: oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier;
v := @parameter: java.lang.String[];
v := @parameter: javax.net.ssl.SSLSocket;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("host to verify is null");
throw v;
label:
v = virtualinvoke v.<javax.net.ssl.SSLSocket: javax.net.ssl.SSLSession getSession()>();
if v != null goto label;
v = virtualinvoke v.<javax.net.ssl.SSLSocket: java.io.InputStream getInputStream()>();
virtualinvoke v.<java.io.InputStream: int available()>();
v = virtualinvoke v.<javax.net.ssl.SSLSocket: javax.net.ssl.SSLSession getSession()>();
if v != null goto label;
virtualinvoke v.<javax.net.ssl.SSLSocket: void startHandshake()>();
v = virtualinvoke v.<javax.net.ssl.SSLSocket: javax.net.ssl.SSLSession getSession()>();
label:
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.security.cert.Certificate[] getPeerCertificates()>();
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<javax.net.ssl.SSLSocket: java.io.InputStream getInputStream()>();
virtualinvoke v.<java.io.InputStream: int available()>();
throw v;
label:
v = v[0];
virtualinvoke v.<oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: void check(java.lang.String[],java.security.cert.X509Certificate)>(v, v);
return;
catch javax.net.ssl.SSLPeerUnverifiedException from label to label with label;
}
public void check(java.lang.String[], java.security.cert.X509Certificate) throws javax.net.ssl.SSLException
{
java.security.cert.X509Certificate v;
javax.net.ssl.SSLException v;
org.slf4j.Logger v;
oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier v;
java.lang.String[] v, v, v;
v := @this: oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier;
v := @parameter: java.lang.String[];
v := @parameter: java.security.cert.X509Certificate;
v = staticinvoke <oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$Certificates: java.lang.String[] getCNs(java.security.cert.X509Certificate)>(v);
v = staticinvoke <oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$Certificates: java.lang.String[] getDNSSubjectAlts(java.security.cert.X509Certificate)>(v);
label:
virtualinvoke v.<oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: void check(java.lang.String[],java.lang.String[],java.lang.String[])>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Host check error {}", v);
throw v;
label:
return;
catch javax.net.ssl.SSLException from label to label with label;
}
public void check(java.lang.String[], java.lang.String[], java.lang.String[], boolean, boolean) throws javax.net.ssl.SSLException
{
boolean v, v, v, v, v, v, v, v, v, v, v, v, v;
javax.net.ssl.SSLException v, v;
java.lang.Object[] v;
oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier v;
java.lang.String[] v, v, v;
java.util.TreeSet v;
java.lang.StringBuffer v, v;
int v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Boolean v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v;
java.util.Iterator v;
java.lang.Object v;
v := @this: oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier;
v := @parameter: java.lang.String[];
v := @parameter: java.lang.String[];
v := @parameter: java.lang.String[];
v := @parameter: boolean;
v := @parameter: boolean;
v = <oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[5];
v = staticinvoke <java.util.Arrays: java.lang.String toString(java.lang.Object[])>(v);
v[0] = v;
v = staticinvoke <java.util.Arrays: java.lang.String toString(java.lang.Object[])>(v);
v[1] = v;
v = staticinvoke <java.util.Arrays: java.lang.String toString(java.lang.Object[])>(v);
v[2] = v;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v[3] = v;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v[4] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("Hosts:{}, CNs:{} subjectAlts:{}, ie6:{}, strictWithSubDomains{}", v);
label:
v = new java.lang.StringBuffer;
specialinvoke v.<java.lang.StringBuffer: void <init>(int)>(32);
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(char)>(60);
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
if v == null goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = staticinvoke <oadd.org.apache.hadoop.util.StringUtils: java.lang.String toLowerCase(java.lang.String)>(v);
goto label;
label:
v = "";
label:
v = v;
v[v] = v;
if v <= 0 goto label;
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(char)>(47);
label:
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(char)>(62);
v = virtualinvoke v.<java.lang.StringBuffer: java.lang.String toString()>();
v = new java.util.TreeSet;
specialinvoke v.<java.util.TreeSet: void <init>()>();
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = v[0];
if v == null goto label;
v = v[0];
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
if v == null goto label;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
if v == null goto label;
v = v[v];
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
v = v + 1;
goto label;
label:
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
v = v[0];
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[])>("Certificate for \u doesn\'t contain CN or DNS subjectAlt");
v = new javax.net.ssl.SSLException;
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new java.lang.StringBuffer;
specialinvoke v.<java.lang.StringBuffer: void <init>()>();
v = 0;
v = interfaceinvoke v.<java.util.Set: 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 = staticinvoke <oadd.org.apache.hadoop.util.StringUtils: java.lang.String toLowerCase(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(" <");
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(char)>(62);
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>(" OR");
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("*.");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(46);
if v < 0 goto label;
v = staticinvoke <oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: boolean isIP4Address(java.lang.String)>(v);
if v != 0 goto label;
v = staticinvoke <oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: boolean acceptableCountryWildcard(java.lang.String)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = staticinvoke <oadd.org.apache.hadoop.util.StringUtils: java.lang.String toLowerCase(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(1);
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(v);
if v == 0 goto label;
if v == 0 goto label;
v = staticinvoke <oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: int countDots(java.lang.String)>(v);
v = staticinvoke <oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: int countDots(java.lang.String)>(v);
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
label:
if v != 0 goto label;
label:
v = v + 1;
goto label;
label:
if v != 0 goto label;
v = new javax.net.ssl.SSLException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.StringBuffer)>(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[])>("hostname in certificate didn\'t match: \u !=\u0001");
specialinvoke v.<javax.net.ssl.SSLException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
public static boolean isIP4Address(java.lang.String)
{
char v;
int v, v, v, v, v, v;
java.lang.String v, v;
boolean v, v;
v := @parameter: java.lang.String;
v = 1;
v = v;
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(46);
if v < 0 goto label;
v = v + 1;
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
v = v + 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
label:
v = 0;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(0);
v = staticinvoke <java.lang.Character: boolean isDigit(char)>(v);
if v != 0 goto label;
v = 0;
goto label;
label:
v = v + 1;
goto label;
label:
return v;
}
public static boolean acceptableCountryWildcard(java.lang.String)
{
char v;
java.lang.String[] v;
int v, v, v, v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int length()>();
if v < 7 goto label;
if v > 9 goto label;
v = v - 3;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != 46 goto label;
v = v - 3;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(2, v);
v = <oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: java.lang.String[] BAD_COUNTRY_2LDS>;
v = staticinvoke <java.util.Arrays: int binarySearch(java.lang.Object[],java.lang.Object)>(v, v);
if v >= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
label:
return 1;
}
public static boolean isLocalhost(java.lang.String)
{
java.lang.String[] v;
int v, v;
java.lang.String v, v, v, v;
boolean v, v;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = staticinvoke <oadd.org.apache.hadoop.util.StringUtils: java.lang.String toLowerCase(java.lang.String)>(v);
goto label;
label:
v = "";
label:
v = v;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("::1");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int lastIndexOf(int)>(37);
if v < 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
label:
v = <oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: java.lang.String[] LOCALHOSTS>;
v = staticinvoke <java.util.Arrays: int binarySearch(java.lang.Object[],java.lang.Object)>(v, v);
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static int countDots(java.lang.String)
{
int v, v, v;
char v;
java.lang.String v;
v := @parameter: java.lang.String;
v = 0;
v = 0;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != 46 goto label;
v = v + 1;
label:
v = v + 1;
goto label;
label:
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
java.lang.String[] v, v, v, v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Loadd/org/apache/hadoop/security/ssl/SSLFactory;");
<oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: org.slf4j.Logger LOG> = v;
v = newarray (java.lang.String)[14];
v[0] = "ac";
v[1] = "co";
v[2] = "com";
v[3] = "ed";
v[4] = "edu";
v[5] = "go";
v[6] = "gouv";
v[7] = "gov";
v[8] = "info";
v[9] = "lg";
v[10] = "ne";
v[11] = "net";
v[12] = "or";
v[13] = "org";
<oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: java.lang.String[] BAD_COUNTRY_2LDS> = v;
v = newarray (java.lang.String)[4];
v[0] = "::1";
v[1] = "127.0.0.1";
v[2] = "localhost";
v[3] = "localhost.localdomain";
<oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: java.lang.String[] LOCALHOSTS> = v;
v = <oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: java.lang.String[] BAD_COUNTRY_2LDS>;
staticinvoke <java.util.Arrays: void sort(java.lang.Object[])>(v);
v = <oadd.org.apache.hadoop.security.ssl.SSLHostnameVerifier$AbstractVerifier: java.lang.String[] LOCALHOSTS>;
staticinvoke <java.util.Arrays: void sort(java.lang.Object[])>(v);
return;
}
}