package com.l7tech.identity.ldap;

import com.l7tech.identity.IdentityProviderConfig;
import com.l7tech.identity.IdentityProviderType;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.SsgKeyHeader;
import com.l7tech.policy.UsesPrivateKeys;
import com.l7tech.util.GoidUpgradeMapper;
import jakarta.persistence.Transient;
import java.io.Serializable;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public abstract class LdapUrlBasedIdentityProviderConfig extends IdentityProviderConfig implements UsesPrivateKeys, Serializable {
   public static final String PROP_LDAP_RECONNECT_TIMEOUT;
   public static final String URL;
   private static final String CLIENT_AUTH_ENABLED;
   private static final String KEYSTORE_ID;
   private static final String KEY_ALIAS;
   private static final String RECONNECT_TIMEOUT;
   static final long serialVersionUID = 2217550776575633631L;
   private static final String[] c;

   protected LdapUrlBasedIdentityProviderConfig(IdentityProviderType var1) {
      super(var1);
   }

   @Transient
   public String[] getLdapUrl() {
      Object var1 = this.getProperty(c[2]);

      try {
         if (var1 instanceof String) {
            return new String[]{(String)var1};
         }
      } catch (IllegalArgumentException var2) {
         throw var2;
      }

      return (String[])var1;
   }

   public void setLdapUrl(String[] var1) {
      this.setProperty(c[0], var1);
   }

   @Transient
   public boolean isClientAuthEnabled() {
      // $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/identity/ldap/LdapUrlBasedIdentityProviderConfig.c [Ljava/lang/String;
      // 04: bipush 1
      // 05: aaload
      // 06: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getProperty (Ljava/lang/String;)Ljava/lang/Object;
      // 09: checkcast java/lang/Boolean
      // 0c: astore 1
      // 0d: aload 1
      // 0e: ifnull 1c
      // 11: aload 1
      // 12: invokevirtual java/lang/Boolean.booleanValue ()Z
      // 15: ifeq 21
      // 18: goto 1c
      // 1b: athrow
      // 1c: bipush 1
      // 1d: goto 22
      // 20: athrow
      // 21: bipush 0
      // 22: ireturn
      // try (7 -> 12): 13 java/lang/IllegalArgumentException
      // try (9 -> 16): 16 java/lang/IllegalArgumentException
   }

   public void setClientAuthEnabled(boolean var1) {
      this.setProperty(c[6], var1);
   }

   @Transient
   public Goid getKeystoreId() {
      Object var1 = this.getProperty(c[11]);

      EntityType var10000;
      try {
         var10000 = EntityType.SSG_KEYSTORE;
         if (var1 != null) {
            return GoidUpgradeMapper.mapId(EntityType.SSG_KEYSTORE, String.valueOf(var1));
         }
      } catch (IllegalArgumentException var2) {
         throw var2;
      }

      return GoidUpgradeMapper.mapId(var10000, null);
   }

   public void setKeystoreId(@Nullable Goid var1) {
      this.setProperty(c[9], var1);
   }

   @Transient
   public String getKeyAlias() {
      return this.getProperty(c[15]);
   }

   public void setKeyAlias(@Nullable String var1) {
      this.setProperty(c[12], var1);
   }

   public SsgKeyHeader[] getPrivateKeysUsed() {
      // $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: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.isClientAuthEnabled ()Z
      // 04: ifeq 43
      // 07: aload 0
      // 08: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getKeystoreId ()Lcom/l7tech/objectmodel/Goid;
      // 0b: ifnonnull 19
      // 0e: goto 12
      // 11: athrow
      // 12: getstatic com/l7tech/objectmodel/PersistentEntity.DEFAULT_GOID Lcom/l7tech/objectmodel/Goid;
      // 15: goto 1d
      // 18: athrow
      // 19: aload 0
      // 1a: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getKeystoreId ()Lcom/l7tech/objectmodel/Goid;
      // 1d: astore 1
      // 1e: bipush 1
      // 1f: anewarray 25
      // 22: dup
      // 23: bipush 0
      // 24: new com/l7tech/objectmodel/SsgKeyHeader
      // 27: dup
      // 28: aload 1
      // 29: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 2c: aload 0
      // 2d: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getKeyAlias ()Ljava/lang/String;
      // 30: 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" ]
      // 35: aload 1
      // 36: aload 0
      // 37: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getKeyAlias ()Ljava/lang/String;
      // 3a: aload 0
      // 3b: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getKeyAlias ()Ljava/lang/String;
      // 3e: invokespecial com/l7tech/objectmodel/SsgKeyHeader.<init> (Ljava/lang/String;Lcom/l7tech/objectmodel/Goid;Ljava/lang/String;Ljava/lang/String;)V
      // 41: aastore
      // 42: areturn
      // 43: aconst_null
      // 44: areturn
      // try (0 -> 6): 7 java/lang/IllegalArgumentException
      // try (3 -> 10): 10 java/lang/IllegalArgumentException
   }

   public void replacePrivateKeyUsed(@NotNull SsgKeyHeader param1, @NotNull SsgKeyHeader param2) {
      // $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 1
      // 01: ifnonnull 0c
      // 04: bipush 0
      // 05: invokestatic com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.$$$reportNull$$$0 (I)V
      // 08: goto 0c
      // 0b: athrow
      // 0c: aload 2
      // 0d: ifnonnull 18
      // 10: bipush 1
      // 11: invokestatic com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.$$$reportNull$$$0 (I)V
      // 14: goto 18
      // 17: athrow
      // 18: aload 0
      // 19: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.isClientAuthEnabled ()Z
      // 1c: ifeq 67
      // 1f: aload 0
      // 20: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getKeystoreId ()Lcom/l7tech/objectmodel/Goid;
      // 23: ifnonnull 31
      // 26: goto 2a
      // 29: athrow
      // 2a: getstatic com/l7tech/objectmodel/PersistentEntity.DEFAULT_GOID Lcom/l7tech/objectmodel/Goid;
      // 2d: goto 35
      // 30: athrow
      // 31: aload 0
      // 32: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getKeystoreId ()Lcom/l7tech/objectmodel/Goid;
      // 35: astore 3
      // 36: aload 3
      // 37: aload 1
      // 38: invokevirtual com/l7tech/objectmodel/SsgKeyHeader.getKeystoreId ()Lcom/l7tech/objectmodel/Goid;
      // 3b: invokestatic com/l7tech/objectmodel/Goid.equals (Lcom/l7tech/objectmodel/Goid;Lcom/l7tech/objectmodel/Goid;)Z
      // 3e: ifeq 67
      // 41: aload 0
      // 42: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.getKeyAlias ()Ljava/lang/String;
      // 45: aload 1
      // 46: invokevirtual com/l7tech/objectmodel/SsgKeyHeader.getAlias ()Ljava/lang/String;
      // 49: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 4c: ifeq 67
      // 4f: goto 53
      // 52: athrow
      // 53: aload 0
      // 54: aload 2
      // 55: invokevirtual com/l7tech/objectmodel/SsgKeyHeader.getKeystoreId ()Lcom/l7tech/objectmodel/Goid;
      // 58: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.setKeystoreId (Lcom/l7tech/objectmodel/Goid;)V
      // 5b: aload 0
      // 5c: aload 2
      // 5d: invokevirtual com/l7tech/objectmodel/SsgKeyHeader.getAlias ()Ljava/lang/String;
      // 60: invokevirtual com/l7tech/identity/ldap/LdapUrlBasedIdentityProviderConfig.setKeyAlias (Ljava/lang/String;)V
      // 63: goto 67
      // 66: athrow
      // 67: return
      // try (0 -> 4): 5 java/lang/IllegalArgumentException
      // try (6 -> 10): 11 java/lang/IllegalArgumentException
      // try (12 -> 18): 19 java/lang/IllegalArgumentException
      // try (15 -> 22): 22 java/lang/IllegalArgumentException
      // try (26 -> 37): 38 java/lang/IllegalArgumentException
      // try (31 -> 47): 48 java/lang/IllegalArgumentException
   }

   public Long getReconnectTimeout() {
      return this.getProperty(c[4]);
   }

   public void setReconnectTimeout(Long var1) {
      this.setProperty(c[14], var1);
   }

   static {
      String[] var5 = new String[16];
      int var3 = 0;
      String var2 = "<\u0011^Y\u0018G+\n3\u0019VL\u0003A\u0006%\u0001W\u0007<\u0011^Y\u0018G+\u0016<\u0011^YCG\"3\u001aQG\bV3~\u0001VD\bZ2$\u0010\"\u0010\\F\u0003[\"3\u0001k@\u0000P(%\u0001\u000f?\u0019[z>r\f5\fwL\fQ\"\"\n3\u0019VL\u0003A\u0006%\u0001W\u000f>\u0010Hz>r\f5\fwL\fQ\"\">\u0011\u0007X\\\u0000P)$UYF\u001f\u0015\u0007\u001e\u001aKg\u0018Y+p\u0005^[\fX\"$\u0010M\tJ\u00104wUPOM\u00104~PL\t\u0000@4$UQF\u0019\u0015%5UQ\\\u0001Y\n;\u0010FZ\u0019Z55<[\u0015\"\u0010OE\fV\"\u0000\u0007V_\fA\"\u001b\u0010F|\u001eP#\n;\u0010FZ\u0019Z55<[\b;\u0010Fh\u0001\\&#;3\u001aR\u0006\u0001\u000235\u0016W\u0006\u0004Q\">\u0001V]\u0014\u001a+4\u0014O\u0006!Q&  ME/T45\u0011vM\b[39\u0001Fy\u001fZ19\u0011Z[.Z)6\u001cX";
      int var4 = "<\u0011^Y\u0018G+\n3\u0019VL\u0003A\u0006%\u0001W\u0007<\u0011^Y\u0018G+\u0016<\u0011^YCG\"3\u001aQG\bV3~\u0001VD\bZ2$\u0010\"\u0010\\F\u0003[\"3\u0001k@\u0000P(%\u0001\u000f?\u0019[z>r\f5\fwL\fQ\"\"\n3\u0019VL\u0003A\u0006%\u0001W\u000f>\u0010Hz>r\f5\fwL\fQ\"\">\u0011\u0007X\\\u0000P)$UYF\u001f\u0015\u0007\u001e\u001aKg\u0018Y+p\u0005^[\fX\"$\u0010M\tJ\u00104wUPOM\u00104~PL\t\u0000@4$UQF\u0019\u0015%5UQ\\\u0001Y\n;\u0010FZ\u0019Z55<[\u0015\"\u0010OE\fV\"\u0000\u0007V_\fA\"\u001b\u0010F|\u001eP#\n;\u0010FZ\u0019Z55<[\b;\u0010Fh\u0001\\&#;3\u001aR\u0006\u0001\u000235\u0016W\u0006\u0004Q\">\u0001V]\u0014\u001a+4\u0014O\u0006!Q&  ME/T45\u0011vM\b[39\u0001Fy\u001fZ19\u0011Z[.Z)6\u001cX"
         .length();
      char var1 = 7;
      int var7 = -1;

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

         while (true) {
            String var13 = b(c(var10000));
            switch (var10001) {
               case 0:
                  var5[var3++] = var13;
                  if ((var7 += var1) >= var4) {
                     c = var5;
                     String[] var9 = c;
                     URL = c[0];
                     CLIENT_AUTH_ENABLED = var9[6];
                     KEYSTORE_ID = var9[9];
                     PROP_LDAP_RECONNECT_TIMEOUT = var9[3];
                     RECONNECT_TIMEOUT = var9[4];
                     KEY_ALIAS = var9[15];
                     return;
                  }

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

                  var2 = "\"\u0010\\F\u0003[\"3\u0001k@\u0000P(%\u0001\b;\u0010Fh\u0001\\&#";
                  var4 = "\"\u0010\\F\u0003[\"3\u0001k@\u0000P(%\u0001\b;\u0010Fh\u0001\\&#".length();
                  var1 = 16;
                  var7 = -1;
            }

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

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

      return var10000;
   }

   private static String b(char[] var0) {
      int var10002 = var0.length;
      char[] var10001 = var0;
      int var10000 = var10002;

      for (int var1 = 0; var10000 > var1; var1++) {
         var10001[var1] = (char)(var10001[var1] ^ switch (var1 % 7) {
            case 0 -> 80;
            case 1 -> 117;
            case 2 -> 63;
            case 3 -> 41;
            case 4 -> 109;
            case 5 -> 53;
            default -> 71;
         });
      }

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