/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.SingleCertX509KeyManager
 *  com.l7tech.gateway.common.security.keystore.SsgKeyEntry
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  org.jetbrains.annotations.Nullable
 */
package com.l7tech.server.security;

import com.l7tech.common.io.SingleCertX509KeyManager;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.server.DefaultKey;
import com.l7tech.server.security.keystore.SsgKeyStoreManager;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.UnrecoverableKeyException;
import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import org.jetbrains.annotations.Nullable;

public class SSLContextFactory {
    private final DefaultKey a;
    private final SsgKeyStoreManager b;
    private final TrustManager c;
    private final SecureRandom d;
    private static final String e = SSLContextFactory.a(101, SSLContextFactory.a("MEu"));

    public SSLContextFactory(DefaultKey defaultKey, SsgKeyStoreManager ssgKeyStoreManager, TrustManager trustManager, SecureRandom secureRandom) {
        this.a = defaultKey;
        this.b = ssgKeyStoreManager;
        this.c = trustManager;
        this.d = secureRandom;
    }

    public SSLContext create(boolean bl2, @Nullable String string, @Nullable String string2) throws IOException, KeyStoreException, FindException, NoSuchAlgorithmException, KeyManagementException, UnrecoverableKeyException {
        KeyManager[] keyManagerArray;
        SsgKeyEntry ssgKeyEntry;
        if (!bl2) {
            ssgKeyEntry = null;
        } else if (string == null) {
            ssgKeyEntry = this.a.getClientSslInfo();
        } else {
            keyManagerArray = Goid.DEFAULT_GOID;
            if (string2 != null) {
                try {
                    keyManagerArray = new Goid(string2);
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    // empty catch block
                }
            }
            ssgKeyEntry = this.b.lookupKeyByKeyAlias(string, (Goid)keyManagerArray);
        }
        keyManagerArray = ssgKeyEntry != null ? new KeyManager[]{new SingleCertX509KeyManager(ssgKeyEntry.getCertificateChain(), ssgKeyEntry.getPrivate())} : new KeyManager[]{};
        SSLContext sSLContext = SSLContext.getInstance(e);
        sSLContext.init(keyManagerArray, new TrustManager[]{this.c}, this.d);
        return sSLContext;
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x23);
        }
        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 -> 124;
                    case 1 -> 108;
                    case 2 -> 67;
                    case 3 -> 92;
                    case 4 -> 96;
                    case 5 -> 31;
                    default -> 35;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

