package com.l7tech.policy.assertion.credential;

import com.l7tech.common.io.CertUtils;
import com.l7tech.kerberos.KerberosServiceTicket;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.assertion.credential.http.HttpNegotiate;
import com.l7tech.policy.assertion.credential.wss.WssBasic;
import com.l7tech.policy.assertion.xmlsec.RequireWssX509Cert;
import com.l7tech.policy.assertion.xmlsec.SecureConversation;
import com.l7tech.security.token.HasUsernameAndPassword;
import com.l7tech.security.token.KerberosSecurityToken;
import com.l7tech.security.token.NtlmToken;
import com.l7tech.security.token.OpaqueSecurityToken;
import com.l7tech.security.token.SecurityToken;
import com.l7tech.security.token.SecurityTokenType;
import com.l7tech.security.token.SessionSecurityToken;
import com.l7tech.security.token.SshSecurityToken;
import com.l7tech.security.token.X509SigningSecurityToken;
import com.l7tech.security.token.http.HttpDigestToken;
import com.l7tech.security.token.http.TlsClientCertToken;
import com.l7tech.util.ArrayUtils;
import com.l7tech.util.Disposable;
import com.l7tech.util.ResourceUtils;
import com.l7tech.xml.saml.SamlAssertion;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;

public final class LoginCredentials implements Disposable {
   private static final Map a;
   private final String b;
   private final String c;
   private final CredentialFormat d;
   private final Object e;
   private final transient SecurityToken f;
   private final transient boolean g;
   private final transient SecurityToken[] h;
   private final transient char[] i;
   private final transient Class<? extends Assertion> j;
   private volatile String k;
   private static final String[] l;

   public static LoginCredentials makeLoginCredentials(SecurityToken var0, Class<? extends Assertion> var1) {
      return makeLoginCredentials(var0, true, var1);
   }

   public static LoginCredentials makeLoginCredentials(SecurityToken var0, Class<? extends Assertion> var1, SecurityToken... var2) {
      return makeLoginCredentials(var0, true, var1, var2);
   }

   public static LoginCredentials makeLoginCredentials(SecurityToken var0, boolean var1, Class<? extends Assertion> var2, SecurityToken... var3) {
      LoginCredentials var4;
      if (var0 instanceof HasUsernameAndPassword var17) {
         char[] var18 = var17.getPassword();
         if (var18 == null) {
            var18 = new char[0];
         }

         var4 = a(var17.getUsername(), var18, var0, var1, var3, var2);
      } else if (var0 instanceof TlsClientCertToken var16) {
         var4 = new LoginCredentials(var16.getCertCn(), null, CredentialFormat.CLIENTCERT, var0, var1, var3, var2, null, var16.getCertificate());
      } else if (var0 instanceof SamlAssertion var15) {
         var4 = a(var15, var1, var3, var2);
      } else if (var0 instanceof X509SigningSecurityToken var14) {
         try {
            if (!var14.isPossessionProved()) {
               throw new IllegalArgumentException(l[2]);
            }
         } catch (IllegalArgumentException var8) {
            throw a(var8);
         }

         String var6 = CertUtils.extractFirstCommonNameFromCertificate(var14.getMessageSigningCertificate());
         var4 = new LoginCredentials(var6, null, CredentialFormat.CLIENTCERT, var0, var1, var3, var2, null, var14.getMessageSigningCertificate());
      } else if (var0 instanceof OpaqueSecurityToken var5) {
         var4 = new LoginCredentials(var5.getUsername(), var5.getCredential(), CredentialFormat.OPAQUETOKEN, var0, var1, var3, var2, null, null);
      } else if (var0 instanceof HttpDigestToken var9) {
         var4 = new LoginCredentials(
            var9.getUsername(), var9.getHa1Hex().toCharArray(), CredentialFormat.DIGEST, var0, var1, var3, var2, var9.getRealm(), var9.getParams()
         );
      } else if (var0 instanceof NtlmToken var10) {
         var4 = new LoginCredentials(
            null, var10.getNtlmData().toCharArray(), CredentialFormat.NTLMTOKEN, var0, var1, var3, var2, var10.getRealm(), var10.getParams()
         );
      } else if (var0 instanceof KerberosSecurityToken var11) {
         var4 = new LoginCredentials(null, null, CredentialFormat.KERBEROSTICKET, var0, var1, var3, var2, null, var11.getServiceTicket());
      } else if (var0 instanceof SessionSecurityToken var12) {
         var4 = new LoginCredentials(var12.getLogin(), null, CredentialFormat.SESSIONTOKEN, var0, var1, var3, var2, null, null);
      } else {
         if (!(var0 instanceof SshSecurityToken var13)) {
            String var10002 = String.valueOf(var0.getClass());
            String var10003 = String.valueOf(var0.getType());
            String[] var7 = l;
            throw new IllegalArgumentException(var7[6] + var10002 + var7[7] + var10003 + "'");
         }

         var4 = new LoginCredentials(var13.getUsername(), null, CredentialFormat.SSHTOKEN, var0, var1, var3, var2, null, var13.getPublicKey());
      }

      return var4;
   }

   private static LoginCredentials a(SamlAssertion var0, boolean var1, SecurityToken[] var2, Class<? extends Assertion> var3) {
      X509Certificate var5 = var0.getSubjectCertificate();
      String var4;
      if (var5 != null) {
         var4 = CertUtils.extractFirstCommonNameFromCertificate(var5);
      } else if (l[8].equals(var0.getNameIdentifierFormat())) {
         var4 = CertUtils.extractFirstCommonNameFromDN(var0.getNameIdentifierValue());
      } else {
         var4 = var0.getNameIdentifierValue();
      }

      return new LoginCredentials(var4, null, CredentialFormat.SAML, var0, var1, var2, var3, null, var0);
   }

   private static LoginCredentials a(String var0, char[] var1, SecurityToken var2, boolean var3, SecurityToken[] var4, Class<? extends Assertion> var5) {
      return new LoginCredentials(var0, var1, CredentialFormat.CLEARTEXT, var2, var3, var4, var5, null, null);
   }

   private LoginCredentials(
      String var1,
      char[] var2,
      CredentialFormat var3,
      SecurityToken var4,
      boolean var5,
      SecurityToken[] var6,
      Class<? extends Assertion> var7,
      String var8,
      Object var9
   ) {
      this.b = var1;
      this.i = var2;
      this.c = var8;
      this.d = var3;
      this.f = var4;
      this.g = var5;
      this.h = var6;
      this.j = var7;
      this.e = var9;
      if (var3.isClientCert()) {
         try {
            if (!(var9 instanceof X509Certificate)) {
               throw new IllegalArgumentException(l[9]);
            }
         } catch (IllegalArgumentException var10) {
            throw a(var10);
         }
      }
   }

   public String getLogin() {
      return this.b;
   }

   public char[] getCredentials() {
      return this.i;
   }

   public String getRealm() {
      return this.c;
   }

   public CredentialFormat getFormat() {
      return this.d;
   }

   public SecurityToken getSecurityToken() {
      return this.f;
   }

   public SecurityToken[] getSecurityTokens() {
      SecurityToken[] var1;
      if (this.h != null) {
         var1 = new SecurityToken[this.h.length + 1];
         var1[0] = this.f;
         System.arraycopy(this.h, 0, var1, 1, this.h.length);
      } else {
         var1 = new SecurityToken[]{this.f};
      }

      return var1;
   }

   public boolean isSecurityTokenPresent(SecurityToken var1) {
      boolean var2 = true;
      if (var1 == this.f) {
         var2 = this.g;
      }

      return var2;
   }

   public Object getPayload() {
      return this.e;
   }

   public Class<? extends Assertion> getCredentialSourceAssertion() {
      return this.j;
   }

   public void dispose() {
      ArrayList var1 = new ArrayList();

      try {
         var1.add(this.e);
         var1.add(this.f);
         if (this.h != null) {
            var1.addAll(Arrays.asList(this.h));
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      ResourceUtils.dispose(var1);
   }

   @Override
   public String toString() {
      if (this.k == null) {
         String[] var3 = l;
         StringBuilder var1 = new StringBuilder(var3[3]);

         label38: {
            try {
               var1.append(this.d.getName());
               var1.append(var3[5]);
               if (this.b != null) {
                  var1.append(var3[11]);
                  var1.append(this.b);
                  break label38;
               }
            } catch (IllegalArgumentException var4) {
               throw a(var4);
            }

            try {
               if (this.e instanceof X509Certificate) {
                  var1.append(l[10]);
                  var1.append(((X509Certificate)this.e).getSubjectDN().getName());
                  break label38;
               }
            } catch (IllegalArgumentException var5) {
               throw a(var5);
            }

            if (this.e instanceof SamlAssertion var2) {
               var3 = l;
               var1.append(var3[1]);
               var1.append(var2.getNameIdentifierValue());
            } else if (this.e instanceof KerberosServiceTicket var6) {
               var3 = l;
               var1.append(var3[0]);
               var1.append(var6.getClientPrincipalName());
            }
         }

         var1.append(l[4]);
         this.k = var1.toString();
      }

      return this.k;
   }

   public X509Certificate getClientCert() {
      try {
         if (this.d == CredentialFormat.CLIENTCERT) {
            return (X509Certificate)this.e;
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      if (this.d == CredentialFormat.SAML) {
         SamlAssertion var1 = (SamlAssertion)this.e;
         return var1.getSubjectCertificate();
      } else {
         return null;
      }
   }

   public SecurityTokenType getType() {
      SecurityTokenType var1 = (SecurityTokenType)a.get(this.j);

      try {
         if (var1 != null) {
            return var1;
         }

         if (this.d == CredentialFormat.CLIENTCERT) {
            return SecurityTokenType.HTTP_CLIENT_CERT;
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      if (this.d == CredentialFormat.SAML) {
         return SecurityTokenType.SAML_ASSERTION;
      }

      if (this.d == CredentialFormat.DIGEST) {
         return SecurityTokenType.HTTP_DIGEST;
      }

      if (this.d == CredentialFormat.CLEARTEXT) {
         return SecurityTokenType.HTTP_BASIC;
      }

      if (this.d == CredentialFormat.KERBEROSTICKET) {
         return SecurityTokenType.WSS_KERBEROS_BST;
      }

      if (this.d == CredentialFormat.SSHTOKEN) {
         return SecurityTokenType.SSH_CREDENTIAL;
      }

      if (this.d == CredentialFormat.NTLMTOKEN) {
         var1 = SecurityTokenType.HTTP_NTLM;
      } else {
         var1 = SecurityTokenType.UNKNOWN;
      }

      return var1;
   }

   @Override
   public boolean equals(Object 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:
      // 000: aload 0
      // 001: aload 1
      // 002: if_acmpne 00b
      // 005: bipush 1
      // 006: ireturn
      // 007: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 00a: athrow
      // 00b: aload 1
      // 00c: ifnull 021
      // 00f: aload 0
      // 010: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 013: aload 1
      // 014: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 017: if_acmpeq 027
      // 01a: goto 021
      // 01d: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 020: athrow
      // 021: bipush 0
      // 022: ireturn
      // 023: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 026: athrow
      // 027: aload 1
      // 028: checkcast com/l7tech/policy/assertion/credential/LoginCredentials
      // 02b: astore 2
      // 02c: aload 0
      // 02d: getfield com/l7tech/policy/assertion/credential/LoginCredentials.j Ljava/lang/Class;
      // 030: ifnull 04f
      // 033: aload 0
      // 034: getfield com/l7tech/policy/assertion/credential/LoginCredentials.j Ljava/lang/Class;
      // 037: aload 2
      // 038: getfield com/l7tech/policy/assertion/credential/LoginCredentials.j Ljava/lang/Class;
      // 03b: invokevirtual java/lang/Object.equals (Ljava/lang/Object;)Z
      // 03e: ifne 05c
      // 041: goto 048
      // 044: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 047: athrow
      // 048: goto 056
      // 04b: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 04e: athrow
      // 04f: aload 2
      // 050: getfield com/l7tech/policy/assertion/credential/LoginCredentials.j Ljava/lang/Class;
      // 053: ifnull 05c
      // 056: bipush 0
      // 057: ireturn
      // 058: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 05b: athrow
      // 05c: aload 0
      // 05d: getfield com/l7tech/policy/assertion/credential/LoginCredentials.i [C
      // 060: aload 2
      // 061: getfield com/l7tech/policy/assertion/credential/LoginCredentials.i [C
      // 064: invokestatic java/util/Arrays.equals ([C[C)Z
      // 067: ifne 070
      // 06a: bipush 0
      // 06b: ireturn
      // 06c: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 06f: athrow
      // 070: aload 0
      // 071: getfield com/l7tech/policy/assertion/credential/LoginCredentials.d Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 074: ifnull 093
      // 077: aload 0
      // 078: getfield com/l7tech/policy/assertion/credential/LoginCredentials.d Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 07b: aload 2
      // 07c: getfield com/l7tech/policy/assertion/credential/LoginCredentials.d Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 07f: invokevirtual java/lang/Object.equals (Ljava/lang/Object;)Z
      // 082: ifne 0a0
      // 085: goto 08c
      // 088: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 08b: athrow
      // 08c: goto 09a
      // 08f: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 092: athrow
      // 093: aload 2
      // 094: getfield com/l7tech/policy/assertion/credential/LoginCredentials.d Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 097: ifnull 0a0
      // 09a: bipush 0
      // 09b: ireturn
      // 09c: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 09f: athrow
      // 0a0: aload 0
      // 0a1: getfield com/l7tech/policy/assertion/credential/LoginCredentials.b Ljava/lang/String;
      // 0a4: ifnull 0c3
      // 0a7: aload 0
      // 0a8: getfield com/l7tech/policy/assertion/credential/LoginCredentials.b Ljava/lang/String;
      // 0ab: aload 2
      // 0ac: getfield com/l7tech/policy/assertion/credential/LoginCredentials.b Ljava/lang/String;
      // 0af: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0b2: ifne 0d0
      // 0b5: goto 0bc
      // 0b8: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0bb: athrow
      // 0bc: goto 0ca
      // 0bf: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0c2: athrow
      // 0c3: aload 2
      // 0c4: getfield com/l7tech/policy/assertion/credential/LoginCredentials.b Ljava/lang/String;
      // 0c7: ifnull 0d0
      // 0ca: bipush 0
      // 0cb: ireturn
      // 0cc: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0cf: athrow
      // 0d0: aload 0
      // 0d1: getfield com/l7tech/policy/assertion/credential/LoginCredentials.e Ljava/lang/Object;
      // 0d4: ifnull 0f3
      // 0d7: aload 0
      // 0d8: getfield com/l7tech/policy/assertion/credential/LoginCredentials.e Ljava/lang/Object;
      // 0db: aload 2
      // 0dc: getfield com/l7tech/policy/assertion/credential/LoginCredentials.e Ljava/lang/Object;
      // 0df: invokevirtual java/lang/Object.equals (Ljava/lang/Object;)Z
      // 0e2: ifne 100
      // 0e5: goto 0ec
      // 0e8: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0eb: athrow
      // 0ec: goto 0fa
      // 0ef: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0f2: athrow
      // 0f3: aload 2
      // 0f4: getfield com/l7tech/policy/assertion/credential/LoginCredentials.e Ljava/lang/Object;
      // 0f7: ifnull 100
      // 0fa: bipush 0
      // 0fb: ireturn
      // 0fc: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 0ff: athrow
      // 100: aload 0
      // 101: getfield com/l7tech/policy/assertion/credential/LoginCredentials.c Ljava/lang/String;
      // 104: ifnull 123
      // 107: aload 0
      // 108: getfield com/l7tech/policy/assertion/credential/LoginCredentials.c Ljava/lang/String;
      // 10b: aload 2
      // 10c: getfield com/l7tech/policy/assertion/credential/LoginCredentials.c Ljava/lang/String;
      // 10f: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 112: ifne 130
      // 115: goto 11c
      // 118: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 11b: athrow
      // 11c: goto 12a
      // 11f: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 122: athrow
      // 123: aload 2
      // 124: getfield com/l7tech/policy/assertion/credential/LoginCredentials.c Ljava/lang/String;
      // 127: ifnull 130
      // 12a: bipush 0
      // 12b: ireturn
      // 12c: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 12f: athrow
      // 130: bipush 1
      // 131: ireturn
      // try (0 -> 5): 5 java/lang/IllegalArgumentException
      // try (7 -> 14): 15 java/lang/IllegalArgumentException
      // try (9 -> 19): 19 java/lang/IllegalArgumentException
      // try (24 -> 33): 34 java/lang/IllegalArgumentException
      // try (27 -> 37): 37 java/lang/IllegalArgumentException
      // try (39 -> 44): 44 java/lang/IllegalArgumentException
      // try (46 -> 54): 54 java/lang/IllegalArgumentException
      // try (56 -> 65): 66 java/lang/IllegalArgumentException
      // try (59 -> 69): 69 java/lang/IllegalArgumentException
      // try (71 -> 76): 76 java/lang/IllegalArgumentException
      // try (78 -> 87): 88 java/lang/IllegalArgumentException
      // try (81 -> 91): 91 java/lang/IllegalArgumentException
      // try (93 -> 98): 98 java/lang/IllegalArgumentException
      // try (100 -> 109): 110 java/lang/IllegalArgumentException
      // try (103 -> 113): 113 java/lang/IllegalArgumentException
      // try (115 -> 120): 120 java/lang/IllegalArgumentException
      // try (122 -> 131): 132 java/lang/IllegalArgumentException
      // try (125 -> 135): 135 java/lang/IllegalArgumentException
      // try (137 -> 142): 142 java/lang/IllegalArgumentException
   }

   @Override
   public int hashCode() {
      int var10000;
      label86: {
         try {
            if (this.b != null) {
               var10000 = this.b.hashCode();
               break label86;
            }
         } catch (IllegalArgumentException var7) {
            throw a(var7);
         }

         var10000 = 0;
      }

      int var1 = var10000;

      int var10001;
      label78: {
         try {
            var10000 = 31 * var1;
            if (this.i != null) {
               var10001 = Arrays.hashCode(this.i);
               break label78;
            }
         } catch (IllegalArgumentException var6) {
            throw a(var6);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label70: {
         try {
            var10000 = 31 * var1;
            if (this.c != null) {
               var10001 = this.c.hashCode();
               break label70;
            }
         } catch (IllegalArgumentException var5) {
            throw a(var5);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label62: {
         try {
            var10000 = 31 * var1;
            if (this.j != null) {
               var10001 = this.j.hashCode();
               break label62;
            }
         } catch (IllegalArgumentException var4) {
            throw a(var4);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      label54: {
         try {
            var10000 = 31 * var1;
            if (this.d != null) {
               var10001 = this.d.hashCode();
               break label54;
            }
         } catch (IllegalArgumentException var3) {
            throw a(var3);
         }

         var10001 = 0;
      }

      var1 = var10000 + var10001;

      try {
         var10000 = 31 * var1;
         if (this.e != null) {
            return var10000 + this.e.hashCode();
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      return var10000 + 0;
   }

   public String getName() {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: getfield com/l7tech/policy/assertion/credential/LoginCredentials.d Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 04: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.CLEARTEXT Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 07: if_acmpeq 2c
      // 0a: aload 0
      // 0b: getfield com/l7tech/policy/assertion/credential/LoginCredentials.d Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 0e: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.DIGEST Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 11: if_acmpeq 2c
      // 14: goto 1b
      // 17: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 1a: athrow
      // 1b: aload 0
      // 1c: getfield com/l7tech/policy/assertion/credential/LoginCredentials.d Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 1f: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.BASIC Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 22: if_acmpne 35
      // 25: goto 2c
      // 28: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 2b: athrow
      // 2c: aload 0
      // 2d: invokevirtual com/l7tech/policy/assertion/credential/LoginCredentials.getLogin ()Ljava/lang/String;
      // 30: areturn
      // 31: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 34: athrow
      // 35: aload 0
      // 36: getfield com/l7tech/policy/assertion/credential/LoginCredentials.d Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 39: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.CLIENTCERT Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 3c: if_acmpne 51
      // 3f: aload 0
      // 40: getfield com/l7tech/policy/assertion/credential/LoginCredentials.e Ljava/lang/Object;
      // 43: checkcast java/security/cert/X509Certificate
      // 46: astore 1
      // 47: aload 1
      // 48: invokevirtual java/security/cert/X509Certificate.getSubjectDN ()Ljava/security/Principal;
      // 4b: invokeinterface java/security/Principal.getName ()Ljava/lang/String; 1
      // 50: areturn
      // 51: aload 0
      // 52: getfield com/l7tech/policy/assertion/credential/LoginCredentials.d Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 55: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.SAML Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 58: if_acmpne 68
      // 5b: aload 0
      // 5c: getfield com/l7tech/policy/assertion/credential/LoginCredentials.e Ljava/lang/Object;
      // 5f: checkcast com/l7tech/xml/saml/SamlAssertion
      // 62: astore 1
      // 63: aload 1
      // 64: invokevirtual com/l7tech/xml/saml/SamlAssertion.getNameIdentifierValue ()Ljava/lang/String;
      // 67: areturn
      // 68: aload 0
      // 69: getfield com/l7tech/policy/assertion/credential/LoginCredentials.d Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 6c: getstatic com/l7tech/policy/assertion/credential/CredentialFormat.KERBEROSTICKET Lcom/l7tech/policy/assertion/credential/CredentialFormat;
      // 6f: if_acmpne 7f
      // 72: aload 0
      // 73: getfield com/l7tech/policy/assertion/credential/LoginCredentials.e Ljava/lang/Object;
      // 76: checkcast com/l7tech/kerberos/KerberosServiceTicket
      // 79: astore 1
      // 7a: aload 1
      // 7b: invokevirtual com/l7tech/kerberos/KerberosServiceTicket.getClientPrincipalName ()Ljava/lang/String;
      // 7e: areturn
      // 7f: aconst_null
      // 80: areturn
      // try (0 -> 8): 9 java/lang/IllegalArgumentException
      // try (4 -> 15): 16 java/lang/IllegalArgumentException
      // try (11 -> 21): 21 java/lang/IllegalArgumentException
   }

   static {
      String[] var5 = new String[12];
      int var3 = 0;
      String var2 = "\u0018'\u0010\\f\u001ci\u0000\u0012\u0010Wm\ro\u0003#\u000e\u0003!\u0010\u001d#\u000f[J\nc\u001d6\u000bXj\u000btN`%00\u0007Zf\u0000r\u001a#\u000e\u001et\u0007r\u001bb\u0017Ps\u001ci\u0005'\u0006\u001e`\u000bt\u0007+\u0004W`\u000fr\u0016c\u001aO\u000e\rYj\u0000E\u0001'\u0006[m\u001ao\u0012.\u0011\u001ee\u0001t\u001e#\u0016\u0003!\u0003Qm\\\u0002Qb\u001c&,\u0011Ks\u001ei\u00016\u0007Z#\u001dc\u00107\u0010Ww\u0017&\u0007-\t[mN!\u000bTb\rX#\u001a\u007f\u0003'B\u00199\u00060\f\u0004l\u000fu\u001a1XPb\u0003c\u0000x\u0016]9=G>\u000eX\u000f-_<\u001d#\u000f[j\n+\u0015-\u0010Sb\u001a<+wR\u0007P\u001bd\u0019'\u0001JM\u000fk\u0016@>7\u0011J#\u001et\u001c4\u000bZfNgS!\u0007Lw\u0007`\u001a!\u0003JfNq\u001b'\f\u001e`\u001cc\u00126\u000bPdNe\u001f+\u0007PwNe\u00160\u0016\u001e`\u001cc\u0017'\fJj\u000fj\u0000";
      int var4 = "\u0018'\u0010\\f\u001ci\u0000\u0012\u0010Wm\ro\u0003#\u000e\u0003!\u0010\u001d#\u000f[J\nc\u001d6\u000bXj\u000btN`%00\u0007Zf\u0000r\u001a#\u000e\u001et\u0007r\u001bb\u0017Ps\u001ci\u0005'\u0006\u001e`\u000bt\u0007+\u0004W`\u000fr\u0016c\u001aO\u000e\rYj\u0000E\u0001'\u0006[m\u001ao\u0012.\u0011\u001ee\u0001t\u001e#\u0016\u0003!\u0003Qm\\\u0002Qb\u001c&,\u0011Ks\u001ei\u00016\u0007Z#\u001dc\u00107\u0010Ww\u0017&\u0007-\t[mN!\u000bTb\rX#\u001a\u007f\u0003'B\u00199\u00060\f\u0004l\u000fu\u001a1XPb\u0003c\u0000x\u0016]9=G>\u000eX\u000f-_<\u001d#\u000f[j\n+\u0015-\u0010Sb\u001a<+wR\u0007P\u001bd\u0019'\u0001JM\u000fk\u0016@>7\u0011J#\u001et\u001c4\u000bZfNgS!\u0007Lw\u0007`\u001a!\u0003JfNq\u001b'\f\u001e`\u001cc\u00126\u000bPdNe\u001f+\u0007PwNe\u00160\u0016\u001e`\u001cc\u0017'\fJj\u000fj\u0000"
         .length();
      char var1 = 19;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 114;
         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) {
                     l = var5;
                     a = ArrayUtils.asMap(
                        new Object[][]{
                           {RequireWssX509Cert.class, SecurityTokenType.WSS_X509_BST},
                           {WssBasic.class, SecurityTokenType.WSS_USERNAME},
                           {XpathCredentialSource.class, SecurityTokenType.XPATH_CREDENTIALS},
                           {HttpNegotiate.class, SecurityTokenType.HTTP_KERBEROS},
                           {SecureConversation.class, SecurityTokenType.WSSC_CONTEXT}
                        },
                        true
                     );
                     return;
                  }

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

                  var2 = "cTc7\u0005n\u0011TO<\u007f\u0007|Nf4\u000e0G";
                  var4 = "cTc7\u0005n\u0011TO<\u007f\u0007|Nf4\u000e0G".length();
                  var1 = 11;
                  var7 = -1;
            }

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

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

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

      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 -> 1;
            case 1 -> 48;
            case 2 -> 16;
            case 3 -> 76;
            case 4 -> 113;
            case 5 -> 28;
            default -> 116;
         });
      }

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