package com.l7tech.server.policy.assertion.xmlsec;

import com.l7tech.gateway.common.audit.AssertionMessages;
import com.l7tech.message.Message;
import com.l7tech.message.SecurityKnob;
import com.l7tech.objectmodel.Goid;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.PolicyAssertionException;
import com.l7tech.policy.assertion.xmlsec.WsSecurity;
import com.l7tech.policy.variable.Syntax;
import com.l7tech.security.cert.TrustedCert;
import com.l7tech.security.xml.decorator.DecorationRequirements;
import com.l7tech.security.xml.decorator.WssDecorator;
import com.l7tech.server.identity.cert.TrustedCertCache;
import com.l7tech.server.message.AuthenticationContext;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.assertion.AbstractMessageTargetableServerAssertion;
import com.l7tech.server.policy.variable.ExpandVariables;
import com.l7tech.util.InvalidDocumentFormatException;
import com.l7tech.xml.soap.SoapVersion;
import java.io.IOException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.List;
import java.util.Map;
import org.jetbrains.annotations.Nullable;
import org.springframework.context.ApplicationContext;
import org.w3c.dom.Document;

public class ServerWsSecurity extends AbstractMessageTargetableServerAssertion<WsSecurity> {
   private final TrustedCertCache d;
   private final WssDecorator e;
   private static final String[] f;

   public ServerWsSecurity(WsSecurity var1, ApplicationContext var2) {
      super(var1);
      String[] var3 = f;
      this.d = (TrustedCertCache)var2.getBean(var3[0], TrustedCertCache.class);
      this.e = (WssDecorator)var2.getBean(var3[2], WssDecorator.class);
   }

   @Override
   protected AssertionStatus doCheckRequest(PolicyEnforcementContext param1, Message param2, String param3, AuthenticationContext param4) throws IOException, PolicyAssertionException {
      // $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 2
      // 001: invokevirtual com/l7tech/message/Message.isSoap ()Z
      // 004: ifne 016
      // 007: aload 0
      // 008: getstatic com/l7tech/gateway/common/audit/AssertionMessages.WSSECURITY_NON_SOAP Lcom/l7tech/gateway/common/audit/Messages$M;
      // 00b: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 00e: getstatic com/l7tech/policy/assertion/AssertionStatus.NOT_APPLICABLE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 011: areturn
      // 012: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 015: athrow
      // 016: goto 026
      // 019: astore 5
      // 01b: aload 0
      // 01c: getstatic com/l7tech/gateway/common/audit/AssertionMessages.WSSECURITY_NON_SOAP Lcom/l7tech/gateway/common/audit/Messages$M;
      // 01f: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 022: getstatic com/l7tech/policy/assertion/AssertionStatus.NOT_APPLICABLE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 025: areturn
      // 026: aload 2
      // 027: invokevirtual com/l7tech/message/Message.getSecurityKnob ()Lcom/l7tech/message/SecurityKnob;
      // 02a: astore 5
      // 02c: aload 2
      // 02d: invokevirtual com/l7tech/message/Message.getXmlKnob ()Lcom/l7tech/message/XmlKnob;
      // 030: invokeinterface com/l7tech/message/XmlKnob.getDocumentWritable ()Lorg/w3c/dom/Document; 1
      // 035: astore 6
      // 037: new java/util/ArrayList
      // 03a: dup
      // 03b: invokespecial java/util/ArrayList.<init> ()V
      // 03e: astore 7
      // 040: aload 0
      // 041: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 044: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 047: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.isApplyWsSecurity ()Z
      // 04a: ifeq 170
      // 04d: aload 5
      // 04f: invokeinterface com/l7tech/message/SecurityKnob.getDecorationRequirements ()[Lcom/l7tech/security/xml/decorator/DecorationRequirements; 1
      // 054: astore 8
      // 056: aload 6
      // 058: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 05d: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 062: invokestatic com/l7tech/xml/soap/SoapVersion.namespaceToSoapVersion (Ljava/lang/String;)Lcom/l7tech/xml/soap/SoapVersion;
      // 065: astore 9
      // 067: aload 0
      // 068: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 06b: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 06e: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.getWsSecurityVersion ()Lcom/l7tech/security/xml/WsSecurityVersion;
      // 071: ifnull 08c
      // 074: aload 5
      // 076: aload 0
      // 077: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 07a: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 07d: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.getWsSecurityVersion ()Lcom/l7tech/security/xml/WsSecurityVersion;
      // 080: invokeinterface com/l7tech/message/SecurityKnob.setPolicyWssVersion (Lcom/l7tech/security/xml/WsSecurityVersion;)V 2
      // 085: goto 08c
      // 088: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 08b: athrow
      // 08c: aload 8
      // 08e: ifnull 170
      // 091: aload 8
      // 093: arraylength
      // 094: ifle 170
      // 097: goto 09e
      // 09a: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 09d: athrow
      // 09e: aload 8
      // 0a0: astore 10
      // 0a2: aload 10
      // 0a4: arraylength
      // 0a5: istore 11
      // 0a7: bipush 0
      // 0a8: istore 12
      // 0aa: iload 12
      // 0ac: iload 11
      // 0ae: if_icmpge 169
      // 0b1: aload 10
      // 0b3: iload 12
      // 0b5: aaload
      // 0b6: astore 13
      // 0b8: aload 0
      // 0b9: aload 1
      // 0ba: aload 13
      // 0bc: aload 0
      // 0bd: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 0c0: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 0c3: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.isUseSecureSpanActor ()Z
      // 0c6: aload 7
      // 0c8: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Lcom/l7tech/server/message/PolicyEnforcementContext;Lcom/l7tech/security/xml/decorator/DecorationRequirements;ZLjava/util/List;)V
      // 0cb: aload 0
      // 0cc: aload 13
      // 0ce: aload 6
      // 0d0: aload 9
      // 0d2: aload 5
      // 0d4: aload 0
      // 0d5: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 0d8: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 0db: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.isReplaceSecurityHeader ()Z
      // 0de: aload 0
      // 0df: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 0e2: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 0e5: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.isUseSecurityHeaderMustUnderstand ()Z
      // 0e8: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Lcom/l7tech/security/xml/decorator/DecorationRequirements;Lorg/w3c/dom/Document;Lcom/l7tech/xml/soap/SoapVersion;Lcom/l7tech/message/SecurityKnob;ZZ)V
      // 0eb: aload 0
      // 0ec: aload 13
      // 0ee: aload 0
      // 0ef: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 0f2: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 0f5: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.getRecipientTrustedCertificateGoid ()Lcom/l7tech/objectmodel/Goid;
      // 0f8: aload 0
      // 0f9: aload 1
      // 0fa: aload 0
      // 0fb: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 0fe: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 101: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.getRecipientTrustedCertificateName ()Ljava/lang/String;
      // 104: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Lcom/l7tech/server/message/PolicyEnforcementContext;Ljava/lang/String;)Ljava/lang/String;
      // 107: aload 0
      // 108: aload 1
      // 109: aload 0
      // 10a: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 10d: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 110: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.getRecipientTrustedCertificateVariable ()Ljava/lang/String;
      // 113: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.b (Lcom/l7tech/server/message/PolicyEnforcementContext;Ljava/lang/String;)Ljava/security/cert/X509Certificate;
      // 116: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Lcom/l7tech/security/xml/decorator/DecorationRequirements;Lcom/l7tech/objectmodel/Goid;Ljava/lang/String;Ljava/security/cert/X509Certificate;)V
      // 119: aload 2
      // 11a: aload 0
      // 11b: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.getAudit ()Lcom/l7tech/gateway/common/audit/Audit;
      // 11e: invokestatic com/l7tech/server/util/WSSecurityProcessorUtils.addSignatureConfirmations (Lcom/l7tech/message/Message;Lcom/l7tech/gateway/common/audit/Audit;)V
      // 121: aload 0
      // 122: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.e Lcom/l7tech/security/xml/decorator/WssDecorator;
      // 125: aload 2
      // 126: aload 13
      // 128: invokeinterface com/l7tech/security/xml/decorator/WssDecorator.decorateMessage (Lcom/l7tech/message/Message;Lcom/l7tech/security/xml/decorator/DecorationRequirements;)Lcom/l7tech/security/xml/decorator/WssDecorator$DecorationResult; 3
      // 12d: pop
      // 12e: goto 163
      // 131: astore 14
      // 133: aload 0
      // 134: getstatic com/l7tech/gateway/common/audit/AssertionMessages.WSSECURITY_ERROR Lcom/l7tech/gateway/common/audit/Messages$M;
      // 137: bipush 2
      // 138: anewarray 238
      // 13b: dup
      // 13c: bipush 0
      // 13d: aload 0
      // 13e: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 141: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 144: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.getTargetName ()Ljava/lang/String;
      // 147: aastore
      // 148: dup
      // 149: bipush 1
      // 14a: aload 14
      // 14c: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 14f: aastore
      // 150: aload 14
      // 152: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 155: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 158: new com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity$AssertionStatusException
      // 15b: dup
      // 15c: getstatic com/l7tech/policy/assertion/AssertionStatus.FALSIFIED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 15f: invokespecial com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity$AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;)V
      // 162: athrow
      // 163: iinc 12 1
      // 166: goto 0aa
      // 169: aload 5
      // 16b: invokeinterface com/l7tech/message/SecurityKnob.removeAllDecorationRequirements ()V 1
      // 170: aload 0
      // 171: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 174: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 177: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.isRemoveUnmatchedSecurityHeaders ()Z
      // 17a: ifeq 20b
      // 17d: aload 7
      // 17f: getstatic com/l7tech/util/SoapConstants.L7_SOAP_ACTOR Ljava/lang/String;
      // 182: invokeinterface java/util/List.contains (Ljava/lang/Object;)Z 2
      // 187: ifeq 19d
      // 18a: goto 191
      // 18d: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 190: athrow
      // 191: aload 6
      // 193: invokestatic com/l7tech/xml/soap/SoapUtil.getSecurityElementForL7 (Lorg/w3c/dom/Document;)Lorg/w3c/dom/Element;
      // 196: goto 19e
      // 199: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 19c: athrow
      // 19d: aconst_null
      // 19e: astore 8
      // 1a0: aload 6
      // 1a2: invokestatic com/l7tech/xml/soap/SoapUtil.getSecurityElements (Lorg/w3c/dom/Document;)Ljava/util/List;
      // 1a5: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 1aa: astore 9
      // 1ac: aload 9
      // 1ae: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 1b3: ifeq 205
      // 1b6: aload 9
      // 1b8: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 1bd: checkcast org/w3c/dom/Element
      // 1c0: astore 10
      // 1c2: aload 10
      // 1c4: invokestatic com/l7tech/xml/soap/SoapUtil.getActorValue (Lorg/w3c/dom/Element;)Ljava/lang/String;
      // 1c7: astore 11
      // 1c9: aload 7
      // 1cb: aload 11
      // 1cd: invokeinterface java/util/List.contains (Ljava/lang/Object;)Z 2
      // 1d2: ifne 202
      // 1d5: aload 8
      // 1d7: aload 10
      // 1d9: if_acmpeq 202
      // 1dc: goto 1e3
      // 1df: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1e2: athrow
      // 1e3: aload 10
      // 1e5: invokeinterface org/w3c/dom/Element.getParentNode ()Lorg/w3c/dom/Node; 1
      // 1ea: aload 10
      // 1ec: invokeinterface org/w3c/dom/Node.removeChild (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 2
      // 1f1: pop
      // 1f2: aload 5
      // 1f4: aload 11
      // 1f6: invokeinterface com/l7tech/message/SecurityKnob.removeDecorationResults (Ljava/lang/String;)V 2
      // 1fb: goto 202
      // 1fe: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 201: athrow
      // 202: goto 1ac
      // 205: aload 6
      // 207: invokestatic com/l7tech/xml/soap/SoapUtil.removeEmptySoapHeader (Lorg/w3c/dom/Document;)Z
      // 20a: pop
      // 20b: aload 0
      // 20c: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 20f: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 212: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.isClearDecorationRequirements ()Z
      // 215: ifeq 23b
      // 218: aload 5
      // 21a: invokeinterface com/l7tech/message/SecurityKnob.removeAllDecorationRequirements ()V 1
      // 21f: aload 1
      // 220: invokestatic com/l7tech/server/policy/variable/ServerVariables.getRootContext (Lcom/l7tech/server/message/PolicyEnforcementContext;)Lcom/l7tech/server/message/PolicyEnforcementContext;
      // 223: astore 8
      // 225: aload 8
      // 227: aload 0
      // 228: new com/l7tech/server/policy/assertion/xmlsec/d
      // 22b: dup
      // 22c: aload 0
      // 22d: aload 0
      // 22e: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 231: aload 5
      // 233: invokespecial com/l7tech/server/policy/assertion/xmlsec/d.<init> (Lcom/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity;Lcom/l7tech/policy/assertion/Assertion;Lcom/l7tech/message/SecurityKnob;)V
      // 236: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.addDeferredAssertion (Lcom/l7tech/server/policy/assertion/ServerAssertion;Lcom/l7tech/server/policy/assertion/ServerAssertion;)V 3
      // 23b: getstatic com/l7tech/policy/assertion/AssertionStatus.NONE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 23e: areturn
      // 23f: astore 6
      // 241: aload 0
      // 242: getstatic com/l7tech/gateway/common/audit/AssertionMessages.WSSECURITY_ERROR Lcom/l7tech/gateway/common/audit/Messages$M;
      // 245: bipush 2
      // 246: anewarray 238
      // 249: dup
      // 24a: bipush 0
      // 24b: aload 0
      // 24c: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 24f: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 252: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.getTargetName ()Ljava/lang/String;
      // 255: aastore
      // 256: dup
      // 257: bipush 1
      // 258: aload 6
      // 25a: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 25d: aastore
      // 25e: aload 6
      // 260: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 263: goto 2bc
      // 266: astore 6
      // 268: aload 0
      // 269: getstatic com/l7tech/gateway/common/audit/AssertionMessages.WSSECURITY_ERROR Lcom/l7tech/gateway/common/audit/Messages$M;
      // 26c: bipush 2
      // 26d: anewarray 238
      // 270: dup
      // 271: bipush 0
      // 272: aload 0
      // 273: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 276: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 279: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.getTargetName ()Ljava/lang/String;
      // 27c: aastore
      // 27d: dup
      // 27e: bipush 1
      // 27f: aload 6
      // 281: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 284: aastore
      // 285: aload 6
      // 287: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 28a: goto 2bc
      // 28d: astore 6
      // 28f: aload 0
      // 290: getstatic com/l7tech/gateway/common/audit/AssertionMessages.WSSECURITY_ERROR Lcom/l7tech/gateway/common/audit/Messages$M;
      // 293: bipush 2
      // 294: anewarray 238
      // 297: dup
      // 298: bipush 0
      // 299: aload 0
      // 29a: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 29d: checkcast com/l7tech/policy/assertion/xmlsec/WsSecurity
      // 2a0: invokevirtual com/l7tech/policy/assertion/xmlsec/WsSecurity.getTargetName ()Ljava/lang/String;
      // 2a3: aastore
      // 2a4: dup
      // 2a5: bipush 1
      // 2a6: aload 6
      // 2a8: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 2ab: aastore
      // 2ac: aload 6
      // 2ae: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 2b1: goto 2bc
      // 2b4: astore 6
      // 2b6: aload 6
      // 2b8: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity$AssertionStatusException.status Lcom/l7tech/policy/assertion/AssertionStatus;
      // 2bb: areturn
      // 2bc: getstatic com/l7tech/policy/assertion/AssertionStatus.FALSIFIED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 2bf: areturn
      // try (0 -> 7): 11 org/xml/sax/SAXException
      // try (55 -> 60): 61 org/xml/sax/SAXException
      // try (41 -> 52): 53 org/xml/sax/SAXException
      // try (0 -> 8): 8 com/l7tech/security/xml/decorator/DecoratorException
      // try (121 -> 131): 132 com/l7tech/security/xml/decorator/DecoratorException
      // try (121 -> 131): 132 com/l7tech/security/keys/UnsupportedKeyTypeException
      // try (198 -> 212): 213 org/xml/sax/SAXException
      // try (194 -> 201): 202 org/xml/sax/SAXException
      // try (166 -> 176): 176 org/xml/sax/SAXException
      // try (161 -> 170): 171 org/xml/sax/SAXException
      // try (20 -> 240): 241 com/l7tech/util/InvalidDocumentFormatException
      // try (20 -> 240): 261 java/security/GeneralSecurityException
      // try (20 -> 240): 281 org/xml/sax/SAXException
      // try (20 -> 240): 301 com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity$AssertionStatusException
   }

   private void a(PolicyEnforcementContext param1, DecorationRequirements param2, boolean param3, List<String> param4) {
      // $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/util/SoapConstants.L7_SOAP_ACTOR Ljava/lang/String;
      // 03: aload 2
      // 04: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.getSecurityHeaderActor ()Ljava/lang/String;
      // 07: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0a: ifne 1b
      // 0d: aload 2
      // 0e: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.getSecurityHeaderActor ()Ljava/lang/String;
      // 11: ifnonnull 85
      // 14: goto 1b
      // 17: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a: athrow
      // 1b: iload 3
      // 1c: ifeq 74
      // 1f: goto 26
      // 22: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 25: athrow
      // 26: getstatic com/l7tech/util/SoapConstants.L7_SOAP_ACTOR Ljava/lang/String;
      // 29: astore 5
      // 2b: aload 0
      // 2c: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.isResponse ()Z
      // 2f: ifeq 61
      // 32: aload 1
      // 33: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getRequest ()Lcom/l7tech/message/Message; 1
      // 38: invokevirtual com/l7tech/message/Message.getSecurityKnob ()Lcom/l7tech/message/SecurityKnob;
      // 3b: invokeinterface com/l7tech/message/SecurityKnob.getProcessorResult ()Lcom/l7tech/security/xml/processor/ProcessorResult; 1
      // 40: astore 6
      // 42: aload 6
      // 44: ifnull 61
      // 47: aload 6
      // 49: invokeinterface com/l7tech/security/xml/processor/ProcessorResult.getProcessedActorUri ()Ljava/lang/String; 1
      // 4e: ifnull 61
      // 51: goto 58
      // 54: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 57: athrow
      // 58: aload 6
      // 5a: invokeinterface com/l7tech/security/xml/processor/ProcessorResult.getProcessedActorUri ()Ljava/lang/String; 1
      // 5f: astore 5
      // 61: aload 2
      // 62: aload 5
      // 64: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.setSecurityHeaderActor (Ljava/lang/String;)V
      // 67: aload 4
      // 69: aload 5
      // 6b: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 70: pop
      // 71: goto 91
      // 74: aload 2
      // 75: aconst_null
      // 76: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.setSecurityHeaderActor (Ljava/lang/String;)V
      // 79: aload 4
      // 7b: aconst_null
      // 7c: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 81: pop
      // 82: goto 91
      // 85: aload 4
      // 87: aload 2
      // 88: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.getSecurityHeaderActor ()Ljava/lang/String;
      // 8b: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 90: pop
      // 91: return
      // try (0 -> 8): 9 java/lang/IllegalArgumentException
      // try (5 -> 13): 14 java/lang/IllegalArgumentException
      // try (26 -> 31): 32 java/lang/IllegalArgumentException
   }

   private void a(DecorationRequirements param1, Document param2, SoapVersion param3, SecurityKnob param4, boolean param5, boolean param6) 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 1
      // 001: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.getSecurityHeaderActor ()Ljava/lang/String;
      // 004: astore 7
      // 006: aload 2
      // 007: aload 7
      // 009: invokestatic com/l7tech/xml/soap/SoapUtil.getSecurityElement (Lorg/w3c/dom/Document;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 00c: astore 8
      // 00e: aload 8
      // 010: ifnull 124
      // 013: iload 5
      // 015: ifeq 048
      // 018: goto 01f
      // 01b: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 01e: athrow
      // 01f: aload 8
      // 021: invokeinterface org/w3c/dom/Element.getParentNode ()Lorg/w3c/dom/Node; 1
      // 026: aload 8
      // 028: invokeinterface org/w3c/dom/Node.removeChild (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 2
      // 02d: pop
      // 02e: aload 1
      // 02f: iload 6
      // 031: invokestatic java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
      // 034: bipush 0
      // 035: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.setSecurityHeaderMustUnderstand (Ljava/lang/Boolean;Z)V
      // 038: aload 4
      // 03a: aload 7
      // 03c: invokeinterface com/l7tech/message/SecurityKnob.removeDecorationResults (Ljava/lang/String;)V 2
      // 041: goto 12e
      // 044: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 047: athrow
      // 048: aload 2
      // 049: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 04e: invokeinterface org/w3c/dom/Element.getNamespaceURI ()Ljava/lang/String; 1
      // 053: astore 9
      // 055: aload 1
      // 056: bipush 1
      // 057: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.setSecurityHeaderReusable (Z)V
      // 05a: getstatic com/l7tech/xml/soap/SoapVersion.SOAP_1_2 Lcom/l7tech/xml/soap/SoapVersion;
      // 05d: aload 3
      // 05e: invokevirtual com/l7tech/xml/soap/SoapVersion.isPriorVersion (Lcom/l7tech/xml/soap/SoapVersion;)Z
      // 061: ifeq 0da
      // 064: aload 8
      // 066: getstatic com/l7tech/util/SoapConstants.ACTOR_ATTR_NAME Ljava/lang/String;
      // 069: invokeinterface org/w3c/dom/Element.hasAttribute (Ljava/lang/String;)Z 2
      // 06e: istore 10
      // 070: aload 8
      // 072: getstatic com/l7tech/util/SoapConstants.ACTOR_ATTR_NAME Ljava/lang/String;
      // 075: invokeinterface org/w3c/dom/Element.removeAttribute (Ljava/lang/String;)V 2
      // 07a: aload 8
      // 07c: aload 9
      // 07e: getstatic com/l7tech/util/SoapConstants.ACTOR_ATTR_NAME Ljava/lang/String;
      // 081: invokeinterface org/w3c/dom/Element.removeAttributeNS (Ljava/lang/String;Ljava/lang/String;)V 3
      // 086: aload 7
      // 088: ifnull 0b5
      // 08b: iload 10
      // 08d: ifeq 0ab
      // 090: goto 097
      // 093: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 096: athrow
      // 097: aload 8
      // 099: aconst_null
      // 09a: getstatic com/l7tech/util/SoapConstants.ACTOR_ATTR_NAME Ljava/lang/String;
      // 09d: aload 7
      // 09f: invokeinterface org/w3c/dom/Element.setAttributeNS (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V 4
      // 0a4: goto 0b5
      // 0a7: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0aa: athrow
      // 0ab: aload 8
      // 0ad: getstatic com/l7tech/util/SoapConstants.ACTOR_ATTR_NAME Ljava/lang/String;
      // 0b0: aload 7
      // 0b2: invokestatic com/l7tech/xml/soap/SoapUtil.setSoapAttr (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)V
      // 0b5: iload 6
      // 0b7: ifeq 0cb
      // 0ba: aload 8
      // 0bc: getstatic com/l7tech/util/SoapConstants.MUSTUNDERSTAND_ATTR_NAME Ljava/lang/String;
      // 0bf: ldc "1"
      // 0c1: invokestatic com/l7tech/xml/soap/SoapUtil.setSoapAttr (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)V
      // 0c4: goto 0d7
      // 0c7: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ca: athrow
      // 0cb: aload 8
      // 0cd: aload 9
      // 0cf: getstatic com/l7tech/util/SoapConstants.MUSTUNDERSTAND_ATTR_NAME Ljava/lang/String;
      // 0d2: invokeinterface org/w3c/dom/Element.removeAttributeNS (Ljava/lang/String;Ljava/lang/String;)V 3
      // 0d7: goto 121
      // 0da: aload 8
      // 0dc: aload 9
      // 0de: getstatic com/l7tech/util/SoapConstants.ROLE_ATTR_NAME Ljava/lang/String;
      // 0e1: invokeinterface org/w3c/dom/Element.removeAttributeNS (Ljava/lang/String;Ljava/lang/String;)V 3
      // 0e6: aload 7
      // 0e8: ifnull 0fc
      // 0eb: aload 8
      // 0ed: getstatic com/l7tech/util/SoapConstants.ROLE_ATTR_NAME Ljava/lang/String;
      // 0f0: aload 7
      // 0f2: invokestatic com/l7tech/xml/soap/SoapUtil.setSoapAttr (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)V
      // 0f5: goto 0fc
      // 0f8: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0fb: athrow
      // 0fc: iload 6
      // 0fe: ifeq 115
      // 101: aload 8
      // 103: getstatic com/l7tech/util/SoapConstants.MUSTUNDERSTAND_ATTR_NAME Ljava/lang/String;
      // 106: getstatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.f [Ljava/lang/String;
      // 109: bipush 4
      // 10a: aaload
      // 10b: invokestatic com/l7tech/xml/soap/SoapUtil.setSoapAttr (Lorg/w3c/dom/Element;Ljava/lang/String;Ljava/lang/String;)V
      // 10e: goto 121
      // 111: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 114: athrow
      // 115: aload 8
      // 117: aload 9
      // 119: getstatic com/l7tech/util/SoapConstants.MUSTUNDERSTAND_ATTR_NAME Ljava/lang/String;
      // 11c: invokeinterface org/w3c/dom/Element.removeAttributeNS (Ljava/lang/String;Ljava/lang/String;)V 3
      // 121: goto 12e
      // 124: aload 1
      // 125: iload 6
      // 127: invokestatic java/lang/Boolean.valueOf (Z)Ljava/lang/Boolean;
      // 12a: bipush 0
      // 12b: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.setSecurityHeaderMustUnderstand (Ljava/lang/Boolean;Z)V
      // 12e: return
      // try (7 -> 11): 12 com/l7tech/util/InvalidDocumentFormatException
      // try (9 -> 28): 28 com/l7tech/util/InvalidDocumentFormatException
      // try (45 -> 56): 57 com/l7tech/util/InvalidDocumentFormatException
      // try (54 -> 65): 65 com/l7tech/util/InvalidDocumentFormatException
      // try (71 -> 78): 78 com/l7tech/util/InvalidDocumentFormatException
      // try (85 -> 95): 96 com/l7tech/util/InvalidDocumentFormatException
      // try (98 -> 107): 107 com/l7tech/util/InvalidDocumentFormatException
   }

   private void a(DecorationRequirements param1, Goid param2, @Nullable String param3, @Nullable X509Certificate param4) throws ServerWsSecurity.AssertionStatusException {
      // $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: ldc ""
      // 002: astore 5
      // 004: aload 2
      // 005: ifnull 05d
      // 008: aload 2
      // 009: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 00c: getstatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.f [Ljava/lang/String;
      // 00f: astore 11
      // 011: aload 11
      // 013: bipush 6
      // 015: aaload
      // 016: swap
      // 017: 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" ]
      // 01c: astore 5
      // 01e: aload 0
      // 01f: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.d Lcom/l7tech/server/identity/cert/TrustedCertCache;
      // 022: aload 2
      // 023: invokeinterface com/l7tech/server/identity/cert/TrustedCertCache.findByPrimaryKey (Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/security/cert/TrustedCert; 2
      // 028: astore 6
      // 02a: aload 6
      // 02c: ifnull 03f
      // 02f: aload 1
      // 030: aload 6
      // 032: invokevirtual com/l7tech/security/cert/TrustedCert.getCertificate ()Ljava/security/cert/X509Certificate;
      // 035: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.setRecipientCertificate (Ljava/security/cert/X509Certificate;)V
      // 038: goto 05a
      // 03b: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 03e: athrow
      // 03f: aload 0
      // 040: getstatic com/l7tech/gateway/common/audit/AssertionMessages.WSSECURITY_RECIP_NO_CERT Lcom/l7tech/gateway/common/audit/Messages$M;
      // 043: bipush 1
      // 044: anewarray 238
      // 047: dup
      // 048: bipush 0
      // 049: aload 5
      // 04b: aastore
      // 04c: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 04f: new com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity$AssertionStatusException
      // 052: dup
      // 053: getstatic com/l7tech/policy/assertion/AssertionStatus.FALSIFIED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 056: invokespecial com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity$AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;)V
      // 059: athrow
      // 05a: goto 115
      // 05d: aload 3
      // 05e: ifnull 10f
      // 061: aload 3
      // 062: getstatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.f [Ljava/lang/String;
      // 065: bipush 3
      // 066: aaload
      // 067: swap
      // 068: 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" ]
      // 06d: astore 5
      // 06f: aload 0
      // 070: getfield com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.d Lcom/l7tech/server/identity/cert/TrustedCertCache;
      // 073: aload 3
      // 074: invokeinterface com/l7tech/server/identity/cert/TrustedCertCache.findByName (Ljava/lang/String;)Ljava/util/Collection; 2
      // 079: astore 6
      // 07b: aconst_null
      // 07c: astore 7
      // 07e: aconst_null
      // 07f: astore 8
      // 081: aload 6
      // 083: invokeinterface java/util/Collection.iterator ()Ljava/util/Iterator; 1
      // 088: astore 9
      // 08a: aload 9
      // 08c: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 091: ifeq 0c2
      // 094: aload 9
      // 096: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 09b: checkcast com/l7tech/security/cert/TrustedCert
      // 09e: astore 10
      // 0a0: aload 0
      // 0a1: aload 10
      // 0a3: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Lcom/l7tech/security/cert/TrustedCert;)Z
      // 0a6: ifne 0b3
      // 0a9: aload 10
      // 0ab: invokevirtual com/l7tech/security/cert/TrustedCert.getCertificate ()Ljava/security/cert/X509Certificate;
      // 0ae: astore 7
      // 0b0: goto 0c2
      // 0b3: aload 8
      // 0b5: ifnonnull 0bf
      // 0b8: aload 10
      // 0ba: invokevirtual com/l7tech/security/cert/TrustedCert.getCertificate ()Ljava/security/cert/X509Certificate;
      // 0bd: astore 8
      // 0bf: goto 08a
      // 0c2: aload 7
      // 0c4: ifnonnull 0d3
      // 0c7: aload 8
      // 0c9: ifnull 0f1
      // 0cc: goto 0d3
      // 0cf: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0d2: athrow
      // 0d3: aload 1
      // 0d4: aload 7
      // 0d6: ifnull 0e9
      // 0d9: goto 0e0
      // 0dc: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0df: athrow
      // 0e0: aload 7
      // 0e2: goto 0eb
      // 0e5: invokestatic com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e8: athrow
      // 0e9: aload 8
      // 0eb: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.setRecipientCertificate (Ljava/security/cert/X509Certificate;)V
      // 0ee: goto 10c
      // 0f1: aload 0
      // 0f2: getstatic com/l7tech/gateway/common/audit/AssertionMessages.WSSECURITY_RECIP_NO_CERT Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0f5: bipush 1
      // 0f6: anewarray 238
      // 0f9: dup
      // 0fa: bipush 0
      // 0fb: aload 5
      // 0fd: aastore
      // 0fe: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 101: new com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity$AssertionStatusException
      // 104: dup
      // 105: getstatic com/l7tech/policy/assertion/AssertionStatus.FALSIFIED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 108: invokespecial com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity$AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;)V
      // 10b: athrow
      // 10c: goto 115
      // 10f: aload 1
      // 110: aload 4
      // 112: invokevirtual com/l7tech/security/xml/decorator/DecorationRequirements.setRecipientCertificate (Ljava/security/cert/X509Certificate;)V
      // 115: goto 135
      // 118: astore 6
      // 11a: aload 0
      // 11b: getstatic com/l7tech/gateway/common/audit/AssertionMessages.WSSECURITY_RECIP_CERT_ERROR Lcom/l7tech/gateway/common/audit/Messages$M;
      // 11e: bipush 1
      // 11f: anewarray 238
      // 122: dup
      // 123: bipush 0
      // 124: aload 5
      // 126: aastore
      // 127: invokevirtual com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 12a: new com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity$AssertionStatusException
      // 12d: dup
      // 12e: getstatic com/l7tech/policy/assertion/AssertionStatus.FALSIFIED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 131: invokespecial com/l7tech/server/policy/assertion/xmlsec/ServerWsSecurity$AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;)V
      // 134: athrow
      // 135: return
      // try (92 -> 100): 100 com/l7tech/objectmodel/FindException
      // try (87 -> 95): 96 com/l7tech/objectmodel/FindException
      // try (85 -> 89): 90 com/l7tech/objectmodel/FindException
      // try (19 -> 26): 26 com/l7tech/objectmodel/FindException
      // try (2 -> 123): 124 com/l7tech/objectmodel/FindException
   }

   private boolean a(TrustedCert var1) {
      boolean var2 = true;

      try {
         var2 = var1.isExpiredCert();
      } catch (CertificateException var4) {
         this.logAndAudit(AssertionMessages.WSSECURITY_RECIP_CERT_EXP, new String[]{var1.getName() + f[1] + var1.getGoid() + ")"}, var4);
      }

      return var2;
   }

   private String a(PolicyEnforcementContext var1, String var2) throws ServerWsSecurity.AssertionStatusException {
      String var3 = null;
      if (var2 != null) {
         String[] var4 = Syntax.getReferencedNames(var2);
         Map var5 = var1.getVariableMap(var4, this.getAudit());

         try {
            var3 = ExpandVariables.process(var2, var5, this.getAudit(), true);
         } catch (IllegalArgumentException var7) {
            throw new ServerWsSecurity.AssertionStatusException(AssertionStatus.FALSIFIED);
         }
      }

      return var3;
   }

   private X509Certificate b(PolicyEnforcementContext var1, String var2) throws ServerWsSecurity.AssertionStatusException {
      var3 = null;
      if (var2 != null) {
         String var4 = Syntax.getVariableExpression(var2);
         String[] var5 = Syntax.getReferencedNames(var4);
         Map var6 = var1.getVariableMap(var5, this.getAudit());

         try {
            if (ExpandVariables.processSingleVariableAsObject(var4, var6, this.getAudit(), true) instanceof X509Certificate var3) {
               ;
            }
         } catch (IllegalArgumentException var9) {
            throw new ServerWsSecurity.AssertionStatusException(AssertionStatus.FALSIFIED);
         }

         try {
            if (var3 == null) {
               this.logAndAudit(AssertionMessages.WSSECURITY_RECIP_NO_CERT, f[5] + var2);
               throw new ServerWsSecurity.AssertionStatusException(AssertionStatus.FALSIFIED);
            }
         } catch (IllegalArgumentException var8) {
            throw a(var8);
         }
      }

      return var3;
   }

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

   static {
      String[] var5 = new String[7];
      int var3 = 0;
      String var2 = "}E[\u000b-S\u001cJR\\\f\u001aW\u001baR\u0003)\u001f\r\f~D]<<U\u0017{VZ\u0017+\u0005gVC\u001dy\u0004}E[\u001d";
      int var4 = "}E[\u000b-S\u001cJR\\\f\u001aW\u001baR\u0003)\u001f\r\f~D]<<U\u0017{VZ\u0017+\u0005gVC\u001dy\u0004}E[\u001d".length();
      char var1 = 16;
      int var7 = -1;

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

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

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

                  var2 = "]t~3\u001av6N5\u0004Bq,y";
                  var4 = "]t~3\u001av6N5\u0004Bq,y".length();
                  var1 = '\t';
                  var7 = -1;
            }

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

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

      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 -> 76;
            case 1 -> 114;
            case 2 -> 107;
            case 3 -> 61;
            case 4 -> 28;
            case 5 -> 115;
            default -> 61;
         });
      }

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

   private static class AssertionStatusException extends Exception {
      final AssertionStatus status;
      static final long serialVersionUID = -9150194779507359982L;

      AssertionStatusException(AssertionStatus var1) {
         this.status = var1;
      }
   }
}
