/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.message.HeadersKnob
 *  com.l7tech.message.Message
 *  com.l7tech.policy.assertion.HttpPassthroughRuleSet
 *  jakarta.servlet.http.HttpServletRequest
 *  jakarta.servlet.http.HttpServletResponse
 *  org.jetbrains.annotations.NotNull
 */
package com.l7tech.server.util;

import com.l7tech.message.HeadersKnob;
import com.l7tech.message.Message;
import com.l7tech.policy.assertion.HttpPassthroughRuleSet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.security.cert.X509Certificate;
import java.util.Enumeration;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jetbrains.annotations.NotNull;

/*
 * Exception performing whole class analysis ignored.
 */
public class ServletUtils {
    public static final String PARAM_HTTP_X509CERT;
    private static final Logger a;
    private static final String[] b;

    public static X509Certificate getRequestCert(HttpServletRequest httpServletRequest) {
        try {
            if (!httpServletRequest.isSecure()) {
                throw new IllegalArgumentException(b[12]);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServletUtils.a(illegalArgumentException);
        }
        String[] stringArray = b;
        Object object = httpServletRequest.getAttribute(stringArray[6]);
        try {
            if (object == null) {
                a.fine(stringArray[5]);
                return null;
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServletUtils.a(illegalArgumentException);
        }
        if (object instanceof Object[]) {
            Object[] objectArray = (Object[])object;
            try {
                if (objectArray[0] instanceof X509Certificate) {
                    return (X509Certificate)objectArray[0];
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw ServletUtils.a(illegalArgumentException);
            }
            stringArray = b;
            a.info(stringArray[9] + objectArray[0].getClass().getName());
            return null;
        }
        try {
            if (object instanceof X509Certificate) {
                a.fine(b[10]);
                return (X509Certificate)object;
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServletUtils.a(illegalArgumentException);
        }
        a.info(b[2] + object.getClass().getName());
        return null;
    }

    public static void loadHeaders(@NotNull HttpServletRequest httpServletRequest, @NotNull Message message) {
        try {
            if (httpServletRequest == null) {
                ServletUtils.a(0);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServletUtils.a(illegalArgumentException);
        }
        try {
            if (message == null) {
                ServletUtils.a(1);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServletUtils.a(illegalArgumentException);
        }
        HeadersKnob headersKnob = message.getHeadersKnob();
        Enumeration enumeration = httpServletRequest.getHeaderNames();
        while (enumeration.hasMoreElements()) {
            boolean bl2;
            String string = (String)enumeration.nextElement();
            try {
                bl2 = !HttpPassthroughRuleSet.HEADERS_NOT_TO_IMPLICITLY_FORWARD.contains(string.toLowerCase());
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw ServletUtils.a(illegalArgumentException);
            }
            boolean bl3 = bl2;
            try {
                if (!bl3) {
                    a.log(Level.FINEST, b[14] + string);
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw ServletUtils.a(illegalArgumentException);
            }
            Enumeration enumeration2 = httpServletRequest.getHeaders(string);
            try {
                while (enumeration2.hasMoreElements()) {
                    headersKnob.addHeader(string, enumeration2.nextElement(), b[13], bl3);
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw ServletUtils.a(illegalArgumentException);
            }
        }
    }

    public static void loadHeaders(@NotNull HttpServletResponse httpServletResponse, @NotNull Message message) {
        try {
            if (httpServletResponse == null) {
                ServletUtils.a(2);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServletUtils.a(illegalArgumentException);
        }
        try {
            if (message == null) {
                ServletUtils.a(3);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw ServletUtils.a(illegalArgumentException);
        }
        HeadersKnob headersKnob = message.getHeadersKnob();
        headersKnob.getHeaders(b[8]).stream().filter(header -> {
            try {
                if (!HttpPassthroughRuleSet.HEADERS_NOT_TO_IMPLICITLY_FORWARD.contains(((String)header.getKey()).toLowerCase())) {
                    a.log(Level.FINEST, b[11] + (String)header.getKey());
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw ServletUtils.a(illegalArgumentException);
            }
            return true;
        }).forEach(header -> httpServletResponse.addHeader((String)header.getKey(), header.getValue().toString()));
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[17];
                var3_1 = 0;
                var2_2 = "53\u000bpS6*\u0000a\njLs\u0004:.\u0018KK?(T1\rw_>!\u0000$\u001e%\u0019v7Sa\u0003c\u001ev7Zd\u001f%S&7\u0000a\u0002jJs&\u0011a\u0002pR?\u0007\u0019$\u001fv_4!*7$\u001eq\u001e#%\u0006 \u0001%N!!\u0007$\u0002q\u001e11\u0000a\u0018|N6d\u001a.\u0018%M&4\u0004.\u001eq[7d\r\u0007.\u0019w]6\u0016\u00110\u0019`M''\u001e \u0007dL'%Z2\twH?!\u0000o\u001e`O&!\u00075B]\u000bc}7$\u001eqW5-\u0017 \u0018`\u001f:.LfR:!\u001a5Lf[!0T(\u0002%J;%\u0000a\u001e`O&!\u00075B'\u001e \u0007dL'%Z2\twH?!\u0000o\u001e`O&!\u00075B]\u000bc}7$\u001eqW5-\u0017 \u0018`\u000b\u0018.\rav6%\u0010$\u001ev\u000b<\u00158U\u001e\u001b!\u0015%\tw9:.\u0002(f}qDxLF[!0\u001d'\u0005f_'!T'\u0003pP7d\u001d/LfR:!\u001a5Lf[!0\u001d'\u0005f_'!T\"\u0004dW=~T\"2.\u0019kZs\u001cZt\\<\u001e0!\u00065\u0005cW0%\u0000$LlPs6\u00110\u0019`M'\u001a2(\u0000q[!-\u001a&Lw[ 4\u001b/\u001f`\u001e;!\u0015%\tw\u001e$7 \u0002kQ'd\u0013$\u0018%]66\u0000a\nwQ>d\u001a.\u0002(m\u0000\bT3\ttK67\u0000\u000b<\u00158U\u001e\u001b!\u0015%\tw\u00192(\u0000q[!-\u001a&Lw[\"1\u00112\u0018%V6%\u0010$\u001e%";
                var4_3 = "53\u000bpS6*\u0000a\njLs\u0004:.\u0018KK?(T1\rw_>!\u0000$\u001e%\u0019v7Sa\u0003c\u001ev7Zd\u001f%S&7\u0000a\u0002jJs&\u0011a\u0002pR?\u0007\u0019$\u001fv_4!*7$\u001eq\u001e#%\u0006 \u0001%N!!\u0007$\u0002q\u001e11\u0000a\u0018|N6d\u001a.\u0018%M&4\u0004.\u001eq[7d\r\u0007.\u0019w]6\u0016\u00110\u0019`M''\u001e \u0007dL'%Z2\twH?!\u0000o\u001e`O&!\u00075B]\u000bc}7$\u001eqW5-\u0017 \u0018`\u001f:.LfR:!\u001a5Lf[!0T(\u0002%J;%\u0000a\u001e`O&!\u00075B'\u001e \u0007dL'%Z2\twH?!\u0000o\u001e`O&!\u00075B]\u000bc}7$\u001eqW5-\u0017 \u0018`\u000b\u0018.\rav6%\u0010$\u001ev\u000b<\u00158U\u001e\u001b!\u0015%\tw9:.\u0002(f}qDxLF[!0\u001d'\u0005f_'!T'\u0003pP7d\u001d/LfR:!\u001a5Lf[!0\u001d'\u0005f_'!T\"\u0004dW=~T\"2.\u0019kZs\u001cZt\\<\u001e0!\u00065\u0005cW0%\u0000$LlPs6\u00110\u0019`M'\u001a2(\u0000q[!-\u001a&Lw[ 4\u001b/\u001f`\u001e;!\u0015%\tw\u001e$7 \u0002kQ'd\u0013$\u0018%]66\u0000a\nwQ>d\u001a.\u0002(m\u0000\bT3\ttK67\u0000\u000b<\u00158U\u001e\u001b!\u0015%\tw\u00192(\u0000q[!-\u001a&Lw[\"1\u00112\u0018%V6%\u0010$\u001e%".length();
                var1_4 = 62;
                var0_5 = -1;
lbl7:
                // 2 sources

                while (true) {
                    v0 = 123;
                    v1 = ++var0_5;
                    v2 = var2_2.substring(v1, v1 + var1_4);
                    v3 = -1;
                    break block9;
                    break;
                }
lbl13:
                // 1 sources

                while (true) {
                    var5[var3_1++] = ServletUtils.a(v0, ServletUtils.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "\u0006&\u0018d]!\u0010\u00174\u001alV&'#\u0011(\u0007,Tb6\u0017$\u0002,K00\u0004\"\u0018,M!+\u001eh9fJ#.\u00173?wQ91";
                    var4_3 = "\u0006&\u0018d]!\u0010\u00174\u001alV&'#\u0011(\u0007,Tb6\u0017$\u0002,K00\u0004\"\u0018,M!+\u001eh9fJ#.\u00173?wQ91".length();
                    var1_4 = 14;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 125;
                        v4 = ++var0_5;
                        v2 = var2_2.substring(v4, v4 + var1_4);
                        v3 = 0;
                        break block9;
                        break;
                    }
                    break;
                }
lbl28:
                // 1 sources

                while (true) {
                    var5[var3_1++] = ServletUtils.a(v0, ServletUtils.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    break block10;
                    break;
                }
            }
            switch (v3) {
                default: {
                    ** continue;
                }
                ** case 0:
lbl39:
                // 1 sources

                ** continue;
            }
        }
        ServletUtils.b = var5;
        ServletUtils.PARAM_HTTP_X509CERT = ServletUtils.b[4];
        ServletUtils.a = Logger.getLogger(ServletUtils.class.getName());
    }

    /*
     * Exception decompiling
     */
    private static /* synthetic */ void a(int var0) {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Tried to end blocks [0[TRYBLOCK]], but top level block is 1[SWITCH]
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.processEndingBlocks(Op04StructuredStatement.java:435)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:484)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:736)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:850)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1050)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

    private static IllegalArgumentException a(IllegalArgumentException illegalArgumentException) {
        return illegalArgumentException;
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x3F);
        }
        return cArray;
    }

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String a(int n2, char[] cArray) {
        char[] cArray2;
        block11: {
            int n3;
            int n4;
            int n5;
            block10: {
                n5 = n2;
                cArray2 = cArray;
                n4 = cArray.length;
                n3 = 0;
                if (!true) break block10;
                n4 = n4;
                if (n4 <= n3) break block11;
            }
            do {
                n5 = n5;
                cArray2 = cArray2;
                int n6 = n3;
                cArray2[n6] = (char)(cArray2[n6] ^ (n5 ^ (switch (n3 % 7) {
                    case 0 -> 15;
                    case 1 -> 58;
                    case 2 -> 23;
                    case 3 -> 126;
                    case 4 -> 69;
                    case 5 -> 40;
                    default -> 63;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

