导航菜单

页面标题

页面副标题

Top浏览器 v4.6.16 - c.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;
    }
}