正在查看: Top浏览器 v4.6.16 应用的 c.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Top浏览器 v4.6.16 应用的 c.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package c.m.c.a.a.b;
import android.content.Context;
import c.m.c.a.a.b.g.f;
import java.net.InetAddress;
import java.net.Socket;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.X509TrustManager;
public class c extends SSLSocketFactory {
public static final String a = c.class.getSimpleName();
public static volatile c b = null;
public SSLContext f402c;
public SSLSocket d;
public Context e;
public String[] f;
public X509TrustManager g;
public String[] h;
public String[] i;
public String[] j;
public c(Context context) {
this.f402c = null;
this.d = null;
if (context == null) {
f.d(a, "SecureSSLSocketFactory: context is null");
return;
}
c(context);
d(a.f());
e a2 = d.a(context);
this.g = a2;
this.f402c.init(null, new X509TrustManager[]{a2}, null);
}
public static c b(Context context) {
long currentTimeMillis = System.currentTimeMillis();
c.m.c.a.a.b.g.c.b(context);
if (b == null) {
synchronized (c.class) {
if (b == null) {
b = new c(context);
}
}
}
if (b.e == null && context != null) {
b.c(context);
}
f.b(a, "getInstance: cost : " + (System.currentTimeMillis() - currentTimeMillis) + " ms");
return b;
}
public final void a(Socket socket) {
boolean z;
boolean z2 = true;
if (c.m.c.a.a.b.g.b.a(this.j)) {
z = false;
} else {
f.e(a, "set protocols");
a.e((SSLSocket) socket, this.j);
z = true;
}
if (c.m.c.a.a.b.g.b.a(this.i) && c.m.c.a.a.b.g.b.a(this.h)) {
z2 = false;
} else {
f.e(a, "set white cipher or black cipher");
SSLSocket sSLSocket = (SSLSocket) socket;
a.d(sSLSocket);
if (c.m.c.a.a.b.g.b.a(this.i)) {
a.b(sSLSocket, this.h);
} else {
a.h(sSLSocket, this.i);
}
}
if (!z) {
f.e(a, "set default protocols");
a.d((SSLSocket) socket);
}
if (z2) {
return;
}
f.e(a, "set default cipher suites");
a.c((SSLSocket) socket);
}
public void c(Context context) {
this.e = context.getApplicationContext();
}
@Override
public Socket createSocket(String str, int i) {
f.e(a, "createSocket: host , port");
Socket createSocket = this.f402c.getSocketFactory().createSocket(str, i);
if (createSocket instanceof SSLSocket) {
a(createSocket);
SSLSocket sSLSocket = (SSLSocket) createSocket;
this.d = sSLSocket;
this.f = (String[]) sSLSocket.getEnabledCipherSuites().clone();
}
return createSocket;
}
public void d(SSLContext sSLContext) {
this.f402c = sSLContext;
}
public void e(X509TrustManager x509TrustManager) {
this.g = x509TrustManager;
}
@Override
public String[] getDefaultCipherSuites() {
return new String[0];
}
@Override
public String[] getSupportedCipherSuites() {
String[] strArr = this.f;
return strArr != null ? strArr : new String[0];
}
@Override
public Socket createSocket(InetAddress inetAddress, int i) {
return createSocket(inetAddress.getHostAddress(), i);
}
@Override
public Socket createSocket(String str, int i, InetAddress inetAddress, int i2) {
return createSocket(str, i);
}
public c(X509TrustManager x509TrustManager) {
this.f402c = null;
this.d = null;
this.f402c = a.f();
e(x509TrustManager);
this.f402c.init(null, new X509TrustManager[]{x509TrustManager}, null);
}
@Override
public Socket createSocket(InetAddress inetAddress, int i, InetAddress inetAddress2, int i2) {
return createSocket(inetAddress.getHostAddress(), i);
}
@Override
public Socket createSocket(Socket socket, String str, int i, boolean z) {
f.e(a, "createSocket s host port autoClose");
Socket createSocket = this.f402c.getSocketFactory().createSocket(socket, str, i, z);
if (createSocket instanceof SSLSocket) {
a(createSocket);
SSLSocket sSLSocket = (SSLSocket) createSocket;
this.d = sSLSocket;
this.f = (String[]) sSLSocket.getEnabledCipherSuites().clone();
}
return createSocket;
}
}