package com.l7tech.security.cert;

import com.l7tech.common.io.CertUtils;
import com.l7tech.common.io.XmlUtil;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;

public class KeyUsagePermitRule {
   private final KeyUsageActivity a;
   private final int b;
   private final List<String> c;
   private final boolean d;
   private final boolean e;
   private static final String[] f;

   public KeyUsagePermitRule(KeyUsageActivity var1, int var2) {
      this(var1, var2, Collections.emptyList());
   }

   public KeyUsagePermitRule(KeyUsageActivity var1, List<String> var2) {
      this(var1, 0, var2);
   }

   KeyUsagePermitRule(KeyUsageActivity param1, int param2, List<String> param3) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: invokespecial java/lang/Object.<init> ()V
      // 04: aload 3
      // 05: ifnonnull 0c
      // 08: invokestatic java/util/Collections.emptyList ()Ljava/util/List;
      // 0b: astore 3
      // 0c: aload 0
      // 0d: aload 1
      // 0e: putfield com/l7tech/security/cert/KeyUsagePermitRule.a Lcom/l7tech/security/cert/KeyUsageActivity;
      // 11: aload 0
      // 12: iload 2
      // 13: putfield com/l7tech/security/cert/KeyUsagePermitRule.b I
      // 16: aload 0
      // 17: aload 3
      // 18: invokestatic java/util/Collections.unmodifiableList (Ljava/util/List;)Ljava/util/List;
      // 1b: putfield com/l7tech/security/cert/KeyUsagePermitRule.c Ljava/util/List;
      // 1e: aload 0
      // 1f: aload 3
      // 20: invokeinterface java/util/List.isEmpty ()Z 1
      // 25: putfield com/l7tech/security/cert/KeyUsagePermitRule.d Z
      // 28: aload 0
      // 29: iload 2
      // 2a: ifne 43
      // 2d: aload 0
      // 2e: getfield com/l7tech/security/cert/KeyUsagePermitRule.d Z
      // 31: ifeq 43
      // 34: goto 3b
      // 37: invokestatic com/l7tech/security/cert/KeyUsagePermitRule.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 3a: athrow
      // 3b: bipush 1
      // 3c: goto 44
      // 3f: invokestatic com/l7tech/security/cert/KeyUsagePermitRule.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 42: athrow
      // 43: bipush 0
      // 44: putfield com/l7tech/security/cert/KeyUsagePermitRule.e Z
      // 47: return
      // try (6 -> 26): 27 java/lang/IllegalArgumentException
      // try (23 -> 31): 31 java/lang/IllegalArgumentException
   }

   static KeyUsagePermitRule a(Element var0) throws SAXException {
      String[] var11 = f;
      String var1 = var0.getAttribute(var11[2]);
      KeyUsageActivity var2 = null;

      try {
         label45: {
            try {
               if (var1 == null || var1.length() <= 0) {
                  break label45;
               }
            } catch (IllegalArgumentException var13) {
               throw a(var13);
            }

            var2 = KeyUsageActivity.valueOf(var1);
         }

         int var3 = 0;
         ArrayList var4 = new ArrayList();
         var11 = f;

         for (Element var7 : XmlUtil.findChildElementsByName(var0, var11[3], var11[1])) {
            String var8 = XmlUtil.getTextValue(var7);
            Integer var9 = (Integer)CertUtils.KEY_USAGE_BITS_BY_NAME.get(var8);
            if (var9 != null) {
               var3 |= var9;
            } else {
               String var10 = (String)CertUtils.KEY_PURPOSE_IDS_BY_NAME.get(var8);

               try {
                  if (var10 != null) {
                     var4.add(var10);
                     continue;
                  }
               } catch (IllegalArgumentException var12) {
                  throw a(var12);
               }

               var4.add(var8);
            }
         }

         return new KeyUsagePermitRule(var2, var3, var4);
      } catch (IllegalArgumentException var14) {
         throw new SAXException(f[0] + var1, var14);
      }
   }

   public boolean isBlanket() {
      return this.e;
   }

   public boolean isKeyUsage() {
      try {
         if (this.b != 0) {
            return true;
         }
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }

      return false;
   }

   public boolean isAllowAnyKeyPurpose() {
      return this.d;
   }

   public KeyUsageActivity getActivity() {
      return this.a;
   }

   public boolean isKeyUsagePermitted(int var1) {
      try {
         if ((this.b & var1) == this.b) {
            return true;
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      return false;
   }

   public boolean isAllExtendedKeyUsagesPermitted(Collection<String> var1) {
      for (String var3 : this.c) {
         try {
            if (!var1.contains(var3)) {
               return false;
            }
         } catch (IllegalArgumentException var4) {
            throw a(var4);
         }
      }

      return true;
   }

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

   static {
      String[] var5 = new String[4];
      int var3 = 0;
      String var2 = "]\u001c0\u000bX\u0013\u0011f\u001b8\u000b_\\\u0017k\u0006+\u0018R\b\u000f(\u001c#\u0003^\\\u001ffR#\rO\u0015\u0019fR#\u001aO\u000e\u001fj\u00076\u000b\u0001\\\u0003z\u00173";
      int var4 = "]\u001c0\u000bX\u0013\u0011f\u001b8\u000b_\\\u0017k\u0006+\u0018R\b\u000f(\u001c#\u0003^\\\u001ffR#\rO\u0015\u0019fR#\u001aO\u000e\u001fj\u00076\u000b\u0001\\\u0003z\u00173"
         .length();
      char var1 = '0';
      int var7 = -1;

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

         while (true) {
            String var8 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     f = var5;
                     return;
                  }

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

                  var2 = "\u001cdCr!g%\u0015sCkt&,\np@5\"hz\u0018u\u0000o+jkSdXva~pRlRb;zb\u001ab";
                  var4 = "\u001cdCr!g%\u0015sCkt&,\np@5\"hz\u0018u\u0000o+jkSdXva~pRlRb;zb\u001ab".length();
                  var1 = 6;
                  var7 = -1;
            }

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

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

      return var10000;
   }

   private static String a(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 -> 119;
            case 1 -> 13;
            case 2 -> 61;
            case 3 -> 17;
            case 4 -> 68;
            case 5 -> 3;
            default -> 9;
         });
      }

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