/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.security.keystore.SsgKeyEntry
 *  com.l7tech.objectmodel.EntityHeader
 *  com.l7tech.objectmodel.ExternalEntityHeader
 *  com.l7tech.objectmodel.ExternalEntityHeader$ValueType
 *  com.l7tech.objectmodel.SsgKeyHeader
 *  com.l7tech.objectmodel.migration.MigrationDependency
 *  com.l7tech.objectmodel.migration.MigrationMappingSelection
 *  com.l7tech.objectmodel.migration.MigrationUtils
 *  com.l7tech.objectmodel.migration.PropertyResolver$Type
 *  com.l7tech.objectmodel.migration.PropertyResolverException
 *  com.l7tech.policy.assertion.PrivateKeyable
 */
package com.l7tech.server.migration;

import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.ExternalEntityHeader;
import com.l7tech.objectmodel.SsgKeyHeader;
import com.l7tech.objectmodel.migration.MigrationDependency;
import com.l7tech.objectmodel.migration.MigrationMappingSelection;
import com.l7tech.objectmodel.migration.MigrationUtils;
import com.l7tech.objectmodel.migration.PropertyResolver;
import com.l7tech.objectmodel.migration.PropertyResolverException;
import com.l7tech.policy.assertion.PrivateKeyable;
import com.l7tech.server.EntityHeaderUtils;
import com.l7tech.server.migration.AbstractPropertyResolver;
import com.l7tech.server.migration.PropertyResolverFactory;
import com.l7tech.server.security.keystore.SsgKeyStoreManager;
import java.lang.reflect.Method;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;

public class SsgKeyResolver
extends AbstractPropertyResolver {
    private static final Logger c;
    SsgKeyStoreManager d;
    private static final String[] e;

    public SsgKeyResolver(PropertyResolverFactory propertyResolverFactory, PropertyResolver.Type type, SsgKeyStoreManager ssgKeyStoreManager) {
        super(propertyResolverFactory, type);
        this.d = ssgKeyStoreManager;
    }

    public Map<ExternalEntityHeader, Set<MigrationDependency>> getDependencies(ExternalEntityHeader externalEntityHeader, Object object, Method method, String string) throws PropertyResolverException {
        try {
            c.log(Level.FINEST, e[4], new Object[]{string, externalEntityHeader});
            if (!(object instanceof PrivateKeyable)) {
                throw new IllegalArgumentException(e[2] + String.valueOf(object));
            }
        }
        catch (Exception exception) {
            throw SsgKeyResolver.a(exception);
        }
        HashMap<ExternalEntityHeader, Set<MigrationDependency>> hashMap = new HashMap<ExternalEntityHeader, Set<MigrationDependency>>();
        MigrationMappingSelection migrationMappingSelection = MigrationUtils.getMappingType((Method)method);
        MigrationMappingSelection migrationMappingSelection2 = MigrationUtils.getValueMappingType((Method)method);
        ExternalEntityHeader.ValueType valueType = MigrationUtils.getValueType((Method)method);
        boolean bl2 = MigrationUtils.isExported((Method)method);
        PrivateKeyable privateKeyable = (PrivateKeyable)object;
        if (!privateKeyable.isUsesDefaultKeyStore()) {
            SsgKeyEntry ssgKeyEntry = null;
            try {
                ssgKeyEntry = this.d.lookupKeyByKeyAlias(privateKeyable.getKeyAlias(), privateKeyable.getNonDefaultKeystoreId());
                ExternalEntityHeader externalEntityHeader2 = EntityHeaderUtils.toExternal((EntityHeader)new SsgKeyHeader(ssgKeyEntry.getId(), ssgKeyEntry.getKeystoreId(), ssgKeyEntry.getAlias(), ssgKeyEntry.getName()));
                externalEntityHeader2.setValueMapping(migrationMappingSelection2, valueType, SsgKeyResolver.getPropertyValue(object, method));
                hashMap.put(externalEntityHeader2, Collections.singleton(new MigrationDependency(externalEntityHeader, externalEntityHeader2, string, this.getType(), migrationMappingSelection, bl2)));
            }
            catch (Exception exception) {
                String string2;
                PropertyResolverException propertyResolverException;
                PropertyResolverException propertyResolverException2;
                try {
                    PropertyResolverException propertyResolverException3;
                    propertyResolverException2 = propertyResolverException3;
                    propertyResolverException = propertyResolverException3;
                    string2 = ssgKeyEntry == null ? null : ssgKeyEntry.getId();
                }
                catch (Exception exception2) {
                    throw SsgKeyResolver.a(exception2);
                }
                propertyResolverException2(e[1] + string2);
                throw propertyResolverException;
            }
        }
        return hashMap;
    }

    public void applyMapping(Object object, String string, ExternalEntityHeader externalEntityHeader, Object object2, ExternalEntityHeader externalEntityHeader2) throws PropertyResolverException {
        block5: {
            try {
                try {
                    c.log(Level.FINEST, e[5], new Object[]{object, string});
                    if (!(object instanceof PrivateKeyable) || !(object2 instanceof SsgKeyEntry)) {
                    }
                    break block5;
                }
                catch (PropertyResolverException propertyResolverException) {
                    throw SsgKeyResolver.a((Exception)((Object)propertyResolverException));
                }
                throw new PropertyResolverException(e[3] + String.valueOf(object) + e[0] + String.valueOf(object2));
            }
            catch (PropertyResolverException propertyResolverException) {
                throw SsgKeyResolver.a((Exception)((Object)propertyResolverException));
            }
        }
        PrivateKeyable privateKeyable = (PrivateKeyable)object;
        SsgKeyEntry ssgKeyEntry = (SsgKeyEntry)object2;
        privateKeyable.setNonDefaultKeystoreId(ssgKeyEntry.getKeystoreId());
        privateKeyable.setKeyAlias(ssgKeyEntry.getAlias());
        privateKeyable.setUsesDefaultKeyStore(false);
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[6];
                var3_1 = 0;
                var2_2 = "3Ny\u001eV\u0006+$tkZv\u0000+\"c=A}\u0013y\fg?Md\u0015 km.Q)T\u0016P\u00157%i?\b{\u00157/j.\bv\u001a-\"r2\u00123#P\u00157%i?\br\u0004)'\u007fkLv\u0004<%b.Fp\ry=g']vT?$tq\b";
                var4_3 = "3Ny\u001eV\u0006+$tkZv\u0000+\"c=A}\u0013y\fg?Md\u0015 km.Q)T\u0016P\u00157%i?\b{\u00157/j.\bv\u001a-\"r2\u00123#P\u00157%i?\br\u0004)'\u007fkLv\u0004<%b.Fp\ry=g']vT?$tq\b".length();
                var1_4 = 3;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = SsgKeyResolver.b(v0, SsgKeyResolver.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "\u0007B~l<v\u001c`Coh0v\u001f%Iiq0k[&Hx8%j\u00140Bxl,8\u0000pZ*w38\u001e.Scl,8\f)Sb8=}\u001a$Bx8.)\u0006n\u001f\u0001Wzt,q\u0015'\u0007gy%h\u0012.@*~:j[;\u0017w8o8\u0000qZ$";
                    var4_3 = "\u0007B~l<v\u001c`Coh0v\u001f%Iiq0k[&Hx8%j\u00140Bxl,8\u0000pZ*w38\u001e.Scl,8\f)Sb8=}\u001a$Bx8.)\u0006n\u001f\u0001Wzt,q\u0015'\u0007gy%h\u0012.@*~:j[;\u0017w8o8\u0000qZ$".length();
                    var1_4 = 64;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 118;
                        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++] = SsgKeyResolver.b(v0, SsgKeyResolver.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;
            }
        }
        SsgKeyResolver.e = var5;
        SsgKeyResolver.c = Logger.getLogger(SsgKeyResolver.class.getName());
    }

    private static Exception a(Exception exception) {
        return exception;
    }

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

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String b(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 -> 54;
                    case 1 -> 81;
                    case 2 -> 124;
                    case 3 -> 110;
                    case 4 -> 35;
                    case 5 -> 110;
                    default -> 13;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

