public class org.apache.http.conn.ssl.SSLConnectionSocketFactory extends java.lang.Object implements org.apache.http.conn.socket.LayeredConnectionSocketFactory
{
public static final java.lang.String TLS;
public static final java.lang.String SSL;
public static final java.lang.String SSLV2;
public static final org.apache.http.conn.ssl.X509HostnameVerifier ALLOW_ALL_HOSTNAME_VERIFIER;
public static final org.apache.http.conn.ssl.X509HostnameVerifier BROWSER_COMPATIBLE_HOSTNAME_VERIFIER;
public static final org.apache.http.conn.ssl.X509HostnameVerifier STRICT_HOSTNAME_VERIFIER;
private static final java.lang.String WEAK_KEY_EXCHANGES;
private static final java.lang.String WEAK_CIPHERS;
private static final java.util.List WEAK_CIPHER_SUITE_PATTERNS;
private final org.apache.commons.logging.Log log;
private final javax.net.ssl.SSLSocketFactory socketfactory;
private final javax.net.ssl.HostnameVerifier hostnameVerifier;
private final java.lang.String[] supportedProtocols;
private final java.lang.String[] supportedCipherSuites;
public static javax.net.ssl.HostnameVerifier getDefaultHostnameVerifier()
{
org.apache.http.conn.ssl.DefaultHostnameVerifier v;
org.apache.http.conn.util.PublicSuffixMatcher v;
v = new org.apache.http.conn.ssl.DefaultHostnameVerifier;
v = staticinvoke <org.apache.http.conn.util.PublicSuffixMatcherLoader: org.apache.http.conn.util.PublicSuffixMatcher getDefault()>();
specialinvoke v.<org.apache.http.conn.ssl.DefaultHostnameVerifier: void <init>(org.apache.http.conn.util.PublicSuffixMatcher)>(v);
return v;
}
public static org.apache.http.conn.ssl.SSLConnectionSocketFactory getSocketFactory() throws org.apache.http.conn.ssl.SSLInitializationException
{
javax.net.ssl.SSLContext v;
javax.net.ssl.HostnameVerifier v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
v = new org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v = staticinvoke <org.apache.http.ssl.SSLContexts: javax.net.ssl.SSLContext createDefault()>();
v = staticinvoke <org.apache.http.conn.ssl.SSLConnectionSocketFactory: javax.net.ssl.HostnameVerifier getDefaultHostnameVerifier()>();
specialinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: void <init>(javax.net.ssl.SSLContext,javax.net.ssl.HostnameVerifier)>(v, v);
return v;
}
static boolean isWeakCipherSuite(java.lang.String)
{
java.util.List v;
java.util.regex.Matcher v;
java.util.Iterator v;
java.lang.Object v;
java.lang.String v;
boolean v, v;
v := @parameter: java.lang.String;
v = <org.apache.http.conn.ssl.SSLConnectionSocketFactory: java.util.List WEAK_CIPHER_SUITE_PATTERNS>;
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 = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v == 0 goto label;
return 1;
label:
return 0;
}
private static java.lang.String[] split(java.lang.String)
{
java.lang.String[] v;
java.lang.String v;
boolean v;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.http.util.TextUtils: boolean isBlank(java.lang.CharSequence)>(v);
if v == 0 goto label;
return null;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(" *, *");
return v;
}
public static org.apache.http.conn.ssl.SSLConnectionSocketFactory getSystemSocketFactory() throws org.apache.http.conn.ssl.SSLInitializationException
{
javax.net.SocketFactory v;
java.lang.String[] v, v;
java.lang.String v, v;
javax.net.ssl.HostnameVerifier v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
v = new org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v = staticinvoke <javax.net.ssl.SSLSocketFactory: javax.net.SocketFactory getDefault()>();
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("https.protocols");
v = staticinvoke <org.apache.http.conn.ssl.SSLConnectionSocketFactory: java.lang.String[] split(java.lang.String)>(v);
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("https.cipherSuites");
v = staticinvoke <org.apache.http.conn.ssl.SSLConnectionSocketFactory: java.lang.String[] split(java.lang.String)>(v);
v = staticinvoke <org.apache.http.conn.ssl.SSLConnectionSocketFactory: javax.net.ssl.HostnameVerifier getDefaultHostnameVerifier()>();
specialinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: void <init>(javax.net.ssl.SSLSocketFactory,java.lang.String[],java.lang.String[],javax.net.ssl.HostnameVerifier)>(v, v, v, v);
return v;
}
public void <init>(javax.net.ssl.SSLContext)
{
javax.net.ssl.SSLContext v;
javax.net.ssl.HostnameVerifier v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: javax.net.ssl.SSLContext;
v = staticinvoke <org.apache.http.conn.ssl.SSLConnectionSocketFactory: javax.net.ssl.HostnameVerifier getDefaultHostnameVerifier()>();
specialinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: void <init>(javax.net.ssl.SSLContext,javax.net.ssl.HostnameVerifier)>(v, v);
return;
}
public void <init>(javax.net.ssl.SSLContext, org.apache.http.conn.ssl.X509HostnameVerifier)
{
javax.net.ssl.SSLContext v;
org.apache.http.conn.ssl.X509HostnameVerifier v;
java.lang.Object v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
javax.net.ssl.SSLSocketFactory v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: javax.net.ssl.SSLContext;
v := @parameter: org.apache.http.conn.ssl.X509HostnameVerifier;
v = staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "SSL context");
v = virtualinvoke v.<javax.net.ssl.SSLContext: javax.net.ssl.SSLSocketFactory getSocketFactory()>();
specialinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: void <init>(javax.net.ssl.SSLSocketFactory,java.lang.String[],java.lang.String[],org.apache.http.conn.ssl.X509HostnameVerifier)>(v, null, null, v);
return;
}
public void <init>(javax.net.ssl.SSLContext, java.lang.String[], java.lang.String[], org.apache.http.conn.ssl.X509HostnameVerifier)
{
javax.net.ssl.SSLContext v;
org.apache.http.conn.ssl.X509HostnameVerifier v;
java.lang.Object v;
java.lang.String[] v, v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
javax.net.ssl.SSLSocketFactory v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: javax.net.ssl.SSLContext;
v := @parameter: java.lang.String[];
v := @parameter: java.lang.String[];
v := @parameter: org.apache.http.conn.ssl.X509HostnameVerifier;
v = staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "SSL context");
v = virtualinvoke v.<javax.net.ssl.SSLContext: javax.net.ssl.SSLSocketFactory getSocketFactory()>();
specialinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: void <init>(javax.net.ssl.SSLSocketFactory,java.lang.String[],java.lang.String[],org.apache.http.conn.ssl.X509HostnameVerifier)>(v, v, v, v);
return;
}
public void <init>(javax.net.ssl.SSLSocketFactory, org.apache.http.conn.ssl.X509HostnameVerifier)
{
org.apache.http.conn.ssl.X509HostnameVerifier v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
javax.net.ssl.SSLSocketFactory v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: javax.net.ssl.SSLSocketFactory;
v := @parameter: org.apache.http.conn.ssl.X509HostnameVerifier;
specialinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: void <init>(javax.net.ssl.SSLSocketFactory,java.lang.String[],java.lang.String[],org.apache.http.conn.ssl.X509HostnameVerifier)>(v, null, null, v);
return;
}
public void <init>(javax.net.ssl.SSLSocketFactory, java.lang.String[], java.lang.String[], org.apache.http.conn.ssl.X509HostnameVerifier)
{
org.apache.http.conn.ssl.X509HostnameVerifier v;
java.lang.String[] v, v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
javax.net.ssl.SSLSocketFactory v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: javax.net.ssl.SSLSocketFactory;
v := @parameter: java.lang.String[];
v := @parameter: java.lang.String[];
v := @parameter: org.apache.http.conn.ssl.X509HostnameVerifier;
specialinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: void <init>(javax.net.ssl.SSLSocketFactory,java.lang.String[],java.lang.String[],javax.net.ssl.HostnameVerifier)>(v, v, v, v);
return;
}
public void <init>(javax.net.ssl.SSLContext, javax.net.ssl.HostnameVerifier)
{
javax.net.ssl.SSLContext v;
java.lang.Object v;
javax.net.ssl.HostnameVerifier v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
javax.net.ssl.SSLSocketFactory v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: javax.net.ssl.SSLContext;
v := @parameter: javax.net.ssl.HostnameVerifier;
v = staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "SSL context");
v = virtualinvoke v.<javax.net.ssl.SSLContext: javax.net.ssl.SSLSocketFactory getSocketFactory()>();
specialinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: void <init>(javax.net.ssl.SSLSocketFactory,java.lang.String[],java.lang.String[],javax.net.ssl.HostnameVerifier)>(v, null, null, v);
return;
}
public void <init>(javax.net.ssl.SSLContext, java.lang.String[], java.lang.String[], javax.net.ssl.HostnameVerifier)
{
javax.net.ssl.SSLContext v;
java.lang.Object v;
java.lang.String[] v, v;
javax.net.ssl.HostnameVerifier v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
javax.net.ssl.SSLSocketFactory v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: javax.net.ssl.SSLContext;
v := @parameter: java.lang.String[];
v := @parameter: java.lang.String[];
v := @parameter: javax.net.ssl.HostnameVerifier;
v = staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "SSL context");
v = virtualinvoke v.<javax.net.ssl.SSLContext: javax.net.ssl.SSLSocketFactory getSocketFactory()>();
specialinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: void <init>(javax.net.ssl.SSLSocketFactory,java.lang.String[],java.lang.String[],javax.net.ssl.HostnameVerifier)>(v, v, v, v);
return;
}
public void <init>(javax.net.ssl.SSLSocketFactory, javax.net.ssl.HostnameVerifier)
{
javax.net.ssl.HostnameVerifier v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
javax.net.ssl.SSLSocketFactory v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: javax.net.ssl.SSLSocketFactory;
v := @parameter: javax.net.ssl.HostnameVerifier;
specialinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: void <init>(javax.net.ssl.SSLSocketFactory,java.lang.String[],java.lang.String[],javax.net.ssl.HostnameVerifier)>(v, null, null, v);
return;
}
public void <init>(javax.net.ssl.SSLSocketFactory, java.lang.String[], java.lang.String[], javax.net.ssl.HostnameVerifier)
{
java.lang.String[] v, v;
javax.net.ssl.SSLSocketFactory v;
java.lang.Class v;
java.lang.Object v;
org.apache.commons.logging.Log v;
javax.net.ssl.HostnameVerifier v, v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: javax.net.ssl.SSLSocketFactory;
v := @parameter: java.lang.String[];
v := @parameter: java.lang.String[];
v := @parameter: javax.net.ssl.HostnameVerifier;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(v);
v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log> = v;
v = staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "SSL socket factory");
v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: javax.net.ssl.SSLSocketFactory socketfactory> = v;
v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: java.lang.String[] supportedProtocols> = v;
v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: java.lang.String[] supportedCipherSuites> = v;
if v == null goto label;
v = v;
goto label;
label:
v = staticinvoke <org.apache.http.conn.ssl.SSLConnectionSocketFactory: javax.net.ssl.HostnameVerifier getDefaultHostnameVerifier()>();
label:
v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: javax.net.ssl.HostnameVerifier hostnameVerifier> = v;
return;
}
protected void prepareSocket(javax.net.ssl.SSLSocket) throws java.io.IOException
{
javax.net.ssl.SSLSocket v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: javax.net.ssl.SSLSocket;
return;
}
public java.net.Socket createSocket(org.apache.http.protocol.HttpContext) throws java.io.IOException
{
javax.net.SocketFactory v;
java.net.Socket v;
org.apache.http.protocol.HttpContext v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: org.apache.http.protocol.HttpContext;
v = staticinvoke <javax.net.SocketFactory: javax.net.SocketFactory getDefault()>();
v = virtualinvoke v.<javax.net.SocketFactory: java.net.Socket createSocket()>();
return v;
}
public java.net.Socket connectSocket(int, java.net.Socket, org.apache.http.HttpHost, java.net.InetSocketAddress, java.net.InetSocketAddress, org.apache.http.protocol.HttpContext) throws java.io.IOException
{
java.net.Socket v, v, v, v;
int v, v, v;
java.lang.String v, v, v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
boolean v, v;
java.io.IOException v;
java.net.InetSocketAddress v, v;
org.apache.http.protocol.HttpContext v;
org.apache.commons.logging.Log v, v, v;
org.apache.http.HttpHost v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: int;
v := @parameter: java.net.Socket;
v := @parameter: org.apache.http.HttpHost;
v := @parameter: java.net.InetSocketAddress;
v := @parameter: java.net.InetSocketAddress;
v := @parameter: org.apache.http.protocol.HttpContext;
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "HTTP host");
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Remote address");
if v == null goto label;
v = v;
goto label;
label:
v = virtualinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: java.net.Socket createSocket(org.apache.http.protocol.HttpContext)>(v);
label:
v = v;
if v == null goto label;
virtualinvoke v.<java.net.Socket: void bind(java.net.SocketAddress)>(v);
label:
if v <= 0 goto label;
v = virtualinvoke v.<java.net.Socket: int getSoTimeout()>();
if v != 0 goto label;
virtualinvoke v.<java.net.Socket: void setSoTimeout(int)>(v);
label:
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.InetSocketAddress,int)>(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[])>("Connecting socket to \u with timeout \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
virtualinvoke v.<java.net.Socket: void connect(java.net.SocketAddress,int)>(v, v);
label:
goto label;
label:
v := @caughtexception;
throw v;
label:
v = v instanceof javax.net.ssl.SSLSocket;
if v == 0 goto label;
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>("Starting handshake");
virtualinvoke v.<javax.net.ssl.SSLSocket: void startHandshake()>();
v = virtualinvoke v.<org.apache.http.HttpHost: java.lang.String getHostName()>();
specialinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: void verifyHostname(javax.net.ssl.SSLSocket,java.lang.String)>(v, v);
return v;
label:
v = virtualinvoke v.<org.apache.http.HttpHost: java.lang.String getHostName()>();
v = virtualinvoke v.<java.net.InetSocketAddress: int getPort()>();
v = virtualinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: java.net.Socket createLayeredSocket(java.net.Socket,java.lang.String,int,org.apache.http.protocol.HttpContext)>(v, v, v, v);
return v;
catch java.io.IOException from label to label with label;
}
public java.net.Socket createLayeredSocket(java.net.Socket, java.lang.String, int, org.apache.http.protocol.HttpContext) throws java.io.IOException
{
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
boolean v, v, v, v, v;
javax.net.ssl.SSLSocketFactory v;
java.util.List v, v;
java.net.Socket v, v;
java.lang.Object[] v, v;
java.lang.String[] v, v, v, v, v, v, v, v, v, v;
java.util.ArrayList v, v;
int v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v;
org.apache.http.protocol.HttpContext v;
org.apache.commons.logging.Log v, v, v, v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: java.net.Socket;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: org.apache.http.protocol.HttpContext;
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: javax.net.ssl.SSLSocketFactory socketfactory>;
v = virtualinvoke v.<javax.net.ssl.SSLSocketFactory: java.net.Socket createSocket(java.net.Socket,java.lang.String,int,boolean)>(v, v, v, 1);
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: java.lang.String[] supportedProtocols>;
if v == null goto label;
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: java.lang.String[] supportedProtocols>;
virtualinvoke v.<javax.net.ssl.SSLSocket: void setEnabledProtocols(java.lang.String[])>(v);
goto label;
label:
v = virtualinvoke v.<javax.net.ssl.SSLSocket: java.lang.String[] getEnabledProtocols()>();
v = new java.util.ArrayList;
v = lengthof v;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("SSL");
if v != 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = v + 1;
goto label;
label:
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: int size()>();
v = newarray (java.lang.String)[v];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
virtualinvoke v.<javax.net.ssl.SSLSocket: void setEnabledProtocols(java.lang.String[])>(v);
label:
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: java.lang.String[] supportedCipherSuites>;
if v == null goto label;
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: java.lang.String[] supportedCipherSuites>;
virtualinvoke v.<javax.net.ssl.SSLSocket: void setEnabledCipherSuites(java.lang.String[])>(v);
goto label;
label:
v = virtualinvoke v.<javax.net.ssl.SSLSocket: java.lang.String[] getEnabledCipherSuites()>();
v = new java.util.ArrayList;
v = lengthof v;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <org.apache.http.conn.ssl.SSLConnectionSocketFactory: boolean isWeakCipherSuite(java.lang.String)>(v);
if v != 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = v + 1;
goto label;
label:
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: int size()>();
v = newarray (java.lang.String)[v];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
virtualinvoke v.<javax.net.ssl.SSLSocket: void setEnabledCipherSuites(java.lang.String[])>(v);
label:
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
v = virtualinvoke v.<javax.net.ssl.SSLSocket: java.lang.String[] getEnabledProtocols()>();
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.List)>(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[])>("Enabled protocols: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
v = virtualinvoke v.<javax.net.ssl.SSLSocket: java.lang.String[] getEnabledCipherSuites()>();
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.List)>(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[])>("Enabled cipher suites:\u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
virtualinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: void prepareSocket(javax.net.ssl.SSLSocket)>(v);
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>("Starting handshake");
virtualinvoke v.<javax.net.ssl.SSLSocket: void startHandshake()>();
specialinvoke v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: void verifyHostname(javax.net.ssl.SSLSocket,java.lang.String)>(v, v);
return v;
}
private void verifyHostname(javax.net.ssl.SSLSocket, java.lang.String) throws java.io.IOException
{
javax.net.ssl.SSLSocket v;
javax.net.ssl.HostnameVerifier v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
boolean v, v, v, v, v, v;
javax.net.ssl.SSLHandshakeException v;
java.util.Collection v, v;
java.lang.Exception v;
java.util.List v;
java.security.cert.Certificate v, v;
java.security.cert.Certificate[] v, v;
javax.security.auth.x.X500Principal v, v;
java.util.ArrayList v, v;
javax.net.ssl.SSLSession v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Iterator v, v;
java.io.IOException v;
java.lang.Object v, v, v, v;
org.apache.commons.logging.Log v, v, v, v, v, v, v, v;
java.io.InputStream v;
javax.net.ssl.SSLPeerUnverifiedException v;
v := @this: org.apache.http.conn.ssl.SSLConnectionSocketFactory;
v := @parameter: javax.net.ssl.SSLSocket;
v := @parameter: java.lang.String;
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()>();
if v != null goto label;
v = new javax.net.ssl.SSLHandshakeException;
specialinvoke v.<javax.net.ssl.SSLHandshakeException: void <init>(java.lang.String)>("SSL session not available");
throw v;
label:
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>("Secure session established");
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.lang.String getProtocol()>();
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[])>(" negotiated protocol: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.lang.String getCipherSuite()>();
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[])>(" negotiated cipher suite: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.security.cert.Certificate[] getPeerCertificates()>();
v = v[0];
v = virtualinvoke v.<java.security.cert.X509Certificate: javax.security.auth.x.X500Principal getSubjectX500Principal()>();
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
v = virtualinvoke v.<javax.security.auth.x.X500Principal: java.lang.String toString()>();
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[])>(" peer principal: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
v = virtualinvoke v.<java.security.cert.X509Certificate: java.util.Collection getSubjectAlternativeNames()>();
if v == null goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
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 = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.ArrayList)>(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[])>(" peer alternative names: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = virtualinvoke v.<java.security.cert.X509Certificate: javax.security.auth.x.X500Principal getIssuerX500Principal()>();
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
v = virtualinvoke v.<javax.security.auth.x.X500Principal: java.lang.String toString()>();
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[])>(" issuer principal: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
v = virtualinvoke v.<java.security.cert.X509Certificate: java.util.Collection getIssuerAlternativeNames()>();
if v == null goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
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 = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.commons.logging.Log log>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.ArrayList)>(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[])>(" issuer alternative names: \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
v = v.<org.apache.http.conn.ssl.SSLConnectionSocketFactory: javax.net.ssl.HostnameVerifier hostnameVerifier>;
v = interfaceinvoke v.<javax.net.ssl.HostnameVerifier: boolean verify(java.lang.String,javax.net.ssl.SSLSession)>(v, v);
if v != 0 goto label;
v = interfaceinvoke v.<javax.net.ssl.SSLSession: java.security.cert.Certificate[] getPeerCertificates()>();
v = v[0];
v = staticinvoke <org.apache.http.conn.ssl.DefaultHostnameVerifier: java.util.List getSubjectAltNames(java.security.cert.X509Certificate)>(v);
v = new javax.net.ssl.SSLPeerUnverifiedException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.util.List)>(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[])>("Certificate for <\u0001> doesn\'t match any of the subject alternative names: \u0001");
specialinvoke v.<javax.net.ssl.SSLPeerUnverifiedException: void <init>(java.lang.String)>(v);
throw v;
label:
v := @caughtexception;
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
catch java.io.IOException from label to label with label;
}
static void <clinit>()
{
java.util.regex.Pattern[] v;
org.apache.http.conn.ssl.StrictHostnameVerifier v;
java.util.List v, v;
org.apache.http.conn.ssl.BrowserCompatHostnameVerifier v;
org.apache.http.conn.ssl.AllowAllHostnameVerifier v;
java.util.regex.Pattern v, v;
v = <org.apache.http.conn.ssl.AllowAllHostnameVerifier: org.apache.http.conn.ssl.AllowAllHostnameVerifier INSTANCE>;
<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.http.conn.ssl.X509HostnameVerifier ALLOW_ALL_HOSTNAME_VERIFIER> = v;
v = <org.apache.http.conn.ssl.BrowserCompatHostnameVerifier: org.apache.http.conn.ssl.BrowserCompatHostnameVerifier INSTANCE>;
<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.http.conn.ssl.X509HostnameVerifier BROWSER_COMPATIBLE_HOSTNAME_VERIFIER> = v;
v = <org.apache.http.conn.ssl.StrictHostnameVerifier: org.apache.http.conn.ssl.StrictHostnameVerifier INSTANCE>;
<org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.http.conn.ssl.X509HostnameVerifier STRICT_HOSTNAME_VERIFIER> = v;
v = newarray (java.util.regex.Pattern)[2];
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String,int)>("^(TLS|SSL)_(NULL|ECDH_anon|DH_anon|DH_anon_EXPORT|DHE_RSA_EXPORT|DHE_DSS_EXPORT|DSS_EXPORT|DH_DSS_EXPORT|DH_RSA_EXPORT|RSA_EXPORT|KRB5_EXPORT)_(.*)", 2);
v[0] = v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String,int)>("^(TLS|SSL)_(.*)_WITH_(NULL|DES_CBC|DES40_CBC|DES_CBC_40|3DES_EDE_CBC|RC4_128|RC4_40|RC2_CBC_40)_(.*)", 2);
v[1] = v;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = staticinvoke <java.util.Collections: java.util.List unmodifiableList(java.util.List)>(v);
<org.apache.http.conn.ssl.SSLConnectionSocketFactory: java.util.List WEAK_CIPHER_SUITE_PATTERNS> = v;
return;
}
}