package com.l7tech.security.xml;

import com.l7tech.security.cert.KeyUsageActivity;
import com.l7tech.security.cert.KeyUsageChecker;
import com.l7tech.security.keys.UnsupportedKeyTypeException;
import com.l7tech.security.keys.XmlSecretKey;
import com.l7tech.security.prov.JceProvider;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.DomUtils;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.HexUtils;
import com.l7tech.util.InvalidDocumentFormatException;
import com.l7tech.util.SoapConstants;
import com.l7tech.util.Functions.UnaryVoid;
import com.l7tech.xml.soap.SoapUtil;
import java.security.GeneralSecurityException;
import java.security.KeyException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.cert.X509Certificate;
import java.security.spec.AlgorithmParameterSpec;
import java.security.spec.MGF1ParameterSpec;
import java.util.Random;
import javax.crypto.Cipher;
import javax.crypto.spec.OAEPParameterSpec;
import javax.crypto.spec.PSource.PSpecified;
import org.apache.xml.security.Init;
import org.apache.xml.security.encryption.XMLCipher;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class XencUtil {
   public static final String TRIPLE_DES_CBC;
   public static final String AES_128_CBC;
   public static final String AES_192_CBC;
   public static final String AES_256_CBC;
   public static final String AES_128_GCM;
   public static final String AES_256_GCM;
   public static final String PROP_ENCRYPT_EMPTY_ELEMENTS;
   public static final String PROP_DECRYPTION_ALWAYS_SUCCEEDS;
   private static final String[] a;

   private XencUtil() {
   }

   public static String computeEncryptedKeySha1(byte[] var0) {
      byte[] var1 = HexUtils.getSha1Digest(var0);
      return HexUtils.encodeBase64(var1, true);
   }

   public static Element encryptElement(Element var0, XmlSecretKey var1, boolean var2) throws XencUtil.XencException {
      Document var3 = var0.getOwnerDocument();
      Node var4 = var0.getParentNode();
      Node var5 = var0.getPreviousSibling();

      try {
         XMLCipher var6 = XMLCipher.getInstance(var1.getAlgorithmUri());
         var6.init(1, var1);
         var6.doFinal(var3, var0, var2);
      } catch (Exception var9) {
         String var10002 = var9.getMessage();
         String[] var7 = a;
         throw new XencUtil.XencException(var7[39] + var10002, var9);
      }

      try {
         if (var2) {
            return (Element)var0.getElementsByTagNameNS(a[5], a[27]).item(0);
         }
      } catch (Exception var8) {
         throw a(var8);
      }

      Node var10000;
      label30: {
         try {
            if (var5 == null) {
               var10000 = var4.getChildNodes().item(0);
               break label30;
            }
         } catch (Exception var10) {
            throw a(var10);
         }

         var10000 = var5.getNextSibling();
      }

      Node var11 = var10000;
      return (Element)var11;
   }

   public static boolean shouldDecryptionAlwaysSucceed() {
      return ConfigFactory.getBooleanProperty(a[50], true);
   }

   public static boolean shouldEncryptEmptyElements() {
      return ConfigFactory.getBooleanProperty(a[43], true);
   }

   public static NodeList decryptAndReplaceUsingKey(Element param0, XmlSecretKey param1, @Nullable UnaryVoid<Throwable> param2) throws XencUtil.XencException {
      // $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:
      // 000: aconst_null
      // 001: astore 3
      // 002: aconst_null
      // 003: astore 4
      // 005: aload 1
      // 006: invokeinterface com/l7tech/security/keys/XmlSecretKey.getAlgorithmUri ()Ljava/lang/String; 1
      // 00b: astore 5
      // 00d: aload 0
      // 00e: invokeinterface org/w3c/dom/Element.getParentNode ()Lorg/w3c/dom/Node; 1
      // 013: astore 6
      // 015: aload 0
      // 016: invokestatic com/l7tech/security/xml/XencUtil.a (Lorg/w3c/dom/Element;)Z
      // 019: istore 7
      // 01b: iload 7
      // 01d: ifne 028
      // 020: bipush 1
      // 021: goto 029
      // 024: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 027: athrow
      // 028: bipush 0
      // 029: istore 8
      // 02b: aconst_null
      // 02c: astore 9
      // 02e: iload 8
      // 030: ifeq 06f
      // 033: bipush 16
      // 035: newarray 8
      // 037: astore 9
      // 039: aload 1
      // 03a: invokeinterface com/l7tech/security/keys/XmlSecretKey.getEncoded ()[B 1
      // 03f: bipush 0
      // 040: aload 9
      // 042: bipush 0
      // 043: aload 9
      // 045: arraylength
      // 046: invokestatic java/lang/System.arraycopy (Ljava/lang/Object;ILjava/lang/Object;II)V
      // 049: aload 9
      // 04b: invokestatic com/l7tech/security/xml/XencKeyBlacklist.isKeyBlacklisted ([B)Z
      // 04e: ifeq 06f
      // 051: new java/security/InvalidKeyException
      // 054: dup
      // 055: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 058: astore 18
      // 05a: aload 18
      // 05c: bipush 34
      // 05e: aaload
      // 05f: new java/lang/RuntimeException
      // 062: dup
      // 063: aload 18
      // 065: bipush 46
      // 067: aaload
      // 068: invokespecial java/lang/RuntimeException.<init> (Ljava/lang/String;)V
      // 06b: invokespecial java/security/InvalidKeyException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 06e: astore 3
      // 06f: aload 3
      // 070: ifnonnull 1cd
      // 073: invokestatic com/l7tech/security/xml/XencUtil.shouldDecryptionAlwaysSucceed ()Z
      // 076: ifeq 094
      // 079: goto 080
      // 07c: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 07f: athrow
      // 080: iload 7
      // 082: ifne 094
      // 085: goto 08c
      // 088: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 08b: athrow
      // 08c: bipush 1
      // 08d: goto 095
      // 090: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 093: athrow
      // 094: bipush 0
      // 095: istore 10
      // 097: aload 0
      // 098: invokeinterface org/w3c/dom/Element.getOwnerDocument ()Lorg/w3c/dom/Document; 1
      // 09d: astore 11
      // 09f: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 0a2: astore 18
      // 0a4: aload 18
      // 0a6: bipush 7
      // 0a8: aaload
      // 0a9: aload 0
      // 0aa: aload 18
      // 0ac: bipush 6
      // 0ae: aaload
      // 0af: invokeinterface org/w3c/dom/Element.getAttribute (Ljava/lang/String;)Ljava/lang/String; 2
      // 0b4: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0b7: istore 12
      // 0b9: aload 0
      // 0ba: invokeinterface org/w3c/dom/Element.getParentNode ()Lorg/w3c/dom/Node; 1
      // 0bf: astore 13
      // 0c1: aload 0
      // 0c2: invokeinterface org/w3c/dom/Element.getPreviousSibling ()Lorg/w3c/dom/Node; 1
      // 0c7: astore 14
      // 0c9: aload 5
      // 0cb: invokestatic org/apache/xml/security/encryption/XMLCipher.getInstance (Ljava/lang/String;)Lorg/apache/xml/security/encryption/XMLCipher;
      // 0ce: astore 15
      // 0d0: aload 15
      // 0d2: bipush 2
      // 0d3: aload 1
      // 0d4: invokevirtual org/apache/xml/security/encryption/XMLCipher.init (ILjava/security/Key;)V
      // 0d7: aload 15
      // 0d9: aload 11
      // 0db: iload 12
      // 0dd: ifeq 0ec
      // 0e0: aload 13
      // 0e2: checkcast org/w3c/dom/Element
      // 0e5: goto 0ed
      // 0e8: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0eb: athrow
      // 0ec: aload 0
      // 0ed: iload 12
      // 0ef: invokevirtual org/apache/xml/security/encryption/XMLCipher.doFinal (Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;Z)Lorg/w3c/dom/Document;
      // 0f2: pop
      // 0f3: goto 125
      // 0f6: astore 15
      // 0f8: aload 15
      // 0fa: astore 3
      // 0fb: iload 8
      // 0fd: ifeq 10c
      // 100: aload 9
      // 102: invokestatic com/l7tech/security/xml/XencKeyBlacklist.recordDecryptionFailure ([B)V
      // 105: goto 10c
      // 108: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 10b: athrow
      // 10c: iload 10
      // 10e: ifne 125
      // 111: new com/l7tech/security/xml/XencUtil$XencException
      // 114: dup
      // 115: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 118: bipush 53
      // 11a: aaload
      // 11b: aload 15
      // 11d: invokespecial com/l7tech/security/xml/XencUtil$XencException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 120: athrow
      // 121: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 124: athrow
      // 125: iload 12
      // 127: ifeq 136
      // 12a: aload 13
      // 12c: invokeinterface org/w3c/dom/Node.getChildNodes ()Lorg/w3c/dom/NodeList; 1
      // 131: astore 4
      // 133: goto 1cd
      // 136: aload 11
      // 138: aload 13
      // 13a: if_acmpne 160
      // 13d: aload 11
      // 13f: invokeinterface org/w3c/dom/Document.getLastChild ()Lorg/w3c/dom/Node; 1
      // 144: astore 15
      // 146: aload 11
      // 148: aload 15
      // 14a: invokeinterface org/w3c/dom/Node.getNamespaceURI ()Ljava/lang/String; 1
      // 14f: aload 15
      // 151: invokeinterface org/w3c/dom/Node.getLocalName ()Ljava/lang/String; 1
      // 156: invokeinterface org/w3c/dom/Document.getElementsByTagNameNS (Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/NodeList; 3
      // 15b: astore 4
      // 15d: goto 1cd
      // 160: aload 14
      // 162: ifnonnull 179
      // 165: aload 13
      // 167: invokeinterface org/w3c/dom/Node.getChildNodes ()Lorg/w3c/dom/NodeList; 1
      // 16c: bipush 0
      // 16d: invokeinterface org/w3c/dom/NodeList.item (I)Lorg/w3c/dom/Node; 2
      // 172: goto 180
      // 175: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 178: athrow
      // 179: aload 14
      // 17b: invokeinterface org/w3c/dom/Node.getNextSibling ()Lorg/w3c/dom/Node; 1
      // 180: astore 16
      // 182: aload 16
      // 184: invokestatic com/l7tech/security/xml/XencUtil.a (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;
      // 187: astore 15
      // 189: aload 15
      // 18b: ifnonnull 1b3
      // 18e: new com/l7tech/security/xml/XencUtil$XencException
      // 191: dup
      // 192: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 195: astore 18
      // 197: aload 18
      // 199: bipush 20
      // 19b: aaload
      // 19c: invokespecial com/l7tech/security/xml/XencUtil$XencException.<init> (Ljava/lang/String;)V
      // 19f: astore 17
      // 1a1: aload 17
      // 1a3: astore 3
      // 1a4: iload 10
      // 1a6: ifne 1b0
      // 1a9: aload 17
      // 1ab: athrow
      // 1ac: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 1af: athrow
      // 1b0: goto 1cd
      // 1b3: aload 13
      // 1b5: checkcast org/w3c/dom/Element
      // 1b8: aload 15
      // 1ba: invokeinterface org/w3c/dom/Node.getNamespaceURI ()Ljava/lang/String; 1
      // 1bf: aload 15
      // 1c1: invokeinterface org/w3c/dom/Node.getLocalName ()Ljava/lang/String; 1
      // 1c6: invokeinterface org/w3c/dom/Element.getElementsByTagNameNS (Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/NodeList; 3
      // 1cb: astore 4
      // 1cd: aload 3
      // 1ce: ifnull 244
      // 1d1: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 1d4: bipush 14
      // 1d6: aaload
      // 1d7: invokestatic com/l7tech/common/io/XmlUtil.stringAsDocument (Ljava/lang/String;)Lorg/w3c/dom/Document;
      // 1da: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 1df: astore 10
      // 1e1: aload 0
      // 1e2: invokeinterface org/w3c/dom/Element.getOwnerDocument ()Lorg/w3c/dom/Document; 1
      // 1e7: aload 10
      // 1e9: bipush 1
      // 1ea: invokeinterface org/w3c/dom/Document.importNode (Lorg/w3c/dom/Node;Z)Lorg/w3c/dom/Node; 3
      // 1ef: astore 11
      // 1f1: new com/l7tech/security/xml/c
      // 1f4: dup
      // 1f5: aload 11
      // 1f7: invokespecial com/l7tech/security/xml/c.<init> (Lorg/w3c/dom/Node;)V
      // 1fa: astore 4
      // 1fc: aload 0
      // 1fd: invokeinterface org/w3c/dom/Element.getParentNode ()Lorg/w3c/dom/Node; 1
      // 202: ifnonnull 216
      // 205: aload 6
      // 207: aload 11
      // 209: invokeinterface org/w3c/dom/Node.appendChild (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 2
      // 20e: pop
      // 20f: goto 232
      // 212: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 215: athrow
      // 216: aload 0
      // 217: invokeinterface org/w3c/dom/Element.getParentNode ()Lorg/w3c/dom/Node; 1
      // 21c: astore 12
      // 21e: aload 12
      // 220: aload 11
      // 222: aload 0
      // 223: invokeinterface org/w3c/dom/Node.insertBefore (Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 3
      // 228: pop
      // 229: aload 12
      // 22b: aload 0
      // 22c: invokeinterface org/w3c/dom/Node.removeChild (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 2
      // 231: pop
      // 232: aload 2
      // 233: ifnull 244
      // 236: aload 2
      // 237: aload 3
      // 238: invokeinterface com/l7tech/util/Functions$UnaryVoid.call (Ljava/lang/Object;)V 2
      // 23d: goto 244
      // 240: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 243: athrow
      // 244: aload 4
      // 246: areturn
      // try (96 -> 107): 107 java/lang/Exception
      // try (61 -> 68): 68 java/lang/Exception
      // try (56 -> 63): 64 java/lang/Exception
      // try (54 -> 58): 59 java/lang/Exception
      // try (13 -> 17): 17 java/lang/Exception
      // try (93 -> 113): 114 java/lang/Exception
      // try (117 -> 121): 122 java/lang/Exception
      // try (124 -> 134): 134 java/lang/Exception
      // try (156 -> 163): 163 java/lang/Exception
      // try (184 -> 188): 188 java/lang/Exception
      // try (218 -> 226): 226 java/lang/Exception
      // try (240 -> 245): 246 java/lang/Exception
   }

   private static Node a(Node param0) {
      // $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: ifnull 3f
      // 04: aload 0
      // 05: invokeinterface org/w3c/dom/Node.getNodeType ()S 1
      // 0a: bipush 1
      // 0b: if_icmpeq 3f
      // 0e: goto 15
      // 11: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 14: athrow
      // 15: aload 0
      // 16: invokeinterface org/w3c/dom/Node.getLocalName ()Ljava/lang/String; 1
      // 1b: ifnonnull 3f
      // 1e: goto 25
      // 21: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 24: athrow
      // 25: aload 0
      // 26: invokeinterface org/w3c/dom/Node.getNextSibling ()Lorg/w3c/dom/Node; 1
      // 2b: ifnull 3f
      // 2e: goto 35
      // 31: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 34: athrow
      // 35: aload 0
      // 36: invokeinterface org/w3c/dom/Node.getNextSibling ()Lorg/w3c/dom/Node; 1
      // 3b: astore 0
      // 3c: goto 00
      // 3f: aload 0
      // 40: areturn
      // try (0 -> 6): 7 java/lang/RuntimeException
      // try (2 -> 12): 13 java/lang/RuntimeException
      // try (9 -> 18): 19 java/lang/RuntimeException
   }

   public static String findAlgorithmUri(Element param0) throws XencUtil.XencException {
      // $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: getstatic com/l7tech/util/SoapConstants.XMLENC_NS Ljava/lang/String;
      // 04: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 07: astore 3
      // 08: aload 3
      // 09: bipush 42
      // 0b: aaload
      // 0c: invokestatic com/l7tech/util/DomUtils.findExactlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 0f: astore 1
      // 10: goto 1d
      // 13: astore 2
      // 14: new com/l7tech/security/xml/XencUtil$XencException
      // 17: dup
      // 18: aload 2
      // 19: invokespecial com/l7tech/security/xml/XencUtil$XencException.<init> (Ljava/lang/Throwable;)V
      // 1c: athrow
      // 1d: aload 1
      // 1e: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 21: astore 3
      // 22: aload 3
      // 23: bipush 13
      // 25: aaload
      // 26: invokeinterface org/w3c/dom/Element.getAttribute (Ljava/lang/String;)Ljava/lang/String; 2
      // 2b: astore 2
      // 2c: aload 2
      // 2d: ifnull 3e
      // 30: aload 2
      // 31: invokevirtual java/lang/String.isBlank ()Z
      // 34: ifeq 50
      // 37: goto 3e
      // 3a: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 3d: athrow
      // 3e: new com/l7tech/security/xml/XencUtil$XencException
      // 41: dup
      // 42: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 45: bipush 47
      // 47: aaload
      // 48: invokespecial com/l7tech/security/xml/XencUtil$XencException.<init> (Ljava/lang/String;)V
      // 4b: athrow
      // 4c: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 4f: athrow
      // 50: aload 2
      // 51: areturn
      // try (0 -> 9): 10 com/l7tech/util/TooManyChildElementsException
      // try (0 -> 9): 10 com/l7tech/util/MissingRequiredElementException
      // try (24 -> 29): 30 com/l7tech/util/TooManyChildElementsException
      // try (26 -> 39): 39 com/l7tech/util/TooManyChildElementsException
   }

   private static boolean a(Element var0) throws XencUtil.XencException {
      try {
         String[] var3 = a;
         Element var1 = DomUtils.findExactlyOneChildElementByName(var0, SoapConstants.XMLENC_NS, var3[42]);
         String var2 = var1.getAttribute(var3[13]);
         return doesEncryptionAlgorithmRequireGcm(var2);
      } catch (InvalidDocumentFormatException var4) {
         throw new XencUtil.XencException(var4);
      }
   }

   public static boolean doesEncryptionAlgorithmRequireGcm(String param0) {
      // $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: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 03: bipush 37
      // 05: aaload
      // 06: aload 0
      // 07: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0a: ifne 20
      // 0d: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 10: bipush 3
      // 11: aaload
      // 12: aload 0
      // 13: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 16: ifeq 28
      // 19: goto 20
      // 1c: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 1f: athrow
      // 20: bipush 1
      // 21: goto 29
      // 24: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 27: athrow
      // 28: bipush 0
      // 29: ireturn
      // try (0 -> 12): 13 java/lang/RuntimeException
      // try (6 -> 17): 17 java/lang/RuntimeException
   }

   public static String checkEncryptionMethod(Element param0) throws InvalidDocumentFormatException {
      // $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:
      // 000: aload 0
      // 001: getstatic com/l7tech/util/SoapConstants.XMLENC_NS Ljava/lang/String;
      // 004: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 007: astore 7
      // 009: aload 7
      // 00b: bipush 42
      // 00d: aaload
      // 00e: invokestatic com/l7tech/util/DomUtils.findOnlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 011: astore 1
      // 012: aload 1
      // 013: ifnonnull 027
      // 016: new com/l7tech/util/InvalidDocumentFormatException
      // 019: dup
      // 01a: aload 7
      // 01c: bipush 35
      // 01e: aaload
      // 01f: invokespecial com/l7tech/util/InvalidDocumentFormatException.<init> (Ljava/lang/String;)V
      // 022: athrow
      // 023: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 026: athrow
      // 027: aload 1
      // 028: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 02b: astore 7
      // 02d: aload 7
      // 02f: bipush 13
      // 031: aaload
      // 032: invokeinterface org/w3c/dom/Element.getAttribute (Ljava/lang/String;)Ljava/lang/String; 2
      // 037: astore 2
      // 038: aload 1
      // 039: getstatic com/l7tech/util/SoapConstants.DIGSIG_URI Ljava/lang/String;
      // 03c: aload 7
      // 03e: bipush 19
      // 040: aaload
      // 041: invokestatic com/l7tech/util/DomUtils.findOnlyOneChildElementByName (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 044: astore 3
      // 045: aconst_null
      // 046: astore 4
      // 048: aload 3
      // 049: ifnull 073
      // 04c: aload 3
      // 04d: aload 7
      // 04f: bipush 13
      // 051: aaload
      // 052: invokeinterface org/w3c/dom/Element.hasAttribute (Ljava/lang/String;)Z 2
      // 057: ifeq 073
      // 05a: goto 061
      // 05d: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 060: athrow
      // 061: aload 3
      // 062: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 065: astore 7
      // 067: aload 7
      // 069: bipush 13
      // 06b: aaload
      // 06c: invokeinterface org/w3c/dom/Element.getAttribute (Ljava/lang/String;)Ljava/lang/String; 2
      // 071: astore 4
      // 073: aload 2
      // 074: ifnull 086
      // 077: aload 2
      // 078: invokevirtual java/lang/String.length ()I
      // 07b: bipush 1
      // 07c: if_icmpge 098
      // 07f: goto 086
      // 082: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 085: athrow
      // 086: new com/l7tech/util/InvalidDocumentFormatException
      // 089: dup
      // 08a: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 08d: bipush 40
      // 08f: aaload
      // 090: invokespecial com/l7tech/util/InvalidDocumentFormatException.<init> (Ljava/lang/String;)V
      // 093: athrow
      // 094: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 097: athrow
      // 098: aload 2
      // 099: getstatic com/l7tech/util/SoapConstants.SUPPORTED_ENCRYPTEDKEY_ALGO Ljava/lang/String;
      // 09c: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 09f: ifeq 0a8
      // 0a2: aload 2
      // 0a3: areturn
      // 0a4: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0a7: athrow
      // 0a8: aload 2
      // 0a9: getstatic com/l7tech/util/SoapConstants.SUPPORTED_ENCRYPTEDKEY_ALGO_2 Ljava/lang/String;
      // 0ac: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0af: ifeq 0f6
      // 0b2: aload 4
      // 0b4: ifnull 0f0
      // 0b7: goto 0be
      // 0ba: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0bd: athrow
      // 0be: getstatic com/l7tech/util/SoapConstants.DIGSIG_URI Ljava/lang/String;
      // 0c1: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 0c4: bipush 30
      // 0c6: aaload
      // 0c7: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 0cc: aload 4
      // 0ce: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0d1: ifne 0f0
      // 0d4: goto 0db
      // 0d7: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0da: athrow
      // 0db: getstatic com/l7tech/security/xml/SupportedDigestMethods.SHA256 Lcom/l7tech/security/xml/SupportedDigestMethods;
      // 0de: invokevirtual com/l7tech/security/xml/SupportedDigestMethods.getIdentifier ()Ljava/lang/String;
      // 0e1: aload 4
      // 0e3: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0e6: ifeq 0f6
      // 0e9: goto 0f0
      // 0ec: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0ef: athrow
      // 0f0: aload 2
      // 0f1: areturn
      // 0f2: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 0f5: athrow
      // 0f6: new com/l7tech/util/InvalidDocumentFormatException
      // 0f9: dup
      // 0fa: aload 2
      // 0fb: aload 4
      // 0fd: ifnonnull 109
      // 100: ldc ""
      // 102: goto 11b
      // 105: invokestatic com/l7tech/security/xml/XencUtil.a (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 108: athrow
      // 109: aload 4
      // 10b: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 10e: astore 7
      // 110: aload 7
      // 112: bipush 45
      // 114: aaload
      // 115: swap
      // 116: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 11b: astore 5
      // 11d: astore 6
      // 11f: getstatic com/l7tech/security/xml/XencUtil.a [Ljava/lang/String;
      // 122: bipush 25
      // 124: aaload
      // 125: aload 6
      // 127: aload 5
      // 129: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 12e: invokespecial com/l7tech/util/InvalidDocumentFormatException.<init> (Ljava/lang/String;)V
      // 131: athrow
      // try (9 -> 18): 18 com/l7tech/util/InvalidDocumentFormatException
      // try (37 -> 45): 46 com/l7tech/util/InvalidDocumentFormatException
      // try (56 -> 62): 63 com/l7tech/util/InvalidDocumentFormatException
      // try (58 -> 72): 72 com/l7tech/util/InvalidDocumentFormatException
      // try (74 -> 80): 80 com/l7tech/util/InvalidDocumentFormatException
      // try (82 -> 88): 89 com/l7tech/util/InvalidDocumentFormatException
      // try (86 -> 99): 100 com/l7tech/util/InvalidDocumentFormatException
      // try (91 -> 107): 108 com/l7tech/util/InvalidDocumentFormatException
      // try (102 -> 112): 112 com/l7tech/util/InvalidDocumentFormatException
      // try (114 -> 121): 121 com/l7tech/util/InvalidDocumentFormatException
   }

   public static byte[] decryptKey(Element var0, PrivateKey var1) throws InvalidDocumentFormatException, GeneralSecurityException {
      String var2 = getEncryptedKeyCipherValue(var0);
      return decryptKey(var0, var1, var2);
   }

   public static byte[] decryptKey(Element var0, PrivateKey var1, String var2) throws InvalidDocumentFormatException, GeneralSecurityException {
      Element var3 = DomUtils.findOnlyOneChildElementByName(var0, SoapConstants.XMLENC_NS, a[33]);
      return decryptKey(var2, getOaepDigestAlg(var3), getOaepBytes(var3), var1);
   }

   public static String getEncryptedKeyCipherValue(Element var0) throws InvalidDocumentFormatException {
      Element var1 = null;
      String[] var3 = a;
      Element var2 = DomUtils.findOnlyOneChildElementByName(var0, SoapConstants.XMLENC_NS, var3[31]);
      if (var2 != null) {
         var1 = DomUtils.findOnlyOneChildElementByName(var2, SoapConstants.XMLENC_NS, var3[38]);
      }

      try {
         if (var1 == null) {
            throw new InvalidDocumentFormatException(var0.getLocalName() + a[16]);
         }
      } catch (InvalidDocumentFormatException var4) {
         throw a(var4);
      }

      return DomUtils.getTextValue(var1);
   }

   @NotNull
   public static SupportedDigestMethods getOaepDigestAlg(@NotNull Element var0) throws InvalidDocumentFormatException {
      try {
         if (var0 == null) {
            a(0);
         }
      } catch (IllegalArgumentException var8) {
         throw a(var8);
      }

      SupportedDigestMethods var1;
      var1 = SupportedDigestMethods.SHA1;
      String[] var5 = a;
      Element var2 = DomUtils.findOnlyOneChildElementByName(var0, SoapUtil.DIGSIG_URI, var5[17]);
      label42:
      if (var2 != null) {
         String var3 = var2.getAttribute(var5[13]);

         try {
            if (var3 == null || var3.length() <= 0) {
               break label42;
            }
         } catch (IllegalArgumentException var9) {
            throw a(var9);
         }

         try {
            SupportedDigestMethods var4 = SupportedDigestMethods.fromAlgorithmId(var3);
            if (var4 != null) {
               var1 = var4;
            }
         } catch (IllegalArgumentException var7) {
            throw new InvalidDocumentFormatException(a[52] + ExceptionUtils.getMessage(var7), var7);
         }
      }

      try {
         if (var1 == null) {
            a(1);
         }

         return var1;
      } catch (IllegalArgumentException var6) {
         throw a(var6);
      }
   }

   public static byte[] getOaepBytes(Element var0) throws InvalidDocumentFormatException {
      String[] var4 = a;
      String var1 = var0.getAttribute(var4[10]);

      try {
         if (!SoapConstants.SUPPORTED_ENCRYPTEDKEY_ALGO_2.equals(var1)) {
            return null;
         }
      } catch (InvalidDocumentFormatException var7) {
         throw a(var7);
      }

      Element var2 = DomUtils.findOnlyOneChildElementByName(var0, SoapConstants.XMLENC_NS, a[32]);

      String var10000;
      label36: {
         try {
            if (var2 == null) {
               var10000 = null;
               break label36;
            }
         } catch (InvalidDocumentFormatException var6) {
            throw a(var6);
         }

         var10000 = DomUtils.getTextValue(var2);
      }

      String var3 = var10000;

      try {
         if (var3 == null) {
            return new byte[0];
         }
      } catch (InvalidDocumentFormatException var5) {
         throw a(var5);
      }

      return HexUtils.decodeBase64(var3);
   }

   public static byte[] decryptKey(String var0, @Nullable SupportedDigestMethods var1, @Nullable byte[] var2, PrivateKey var3) throws InvalidDocumentFormatException, GeneralSecurityException {
      return decryptKey(HexUtils.decodeBase64(var0, true), var1, var2, var3);
   }

   public static byte[] decryptKey(byte[] var0, @Nullable SupportedDigestMethods var1, byte[] var2, PrivateKey var3) throws GeneralSecurityException {
      if (var2 != null) {
         try {
            Cipher var7 = JceProvider.getInstance().getRsaOaepPaddingCipher();
            var7.init(2, var3, a(var1, null, var2));
            return var7.doFinal(var0);
         } catch (NoClassDefFoundError var6) {
            throw (GeneralSecurityException)new GeneralSecurityException(a[48]).initCause(var6);
         }
      } else {
         Cipher var5 = JceProvider.getInstance().getRsaPkcs1PaddingCipher();
         var5.init(2, var3);
         return var5.doFinal(var0);
      }
   }

   public static byte[] padSymmetricKeyForRsaEncryption(byte[] var0, int var1, Random var2) throws KeyException {
      var1--;
      int var3 = var1 - 3 - var0.length;

      try {
         if (var3 < 8) {
            throw new KeyException(a[4]);
         }
      } catch (KeyException var7) {
         throw a(var7);
      }

      byte[] var4 = new byte[var1 - 1];
      int var5 = 0;
      var4[var5++] = 2;

      try {
         while (var3 > 0) {
            var4[var5++] = (byte)(var2.nextInt(255) + 1);
            var3--;
         }
      } catch (KeyException var6) {
         throw a(var6);
      }

      var4[var5++] = 0;
      System.arraycopy(var0, 0, var4, var5, var0.length);
      return var4;
   }

   public static byte[] encryptKeyWithRsaAndPad(byte[] var0, X509Certificate var1, PublicKey var2) throws GeneralSecurityException {
      try {
         if (!a[44].equalsIgnoreCase(var2.getAlgorithm())) {
            throw new UnsupportedKeyTypeException(a[11] + var2.getAlgorithm());
         }
      } catch (GeneralSecurityException var4) {
         throw a(var4);
      }

      KeyUsageChecker.requireActivityForKey(KeyUsageActivity.encryptXml, var1, var2);
      Cipher var3 = JceProvider.getInstance().getRsaPkcs1PaddingCipher();
      var3.init(1, var2);
      return var3.doFinal(var0);
   }

   public static byte[] encryptKeyWithRsaOaepMGF1SHA1(byte[] var0, X509Certificate var1, PublicKey var2, @Nullable SupportedDigestMethods var3, byte[] var4) throws GeneralSecurityException {
      try {
         if (!a[2].equalsIgnoreCase(var2.getAlgorithm())) {
            throw new UnsupportedKeyTypeException(a[21] + var2.getAlgorithm());
         }
      } catch (NoClassDefFoundError var8) {
         throw a(var8);
      }

      Cipher var5 = JceProvider.getInstance().getRsaOaepPaddingCipher();

      try {
         KeyUsageChecker.requireActivityForKey(KeyUsageActivity.encryptXml, var1, var2);
         var5.init(1, var2, a(var3, null, var4));
      } catch (NoClassDefFoundError var7) {
         throw (GeneralSecurityException)new GeneralSecurityException(a[49]).initCause(var7);
      }

      return var5.doFinal(var0);
   }

   private static AlgorithmParameterSpec a(@Nullable SupportedDigestMethods var0, @Nullable MGF1ParameterSpec var1, @Nullable byte[] var2) {
      if (null == var0) {
         var0 = SupportedDigestMethods.SHA1;
      }

      if (null == var1) {
         var1 = MGF1ParameterSpec.SHA1;
      }

      PSpecified var10000;
      label21: {
         try {
            if (var2 == null) {
               var10000 = PSpecified.DEFAULT;
               break label21;
            }
         } catch (RuntimeException var4) {
            throw a(var4);
         }

         var10000 = new PSpecified(var2);
      }

      PSpecified var3 = var10000;
      return new OAEPParameterSpec(var0.getCanonicalName(), a[18], var1, var3);
   }

   static {
      String[] var5 = new String[54];
      int var3 = 0;
      String var2 = "?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002fK\u0014)5&_;\u0001J~9?W$V\u0011+7=P404\u000bI3viF2\u0007L3i;Q\"\u0016MicpJ:\b\ny\u007f=@.\u0014Ptu0s;\u0013Edi\rG4\u0007Ax~-\u0003\u00057e*?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002nK\\pv;\\4U\u0015>{;AeQ\u00120}=_F\u0005\u0001Gtj7W9\u0010\u0004OI\u001f\u0012'\u0011Fqs=\u0012<\u0001]=r?Aw\u0010Kr:8W DFtn-\u0012#\u000b\u0004xt=]3\u0001\u0004ir7Aw\u0017]pw;F%\rG=q;K!?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002fK\u0014)5&_;\u0001J~9\u0004\u0003\u001dTx(?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002fK\u0014)5&_;\u0001J~9\u001d]9\u0010Asn>\u0016\u0016Chw;\\#DBrh~r\u0019\u000bPSo2^w\u0014Eo{3W#\u0001V=={ApDK{:{AyAW=w+A#DJrn~P2DJhv2.?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002fK\u0014)5&_;\u0001J~9*@>\u0014Hx~;Az\u0007F~\t\u0016\bCrh7F?\t<\u0002\nE\u007fv;\u0012#\u000b\u0004xt=@.\u0014P=|1@w\u0016A~s.[2\nP=j+P;\rG=q;Kw\u000bB=t1\\z6w\\:*K'\u0001\u001e=+?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002fK\u0014)5&_;\u0001J~9?W$U\u001d/7=P4\t\u0016\bCrh7F?\tVk(\u0013e\u007f0Qm A~h'B#\rKs\\?G;\u0010\u0004ew2\\$^h*b;\\4Y\u0006un*BmK\u000bq{'W%SPxy6\u001c4\u000bI2t-\u001d/\u0001J~5:W4\u0016]mn7]9\u0002Ehv*\u0010xZ\u00100\u0001PR{;B\u0013\rCxi*s;\u0003\u001fw\rW=w7A$\rJz:\u001d['\fAoL?^\"\u0001\u0004xv;_2\nP\f\u0013\rCxi*\u007f2\u0010Lr~\u0004\u001a#b,\f\u0013\rCxi*\u007f2\u0010Lr~H\u0014\u000bQq~0\u0015#DBtt:\u00126\n]=~;Q%\u001dTi\u007f:\u00122\bAp\u007f0F{DTq\u007f?A2DGu\u007f=Yw\u0010Lx:\u001b\\4\u0016]mn;V\u0013\u0005P|:\nK'\u0001<\u0002\nE\u007fv;\u0012#\u000b\u0004xt=@.\u0014P=|1@w\u0016A~s.[2\nP=j+P;\rG=q;Kw\u000bB=t1\\z6w\\:*K'\u0001\u001e=+?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002fK\u0014)5&_;\u0001J~9?W$U\u0016%7=P4*?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002nK\\pv;\\4U\u0015>{;AeQ\u00120}=_*?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002nK\\pv;\\4U\u0015>{;AfV\u001c0}=_\u0018\u0016\bCrh7F?\t\u0004su*\u0012$\u0011Tmu,F2\u0000\u0004\u00100\u0001PR{;B\u0013\rCxi*s;\u0003\r\u0012\nGoc.F2\u0000`|n?,4\u000bI3viF2\u0007L3i;Q\"\u0016MicpJ:\b\nxt=@.\u0014PXw.F.!Hxw;\\#\u0017 4\u000bI2viF2\u0007L2i;Q\"\u0016MicqJ:\b\u000bE\u007f0Q\u0002\u0010Mq\u0004$\fE,\n\u0014\rTu\u007f,v6\u0010E\n\u0018%aMj?@6\tW\u0010\u0012\nGoc.F>\u000bJP\u007f*Z8\u0000\u0010\u0012\u0016Vrh~V2\u0007Vdj*[9\u0003:\u001a\rWns0Uw!J~h'B#\rKsW;F?\u000b@=\u007f2W:\u0001Ji:v]%DMsy1@%\u0001Gi:0S:\u0001Wm{=W~J 4\u000bI2viF2\u0007L2i;Q\"\u0016MicqJ:\b\u000bE\u007f0Q\u0002\u0010Mq*?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002nK\\pv;\\4U\u0015>{;AfV\u001c0}=_\u000b\u0014\rTu\u007f,d6\bQx\u0012\u0012\u0016Vrh~W9\u0007Vdj*[9\u0003\u001e=3\u0016\bCrh7F?\t\u0004su*\u0012$\u0014A~s8[2\u0000\u0004tt~w9\u0007Vdj*[8\nixn6]3DAq\u007f3W9\u0010*\u0017*KiT+^;DIxn6]3D\u0001n4{Aw\tQnn~\\8\u0010\u0004o\u007f*G%\n\u0004so2^\u0010\u0012\nGoc.F>\u000bJP\u007f*Z8\u0000,4\u000bI3viF2\u0007L3i;Q\"\u0016MicpJ:\b\nxt=@.\u0014PXw.F.!Hxw;\\#\u0017\u0003\u00057e\u001dw\u0013Mir~v>\u0003Ann\u0013W#\fKy:\u001f^0\u000bVtn6_wE\u0004\u0001Go\u007f*\u0012<\u0001]=s-\u00125\bE~q2[$\u0010Ay::G2DPr:*]8DI|t'\u00123\u0001Goc.F>\u000bJ={*F2\tTi:8S>\bQo\u007f-]\u0003\fA=[2U8\u0016Mir3\u00126\u0010Pos<G#\u0001\u0004js*Zw\u0005\u0004k{2[3DR|v+Ww\tQnn~P2DTo\u007f-W9\u0010Ay:7\\w\u0010Lx:\u001b\\4\u0016]mn7]9)Air1Vw\u0001Hxw;\\#J(\u0007\bEi|1@:DWhj.]%\u0010\u0004{u,\u0012\u0018%aM:0]#DEk{7^6\u0006Hx4(\u0007\bEi|1@:DWhj.]%\u0010\u0004{u,\u0012\u0018%aM:0]#DEk{7^6\u0006Hx404\u000bI3viF2\u0007L3i;Q\"\u0016MicpJ:\b\ny\u007f=@.\u0014Ptu0s;\u0013Edi\rG4\u0007Ax~-\u00122\nGoc.F>\u000bJP\u007f*Z8\u0000aq";
      int var4 = "?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002fK\u0014)5&_;\u0001J~9?W$V\u0011+7=P404\u000bI3viF2\u0007L3i;Q\"\u0016MicpJ:\b\ny\u007f=@.\u0014Ptu0s;\u0013Edi\rG4\u0007Ax~-\u0003\u00057e*?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002nK\\pv;\\4U\u0015>{;AeQ\u00120}=_F\u0005\u0001Gtj7W9\u0010\u0004OI\u001f\u0012'\u0011Fqs=\u0012<\u0001]=r?Aw\u0010Kr:8W DFtn-\u0012#\u000b\u0004xt=]3\u0001\u0004ir7Aw\u0017]pw;F%\rG=q;K!?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002fK\u0014)5&_;\u0001J~9\u0004\u0003\u001dTx(?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002fK\u0014)5&_;\u0001J~9\u001d]9\u0010Asn>\u0016\u0016Chw;\\#DBrh~r\u0019\u000bPSo2^w\u0014Eo{3W#\u0001V=={ApDK{:{AyAW=w+A#DJrn~P2DJhv2.?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002fK\u0014)5&_;\u0001J~9*@>\u0014Hx~;Az\u0007F~\t\u0016\bCrh7F?\t<\u0002\nE\u007fv;\u0012#\u000b\u0004xt=@.\u0014P=|1@w\u0016A~s.[2\nP=j+P;\rG=q;Kw\u000bB=t1\\z6w\\:*K'\u0001\u001e=+?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002fK\u0014)5&_;\u0001J~9?W$U\u001d/7=P4\t\u0016\bCrh7F?\tVk(\u0013e\u007f0Qm A~h'B#\rKs\\?G;\u0010\u0004ew2\\$^h*b;\\4Y\u0006un*BmK\u000bq{'W%SPxy6\u001c4\u000bI2t-\u001d/\u0001J~5:W4\u0016]mn7]9\u0002Ehv*\u0010xZ\u00100\u0001PR{;B\u0013\rCxi*s;\u0003\u001fw\rW=w7A$\rJz:\u001d['\fAoL?^\"\u0001\u0004xv;_2\nP\f\u0013\rCxi*\u007f2\u0010Lr~\u0004\u001a#b,\f\u0013\rCxi*\u007f2\u0010Lr~H\u0014\u000bQq~0\u0015#DBtt:\u00126\n]=~;Q%\u001dTi\u007f:\u00122\bAp\u007f0F{DTq\u007f?A2DGu\u007f=Yw\u0010Lx:\u001b\\4\u0016]mn;V\u0013\u0005P|:\nK'\u0001<\u0002\nE\u007fv;\u0012#\u000b\u0004xt=@.\u0014P=|1@w\u0016A~s.[2\nP=j+P;\rG=q;Kw\u000bB=t1\\z6w\\:*K'\u0001\u001e=+?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002fK\u0014)5&_;\u0001J~9?W$U\u0016%7=P4*?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002nK\\pv;\\4U\u0015>{;AeQ\u00120}=_*?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002nK\\pv;\\4U\u0015>{;AfV\u001c0}=_\u0018\u0016\bCrh7F?\t\u0004su*\u0012$\u0011Tmu,F2\u0000\u0004\u00100\u0001PR{;B\u0013\rCxi*s;\u0003\r\u0012\nGoc.F2\u0000`|n?,4\u000bI3viF2\u0007L3i;Q\"\u0016MicpJ:\b\nxt=@.\u0014PXw.F.!Hxw;\\#\u0017 4\u000bI2viF2\u0007L2i;Q\"\u0016MicqJ:\b\u000bE\u007f0Q\u0002\u0010Mq\u0004$\fE,\n\u0014\rTu\u007f,v6\u0010E\n\u0018%aMj?@6\tW\u0010\u0012\nGoc.F>\u000bJP\u007f*Z8\u0000\u0010\u0012\u0016Vrh~V2\u0007Vdj*[9\u0003:\u001a\rWns0Uw!J~h'B#\rKsW;F?\u000b@=\u007f2W:\u0001Ji:v]%DMsy1@%\u0001Gi:0S:\u0001Wm{=W~J 4\u000bI2viF2\u0007L2i;Q\"\u0016MicqJ:\b\u000bE\u007f0Q\u0002\u0010Mq*?\u0010Pm q\u001d \u0013S3mm\u001c8\u0016C2(n\u0002nK\\pv;\\4U\u0015>{;AfV\u001c0}=_\u000b\u0014\rTu\u007f,d6\bQx\u0012\u0012\u0016Vrh~W9\u0007Vdj*[9\u0003\u001e=3\u0016\bCrh7F?\t\u0004su*\u0012$\u0014A~s8[2\u0000\u0004tt~w9\u0007Vdj*[8\nixn6]3DAq\u007f3W9\u0010*\u0017*KiT+^;DIxn6]3D\u0001n4{Aw\tQnn~\\8\u0010\u0004o\u007f*G%\n\u0004so2^\u0010\u0012\nGoc.F>\u000bJP\u007f*Z8\u0000,4\u000bI3viF2\u0007L3i;Q\"\u0016MicpJ:\b\nxt=@.\u0014PXw.F.!Hxw;\\#\u0017\u0003\u00057e\u001dw\u0013Mir~v>\u0003Ann\u0013W#\fKy:\u001f^0\u000bVtn6_wE\u0004\u0001Go\u007f*\u0012<\u0001]=s-\u00125\bE~q2[$\u0010Ay::G2DPr:*]8DI|t'\u00123\u0001Goc.F>\u000bJ={*F2\tTi:8S>\bQo\u007f-]\u0003\fA=[2U8\u0016Mir3\u00126\u0010Pos<G#\u0001\u0004js*Zw\u0005\u0004k{2[3DR|v+Ww\tQnn~P2DTo\u007f-W9\u0010Ay:7\\w\u0010Lx:\u001b\\4\u0016]mn7]9)Air1Vw\u0001Hxw;\\#J(\u0007\bEi|1@:DWhj.]%\u0010\u0004{u,\u0012\u0018%aM:0]#DEk{7^6\u0006Hx4(\u0007\bEi|1@:DWhj.]%\u0010\u0004{u,\u0012\u0018%aM:0]#DEk{7^6\u0006Hx404\u000bI3viF2\u0007L3i;Q\"\u0016MicpJ:\b\ny\u007f=@.\u0014Ptu0s;\u0013Edi\rG4\u0007Ax~-\u00122\nGoc.F>\u000bJP\u007f*Z8\u0000aq"
         .length();
      char var1 = '+';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 63;
         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) {
                     a = var5;
                     String[] var9 = a;
                     PROP_DECRYPTION_ALWAYS_SUCCEEDS = a[1];
                     AES_128_CBC = var9[22];
                     PROP_ENCRYPT_EMPTY_ELEMENTS = var9[28];
                     AES_128_GCM = var9[24];
                     TRIPLE_DES_CBC = var9[9];
                     AES_192_CBC = var9[12];
                     AES_256_CBC = var9[0];
                     AES_256_GCM = var9[23];
                     Init.init();
                     return;
                  }

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

                  var2 = "2:gXZ\u001em\u0015 qI\n*k\u00001gYg\u000bv\u000f;p\rL\u0001pG\u0011zNX\u0017r\u00131pfO\u0017\"\":w_S\u001ev\u000e;z`O\u001aj\b0.\r\u0010\"&fBXNf\u00027fTZ\u001ak\t3";
                  var4 = "2:gXZ\u001em\u0015 qI\n*k\u00001gYg\u000bv\u000f;p\rL\u0001pG\u0011zNX\u0017r\u00131pfO\u0017\"\":w_S\u001ev\u000e;z`O\u001aj\b0.\r\u0010\"&fBXNf\u00027fTZ\u001ak\t3"
                     .length();
                  var1 = '<';
                  var7 = -1;
            }

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

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

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

      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 -> 104;
            case 1 -> 91;
            case 2 -> 27;
            case 3 -> 34;
            case 4 -> 37;
            case 5 -> 97;
            default -> 13;
         });
      }

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

   public static class XencException extends Exception {
      static final long serialVersionUID = 1605951731986934567L;

      public XencException(String var1) {
         super(var1);
      }

      public XencException(String var1, Throwable var2) {
         super(var1, var2);
      }

      public XencException(Throwable var1) {
         super(var1);
      }
   }
}
