package com.l7tech.policy.assertion;

import com.l7tech.policy.validator.InjectionThreatProtectionAssertionValidator;

public class CodeInjectionProtectionAssertion extends InjectionThreatProtectionAssertion {
   private static final String baseName;
   private boolean includeRequestBody = false;
   private boolean includeResponseBody = false;
   private CodeInjectionProtectionType[] protections = new CodeInjectionProtectionType[0];
   static final long serialVersionUID = 2663080551144404113L;
   private static final String[] b;

   public CodeInjectionProtectionAssertion() {
      super(null, false);
   }

   @Override
   public Object clone() {
      CodeInjectionProtectionAssertion var1 = (CodeInjectionProtectionAssertion)super.clone();
      var1.protections = (CodeInjectionProtectionType[])this.protections.clone();
      return var1;
   }

   @Deprecated
   public void setIncludeRequestUrl(boolean var1) {
      this.includeUrlQueryString = var1;
      this.updateState();
   }

   @Deprecated
   public void setIncludeRequestBody(boolean var1) {
      this.includeRequestBody = var1;
      this.updateState();
   }

   @Deprecated
   public void setIncludeResponseBody(boolean var1) {
      this.includeResponseBody = var1;
      this.updateState();
   }

   @Deprecated
   public void setProtection(CodeInjectionProtectionType var1) {
      this.protections = new CodeInjectionProtectionType[]{var1};
   }

   public CodeInjectionProtectionType[] getProtections() {
      return this.protections;
   }

   public void setProtections(CodeInjectionProtectionType[] var1) {
      try {
         if (var1 == null) {
            throw new IllegalArgumentException(b[16]);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      this.protections = var1;
   }

   @Override
   public AssertionMetadata meta() {
      DefaultAssertionMetadata var1 = this.defaultMeta();
      String[] var2 = b;
      var1.put(var2[13], var2[3]);
      var1.put(var2[1], var2[10]);
      var1.put(var2[9], var2[2]);
      var1.put(var2[12], new String[]{var2[11]});
      var1.put(var2[4], policyNameFactory);
      var1.put(var2[0], var2[18]);
      var1.put(var2[15], var2[7]);
      var1.put(var2[8], var2[5]);
      var1.put(var2[6], CodeInjectionProtectionAssertion.CodeInjectionProtectionAssertionValidator.class.getName());
      var1.put(var2[14], new g(this));
      return var1;
   }

   @Override
   protected String getBaseName() {
      return b[17];
   }

   private void updateState() {
      // $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: getfield com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.includeResponseBody Z
      // 04: ifeq 24
      // 07: aconst_null
      // 08: aload 0
      // 09: invokevirtual com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.getTarget ()Lcom/l7tech/policy/assertion/TargetMessageType;
      // 0c: if_acmpne 56
      // 0f: goto 16
      // 12: invokestatic com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 15: athrow
      // 16: aload 0
      // 17: getstatic com/l7tech/policy/assertion/TargetMessageType.RESPONSE Lcom/l7tech/policy/assertion/TargetMessageType;
      // 1a: invokevirtual com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.setTarget (Lcom/l7tech/policy/assertion/TargetMessageType;)V
      // 1d: goto 56
      // 20: invokestatic com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 23: athrow
      // 24: aload 0
      // 25: getfield com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.includeRequestBody Z
      // 28: ifne 39
      // 2b: aload 0
      // 2c: getfield com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.includeUrlQueryString Z
      // 2f: ifeq 56
      // 32: goto 39
      // 35: invokestatic com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 38: athrow
      // 39: aconst_null
      // 3a: aload 0
      // 3b: invokevirtual com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.getTarget ()Lcom/l7tech/policy/assertion/TargetMessageType;
      // 3e: if_acmpne 56
      // 41: goto 48
      // 44: invokestatic com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 47: athrow
      // 48: aload 0
      // 49: getstatic com/l7tech/policy/assertion/TargetMessageType.REQUEST Lcom/l7tech/policy/assertion/TargetMessageType;
      // 4c: invokevirtual com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.setTarget (Lcom/l7tech/policy/assertion/TargetMessageType;)V
      // 4f: goto 56
      // 52: invokestatic com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 55: athrow
      // 56: aload 0
      // 57: aload 0
      // 58: getfield com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.includeRequestBody Z
      // 5b: ifne 6c
      // 5e: aload 0
      // 5f: getfield com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.includeResponseBody Z
      // 62: ifeq 74
      // 65: goto 6c
      // 68: invokestatic com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 6b: athrow
      // 6c: bipush 1
      // 6d: goto 75
      // 70: invokestatic com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 73: athrow
      // 74: bipush 0
      // 75: putfield com/l7tech/policy/assertion/CodeInjectionProtectionAssertion.includeBody Z
      // 78: return
      // try (0 -> 7): 8 java/lang/IllegalArgumentException
      // try (3 -> 14): 14 java/lang/IllegalArgumentException
      // try (16 -> 22): 23 java/lang/IllegalArgumentException
      // try (19 -> 29): 30 java/lang/IllegalArgumentException
      // try (25 -> 35): 36 java/lang/IllegalArgumentException
      // try (38 -> 45): 46 java/lang/IllegalArgumentException
      // try (42 -> 50): 50 java/lang/IllegalArgumentException
   }

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

   static {
      String[] var5 = new String[19];
      int var3 = 0;
      String var2 = "\u0000\u001d\u00077O\\.\u0019\n\u001b\u0002NG.\u001f\u001d++K])\u001e\u000e\u0005\"\u000b\u0014\n\u001b$XG*\u0004\u0006\u0007)2\u0013\u0000\u0005hF\u0019.\u0015\f\u0000hIA4\u0003\u0000\u0004\"\u0005\\?\u0003\u0000\u001d5IK)_=\r#sK6\u001c\u0000\u001f\u0014BG?\u001c\u000bYq\u0004I3\u0016\u001e \u001d\u00073OM.P.\u000f&C@)\u0004O+(NKz9\u0001\u0002\"IZ3\u001f\u0001\u0015\u0000\u0000\u0004.IW\u0014\u001f\u000b\r\tKC?6\u000e\u000b3E\\#\u0004\u0011\u001a\u001c(\u0018\u0000\u0000\u0004.IW\f\u0011\u0003\u0001#KZ5\u0002,\u0004&Y]4\u0011\u0002\r$3\u0000\f\"\ng4\u001a\n\u000b3CA4P?\u001a(^K9\u0004\u0006\u0007)\n~(\u001f\u001f\r5^G?\u0003\u0015\u0000\u0000\u0004.IW\u001b\u0014\u0019\u0001$Om6\u0011\u001c\u001b)KC?\u000f\u0000\u000e\u0004\"^Z?>\u0000\f\"cM5\u001ej \u001d\u00071CJ?\u0003O\n&YG9P\u001b\u00005OO.P\u001f\u001a(^K9\u0004\u0006\u0007)\nO=\u0011\u0006\u00064^\u000e;\u0004\u001b\t$A]z\u001f\u0001H0OLz\u0011\u001f\u0018+CM;\u0004\u0006\u0007)Y\u000e8\tO\n+EM1\u0019\u0001\u000fgGO6\u0019\f\u0001(_]z\u0013\u0000\f\"\nG4\u001a\n\u000b3CA4^\u0010\u0004\u0007\u001a\"KZ\n\u0002\u0000\u001c\"IZ3\u001f\u0001\u000e\u0000\u000e\u0004\"^Z?6\u0000\u0004#O\\)\t\u0003\u0007\u00075^`;\u001d\n\u001b\u0000\u0000\u0004.IW\f\u0011\u0003\u0001#KZ5\u0002)\u0004&M]\u001c\u0011\f\u001c(XW\u0014\u0000\u001d\u00077O\\.\u0019\n\u001b\u0006IZ3\u001f\u0001&&GK\"\u0000\u001d\u00073OM.\u0019\u0000\u00064\nO(\u0002\u000e\u0011gG[)\u0004O\u0006(^\u000e8\u0015O\u00062FB";
      int var4 = "\u0000\u001d\u00077O\\.\u0019\n\u001b\u0002NG.\u001f\u001d++K])\u001e\u000e\u0005\"\u000b\u0014\n\u001b$XG*\u0004\u0006\u0007)2\u0013\u0000\u0005hF\u0019.\u0015\f\u0000hIA4\u0003\u0000\u0004\"\u0005\\?\u0003\u0000\u001d5IK)_=\r#sK6\u001c\u0000\u001f\u0014BG?\u001c\u000bYq\u0004I3\u0016\u001e \u001d\u00073OM.P.\u000f&C@)\u0004O+(NKz9\u0001\u0002\"IZ3\u001f\u0001\u0015\u0000\u0000\u0004.IW\u0014\u001f\u000b\r\tKC?6\u000e\u000b3E\\#\u0004\u0011\u001a\u001c(\u0018\u0000\u0000\u0004.IW\f\u0011\u0003\u0001#KZ5\u0002,\u0004&Y]4\u0011\u0002\r$3\u0000\f\"\ng4\u001a\n\u000b3CA4P?\u001a(^K9\u0004\u0006\u0007)\n~(\u001f\u001f\r5^G?\u0003\u0015\u0000\u0000\u0004.IW\u001b\u0014\u0019\u0001$Om6\u0011\u001c\u001b)KC?\u000f\u0000\u000e\u0004\"^Z?>\u0000\f\"cM5\u001ej \u001d\u00071CJ?\u0003O\n&YG9P\u001b\u00005OO.P\u001f\u001a(^K9\u0004\u0006\u0007)\nO=\u0011\u0006\u00064^\u000e;\u0004\u001b\t$A]z\u001f\u0001H0OLz\u0011\u001f\u0018+CM;\u0004\u0006\u0007)Y\u000e8\tO\n+EM1\u0019\u0001\u000fgGO6\u0019\f\u0001(_]z\u0013\u0000\f\"\nG4\u001a\n\u000b3CA4^\u0010\u0004\u0007\u001a\"KZ\n\u0002\u0000\u001c\"IZ3\u001f\u0001\u000e\u0000\u000e\u0004\"^Z?6\u0000\u0004#O\\)\t\u0003\u0007\u00075^`;\u001d\n\u001b\u0000\u0000\u0004.IW\f\u0011\u0003\u0001#KZ5\u0002)\u0004&M]\u001c\u0011\f\u001c(XW\u0014\u0000\u001d\u00077O\\.\u0019\n\u001b\u0006IZ3\u001f\u0001&&GK\"\u0000\u001d\u00073OM.\u0019\u0000\u00064\nO(\u0002\u000e\u0011gG[)\u0004O\u0006(^\u000e8\u0015O\u00062FB"
         .length();
      char var1 = 25;
      int var7 = -1;

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

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

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

                  var2 = "\t4.\u001afd\u0007y\u0007&\u000fji\u0000-f\u0002\u0001gbS\u0010(+\u000b`s\u001a6(@:),@o0\u0007<%)@`h\u001d*)-\u000b-w\u00127#-\u001d-D\u001c=#\b\u0000ib\u0010-/.\u0000Su\u001c-#\"\u001ajh\u001d\u001852\u000bqs\u001a6(\u0005\u0007bk\u001c>";
                  var4 = "\t4.\u001afd\u0007y\u0007&\u000fji\u0000-f\u0002\u0001gbS\u0010(+\u000b`s\u001a6(@:),@o0\u0007<%)@`h\u001d*)-\u000b-w\u00127#-\u001d-D\u001c=#\b\u0000ib\u0010-/.\u0000Su\u001c-#\"\u001ajh\u001d\u001852\u000bqs\u001a6(\u0005\u0007bk\u001c>"
                     .length();
                  var1 = 30;
                  var7 = -1;
            }

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

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

      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 -> 1;
            case 1 -> 30;
            case 2 -> 25;
            case 3 -> 54;
            case 4 -> 91;
            case 5 -> 95;
            default -> 43;
         });
      }

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

   public static class CodeInjectionProtectionAssertionValidator extends InjectionThreatProtectionAssertionValidator {
      private final CodeInjectionProtectionAssertion b;

      public CodeInjectionProtectionAssertionValidator(CodeInjectionProtectionAssertion var1) {
         super(var1);
         this.b = var1;
      }

      @Override
      protected boolean isAtLeastOneProtectionEnabled() {
         return this.b.getProtections().length > 0;
      }
   }
}
