package com.l7tech.external.assertions.gatewaygraphql.server.util;

import com.l7tech.util.ConfigFactory;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.logging.Level;
import java.util.logging.Logger;

public class KerberosConfigUtil {
   public static final Logger LOGGER;
   public static final String KEYTAB_FILENAME;
   public static final String KRB5CONF_FILENAME;
   public static final String LOGINCONF_FILENAME;
   public static final boolean DEFAULT_KRB5CONF_OVERWRITE = true;
   private static final String[] a;

   private KerberosConfigUtil() {
   }

   private static Path a(String var0) {
      String[] var3 = a;
      String var1 = ConfigFactory.getProperty(var3[9], var3[10]);
      Path var2 = Paths.get(var1, var3[7]);
      return var2.resolve(var0);
   }

   public static Path getKeytabFilePath() {
      return a(a[2]);
   }

   public static Path getKrb5ConfFilePath() {
      return a(a[11]);
   }

   public static Path getLoginConfFilePath() {
      return a(a[5]);
   }

   public static boolean keytabExists() {
      return Files.exists(getKeytabFilePath());
   }

   public static boolean krb5ConfExists() {
      return Files.exists(getKrb5ConfFilePath());
   }

   public static boolean loginConfExists() {
      return Files.exists(getLoginConfFilePath());
   }

   public static byte[] getKeytab() {
      try {
         return Files.readAllBytes(getKeytabFilePath());
      } catch (IOException var1) {
         LOGGER.log(Level.FINE, a[0]);
         return null;
      }
   }

   public static String getKrb5Conf() {
      try {
         return Files.readString(getKrb5ConfFilePath(), StandardCharsets.UTF_8);
      } catch (IOException var1) {
         LOGGER.log(Level.FINE, a[6]);
         return null;
      }
   }

   public static String getLoginConf() {
      try {
         return Files.readString(getLoginConfFilePath(), StandardCharsets.UTF_8);
      } catch (IOException var1) {
         LOGGER.log(Level.FINE, a[1]);
         return null;
      }
   }

   static {
      String[] var5 = new String[12];
      int var3 = 0;
      String var2 = "75 cpN_\u000fp9dlHQ\u001ep;r5R_\bp;ofHQ\u0010<7e;'75 cpN_\u000fp>nrU^R3=osUW\\9!!{SD\\9<ra]\\\u001056/\u000f\u00175 cpN_\u000f~9dlHQ\u001e\u000f\u00175 cpN_\u000f~9dlHQ\u001e\f\u0010?5h{\u0012S\u0013>4hr\f\u0010?5h{\u0012S\u0013>4hr$75 cpN_\u000fp9sw\t\u001e\u001f?<g5UC\\>=u5U^\u000f$3myYTR\u0003\n1 \t\u0017\"04;__\u00126\u0016\u001f??/y\u000bD\u00193:/fYB\n5 /}S]\u0019";
      int var4 = "75 cpN_\u000fp9dlHQ\u001ep;r5R_\bp;ofHQ\u0010<7e;'75 cpN_\u000fp>nrU^R3=osUW\\9!!{SD\\9<ra]\\\u001056/\u000f\u00175 cpN_\u000f~9dlHQ\u001e\u000f\u00175 cpN_\u000f~9dlHQ\u001e\f\u0010?5h{\u0012S\u0013>4hr\f\u0010?5h{\u0012S\u0013>4hr$75 cpN_\u000fp9sw\t\u001e\u001f?<g5UC\\>=u5U^\u000f$3myYTR\u0003\n1 \t\u0017\"04;__\u00126\u0016\u001f??/y\u000bD\u00193:/fYB\n5 /}S]\u0019"
         .length();
      char var1 = '!';
      int var7 = -1;

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

         while (true) {
            String var8 = a(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     a = var5;
                     String[] var9 = a;
                     KEYTAB_FILENAME = a[3];
                     KRB5CONF_FILENAME = var9[8];
                     LOGINCONF_FILENAME = var9[4];
                     LOGGER = Logger.getLogger(KerberosConfigUtil.class.getName());
                     return;
                  }

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

                  var2 = "\tex/`5\u000fE\u007fz>\u001c\u0016\u000bH%O:;\u0003\u001dGs'5 \u0002\u000f\tnm=.\u0013\u0006R\tMxjna\u0005\u0005Hl";
                  var4 = "\tex/`5\u000fE\u007fz>\u001c\u0016\u000bH%O:;\u0003\u001dGs'5 \u0002\u000f\tnm=.\u0013\u0006R\tMxjna\u0005\u0005Hl".length();
                  var1 = '$';
                  var7 = -1;
            }

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

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

      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 -> 23;
            case 1 -> 59;
            case 2 -> 57;
            case 3 -> 106;
            case 4 -> 126;
            case 5 -> 87;
            default -> 91;
         });
      }

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