package com.l7tech.policy.assertion.xmlsec;

import com.l7tech.policy.assertion.AssertionMetadata;
import com.l7tech.policy.assertion.AssertionNodeNameFactory;
import com.l7tech.policy.assertion.DefaultAssertionMetadata;
import com.l7tech.policy.assertion.TargetMessageType;
import com.l7tech.policy.assertion.XpathBasedAssertionFactory;
import com.l7tech.util.ArrayUtils;
import com.l7tech.xml.xpath.XpathExpression;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

public class RequireWssEncryptedElement extends XmlSecurityAssertionBase implements HasPermittedXencAlgorithmList {
   static final String baseName;
   static final AssertionNodeNameFactory policyNameFactory;
   private String xencKeyAlgorithm;
   private Set<String> xEncAlgorithmList;
   private boolean encryptContentsOnly = true;
   static final long serialVersionUID = -945659317922066852L;
   private static final String[] c;

   public RequireWssEncryptedElement() {
      this(compatOrigDefaultXpathValue());
   }

   public RequireWssEncryptedElement(XpathExpression var1) {
      super(TargetMessageType.REQUEST, false);
      this.setXpathExpression(var1);
   }

   public String getXEncAlgorithm() {
      // $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/xmlsec/RequireWssEncryptedElement.xEncAlgorithmList Ljava/util/Set;
      // 04: ifnull 1a
      // 07: aload 0
      // 08: getfield com/l7tech/policy/assertion/xmlsec/RequireWssEncryptedElement.xEncAlgorithmList Ljava/util/Set;
      // 0b: invokeinterface java/util/Set.isEmpty ()Z 1
      // 10: ifeq 27
      // 13: goto 1a
      // 16: invokestatic com/l7tech/policy/assertion/xmlsec/RequireWssEncryptedElement.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 19: athrow
      // 1a: getstatic com/l7tech/policy/assertion/xmlsec/RequireWssEncryptedElement.c [Ljava/lang/String;
      // 1d: bipush 13
      // 1f: aaload
      // 20: goto 38
      // 23: invokestatic com/l7tech/policy/assertion/xmlsec/RequireWssEncryptedElement.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 26: athrow
      // 27: aload 0
      // 28: getfield com/l7tech/policy/assertion/xmlsec/RequireWssEncryptedElement.xEncAlgorithmList Ljava/util/Set;
      // 2b: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 30: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 35: checkcast java/lang/String
      // 38: areturn
      // try (0 -> 7): 8 java/lang/IllegalArgumentException
      // try (3 -> 14): 14 java/lang/IllegalArgumentException
   }

   @Override
   public List<String> getXEncAlgorithmList() {
      try {
         if (this.xEncAlgorithmList == null) {
            return null;
         }
      } catch (IllegalArgumentException var1) {
         throw a(var1);
      }

      return new ArrayList<>(this.xEncAlgorithmList);
   }

   public void setXEncAlgorithm(String var1) {
      try {
         if (var1 == null) {
            throw new IllegalArgumentException();
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      try {
         if (this.xEncAlgorithmList == null) {
            this.initXEncAlgorithmList(Arrays.asList(var1));
            return;
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      this.xEncAlgorithmList.remove(var1);
      this.initXEncAlgorithmList(Arrays.asList(ArrayUtils.unshift(this.xEncAlgorithmList.toArray(new String[this.xEncAlgorithmList.size()]), var1)));
   }

   @Override
   public void setXEncAlgorithmList(List<String> var1) {
      try {
         if (var1 == null) {
            throw new IllegalArgumentException();
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      this.initXEncAlgorithmList(var1);
   }

   private void initXEncAlgorithmList(Collection<String> var1) {
      this.xEncAlgorithmList = new LinkedHashSet<>(var1);
   }

   public String getKeyEncryptionAlgorithm() {
      return this.xencKeyAlgorithm;
   }

   public void setKeyEncryptionAlgorithm(String var1) {
      this.xencKeyAlgorithm = var1;
   }

   public boolean isEncryptContentsOnly() {
      return this.encryptContentsOnly;
   }

   public void setEncryptContentsOnly(boolean var1) {
      this.encryptContentsOnly = var1;
   }

   @Override
   public AssertionMetadata meta() {
      DefaultAssertionMetadata var1 = this.defaultMeta();
      String[] var2 = c;
      var1.put(var2[23], var2[14]);
      var1.put(var2[6], var2[7]);
      var1.put(var2[20], new String[]{var2[0]});
      var1.put(var2[17], 90000);
      var1.put(var2[8], var2[11]);
      var1.put(var2[4], var2[24]);
      var1.put(var2[3], var2[9]);
      var1.put(var2[12], policyNameFactory);
      var1.put(var2[2], new n(this));
      var1.put(var2[22], new XpathBasedAssertionFactory<>(RequireWssEncryptedElement.class));
      var1.put(var2[10], var2[1]);
      var1.put(var2[16], var2[15]);
      var1.put(var2[5], Boolean.TRUE);
      var1.put(var2[18], var2[19]);
      return var1;
   }

   static {
      String[] var5 = new String[25];
      int var3 = 0;
      String var2 = "#K\u0016\fKl:)O\u000e&H8I\u0017qB8;>E\u0012q^} #_T/Ac&8_T>]|*)R\u00130@!76J\t:M!\f7O\u001f1Z]**S\u001f,ZX<(e\u00151Hf+>H\u000e6Oc&/_\u001b+I\u00166Mv\u0019:J\u0013;O{ )`\u0016>I|\t:E\u000e0\\v\u000f+G\u0016:Z{*\u0015I\u001e:gl 5\u0014+T\u0015/K};2C\t\u001eM{&4H4>Cj\f.U\u001f;lv\f7O\u001f1Z\u000b?C\t<\\f?/O\u001518\u000fN\u001f\u007fCj<(G\u001d:\u000eb:(RZ<Aa;:O\u0014\u007fAa*{I\b\u007fC`=>\u0006\u001f1M}6+R\u001f;\u000ej#>K\u001f1Z|a\u0019+T\u0015/K};2C\t\u001aJf;4T93O|<5G\u0017:.8I\u0017pB8;>E\u0012pM`!(I\u0016:\u0001}*(I\u000f-Mj<t^\u00173Ka,)_\n+G`!uA\u00139\u00188J\u0013:@{\u000e(U\u001f-Zf 5e\u0016>]|!:K\u001f=8I\u0017qB8;>E\u0012qM`!(I\u0016:\u0000\u007f.5C\u0016,\u0000W?:R\u0012\u001dO|*?g\t,K};2I\u0014\u000f\\`?>T\u000e6K|\u000b2G\u00160I\u0015+I\u00166Mv\u00014B\u001f\u0011Ob*\u001dG\u0019+A}6+3R\u000e/\u0014 `,Q\rqY<a4T\u001dp\u001c?\u007fj\tJk\u0001w\"7C\u0014<\rn*(\u0017Hg\u0003l-8\u0019\tC\u000b*G}*{c\u0014<\\v?/C\u001e\u007fkc*6C\u0014+18I\u0017pB8;>E\u0012p^} #_U-K| .T\u0019:] ;)C\u001fpVb#>H\u0019-W\u007f;2I\u0014qIf)\u00198J\u0013:@{\u000e(U\u001f-Zf 5v\u00153Gl6\u0012E\u00151\u0017+G\u0016:Z{*\u0015I\u001e:}`=/v\b6A}&/_\u0018+I\u00166Mv\u0019:J\u0013;O{ )e\u0016>]|!:K\u001f?8I\u0017qB8;>E\u0012q^`#2E\u0003qXn#2B\u001b+A}a\tC\u000b*G}*\fU\t\u001a@l=\"V\u000e:JJ#>K\u001f1ZY.7O\u001e>Z`=\u000e+G\u0016:Z{*\u001dI\u0016;K}<\u0019\tC\u000b*G}*{c\u0014<\\v?/C\u001e\u007fkc*6C\u0014+\u0010:U\t:\\{&4H<>M{ )_";
      int var4 = "#K\u0016\fKl:)O\u000e&H8I\u0017qB8;>E\u0012q^} #_T/Ac&8_T>]|*)R\u00130@!76J\t:M!\f7O\u001f1Z]**S\u001f,ZX<(e\u00151Hf+>H\u000e6Oc&/_\u001b+I\u00166Mv\u0019:J\u0013;O{ )`\u0016>I|\t:E\u000e0\\v\u000f+G\u0016:Z{*\u0015I\u001e:gl 5\u0014+T\u0015/K};2C\t\u001eM{&4H4>Cj\f.U\u001f;lv\f7O\u001f1Z\u000b?C\t<\\f?/O\u001518\u000fN\u001f\u007fCj<(G\u001d:\u000eb:(RZ<Aa;:O\u0014\u007fAa*{I\b\u007fC`=>\u0006\u001f1M}6+R\u001f;\u000ej#>K\u001f1Z|a\u0019+T\u0015/K};2C\t\u001aJf;4T93O|<5G\u0017:.8I\u0017pB8;>E\u0012pM`!(I\u0016:\u0001}*(I\u000f-Mj<t^\u00173Ka,)_\n+G`!uA\u00139\u00188J\u0013:@{\u000e(U\u001f-Zf 5e\u0016>]|!:K\u001f=8I\u0017qB8;>E\u0012qM`!(I\u0016:\u0000\u007f.5C\u0016,\u0000W?:R\u0012\u001dO|*?g\t,K};2I\u0014\u000f\\`?>T\u000e6K|\u000b2G\u00160I\u0015+I\u00166Mv\u00014B\u001f\u0011Ob*\u001dG\u0019+A}6+3R\u000e/\u0014 `,Q\rqY<a4T\u001dp\u001c?\u007fj\tJk\u0001w\"7C\u0014<\rn*(\u0017Hg\u0003l-8\u0019\tC\u000b*G}*{c\u0014<\\v?/C\u001e\u007fkc*6C\u0014+18I\u0017pB8;>E\u0012p^} #_U-K| .T\u0019:] ;)C\u001fpVb#>H\u0019-W\u007f;2I\u0014qIf)\u00198J\u0013:@{\u000e(U\u001f-Zf 5v\u00153Gl6\u0012E\u00151\u0017+G\u0016:Z{*\u0015I\u001e:}`=/v\b6A}&/_\u0018+I\u00166Mv\u0019:J\u0013;O{ )e\u0016>]|!:K\u001f?8I\u0017qB8;>E\u0012q^`#2E\u0003qXn#2B\u001b+A}a\tC\u000b*G}*\fU\t\u001a@l=\"V\u000e:JJ#>K\u001f1ZY.7O\u001e>Z`=\u000e+G\u0016:Z{*\u001dI\u0016;K}<\u0019\tC\u000b*G}*{c\u0014<\\v?/C\u001e\u007fkc*6C\u0014+\u0010:U\t:\\{&4H<>M{ )_"
         .length();
      char var1 = 11;
      int var7 = -1;

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

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

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

                  var2 = "\u001d{ \u0018ot\u001b\u0003v\u001c+},\u0018bJ\u000e\u000bwo/w_\u0017\u000b};JKH\u0015\u001ev=\u001er_\t";
                  var4 = "\u001d{ \u0018ot\u001b\u0003v\u001c+},\u0018bJ\u000e\u000bwo/w_\u0017\u000b};JKH\u0015\u001ev=\u001er_\t".length();
                  var1 = '\t';
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

   private static String c(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 -> 73;
            case 1 -> 52;
            case 2 -> 104;
            case 3 -> 77;
            case 4 -> 60;
            case 5 -> 29;
            default -> 93;
         });
      }

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