/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.CertUtils
 *  com.l7tech.util.Pair
 */
package com.l7tech.server.identity.ldap;

import com.l7tech.common.io.CertUtils;
import com.l7tech.server.identity.ldap.LdapCertificateCache;
import com.l7tech.util.Pair;
import java.math.BigInteger;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.Collections;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import javax.security.auth.x500.X500Principal;

class c {
    private final Map<Pair<String, String>, LdapCertificateCache.CertCacheKey> a;
    private final Map<String, LdapCertificateCache.CertCacheKey> b;
    private final Map<String, LdapCertificateCache.CertCacheKey> c;
    private final Map<String, LdapCertificateCache.CertCacheKey> d;
    private final boolean e;
    private static final String[] f;

    protected c() {
        this.a = new ConcurrentHashMap<Pair<String, String>, LdapCertificateCache.CertCacheKey>();
        this.b = new ConcurrentHashMap<String, LdapCertificateCache.CertCacheKey>();
        this.c = new ConcurrentHashMap<String, LdapCertificateCache.CertCacheKey>();
        this.d = new ConcurrentHashMap<String, LdapCertificateCache.CertCacheKey>();
        this.e = false;
    }

    protected c(Map<Pair<String, String>, LdapCertificateCache.CertCacheKey> map, Map<String, LdapCertificateCache.CertCacheKey> map2, Map<String, LdapCertificateCache.CertCacheKey> map3, Map<String, LdapCertificateCache.CertCacheKey> map4, boolean bl2) {
        this.a = map;
        this.b = map2;
        this.c = map3;
        this.d = map4;
        this.e = bl2;
    }

    protected LdapCertificateCache.CertCacheKey getCertCacheKeyByIssuerAndSerial(X500Principal x500Principal, BigInteger bigInteger) {
        Pair<String, String> pair = this.a(x500Principal, bigInteger);
        return this.a.get(pair);
    }

    protected LdapCertificateCache.CertCacheKey getCertCacheKeyBySki(String string) {
        return this.b.get(string);
    }

    protected LdapCertificateCache.CertCacheKey getCertCacheKeyByThumbprintSHA1(String string) {
        return this.c.get(string);
    }

    protected LdapCertificateCache.CertCacheKey getCertCacheKeyByCanonicalSubjectDn(String string) {
        return this.d.get(string);
    }

    protected LdapCertificateCache.CertCacheKey addCertificateToIndexes(String string, X509Certificate x509Certificate) throws CertificateException {
        LdapCertificateCache.CertCacheKey certCacheKey = null;
        if (!this.e) {
            String[] stringArray;
            Object object;
            Object object2;
            String string2;
            block6: {
                string2 = CertUtils.getThumbprintSHA1((X509Certificate)x509Certificate);
                certCacheKey = new LdapCertificateCache.CertCacheKey(string, string2);
                try {
                    if (x509Certificate.getSerialNumber() == null || x509Certificate.getIssuerX500Principal() == null) break block6;
                }
                catch (CertificateException certificateException) {
                    throw com.l7tech.server.identity.ldap.c.a(certificateException);
                }
                object2 = x509Certificate.getIssuerX500Principal();
                object = x509Certificate.getSerialNumber();
                Pair<String, String> pair = this.a((X500Principal)object2, (BigInteger)object);
                stringArray = f;
                LdapCertificateCache.a.finer(stringArray[0] + String.valueOf(pair) + stringArray[3] + string);
                this.a.put(pair, certCacheKey);
            }
            object2 = CertUtils.getSki((X509Certificate)x509Certificate);
            try {
                if (object2 != null) {
                    LdapCertificateCache.a.finer(f[8] + (String)object2 + f[6] + string);
                    this.b.put((String)object2, certCacheKey);
                }
            }
            catch (CertificateException certificateException) {
                throw com.l7tech.server.identity.ldap.c.a(certificateException);
            }
            stringArray = f;
            LdapCertificateCache.a.finer(stringArray[5] + string2 + stringArray[6] + string);
            this.c.put(string2, certCacheKey);
            object = CertUtils.getSubjectDN((X509Certificate)x509Certificate);
            LdapCertificateCache.a.finer(stringArray[9] + (String)object + stringArray[6] + string);
            this.d.put((String)object, certCacheKey);
        }
        return certCacheKey;
    }

    protected void removeIndex(X500Principal x500Principal, BigInteger bigInteger, String string) {
        if (!this.e) {
            if (x500Principal != null && bigInteger != null) {
                this.a.remove(this.a(x500Principal, bigInteger));
            }
            if (string != null) {
                this.b.remove(string);
            }
        }
    }

    protected c immutable() {
        return this.e ? this : new c(Collections.unmodifiableMap(this.a), Collections.unmodifiableMap(this.b), Collections.unmodifiableMap(this.c), Collections.unmodifiableMap(this.d), true);
    }

    protected String describe() {
        StringBuilder stringBuilder = new StringBuilder();
        String[] stringArray = f;
        stringBuilder.append(stringArray[2]);
        stringBuilder.append(this.a.size());
        stringBuilder.append(stringArray[7]);
        stringBuilder.append(this.b.size());
        stringBuilder.append(stringArray[1]);
        stringBuilder.append(this.c.size());
        return stringBuilder.toString();
    }

    private Pair<String, String> a(X500Principal x500Principal, BigInteger bigInteger) {
        return new Pair((Object)x500Principal.getName(f[4]), (Object)bigInteger.toString());
    }

    private static CertificateException a(CertificateException certificateException) {
        return certificateException;
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[10];
                var3_1 = 0;
                var2_2 = "\u0005eyl&\\\u000e++~l,A\t*b~h*P@.r=`-F\u0015)y2z;G\t-g=\u001d`+Ia+X\u0002<ytg*f(\r:=`0Q\u00054+n`$PZl\u001a\u0005xn|;GO\u001fno`?Y@%eyl&\u0015\u0013%qx3~\u0005lmr{~\u0007\u001eM^;l\u0000S'\u0005eyl&\\\u000e++~l,A\t*b~h*P@.r=}6@\r.{o`0A3\u0004J,)\u0005lmr{~\u0012`+NB\u0017\u0015\t\"oxq~F\t6n')";
                var4_3 = "\u0005eyl&\\\u000e++~l,A\t*b~h*P@.r=`-F\u0015)y2z;G\t-g=\u001d`+Ia+X\u0002<ytg*f(\r:=`0Q\u00054+n`$PZl\u001a\u0005xn|;GO\u001fno`?Y@%eyl&\u0015\u0013%qx3~\u0005lmr{~\u0007\u001eM^;l\u0000S'\u0005eyl&\\\u000e++~l,A\t*b~h*P@.r=}6@\r.{o`0A3\u0004J,)\u0005lmr{~\u0012`+NB\u0017\u0015\t\"oxq~F\t6n')".length();
                var1_4 = 38;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = com.l7tech.server.identity.ldap.c.a(v0, com.l7tech.server.identity.ldap.c.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "3SOZ\u0010j8\u001d\u001dHZ\u001aw?\u001cTH^\u001cfv\u0018D\u000bL\u0003jv+3SOZ\u0010j8\u001d\u001dHZ\u001aw?\u001cTH^\u001cfv\u0018D\u000b\\\tm9\u0014TH^\u0004P#\u0018WN\\\u001cG8Z";
                    var4_3 = "3SOZ\u0010j8\u001d\u001dHZ\u001aw?\u001cTH^\u001cfv\u0018D\u000bL\u0003jv+3SOZ\u0010j8\u001d\u001dHZ\u001aw?\u001cTH^\u001cfv\u0018D\u000b\\\tm9\u0014TH^\u0004P#\u0018WN\\\u001cG8Z".length();
                    var1_4 = 28;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 102;
                        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++] = com.l7tech.server.identity.ldap.c.a(v0, com.l7tech.server.identity.ldap.c.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;
            }
        }
        com.l7tech.server.identity.ldap.c.f = var5;
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x30);
        }
        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 -> 28;
                    case 1 -> 91;
                    case 2 -> 77;
                    case 3 -> 89;
                    case 4 -> 14;
                    case 5 -> 101;
                    default -> 48;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

