package com.l7tech.security.xml;

import com.l7tech.common.io.CertUtils;
import com.l7tech.common.io.XmlUtil;
import com.l7tech.security.cert.KeyUsageActivity;
import com.l7tech.security.cert.KeyUsageChecker;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.DomUtils;
import com.l7tech.util.InvalidDocumentFormatException;
import com.l7tech.util.SoapConstants;
import com.l7tech.xml.DomElementCursor;
import com.l7tech.xml.InvalidXpathException;
import com.l7tech.xml.soap.SoapUtil;
import com.l7tech.xml.xpath.DomCompiledXpath;
import com.l7tech.xml.xpath.XpathExpression;
import com.l7tech.xml.xpath.XpathResult;
import java.security.Key;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SignatureException;
import java.security.cert.CertificateEncodingException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
import javax.crypto.SecretKey;
import javax.xml.crypto.KeySelectorException;
import javax.xml.crypto.MarshalException;
import javax.xml.crypto.XMLStructure;
import javax.xml.crypto.dom.DOMStructure;
import javax.xml.crypto.dsig.Reference;
import javax.xml.crypto.dsig.XMLSignatureFactory;
import javax.xml.crypto.dsig.keyinfo.KeyInfo;
import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
import javax.xml.crypto.dsig.keyinfo.KeyName;
import javax.xml.crypto.dsig.keyinfo.X509Data;
import javax.xml.xpath.XPathExpressionException;
import org.jetbrains.annotations.NotNull;
import org.w3c.dom.Element;
import org.w3c.dom.Node;

public class DsigUtil {
   public static final String DIGSIG_URI;
   public static final String PROP_DIGSIG_INCLUSIVE_NAMESPACES_PREFIX;
   private static final String[] a;

   public static String getIdAttribute(Element 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/DsigUtil.a [Ljava/lang/String;
      // 03: astore 2
      // 04: aload 2
      // 05: bipush 18
      // 07: aaload
      // 08: astore 1
      // 09: aload 0
      // 0a: ifnull 62
      // 0d: aload 2
      // 0e: bipush 29
      // 10: aaload
      // 11: aload 0
      // 12: invokeinterface org/w3c/dom/Element.getLocalName ()Ljava/lang/String; 1
      // 17: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 1a: ifeq 62
      // 1d: goto 24
      // 20: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 23: athrow
      // 24: getstatic com/l7tech/security/xml/DsigUtil.a [Ljava/lang/String;
      // 27: bipush 26
      // 29: aaload
      // 2a: aload 0
      // 2b: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 30: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 33: ifeq 49
      // 36: goto 3d
      // 39: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3c: athrow
      // 3d: getstatic com/l7tech/security/xml/DsigUtil.a [Ljava/lang/String;
      // 40: astore 2
      // 41: aload 2
      // 42: bipush 19
      // 44: aaload
      // 45: astore 1
      // 46: goto 62
      // 49: getstatic com/l7tech/security/xml/DsigUtil.a [Ljava/lang/String;
      // 4c: astore 2
      // 4d: aload 2
      // 4e: bipush 49
      // 50: aaload
      // 51: aload 0
      // 52: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 57: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 5a: ifeq 62
      // 5d: aload 2
      // 5e: bipush 9
      // 60: aaload
      // 61: astore 1
      // 62: aload 1
      // 63: areturn
      // try (6 -> 15): 16 java/lang/IllegalArgumentException
      // try (8 -> 25): 26 java/lang/IllegalArgumentException
   }

   public static String getIdValue(@NotNull Element var0, @NotNull String var1) {
      try {
         if (var0 == null) {
            a(0);
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      try {
         if (var1 == null) {
            a(1);
         }
      } catch (IllegalArgumentException var5) {
         throw a(var5);
      }

      String var2 = var0.getAttribute(var1);

      try {
         if (var2 != null && var2.length() >= 1) {
            return var2;
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      var2 = SoapUtil.generateUniqueId(a[38], 0);
      var0.setAttributeNS(null, var1, var2);
      return var2;
   }

   public static SupportedSignatureMethods getSignatureMethodForSignerPrivateKey(Key var0, String var1, boolean var2) throws SignatureException {
      SupportedDigestMethods var3;
      try {
         var3 = SupportedDigestMethods.fromAlias(var1);
      } catch (IllegalArgumentException var8) {
         var3 = a(var0.getAlgorithm());
      }

      String var4;
      label62: {
         label66: {
            try {
               if (var0 instanceof PublicKey || var0 instanceof PrivateKey) {
                  break label66;
               }
            } catch (IllegalArgumentException var11) {
               throw a(var11);
            }

            if (!(var0 instanceof SecretKey)) {
               try {
                  if (var0 != null) {
                     throw new SignatureException(a[17] + var0.getAlgorithm() + a[46] + var0.getClass().getName());
                  }
               } catch (IllegalArgumentException var9) {
                  throw a(var9);
               }

               String[] var13 = a;
               throw new NullPointerException(var13[39]);
            }

            String[] var6 = a;
            var4 = var6[10];
            break label62;
         }

         var4 = var0.getAlgorithm();
      }

      SupportedSignatureMethods var5 = SupportedSignatureMethods.fromKeyAndMessageDigest(var4, var3.getCanonicalName());

      try {
         if (var5 != null) {
            return var5;
         }
      } catch (IllegalArgumentException var10) {
         throw a(var10);
      }

      if (var2) {
         var5 = SupportedSignatureMethods.fromKeyAlg(var4);

         try {
            if (var5 != null) {
               return var5;
            }
         } catch (IllegalArgumentException var7) {
            throw a(var7);
         }
      }

      String var10003 = var3.getCanonicalName();
      String[] var14 = a;
      throw new SignatureException(var14[40] + var4 + var14[33] + var10003);
   }

   static void a(Element var0) {
      String[] var3 = a;
      String var1 = ConfigFactory.getProperty(var3[2], null);

      try {
         if (var1 == null || var1.isEmpty()) {
            return;
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      var3 = a;
      Element var2 = XmlUtil.createAndAppendElementNS(var0, SoapConstants.INCLUSIVE_NAMESPACES_EL_NAME, var3[1], var3[35]);
      var2.setAttribute(SoapConstants.PREFIX_LIST_ATTR_NAME, var1);
   }

   public static void precheckSigElement(Element var0, Key var1) throws SignatureException {
      try {
         Element var2 = b(var0);
         c(var2);
         a(var2, var1);
      } catch (InvalidDocumentFormatException var3) {
         throw new SignatureException(var3);
      }
   }

   public static String findSigAlgorithm(Element var0) throws SignatureException {
      try {
         Element var1 = b(var0);
         String[] var3 = a;
         String var2 = var1.getAttribute(var3[41]);

         try {
            if (var2 == null) {
               throw new SignatureException(var3[28]);
            }
         } catch (InvalidDocumentFormatException var4) {
            throw a(var4);
         }

         return var2;
      } catch (InvalidDocumentFormatException var5) {
         throw new SignatureException(var5);
      }
   }

   public static String[] findDigestAlgorithms(Element var0) throws SignatureException {
      ArrayList var1 = new ArrayList();
      var1.add(
         SupportedDigestMethods.fromAlias(SupportedSignatureMethods.fromSignatureAlgorithm(findSigAlgorithm(var0)).getDigestAlgorithmName()).getIdentifier()
      );

      try {
         String[] var7 = a;
         Element var2 = DomUtils.findExactlyOneChildElementByName(var0, SoapUtil.DIGSIG_URI, var7[24]);

         for (Element var4 : DomUtils.findChildElementsByName(var2, SoapUtil.DIGSIG_URI, SoapConstants.REFERENCE_EL_NAME)) {
            Element var5 = DomUtils.findExactlyOneChildElementByName(var4, SoapUtil.DIGSIG_URI, SoapConstants.REFERENCE_DIGEST_METHOD_EL_NAME);
            var7 = a;
            String var6 = var5.getAttribute(var7[41]);

            try {
               if (var6 == null) {
                  throw new SignatureException(var7[68]);
               }
            } catch (InvalidDocumentFormatException var8) {
               throw a(var8);
            }

            var1.add(var6);
         }
      } catch (InvalidDocumentFormatException var9) {
         throw new SecurityException(var9);
      }

      return var1.toArray(new String[var1.size()]);
   }

   private static Element b(Element var0) throws InvalidDocumentFormatException {
      try {
         if (var0 == null) {
            throw new IllegalArgumentException(a[45]);
         }
      } catch (InvalidDocumentFormatException var3) {
         throw a(var3);
      }

      String[] var2 = a;
      Element var1 = DomUtils.findExactlyOneChildElementByName(var0, SoapUtil.DIGSIG_URI, var2[23]);
      return DomUtils.findExactlyOneChildElementByName(var1, SoapUtil.DIGSIG_URI, var2[59]);
   }

   private static void c(Element var0) throws SignatureException {
      String[] var2 = a;
      Element var1 = DomUtils.findFirstChildElementByName(var0, SoapUtil.DIGSIG_URI, var2[64]);

      try {
         if (var1 != null) {
            throw new SignatureException(var2[57]);
         }
      } catch (SignatureException var3) {
         throw a(var3);
      }
   }

   private static void a(Element param0, Key param1) throws SignatureException {
      // $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: invokestatic com/l7tech/security/xml/DsigUtil.d (Lorg/w3c/dom/Element;)Z
      // 04: ifeq 45
      // 07: aload 1
      // 08: instanceof javax/crypto/SecretKey
      // 0b: ifne 45
      // 0e: goto 15
      // 11: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 14: athrow
      // 15: new java/security/SignatureException
      // 18: dup
      // 19: aload 1
      // 1a: invokeinterface java/security/Key.getAlgorithm ()Ljava/lang/String; 1
      // 1f: aload 1
      // 20: invokeinterface java/security/Key.getClass ()Ljava/lang/Class; 1
      // 25: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 28: getstatic com/l7tech/security/xml/DsigUtil.a [Ljava/lang/String;
      // 2b: bipush 0
      // 2c: aaload
      // 2d: dup_x2
      // 2e: pop
      // 2f: getstatic com/l7tech/security/xml/DsigUtil.a [Ljava/lang/String;
      // 32: bipush 34
      // 34: aaload
      // 35: swap
      // 36: ldc ")"
      // 38: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;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\u0001\u0001" ]
      // 3d: invokespecial java/security/SignatureException.<init> (Ljava/lang/String;)V
      // 40: athrow
      // 41: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 44: athrow
      // 45: return
      // try (0 -> 6): 7 java/security/SignatureException
      // try (3 -> 29): 29 java/security/SignatureException
   }

   private static boolean d(Element 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: getstatic com/l7tech/security/xml/DsigUtil.a [Ljava/lang/String;
      // 04: astore 2
      // 05: aload 2
      // 06: bipush 56
      // 08: aaload
      // 09: invokeinterface org/w3c/dom/Element.getAttribute (Ljava/lang/String;)Ljava/lang/String; 2
      // 0e: astore 1
      // 0f: aload 1
      // 10: ifnull 2d
      // 13: aload 1
      // 14: aload 2
      // 15: bipush 58
      // 17: aaload
      // 18: invokevirtual java/lang/String.indexOf (Ljava/lang/String;)I
      // 1b: iflt 2d
      // 1e: goto 25
      // 21: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 24: athrow
      // 25: bipush 1
      // 26: goto 2e
      // 29: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2c: athrow
      // 2d: bipush 0
      // 2e: ireturn
      // try (8 -> 16): 17 java/lang/IllegalArgumentException
      // try (10 -> 21): 21 java/lang/IllegalArgumentException
   }

   public static void stripSignatures(Element var0) {
      String[] var4 = a;

      for (Element var3 : DomUtils.findChildElementsByName(var0, var4[60], var4[50])) {
         var3.getParentNode().removeChild(var3);
      }
   }

   public static SupportedSignatureMethods getSignatureMethod(PrivateKey param0) throws SignatureException {
      // $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: invokeinterface java/security/PrivateKey.getAlgorithm ()Ljava/lang/String; 1
      // 06: astore 1
      // 07: aload 0
      // 08: instanceof java/security/interfaces/ECPrivateKey
      // 0b: ifne 22
      // 0e: getstatic com/l7tech/security/xml/DsigUtil.a [Ljava/lang/String;
      // 11: bipush 67
      // 13: aaload
      // 14: aload 1
      // 15: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 18: ifeq 2a
      // 1b: goto 22
      // 1e: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 21: athrow
      // 22: bipush 1
      // 23: goto 2b
      // 26: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 29: athrow
      // 2a: bipush 0
      // 2b: istore 2
      // 2c: iload 2
      // 2d: ifeq 3d
      // 30: getstatic com/l7tech/security/xml/DsigUtil.a [Ljava/lang/String;
      // 33: bipush 30
      // 35: aaload
      // 36: goto 3e
      // 39: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3c: athrow
      // 3d: aload 1
      // 3e: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/String;)Lcom/l7tech/security/xml/SupportedDigestMethods;
      // 41: astore 3
      // 42: aload 0
      // 43: instanceof java/security/interfaces/RSAPrivateKey
      // 46: ifne 5d
      // 49: getstatic com/l7tech/security/xml/DsigUtil.a [Ljava/lang/String;
      // 4c: bipush 53
      // 4e: aaload
      // 4f: aload 1
      // 50: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 53: ifeq 7b
      // 56: goto 5d
      // 59: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5c: athrow
      // 5d: getstatic com/l7tech/security/xml/SupportedDigestMethods.SHA256 Lcom/l7tech/security/xml/SupportedDigestMethods;
      // 60: aload 3
      // 61: if_acmpne 73
      // 64: goto 6b
      // 67: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6a: athrow
      // 6b: getstatic com/l7tech/security/xml/SupportedSignatureMethods.RSA_SHA256 Lcom/l7tech/security/xml/SupportedSignatureMethods;
      // 6e: astore 4
      // 70: goto f8
      // 73: getstatic com/l7tech/security/xml/SupportedSignatureMethods.RSA_SHA1 Lcom/l7tech/security/xml/SupportedSignatureMethods;
      // 76: astore 4
      // 78: goto f8
      // 7b: iload 2
      // 7c: ifeq ac
      // 7f: getstatic com/l7tech/security/xml/SupportedDigestMethods.SHA256 Lcom/l7tech/security/xml/SupportedDigestMethods;
      // 82: aload 3
      // 83: if_acmpne 95
      // 86: goto 8d
      // 89: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8c: athrow
      // 8d: getstatic com/l7tech/security/xml/SupportedSignatureMethods.ECDSA_SHA256 Lcom/l7tech/security/xml/SupportedSignatureMethods;
      // 90: astore 4
      // 92: goto f8
      // 95: getstatic com/l7tech/security/xml/SupportedDigestMethods.SHA512 Lcom/l7tech/security/xml/SupportedDigestMethods;
      // 98: aload 3
      // 99: if_acmpne a4
      // 9c: getstatic com/l7tech/security/xml/SupportedSignatureMethods.ECDSA_SHA512 Lcom/l7tech/security/xml/SupportedSignatureMethods;
      // 9f: astore 4
      // a1: goto f8
      // a4: getstatic com/l7tech/security/xml/SupportedSignatureMethods.ECDSA_SHA384 Lcom/l7tech/security/xml/SupportedSignatureMethods;
      // a7: astore 4
      // a9: goto f8
      // ac: aload 0
      // ad: instanceof java/security/interfaces/DSAPrivateKey
      // b0: ifeq bb
      // b3: getstatic com/l7tech/security/xml/SupportedSignatureMethods.DSA_SHA1 Lcom/l7tech/security/xml/SupportedSignatureMethods;
      // b6: astore 4
      // b8: goto f8
      // bb: aload 0
      // bc: instanceof javax/crypto/SecretKey
      // bf: ifeq ca
      // c2: getstatic com/l7tech/security/xml/SupportedSignatureMethods.HMAC_SHA1 Lcom/l7tech/security/xml/SupportedSignatureMethods;
      // c5: astore 4
      // c7: goto f8
      // ca: new java/security/SignatureException
      // cd: dup
      // ce: aload 0
      // cf: invokeinterface java/security/PrivateKey.getAlgorithm ()Ljava/lang/String; 1
      // d4: aload 0
      // d5: invokeinterface java/security/PrivateKey.getClass ()Ljava/lang/Class; 1
      // da: invokevirtual java/lang/Class.getName ()Ljava/lang/String;
      // dd: getstatic com/l7tech/security/xml/DsigUtil.a [Ljava/lang/String;
      // e0: astore 5
      // e2: aload 5
      // e4: bipush 31
      // e6: aaload
      // e7: dup_x2
      // e8: pop
      // e9: aload 5
      // eb: bipush 51
      // ed: aaload
      // ee: swap
      // ef: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // f4: invokespecial java/security/SignatureException.<init> (Ljava/lang/String;)V
      // f7: athrow
      // f8: aload 4
      // fa: areturn
      // try (3 -> 12): 13 java/security/SignatureException
      // try (6 -> 17): 17 java/security/SignatureException
      // try (21 -> 27): 27 java/security/SignatureException
      // try (32 -> 41): 42 java/security/SignatureException
      // try (35 -> 47): 48 java/security/SignatureException
      // try (56 -> 61): 62 java/security/SignatureException
   }

   private static SupportedDigestMethods a(String var0) {
      try {
         if (a[66].equals(var0)) {
            return SupportedDigestMethods.SHA1;
         }
      } catch (IllegalArgumentException var5) {
         throw a(var5);
      }

      try {
         String[] var2 = a;
         return SupportedDigestMethods.fromAlias(ConfigFactory.getProperty(var2[25], null));
      } catch (IllegalArgumentException var4) {
         try {
            if (a[30].equals(var0)) {
               return SupportedDigestMethods.SHA384;
            }
         } catch (IllegalArgumentException var3) {
            throw a(var3);
         }

         return SupportedDigestMethods.SHA1;
      }
   }

   @NotNull
   public static String getIdFromReference(@NotNull Reference var0) {
      try {
         if (var0 == null) {
            a(2);
         }
      } catch (IllegalArgumentException var6) {
         throw a(var6);
      }

      String var1 = var0.getURI();

      try {
         if (null == var1) {
            throw new NullPointerException(a[65]);
         }
      } catch (IllegalArgumentException var5) {
         throw a(var5);
      }

      var1 = var1.trim();

      label49: {
         try {
            if (var1.length() == 0 || var1.charAt(0) != '#') {
               break label49;
            }
         } catch (IllegalArgumentException var4) {
            throw a(var4);
         }

         var1 = var1.substring(1);
      }

      label42: {
         try {
            if (!var1.startsWith(a[47]) || !var1.endsWith(a[44])) {
               break label42;
            }
         } catch (IllegalArgumentException var3) {
            throw a(var3);
         }

         var1 = var1.substring(13, var1.length() - 3);
      }

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

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

   public static boolean hasSamlEnvelopedTransform(@NotNull String var0, @NotNull Element var1) throws SignatureException {
      try {
         if (var0 == null) {
            a(4);
         }
      } catch (InvalidXpathException var9) {
         throw a(var9);
      }

      try {
         if (var1 == null) {
            a(5);
         }
      } catch (InvalidXpathException var10) {
         throw a(var10);
      }

      String var2 = "#" + var0;
      String[] var7 = a;
      String var3 = var7[52] + var2 + var7[13];
      XpathExpression var4 = new XpathExpression(var3, var7[16], SoapConstants.DIGSIG_URI);

      try {
         DomCompiledXpath var5 = new DomCompiledXpath(var4);
         XpathResult var6 = var5.getXpathResult(new DomElementCursor(var1), null);
         return var6.matches();
      } catch (InvalidXpathException | XPathExpressionException var8) {
         throw new SignatureException(a[42] + var8.getMessage());
      }
   }

   public static Element searchForKeyInfo(Element var0) {
      Element var1 = null;
      Node var2 = var0.getFirstChild();

      while (true) {
         label22: {
            try {
               if (var2 == null) {
                  break;
               }

               if (var2.getNodeType() != 1) {
                  break label22;
               }
            } catch (IllegalArgumentException var4) {
               throw a(var4);
            }

            Element var3 = (Element)var2;
            if (a(var3, a[4])) {
               var1 = var3;
               break;
            }
         }

         var2 = var2.getNextSibling();
      }

      return var1;
   }

   private static boolean a(Element param0, String param1) {
      // $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: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 06: astore 2
      // 07: aload 2
      // 08: ifnonnull 11
      // 0b: bipush 0
      // 0c: ireturn
      // 0d: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 10: athrow
      // 11: aload 2
      // 12: getstatic com/l7tech/security/xml/DsigUtil.a [Ljava/lang/String;
      // 15: bipush 11
      // 17: aaload
      // 18: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 1b: ifeq 3a
      // 1e: aload 0
      // 1f: invokeinterface org/w3c/dom/Element.getLocalName ()Ljava/lang/String; 1
      // 24: aload 1
      // 25: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 28: ifeq 3a
      // 2b: goto 32
      // 2e: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 31: athrow
      // 32: bipush 1
      // 33: goto 3b
      // 36: invokestatic com/l7tech/security/xml/DsigUtil.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 39: athrow
      // 3a: bipush 0
      // 3b: ireturn
      // try (3 -> 7): 7 java/lang/IllegalArgumentException
      // try (9 -> 20): 21 java/lang/IllegalArgumentException
      // try (15 -> 25): 25 java/lang/IllegalArgumentException
   }

   public static X509Certificate getSigningCertFromKeyInfo(@NotNull Element var0, SecurityTokenResolver var1) throws SignatureException {
      try {
         if (var0 == null) {
            a(6);
         }
      } catch (SignatureException var19) {
         throw a(var19);
      }

      X509Certificate var2 = null;

      try {
         String[] var10 = a;
         KeyInfoFactory var3 = XMLSignatureFactory.getInstance(var10[5], L7XmlDsigProvider.INSTANCE).getKeyInfoFactory();
         KeyInfo var4 = var3.unmarshalKeyInfo(new DOMStructure(var0));

         try {
            if (null == var4) {
               throw new SignatureException(var10[22]);
            }
         } catch (SignatureException var15) {
            throw a(var15);
         }

         ArrayList var5 = new ArrayList(1);
         ArrayList var6 = new ArrayList(1);

         for (XMLStructure var9 : var4.getContent()) {
            try {
               if (var9 instanceof X509Data) {
                  ((X509Data)var9).getContent().stream().filter(X509Certificate.class::isInstance).forEach(var1x -> var5.add((X509Certificate)var1x));
                  continue;
               }
            } catch (SignatureException var14) {
               throw a(var14);
            }

            try {
               if (var9 instanceof KeyName) {
                  var6.add(((KeyName)var9).getName());
               }
            } catch (SignatureException var12) {
               throw a(var12);
            }
         }

         String var10000;
         label93: {
            try {
               if (var6.isEmpty()) {
                  var10000 = null;
                  break label93;
               }
            } catch (SignatureException var16) {
               throw a(var16);
            }

            var10000 = (String)var6.get(0);
         }

         String var21 = var10000;
         if (var21 != null) {
            var2 = var1.lookupByKeyName(CertUtils.formatDN(var21));
         } else if (!var5.isEmpty()) {
            var2 = (X509Certificate)var5.get(0);
         }

         try {
            if (var2 == null) {
               throw new SignatureException(a[21]);
            }
         } catch (SignatureException var17) {
            throw a(var17);
         }
      } catch (SignatureException | MarshalException var18) {
         throw new SignatureException(var18);
      }

      PublicKey var20 = var2.getPublicKey();

      try {
         if (var20 == null) {
            throw new SignatureException(a[15]);
         }
      } catch (SignatureException var13) {
         throw a(var13);
      }

      try {
         KeyUsageChecker.requireActivity(KeyUsageActivity.verifyXml, var2);
         var2.checkValidity();
         return var2;
      } catch (CertificateException var11) {
         throw new SignatureException(var11);
      }
   }

   public static List<X509Certificate> getCertificatesFromKeyInfo(@NotNull Element var0) throws MarshalException, KeySelectorException {
      try {
         if (var0 == null) {
            a(7);
         }
      } catch (MarshalException var11) {
         throw a(var11);
      }

      ArrayList var1 = new ArrayList();
      String[] var7 = a;
      KeyInfoFactory var2 = XMLSignatureFactory.getInstance(var7[7], L7XmlDsigProvider.INSTANCE).getKeyInfoFactory();
      KeyInfo var3 = var2.unmarshalKeyInfo(new DOMStructure(var0));

      try {
         if (null == var3) {
            throw new KeySelectorException(var7[55]);
         }
      } catch (MarshalException var10) {
         throw a(var10);
      }

      for (XMLStructure var6 : var3.getContent()) {
         try {
            if (var6 instanceof X509Data) {
               ((X509Data)var6).getContent().stream().filter(X509Certificate.class::isInstance).forEach(var1x -> var1.add((X509Certificate)var1x));
            }
         } catch (MarshalException var9) {
            throw a(var9);
         }
      }

      try {
         if (var1.isEmpty()) {
            throw new KeySelectorException(a[12]);
         } else {
            return var1;
         }
      } catch (MarshalException var8) {
         throw a(var8);
      }
   }

   public static byte[] calculateCertificateShaDigest(X509Certificate var0, String var1) {
      try {
         MessageDigest var2 = MessageDigest.getInstance(var1);
         byte[] var3 = var0.getEncoded();
         var2.update(var3);
         return var2.digest();
      } catch (CertificateEncodingException | NoSuchAlgorithmException var4) {
         throw new RuntimeException(var4);
      }
   }

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

   static {
      String[] var5 = new String[71];
      int var3 = 0;
      String var2 = "\u0003 >vVd%\"!\u007fb_sl07\u007f\\w@Fv=6sT`q#<:4Mhq>n4qC!j0n+mJd%'>:+d\u0000.*!9(:M2+9<8;\b15gan$\u0015yh:c:lY,fgz17B5!2:V6q3-7:Idf#<6`C/};\"qp_bj$/+{H/a?),}]/l8-3aIhs3\u0000>y_ru7-:gjs`0''>\u0017<8aWdk\"n9{H!E\u0018!+ZOmiv>>f[l`\"+-4\u001d$vqn0r\u001a$vxk,4Wtv\"n1{N!g3n1aVm\u0007\u001d+&]Tgj\u0003\u0012\u0001\u0012\u001a1++W_sq?(6w[u`%\b-{WJ`/\u00071rU\u0003\u0012\u0001\u0012\u000f%/2x{rv3<+}UoL2\u0002\u001f\n\t\u0005+<f_uN37\">:+d\u0000.*!9(:M2+9<8;\b15fao-\u0015yh:*,}]\"\r\u0018!\u007f\u007f_x%0!*z^ aq\u0013ppI;Q$/1g\\nw;=ppI;Q$/1g\\nw;\u0015\u001fUVfj$'+|W<\">:+d\u0000.*!9(:M2+9<8;\b15fao-\u0015yh:*,}]\"`88:xUq`2c,}]od\";-q\u001d\\\u00121++]^Gw9#\rq\\dw3 <q\u001a\u0003 >vVd%\"!\u007frSoav=6sThk1n4qC\u00022=!\u0005'8zSobv\u0005:m\u001au|&+\u007fzUu%$+<{]ol,+;.\u001a\u0002\u001f*\u000b\u0017=,qHul9 \u0016P\u0006?*\u001e`Ns\u001b\u0015!*x^!k9:\u007frSoav-:fNhc?->`_/\u001b8!\u007fpI;N37\u0016z\\n%3\":y_oqv(0aTe\n\u0005'8z_eL8(0\n\u0005'8z_eL8(065!2:V6q3-7:Idf#<6`C/};\"qp_bj$/+{H/a?),}]/h3=,u]da?):gN%#<1.U`v?=ez[l`%t+w\u0000RD\u001b\u0002e%\u00141?7=,qHul9  5!2;V6q3-7;Idf#<6`C.};\"pPIhb\u0003:6x5\u0017\"8{Hhq>#\u007fuNuw?,*`_!k9:\u007fgJdf?(6q^!c9<\u007fGSfk7:*f_L`\"&0p\t\u0017=,qHul9 \u0002\u0013\r4\u0018!\u007fgSfk7:*f_!h3:7{^!d /6x[ci3n9{H!v?)1}Tf%=+&4Nxu3t\u007fB5!2:V6q3-7:Idf#<6`C/};\"qp_bj$/+{H/a?),}]/l8-3aIhs3\u0000>y_ru7-:gjs`0''\u0014v/1p\u001al`%=>s_!a?):gN!\u0002vf\u00045\u007fkz 5!2;V6q3-7;Idf#<6`C.};\"pPIhb\u0003:6x\n1++]^Wd:;:\u0004$!0`\u001c%+1p_sV?)1}TfN37\u007f}I!w3?*}Hda+\u0018!\u007fgSfk7:*f_!h3:7{^!d /6x[ci3n9{H!n37\u007f`Cq`v\t\u0017\"8{Hhq>#*\u0013<-{H!s3<6rChk1n\fuWm%\u0002<>zIgj$#\u007fUVfj$'+|W;%\u00121++]^Gw9#\rq\\dw3 <q\u0003qgv\u000f8+:p\u001arl1\u000b3qWdk\"\u0003va\u007f\r.>0}Tu`$f6p\u0012&\u000e=+&]Tgj\u0013\":y_oq%#<1.U`v?=ez[l`%t+w\u0000RD\u001b\u0002e&\u00141?7=,qHul9 \t\u0005'8z[up$+\u0003va\u007f#ya;g\u0000Rl1 :psoc9a;g\u0000S`0+-qTb`\r\u000e\nFs<\"\u0003\u0004\u001d\u001e*\u0016\u00000`tti:n2qNij2nzg\u0014$vv#*gN!k9:\u007ff_up$ \u007fzOmi\u001b8!\u007fpI;N37\u0016z\\n%3\":y_oqv(0aTe\t\u0017\"8{Hhq>#D\u0003 ,aJqj$::p\u001aRl1 >`Os`ln\f}]od\";-q\u001abj8:>}Tr%\u001e\u0003\u001eWutq&;+X_ob\"&\u007fd[sd;++qH\u0006u&2uY,\u000f\u0005'8z[up$+\u0012qNij2\">:+d\u0000.*!9(:M2+9<8;\b15fao-\u0015yh:*,}]\"\u00073\":y_oq\u0019>/,G[li\u0013 )qVnu3*\u000bf[ov0!-y\u00191++GSfk? 8W_sq\u0010<0yqd|\u001f 9{\u0010\u001e\u0003\u001eWutq&;+X_ob\"&\u0015\u0004+9qHdk5+\u007fAhH%?=\u007fzOmi\u0003\u0012\u001d\u001e\u0002\u0013\r<\u0017\"8{Hhq>#\u007fuNuw?,*`_!k9:\u007fgJdf?(6q^!c9<\u007ff_g`$+1w_!A?):gNL`\"&0p";
      int var4 = "\u0003 >vVd%\"!\u007fb_sl07\u007f\\w@Fv=6sT`q#<:4Mhq>n4qC!j0n+mJd%'>:+d\u0000.*!9(:M2+9<8;\b15gan$\u0015yh:c:lY,fgz17B5!2:V6q3-7:Idf#<6`C/};\"qp_bj$/+{H/a?),}]/l8-3aIhs3\u0000>y_ru7-:gjs`0''>\u0017<8aWdk\"n9{H!E\u0018!+ZOmiv>>f[l`\"+-4\u001d$vqn0r\u001a$vxk,4Wtv\"n1{N!g3n1aVm\u0007\u001d+&]Tgj\u0003\u0012\u0001\u0012\u001a1++W_sq?(6w[u`%\b-{WJ`/\u00071rU\u0003\u0012\u0001\u0012\u000f%/2x{rv3<+}UoL2\u0002\u001f\n\t\u0005+<f_uN37\">:+d\u0000.*!9(:M2+9<8;\b15fao-\u0015yh:*,}]\"\r\u0018!\u007f\u007f_x%0!*z^ aq\u0013ppI;Q$/1g\\nw;=ppI;Q$/1g\\nw;\u0015\u001fUVfj$'+|W<\">:+d\u0000.*!9(:M2+9<8;\b15fao-\u0015yh:*,}]\"`88:xUq`2c,}]od\";-q\u001d\\\u00121++]^Gw9#\rq\\dw3 <q\u001a\u0003 >vVd%\"!\u007frSoav=6sThk1n4qC\u00022=!\u0005'8zSobv\u0005:m\u001au|&+\u007fzUu%$+<{]ol,+;.\u001a\u0002\u001f*\u000b\u0017=,qHul9 \u0016P\u0006?*\u001e`Ns\u001b\u0015!*x^!k9:\u007frSoav-:fNhc?->`_/\u001b8!\u007fpI;N37\u0016z\\n%3\":y_oqv(0aTe\n\u0005'8z_eL8(0\n\u0005'8z_eL8(065!2:V6q3-7:Idf#<6`C/};\"qp_bj$/+{H/a?),}]/h3=,u]da?):gN%#<1.U`v?=ez[l`%t+w\u0000RD\u001b\u0002e%\u00141?7=,qHul9  5!2;V6q3-7;Idf#<6`C.};\"pPIhb\u0003:6x5\u0017\"8{Hhq>#\u007fuNuw?,*`_!k9:\u007fgJdf?(6q^!c9<\u007fGSfk7:*f_L`\"&0p\t\u0017=,qHul9 \u0002\u0013\r4\u0018!\u007fgSfk7:*f_!h3:7{^!d /6x[ci3n9{H!v?)1}Tf%=+&4Nxu3t\u007fB5!2:V6q3-7:Idf#<6`C/};\"qp_bj$/+{H/a?),}]/l8-3aIhs3\u0000>y_ru7-:gjs`0''\u0014v/1p\u001al`%=>s_!a?):gN!\u0002vf\u00045\u007fkz 5!2;V6q3-7;Idf#<6`C.};\"pPIhb\u0003:6x\n1++]^Wd:;:\u0004$!0`\u001c%+1p_sV?)1}TfN37\u007f}I!w3?*}Hda+\u0018!\u007fgSfk7:*f_!h3:7{^!d /6x[ci3n9{H!n37\u007f`Cq`v\t\u0017\"8{Hhq>#*\u0013<-{H!s3<6rChk1n\fuWm%\u0002<>zIgj$#\u007fUVfj$'+|W;%\u00121++]^Gw9#\rq\\dw3 <q\u0003qgv\u000f8+:p\u001arl1\u000b3qWdk\"\u0003va\u007f\r.>0}Tu`$f6p\u0012&\u000e=+&]Tgj\u0013\":y_oq%#<1.U`v?=ez[l`%t+w\u0000RD\u001b\u0002e&\u00141?7=,qHul9 \t\u0005'8z[up$+\u0003va\u007f#ya;g\u0000Rl1 :psoc9a;g\u0000S`0+-qTb`\r\u000e\nFs<\"\u0003\u0004\u001d\u001e*\u0016\u00000`tti:n2qNij2nzg\u0014$vv#*gN!k9:\u007ff_up$ \u007fzOmi\u001b8!\u007fpI;N37\u0016z\\n%3\":y_oqv(0aTe\t\u0017\"8{Hhq>#D\u0003 ,aJqj$::p\u001aRl1 >`Os`ln\f}]od\";-q\u001abj8:>}Tr%\u001e\u0003\u001eWutq&;+X_ob\"&\u007fd[sd;++qH\u0006u&2uY,\u000f\u0005'8z[up$+\u0012qNij2\">:+d\u0000.*!9(:M2+9<8;\b15fao-\u0015yh:*,}]\"\u00073\":y_oq\u0019>/,G[li\u0013 )qVnu3*\u000bf[ov0!-y\u00191++GSfk? 8W_sq\u0010<0yqd|\u001f 9{\u0010\u001e\u0003\u001eWutq&;+X_ob\"&\u0015\u0004+9qHdk5+\u007fAhH%?=\u007fzOmi\u0003\u0012\u001d\u001e\u0002\u0013\r<\u0017\"8{Hhq>#\u007fuNuw?,*`_!k9:\u007fgJdf?(6q^!c9<\u007ff_g`$+1w_!A?):gNL`\"&0p"
         .length();
      char var1 = '1';
      int var7 = -1;

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

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

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

                  var2 = "lnq3\u0012<9mb\u0003mbp";
                  var4 = "lnq3\u0012<9mb\u0003mbp".length();
                  var1 = '\t';
                  var7 = -1;
            }

            var10000 = 100;
            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] ^ 40);
      }

      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 -> 123;
            case 1 -> 99;
            case 2 -> 114;
            case 3 -> 57;
            case 4 -> 23;
            case 5 -> 44;
            default -> 40;
         });
      }

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