package com.l7tech.gateway.common.siteminder;

import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.SecurityZone;
import com.l7tech.util.DeserializeSafe;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Serializable;
import java.nio.charset.Charset;
import java.util.Properties;

@DeserializeSafe
public class SiteMinderHost implements Serializable {
   private static final String HOST_NAME;
   private static final String HOST_CONFIG_OBJECT;
   private static final String POLICY_SERVER;
   private static final String REQUEST_TIMEOUT;
   private static final String SHARED_SECRET;
   private static final String SHARED_SECRET_TIME;
   private static final String FIPS_MODE;
   private String hostname;
   private String hostConfigObject;
   private String policyServer;
   private Integer requestTimeout;
   private String sharedSecret;
   private Long sharedSecretTime;
   private SiteMinderFipsModeOption fipsMode;
   private String userName;
   private Goid passwordGoid;
   private SecurityZone securityZone;
   static final long serialVersionUID = -5686703537560473375L;
   private static final String[] a;

   public SiteMinderHost(String var1, String var2, String var3, SiteMinderFipsModeOption var4, String var5, Goid var6, SecurityZone var7) {
      this.hostname = var1;
      this.hostConfigObject = var3;
      this.policyServer = var2;
      this.requestTimeout = 0;
      this.sharedSecret = "";
      this.sharedSecretTime = 0L;
      this.fipsMode = var4;
      this.userName = var5;
      this.passwordGoid = var6;
      this.securityZone = var7;
   }

   public SiteMinderHost(String var1) throws IOException {
      FileInputStream var10004 = new FileInputStream(new File(var1));
      String[] var5 = a;

      try (BufferedReader var2 = new BufferedReader(new InputStreamReader(var10004, Charset.forName(var5[13])))) {
         Properties var3 = new Properties();
         var3.load(var2);
         this.hostname = this.getValue(var3, var5[15]);
         this.hostConfigObject = this.getValue(var3, var5[2]);
         this.policyServer = this.getValue(var3, var5[17]);
         this.requestTimeout = this.getIntValue(var3, var5[19]);
         this.sharedSecret = this.getValue(var3, var5[9]);
         this.sharedSecretTime = this.getLongValue(var3, var5[5]);
         this.fipsMode = this.getFipsMode(var3, var5[21]);
      }
   }

   private Integer getIntValue(Properties var1, String var2) {
      String var3 = this.getValue(var1, var2);
      return var3 != null ? Integer.valueOf(var3) : null;
   }

   private Long getLongValue(Properties var1, String var2) {
      String var3 = this.getValue(var1, var2);
      return var3 != null ? Long.valueOf(var3) : null;
   }

   private SiteMinderFipsModeOption getFipsMode(Properties var1, String var2) {
      String var3 = this.getValue(var1, var2);
      return SiteMinderFipsModeOption.getByName(var3);
   }

   private String getValue(Properties var1, String var2) {
      String var3 = var1.getProperty(var2);
      return var3 != null ? var3.replaceAll(a[1], "") : null;
   }

   public String getHostname() {
      return this.hostname;
   }

   public String getHostConfigObject() {
      return this.hostConfigObject;
   }

   public String getPolicyServer() {
      return this.policyServer;
   }

   public Integer getRequestTimeout() {
      return this.requestTimeout;
   }

   public String getSharedSecret() {
      return this.sharedSecret;
   }

   public Long getSharedSecretTime() {
      return this.sharedSecretTime;
   }

   public SiteMinderFipsModeOption getFipsMode() {
      return this.fipsMode;
   }

   public void setUserName(String var1) {
      this.userName = var1;
   }

   public String getUserName() {
      return this.userName;
   }

   public void setPasswordGoid(Goid var1) {
      this.passwordGoid = var1;
   }

   public Goid getPasswordGoid() {
      return this.passwordGoid;
   }

   public SecurityZone getSecurityZone() {
      return this.securityZone;
   }

   public void setSecurityZone(SecurityZone var1) {
      this.securityZone = var1;
   }

   @Override
   public String toString() {
      String var10000 = this.hostname;
      String var10001 = this.hostConfigObject;
      String var10002 = this.policyServer;
      Integer var10003 = this.requestTimeout;
      String var10004 = this.sharedSecret;
      String var1 = String.valueOf(this.fipsMode);
      String var2 = var10004;
      Integer var3 = var10003;
      String var4 = var10002;
      String var5 = var10001;
      String var6 = var10000;
      String[] var7 = a;
      return var7[10] + var6 + var7[11] + var5 + var7[12] + var4 + var7[16] + var3 + var7[3] + var2 + var7[14] + var1 + "]";
   }

   static {
      String[] var5 = new String[22];
      int var3 = 0;
      String var2 = "iq}\u0003@`l\u007fzn\u0014Q\u0005D;`S\u0001\u0010rvo\u0005Fkq|p{\u001eGnzym\u0010G5G\u0002Mem\u007f}o\u0014Fvzn#\fjvp\u0018F}l\u007fkj\u0014W\u0010iq}\u0003@`l\u007fzn\u0014Qpvw|\u0010rvo\u0005Fkq|p{\u001eGnzym\u0010iq}\u0003@`l\u007fzn\u0014Qpvw|\b|pl\u0002Hk{\u007f\fiq}\u0003@`l\u007fzn\u0014Q\nAqs\u0002Qj~w|&\u0014G5G\u0019Jwkyvr\u0017Lcpxsy\u0012Q>\u0010G5G\u0001Jhvy`o\u0014Wrzh#\u0005OMZ\\\u001d\fG5G\u0017Ltlwvx\u0014\u001f\brvo\u0005Ker\u007f\u0012G5G\u0003@uj\u007fjh\u0005LizulhK\fjvp\u0018F}l\u007fkj\u0014W\u000eh|m\u0004@wknpq\u0014Jqk\u000eh|m\u0004@wknpq\u0014Jqk";
      int var4 = "iq}\u0003@`l\u007fzn\u0014Q\u0005D;`S\u0001\u0010rvo\u0005Fkq|p{\u001eGnzym\u0010G5G\u0002Mem\u007f}o\u0014Fvzn#\fjvp\u0018F}l\u007fkj\u0014W\u0010iq}\u0003@`l\u007fzn\u0014Qpvw|\u0010rvo\u0005Fkq|p{\u001eGnzym\u0010iq}\u0003@`l\u007fzn\u0014Qpvw|\b|pl\u0002Hk{\u007f\fiq}\u0003@`l\u007fzn\u0014Q\nAqs\u0002Qj~w|&\u0014G5G\u0019Jwkyvr\u0017Lcpxsy\u0012Q>\u0010G5G\u0001Jhvy`o\u0014Wrzh#\u0005OMZ\\\u001d\fG5G\u0017Ltlwvx\u0014\u001f\brvo\u0005Ker\u007f\u0012G5G\u0003@uj\u007fjh\u0005LizulhK\fjvp\u0018F}l\u007fkj\u0014W\u000eh|m\u0004@wknpq\u0014Jqk\u000eh|m\u0004@wknpq\u0014Jqk"
         .length();
      char var1 = '\f';
      int var7 = -1;

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

         while (true) {
            String var8 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     a = var5;
                     String[] var9 = a;
                     SHARED_SECRET = a[0];
                     HOST_CONFIG_OBJECT = var9[6];
                     REQUEST_TIMEOUT = var9[18];
                     HOST_NAME = var9[20];
                     SHARED_SECRET_TIME = var9[7];
                     POLICY_SERVER = var9[4];
                     FIPS_MODE = var9[8];
                     return;
                  }

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

                  var2 = "tpi\u0003Mcty\bzvj\u0004Nm}y";
                  var4 = "tpi\u0003Mcty\bzvj\u0004Nm}y".length();
                  var1 = '\b';
                  var7 = -1;
            }

            var10000 = 9;
            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] ^ 16);
      }

      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 -> 21;
            case 1 -> 22;
            case 2 -> 19;
            case 3 -> 126;
            case 4 -> 42;
            case 5 -> 11;
            default -> 16;
         });
      }

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