导航菜单

页面标题

页面副标题

Namma Yatri v3.3.7 - h.java 源代码

正在查看: Namma Yatri v3.3.7 应用的 h.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package Nc;

import Sd.C0187e;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.net.Socket;
import java.security.AccessController;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.security.Provider;
import java.security.Security;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLParameters;
import javax.net.ssl.SSLSocket;

public class h {
    public static final Logger b = Logger.getLogger(h.class.getName());
    private static final String[] c = {"com.google.android.gms.org.conscrypt.OpenSSLProvider", "org.conscrypt.OpenSSLProvider", "com.android.org.conscrypt.OpenSSLProvider", "org.apache.harmony.xnet.provider.jsse.OpenSSLProvider", "com.google.android.libraries.stitch.sslguard.SslGuardProvider"};
    private static final h d = d();
    private final Provider a;

    class a implements PrivilegedExceptionAction {
        a() {
        }

        @Override
        public Method run() {
            return SSLEngine.class.getMethod("getApplicationProtocol", null);
        }
    }

    class b implements PrivilegedExceptionAction {
        b() {
        }

        @Override
        public Method run() {
            return SSLParameters.class.getMethod("setApplicationProtocols", String[].class);
        }
    }

    class c implements PrivilegedExceptionAction {
        c() {
        }

        @Override
        public Method run() {
            return SSLSocket.class.getMethod("getApplicationProtocol", null);
        }
    }

    private static class d extends h {
        private final Nc.g e;
        private final Nc.g f;
        private final Method g;
        private final Method h;
        private final Nc.g i;
        private final Nc.g j;
        private final EnumC0025h k;

        public d(Nc.g gVar, Nc.g gVar2, Method method, Method method2, Nc.g gVar3, Nc.g gVar4, Provider provider, EnumC0025h enumC0025h) {
            super(provider);
            this.e = gVar;
            this.f = gVar2;
            this.g = method;
            this.h = method2;
            this.i = gVar3;
            this.j = gVar4;
            this.k = enumC0025h;
        }

        @Override
        public void c(SSLSocket sSLSocket, String str, List list) {
            if (str != null) {
                this.e.e(sSLSocket, Boolean.TRUE);
                this.f.e(sSLSocket, str);
            }
            if (this.j.g(sSLSocket)) {
                this.j.f(sSLSocket, h.b(list));
            }
        }

        @Override
        public String h(SSLSocket sSLSocket) {
            byte[] bArr;
            if (this.i.g(sSLSocket) && (bArr = (byte[]) this.i.f(sSLSocket, new Object[0])) != null) {
                return new String(bArr, l.b);
            }
            return null;
        }

        @Override
        public EnumC0025h i() {
            return this.k;
        }
    }

    private static class e extends h {
        private final Method e;
        private final Method f;

        e(Provider provider, Method method, Method method2, a aVar) {
            this(provider, method, method2);
        }

        @Override
        public void c(SSLSocket sSLSocket, String str, List list) {
            SSLParameters sSLParameters = sSLSocket.getSSLParameters();
            ArrayList arrayList = new ArrayList(list.size());
            Iterator it = list.iterator();
            while (it.hasNext()) {
                i iVar = (i) it.next();
                if (iVar != i.HTTP_1_0) {
                    arrayList.add(iVar.toString());
                }
            }
            try {
                this.e.invoke(sSLParameters, arrayList.toArray(new String[arrayList.size()]));
                sSLSocket.setSSLParameters(sSLParameters);
            } catch (IllegalAccessException e) {
                throw new RuntimeException(e);
            } catch (InvocationTargetException e2) {
                throw new RuntimeException(e2);
            }
        }

        @Override
        public String h(SSLSocket sSLSocket) {
            try {
                return (String) this.f.invoke(sSLSocket, null);
            } catch (IllegalAccessException e) {
                throw new RuntimeException(e);
            } catch (InvocationTargetException e2) {
                throw new RuntimeException(e2);
            }
        }

        @Override
        public EnumC0025h i() {
            return EnumC0025h.ALPN_AND_NPN;
        }

        private e(Provider provider, Method method, Method method2) {
            super(provider);
            this.e = method;
            this.f = method2;
        }
    }

    private static class f extends h {
        private final Method e;
        private final Method f;
        private final Method g;
        private final Class h;
        private final Class i;

        public f(Method method, Method method2, Method method3, Class cls, Class cls2, Provider provider) {
            super(provider);
            this.e = method;
            this.f = method2;
            this.g = method3;
            this.h = cls;
            this.i = cls2;
        }

        @Override
        public void a(SSLSocket sSLSocket) {
            try {
                this.g.invoke(null, sSLSocket);
            } catch (IllegalAccessException unused) {
                throw new AssertionError();
            } catch (InvocationTargetException e) {
                h.b.log(Level.FINE, "Failed to remove SSLSocket from Jetty ALPN", (Throwable) e);
            }
        }

        @Override
        public void c(SSLSocket sSLSocket, String str, List list) {
            ArrayList arrayList = new ArrayList(list.size());
            int size = list.size();
            for (int i = 0; i < size; i++) {
                i iVar = (i) list.get(i);
                if (iVar != i.HTTP_1_0) {
                    arrayList.add(iVar.toString());
                }
            }
            try {
                this.e.invoke(null, sSLSocket, Proxy.newProxyInstance(h.class.getClassLoader(), new Class[]{this.h, this.i}, new g(arrayList)));
            } catch (IllegalAccessException e) {
                throw new AssertionError(e);
            } catch (InvocationTargetException e2) {
                throw new AssertionError(e2);
            }
        }

        @Override
        public String h(SSLSocket sSLSocket) {
            try {
                g gVar = (g) Proxy.getInvocationHandler(this.f.invoke(null, sSLSocket));
                if (!gVar.b && gVar.c == null) {
                    h.b.log(Level.INFO, "ALPN callback dropped: SPDY and HTTP/2 are disabled. Is alpn-boot on the boot class path?");
                    return null;
                }
                if (gVar.b) {
                    return null;
                }
                return gVar.c;
            } catch (IllegalAccessException unused) {
                throw new AssertionError();
            } catch (InvocationTargetException unused2) {
                throw new AssertionError();
            }
        }

        @Override
        public EnumC0025h i() {
            return EnumC0025h.ALPN_AND_NPN;
        }
    }

    private static class g implements InvocationHandler {
        private final List a;
        private boolean b;
        private String c;

        public g(List list) {
            this.a = list;
        }

        @Override
        public Object invoke(Object obj, Method method, Object[] objArr) {
            String name = method.getName();
            Class<?> returnType = method.getReturnType();
            if (objArr == null) {
                objArr = l.a;
            }
            if (name.equals("supports") && Boolean.TYPE == returnType) {
                return Boolean.TRUE;
            }
            if (name.equals("unsupported") && Void.TYPE == returnType) {
                this.b = true;
                return null;
            }
            if (name.equals("protocols") && objArr.length == 0) {
                return this.a;
            }
            if ((name.equals("selectProtocol") || name.equals("select")) && String.class == returnType && objArr.length == 1) {
                Object obj2 = objArr[0];
                if (obj2 instanceof List) {
                    List list = (List) obj2;
                    int size = list.size();
                    for (int i = 0; i < size; i++) {
                        if (this.a.contains(list.get(i))) {
                            String str = (String) list.get(i);
                            this.c = str;
                            return str;
                        }
                    }
                    String str2 = (String) this.a.get(0);
                    this.c = str2;
                    return str2;
                }
            }
            if ((!name.equals("protocolSelected") && !name.equals("selected")) || objArr.length != 1) {
                return method.invoke(this, objArr);
            }
            this.c = (String) objArr[0];
            return null;
        }
    }

    public enum EnumC0025h {
        ALPN_AND_NPN,
        NPN,
        NONE
    }

    public h(Provider provider) {
        this.a = provider;
    }

    public static byte[] b(List list) {
        C0187e c0187e = new C0187e();
        int size = list.size();
        for (int i = 0; i < size; i++) {
            i iVar = (i) list.get(i);
            if (iVar != i.HTTP_1_0) {
                c0187e.f1(iVar.toString().length());
                c0187e.h0(iVar.toString());
            }
        }
        return c0187e.c1();
    }

    private static h d() {
        Method method;
        Method method2;
        Method method3;
        Provider f2 = f();
        a aVar = null;
        if (f2 != null) {
            Nc.g gVar = new Nc.g(null, "setUseSessionTickets", Boolean.TYPE);
            Nc.g gVar2 = new Nc.g(null, "setHostname", String.class);
            Nc.g gVar3 = new Nc.g(byte[].class, "getAlpnSelectedProtocol", new Class[0]);
            Nc.g gVar4 = new Nc.g(null, "setAlpnProtocols", byte[].class);
            try {
                Class<?> cls = Class.forName("android.net.TrafficStats");
                method = cls.getMethod("tagSocket", Socket.class);
                try {
                    method3 = cls.getMethod("untagSocket", Socket.class);
                    method2 = method;
                } catch (ClassNotFoundException | NoSuchMethodException unused) {
                    method2 = method;
                    method3 = null;
                    return new d(gVar, gVar2, method2, method3, gVar3, gVar4, f2, (!f2.getName().equals("GmsCore_OpenSSL") || f2.getName().equals("Conscrypt") || f2.getName().equals("Ssl_Guard")) ? EnumC0025h.ALPN_AND_NPN : k() ? EnumC0025h.ALPN_AND_NPN : j() ? EnumC0025h.NPN : EnumC0025h.NONE);
                }
            } catch (ClassNotFoundException | NoSuchMethodException unused2) {
                method = null;
            }
            return new d(gVar, gVar2, method2, method3, gVar3, gVar4, f2, (!f2.getName().equals("GmsCore_OpenSSL") || f2.getName().equals("Conscrypt") || f2.getName().equals("Ssl_Guard")) ? EnumC0025h.ALPN_AND_NPN : k() ? EnumC0025h.ALPN_AND_NPN : j() ? EnumC0025h.NPN : EnumC0025h.NONE);
        }
        try {
            Provider provider = SSLContext.getDefault().getProvider();
            try {
                try {
                    SSLContext sSLContext = SSLContext.getInstance("TLS", provider);
                    sSLContext.init(null, null, null);
                    ((Method) AccessController.doPrivileged(new a())).invoke(sSLContext.createSSLEngine(), null);
                    return new e(provider, (Method) AccessController.doPrivileged(new b()), (Method) AccessController.doPrivileged(new c()), aVar);
                } catch (IllegalAccessException | InvocationTargetException | KeyManagementException | NoSuchAlgorithmException | PrivilegedActionException unused3) {
                    Class<?> cls2 = Class.forName("org.eclipse.jetty.alpn.ALPN");
                    Class<?> cls3 = Class.forName("org.eclipse.jetty.alpn.ALPN$Provider");
                    return new f(cls2.getMethod("put", SSLSocket.class, cls3), cls2.getMethod("get", SSLSocket.class), cls2.getMethod("remove", SSLSocket.class), Class.forName("org.eclipse.jetty.alpn.ALPN$ClientProvider"), Class.forName("org.eclipse.jetty.alpn.ALPN$ServerProvider"), provider);
                }
            } catch (ClassNotFoundException | NoSuchMethodException unused4) {
                return new h(provider);
            }
        } catch (NoSuchAlgorithmException e2) {
            throw new RuntimeException(e2);
        }
    }

    public static h e() {
        return d;
    }

    private static Provider f() {
        for (Provider provider : Security.getProviders()) {
            for (String str : c) {
                if (str.equals(provider.getClass().getName())) {
                    b.log(Level.FINE, "Found registered provider {0}", str);
                    return provider;
                }
            }
        }
        b.log(Level.WARNING, "Unable to find Conscrypt");
        return null;
    }

    private static boolean j() {
        try {
            h.class.getClassLoader().loadClass("android.app.ActivityOptions");
            return true;
        } catch (ClassNotFoundException e2) {
            b.log(Level.FINE, "Can't find class", (Throwable) e2);
            return false;
        }
    }

    private static boolean k() {
        try {
            h.class.getClassLoader().loadClass("android.net.Network");
            return true;
        } catch (ClassNotFoundException e2) {
            b.log(Level.FINE, "Can't find class", (Throwable) e2);
            return false;
        }
    }

    public Provider g() {
        return this.a;
    }

    public String h(SSLSocket sSLSocket) {
        return null;
    }

    public EnumC0025h i() {
        return EnumC0025h.NONE;
    }

    public void a(SSLSocket sSLSocket) {
    }

    public void c(SSLSocket sSLSocket, String str, List list) {
    }
}