package com.l7tech.security.prov.bc;

import com.l7tech.security.prov.JceProvider;
import com.l7tech.security.prov.ProviderUtil;
import java.security.InvalidAlgorithmParameterException;
import java.security.NoSuchAlgorithmException;
import java.security.Provider;
import java.security.Security;
import java.security.spec.AlgorithmParameterSpec;
import java.util.Arrays;
import javax.crypto.spec.IvParameterSpec;
import org.jetbrains.annotations.NotNull;

public class BouncyCastleJceProviderEngine extends JceProvider {
   private final Provider f = getProvider();
   private static final byte[] g;
   private static final String[] h;

   public BouncyCastleJceProviderEngine() {
      Security.addProvider(this.f);
   }

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

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

   @Override
   public AlgorithmParameterSpec generateAesGcmParameterSpec(int var1, @NotNull byte[] var2) throws InvalidAlgorithmParameterException, NoSuchAlgorithmException {
      try {
         if (var2 == null) {
            b(0);
         }
      } catch (InvalidAlgorithmParameterException var7) {
         throw a(var7);
      }

      try {
         if (var1 != 16) {
            throw new InvalidAlgorithmParameterException(h[2]);
         }
      } catch (InvalidAlgorithmParameterException var10) {
         throw a(var10);
      }

      try {
         if (var2.length != 12) {
            throw new InvalidAlgorithmParameterException(h[3]);
         }
      } catch (InvalidAlgorithmParameterException var6) {
         throw a(var6);
      }

      try {
         if (Arrays.equals(g, var2)) {
            throw new InvalidAlgorithmParameterException(h[1]);
         }
      } catch (InvalidAlgorithmParameterException var9) {
         throw a(var9);
      }

      IvParameterSpec var3 = new IvParameterSpec(var2);
      byte[] var4 = var3.getIV();

      try {
         if (var4.length != 12) {
            throw new InvalidAlgorithmParameterException(h[7] + var4.length);
         }
      } catch (InvalidAlgorithmParameterException var8) {
         throw a(var8);
      }

      try {
         if (!Arrays.equals(var2, var4)) {
            throw new InvalidAlgorithmParameterException(h[8]);
         } else {
            return var3;
         }
      } catch (InvalidAlgorithmParameterException var5) {
         throw a(var5);
      }
   }

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

   static {
      String[] var5 = new String[9];
      int var3 = 0;
      String var2 = "_n\u001eq[d\n 9._k\tO\u0007\u001bgD}ESI\u0015kDw\tE\n\u001bkBkDq[d\n\b\u001az^8]K\u000eObSvN^\u0001OcCk]\n\u000b\n.\u0007.\tH\u0010\u001bkE8^B\f\u0001.Ck@D\u000eOz^qZ\n\n\u001dwFlF\n\u0019\u001da@qMO\u001b$q[d\n 9.[mZ^I\rk\u0016}QK\n\u001bbO8\u0018\u0018I\rwB}Z\n\u0005\u0000`Q9UwD\u0005\u0005XzS{A\u0005\u001a\nmCj@^\u0010@~Dw_\u0005\u000b\f!tw\\D\n\u0016MWk]F\f%mSH[E\u001f\u0006jSjlD\u000e\u0006`S\u001bQ}GO\u001b\u000ezSYLY.\fcfy[K\u0004\nzSjzZ\f\f>wjN_\u0004\n`B8OE\u001bONxw]d\u001c\u0003b\u0016hHX\b\u0002kB}[\nNJ}\u00118FLIJ}\u0018=Z\n\u0004\u001a}B8GE\u001dOlS8G_\u0005\u0003";
      int var4 = "_n\u001eq[d\n 9._k\tO\u0007\u001bgD}ESI\u0015kDw\tE\n\u001bkBkDq[d\n\b\u001az^8]K\u000eObSvN^\u0001OcCk]\n\u000b\n.\u0007.\tH\u0010\u001bkE8^B\f\u0001.Ck@D\u000eOz^qZ\n\n\u001dwFlF\n\u0019\u001da@qMO\u001b$q[d\n 9.[mZ^I\rk\u0016}QK\n\u001bbO8\u0018\u0018I\rwB}Z\n\u0005\u0000`Q9UwD\u0005\u0005XzS{A\u0005\u001a\nmCj@^\u0010@~Dw_\u0005\u000b\f!tw\\D\n\u0016MWk]F\f%mSH[E\u001f\u0006jSjlD\u000e\u0006`S\u001bQ}GO\u001b\u000ezSYLY.\fcfy[K\u0004\nzSjzZ\f\f>wjN_\u0004\n`B8OE\u001bONxw]d\u001c\u0003b\u0016hHX\b\u0002kB}[\nNJ}\u00118FLIJ}\u0018=Z\n\u0004\u001a}B8GE\u001dOlS8G_\u0005\u0003"
         .length();
      char var1 = 2;
      int var7 = -1;

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

         while (true) {
            String var8 = b(var10000, c(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     h = var5;
                     g = new byte[12];
                     return;
                  }

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

                  var2 = "=\fK\u0001E\r\u000b7\u0017K\u001b[H/T3\u0018H_E)T-\u0019\u0007EJl\u0018?\u0005\u000f_EvT?\u0013\u0018NN8\u0011>KY\u0019\r.\r.\u000e\u001b\u0007\r*\u001b/\u0005\f\u000b*=\fK\u0001E\r\u000b7\u0017K\u001b[H/T>\u0004\rX\r\"\u001b.K\u0005JY/\u001cz\u0019\rZX)\u0007.\u000e\f\u000bd\u001a";
                  var4 = "=\fK\u0001E\r\u000b7\u0017K\u001b[H/T3\u0018H_E)T-\u0019\u0007EJl\u0018?\u0005\u000f_EvT?\u0013\u0018NN8\u0011>KY\u0019\r.\r.\u000e\u001b\u0007\r*\u001b/\u0005\f\u000b*=\fK\u0001E\r\u000b7\u0017K\u001b[H/T>\u0004\rX\r\"\u001b.K\u0005JY/\u001cz\u0019\rZX)\u0007.\u000e\f\u000bd\u001a"
                     .length();
                  var1 = '=';
                  var7 = -1;
            }

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

   private static InvalidAlgorithmParameterException a(InvalidAlgorithmParameterException var0) {
      return var0;
   }

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

      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 -> 62;
            case 1 -> 16;
            case 2 -> 33;
            case 3 -> 34;
            case 4 -> 97;
            case 5 -> 103;
            default -> 6;
         });
      }

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