package com.l7tech.security.prov.bcfips;

import com.l7tech.security.prov.JceProvider;
import com.l7tech.security.prov.ProviderUtil;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.Pair;
import java.security.Provider;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;

public class BouncyCastleFipsJceProviderEngine extends JceProvider {
   private static final String f;
   private static final boolean g;
   public static final Collection<Pair<String, String>> SERVICE_BLACKLIST;
   private final Provider h = getProvider();
   private static final String[] i;

   public BouncyCastleFipsJceProviderEngine() {
      ProviderUtil.configureBcFipsProvider(this.h);
      if (g) {
         ProviderUtil.removeService(SERVICE_BLACKLIST, this.h);
      }

      String[] var1 = i;
      System.setProperty(var1[0], var1[6]);
   }

   @Override
   public boolean isFips140ModeEnabled() {
      return true;
   }

   @Override
   public String getDisplayName() {
      return this.h.getName();
   }

   public static Provider getProvider() {
      return ProviderUtil.loadBCFipsProxy().getBCProvider();
   }

   @Override
   public Provider getProviderFor(String var1) {
      String[] var2 = i;
      return !var2[4].equalsIgnoreCase(var1) && !var2[10].equalsIgnoreCase(var1) ? super.getProviderFor(var1) : this.h;
   }

   static {
      String[] var5 = new String[12];
      int var3 = 0;
      String var2 = ">\u0002e%a\u0016Ez\bofp\u001eq&\t{{f/7\tc%yMB1\u0005f%f\u001fU!\u0014g\u007flTF&\tx%w\u0019P=\u0016}%q\u0013E5\u0004bnF\u001fD\"\u000fmnf\n\u0017\tbgp\u0019B=\t`\u0011\u0017\u0003|\u007fE\u001bB<0og|\u001eW \t|\u001c\u0017\u000f~cp\b\u0018\u00065O$[5x\u0011I^@V)\u0007\u0004\u0007jo|\u0014Q\u000f\u0017\u0003|\u007fE\u001bB<${by\u001eS&V'\u0003m{'O\u0000&W\"+f\u001fU$U6?gK\u001at\u0015kheO\u0004e\u0014?'5\u001cP0\u000ek9%N\u000exFhmq\u0012SgV999ZP2\u0002fn!J\u000fbJ.ms\u001e^1P??!V\u00162\u0000jcpB\u0007mT/7\tc%yMB1\u0005f%f\u001fU!\u0014g\u007flTF&\tx%w\u0019P=\u0016}%q\u0013E5\u0004bnF\u001fD\"\u000fmnf\t\u0017\u0003|\u007fF\u000eY&\u0003\u0004\u0004-GS";
      int var4 = ">\u0002e%a\u0016Ez\bofp\u001eq&\t{{f/7\tc%yMB1\u0005f%f\u001fU!\u0014g\u007flTF&\tx%w\u0019P=\u0016}%q\u0013E5\u0004bnF\u001fD\"\u000fmnf\n\u0017\tbgp\u0019B=\t`\u0011\u0017\u0003|\u007fE\u001bB<0og|\u001eW \t|\u001c\u0017\u000f~cp\b\u0018\u00065O$[5x\u0011I^@V)\u0007\u0004\u0007jo|\u0014Q\u000f\u0017\u0003|\u007fE\u001bB<${by\u001eS&V'\u0003m{'O\u0000&W\"+f\u001fU$U6?gK\u001at\u0015kheO\u0004e\u0014?'5\u001cP0\u000ek9%N\u000exFhmq\u0012SgV999ZP2\u0002fn!J\u000fbJ.ms\u001e^1P??!V\u00162\u0000jcpB\u0007mT/7\tc%yMB1\u0005f%f\u001fU!\u0014g\u007flTF&\tx%w\u0019P=\u0016}%q\u0013E5\u0004bnF\u001fD\"\u000fmnf\t\u0017\u0003|\u007fF\u000eY&\u0003\u0004\u0004-GS"
         .length();
      char var1 = 19;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 51;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var9 = b(var10000, c(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     i = var5;
                     f = i[1];
                     String[] var8 = i;
                     g = ConfigFactory.getBooleanProperty(var8[7], true);
                     SERVICE_BLACKLIST = Collections.unmodifiableCollection(
                        Arrays.asList(new Pair(var8[5], var8[11]), new Pair(var8[3], var8[9]), new Pair(var8[8], var8[2]))
                     );
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var9;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = "\u0005\u001dlqb\u001a\n\u0014']6I'j\u0003[SXB8t'\u0010xpi\u000f\u0004\u0016?UA";
                  var4 = "\u0005\u001dlqb\u001a\n\u0014']6I'j\u0003[SXB8t'\u0010xpi\u000f\u0004\u0016?UA".length();
                  var1 = 27;
                  var7 = -1;
            }

            var10000 = 33;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

   private static char[] c(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 5);
      }

      return var10000;
   }

   private static String b(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 103;
            case 1 -> 85;
            case 2 -> 61;
            case 3 -> 56;
            case 4 -> 38;
            case 5 -> 73;
            default -> 5;
         });
      }

      return new String(var10001).intern();
   }
}
