Fast Orange v3.5.3版本的 MD5 值为:33b91aba50c566533dfd683a85f79158

以下内容为反编译后的 ValidatorsKt.java 源代码,内容仅作参考


package com.github.shadowsocks.ktx;

import com.free.vpn.proxy.hotspot.br1;
import com.free.vpn.proxy.hotspot.cc3;
import com.free.vpn.proxy.hotspot.ct4;
import com.free.vpn.proxy.hotspot.da;
import com.free.vpn.proxy.hotspot.q00;
import com.free.vpn.proxy.hotspot.u93;
import com.free.vpn.proxy.hotspot.vf3;
import com.free.vpn.proxy.hotspot.x74;
import com.free.vpn.proxy.hotspot.zs4;
import com.github.shadowsocks.core.R;
import com.github.shadowsocks.fmt.AbstractBean;
import com.github.shadowsocks.fmt.http.HttpBean;
import com.github.shadowsocks.fmt.internal.ConfigBean;
import com.github.shadowsocks.fmt.shadowsocks.ShadowsocksBean;
import com.github.shadowsocks.fmt.shadowsocksr.ShadowsocksRBean;
import com.github.shadowsocks.fmt.socks.SOCKSBean;
import com.github.shadowsocks.fmt.trojan.TrojanBean;
import com.github.shadowsocks.fmt.v2ray.StandardV2RayBean;
import com.github.shadowsocks.fmt.v2ray.VLESSBean;
import com.github.shadowsocks.fmt.v2ray.VMessBean;
import com.github.shadowsocks.group.RawUpdater;
import com.github.shadowsocks.plugin.PluginConfiguration;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import kotlin.Metadata;

@Metadata(d1 = {"\u0000\u0012\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0005\u001a\n\u0010\u0002\u001a\u00020\u0001*\u00020\u0000\"\u0017\u0010\u0004\u001a\u00020\u00038\u0006¢\u0006\f\n\u0004\b\u0004\u0010\u0005\u001a\u0004\b\u0006\u0010\u0007¨\u0006\b"}, d2 = {"Lcom/github/shadowsocks/fmt/AbstractBean;", "Lcom/github/shadowsocks/ktx/ValidateResult;", "isInsecure", "Lcom/free/vpn/proxy/hotspot/vf3;", "ssSecureList", "Lcom/free/vpn/proxy/hotspot/vf3;", "getSsSecureList", "()Lcom/free/vpn/proxy/hotspot/vf3;", "shadowsocks_release"}, k = 2, mv = {1, 8, 0})
public final class ValidatorsKt {
    private static final vf3 ssSecureList = new vf3("(gcm|poly1305)");

    public static final vf3 getSsSecureList() {
        return ssSecureList;
    }

    public static final ValidateResult isInsecure(AbstractBean abstractBean) {
        Object obj;
        Object obj2;
        Object obj3;
        boolean z;
        boolean z2;
        boolean z3;
        zs4.o(abstractBean, "<this>");
        if (cc3.a(ct4.a, abstractBean.serverAddress)) {
            String str = abstractBean.serverAddress;
            long N = u93.N(str);
            long N2 = u93.N("10.0.0.0");
            long N3 = u93.N("10.255.255.255");
            long N4 = u93.N("172.16.0.0");
            long N5 = u93.N("172.31.255.255");
            long N6 = u93.N("192.168.0.0");
            long N7 = u93.N("192.168.255.255");
            boolean z4 = true;
            if (N >= N2 && N <= N3) {
                z = true;
            } else {
                z = false;
            }
            if (!z) {
                if (N >= N4 && N <= N5) {
                    z2 = true;
                } else {
                    z2 = false;
                }
                if (!z2) {
                    if (N >= N6 && N <= N7) {
                        z3 = true;
                    } else {
                        z3 = false;
                    }
                    if (!z3 && !"127.0.0.1".equals(str)) {
                        z4 = false;
                    }
                }
            }
        }
        if (!da.E0(new String[]{"localhost", "::"}, abstractBean.serverAddress)) {
            if (abstractBean instanceof ShadowsocksBean) {
                ShadowsocksBean shadowsocksBean = (ShadowsocksBean) abstractBean;
                if (x74.a1(shadowsocksBean.getPlugin()) || zs4.h(new PluginConfiguration(shadowsocksBean.getPlugin()).getSelected(), "obfs-local")) {
                    String method = shadowsocksBean.getMethod();
                    vf3 vf3Var = ssSecureList;
                    vf3Var.getClass();
                    zs4.o(method, "input");
                    if (!vf3Var.a.matcher(method).find()) {
                        return new ResultInsecure(R.raw.shadowsocks_stream_cipher);
                    }
                }
            } else {
                if (abstractBean instanceof ShadowsocksRBean) {
                    return new ResultDeprecated(R.raw.shadowsocksr);
                }
                if (abstractBean instanceof HttpBean) {
                    if (!((HttpBean) abstractBean).getTls()) {
                        return new ResultInsecure(R.raw.not_encrypted);
                    }
                } else if (abstractBean instanceof SOCKSBean) {
                    if (!((SOCKSBean) abstractBean).getTls()) {
                        return new ResultInsecure(R.raw.not_encrypted);
                    }
                } else if (abstractBean instanceof VMessBean) {
                    VMessBean vMessBean = (VMessBean) abstractBean;
                    if (da.E0(new String[]{"", "none"}, vMessBean.getSecurity()) && da.E0(new String[]{"none", "zero"}, vMessBean.getEncryption())) {
                        return new ResultInsecure(R.raw.not_encrypted);
                    }
                    if (zs4.h(vMessBean.getType(), StandardV2RayBean.TYPE_KCP) && x74.a1(vMessBean.getMKcpSeed())) {
                        return new ResultInsecure(R.raw.mkcp_no_seed);
                    }
                } else if (abstractBean instanceof VLESSBean) {
                    VLESSBean vLESSBean = (VLESSBean) abstractBean;
                    if (da.E0(new String[]{"", "none"}, vLESSBean.getSecurity())) {
                        return new ResultInsecure(R.raw.not_encrypted);
                    }
                    if (zs4.h(vLESSBean.getType(), StandardV2RayBean.TYPE_KCP) && x74.a1(vLESSBean.getMKcpSeed())) {
                        return new ResultInsecure(R.raw.mkcp_no_seed);
                    }
                    if (zs4.h(vLESSBean.getSecurity(), StandardV2RayBean.SECURITY_XTLS)) {
                        return new ResultDeprecated(R.raw.xtls);
                    }
                } else if (abstractBean instanceof TrojanBean) {
                    if (zs4.h(((TrojanBean) abstractBean).getSecurity(), StandardV2RayBean.SECURITY_XTLS)) {
                        return new ResultDeprecated(R.raw.xtls);
                    }
                } else if (abstractBean instanceof ConfigBean) {
                    try {
                        List<AbstractBean> parseJSON = RawUpdater.INSTANCE.parseJSON(new br1(((ConfigBean) abstractBean).getContent()));
                        ArrayList arrayList = new ArrayList(q00.A0(parseJSON, 10));
                        Iterator<T> it = parseJSON.iterator();
                        while (it.hasNext()) {
                            arrayList.add(isInsecure((AbstractBean) it.next()));
                        }
                        Iterator it2 = arrayList.iterator();
                        while (true) {
                            obj = null;
                            if (it2.hasNext()) {
                                obj2 = it2.next();
                                if (((ValidateResult) obj2) instanceof ResultInsecure) {
                                    break;
                                }
                            } else {
                                obj2 = null;
                                break;
                            }
                        }
                        ValidateResult validateResult = (ValidateResult) obj2;
                        if (validateResult == null) {
                            Iterator it3 = arrayList.iterator();
                            while (true) {
                                if (it3.hasNext()) {
                                    obj3 = it3.next();
                                    if (((ValidateResult) obj3) instanceof ResultDeprecated) {
                                        break;
                                    }
                                } else {
                                    obj3 = null;
                                    break;
                                }
                            }
                            validateResult = (ValidateResult) obj3;
                            if (validateResult == null) {
                                Iterator it4 = arrayList.iterator();
                                while (true) {
                                    if (!it4.hasNext()) {
                                        break;
                                    }
                                    Object next = it4.next();
                                    if (((ValidateResult) next) instanceof ResultLocal) {
                                        obj = next;
                                        break;
                                    }
                                }
                                validateResult = (ValidateResult) obj;
                            }
                        }
                        if (validateResult != null) {
                            return validateResult;
                        }
                    } catch (Exception unused) {
                    }
                }
            }
            if (abstractBean.getAllowInsecure()) {
                return new ResultInsecure(R.raw.insecure);
            }
            return ResultSecure.INSTANCE;
        }
        return ResultLocal.INSTANCE;
    }
}