package com.l7tech.gateway.pm2.graphql.helper;

import com.l7tech.security.xml.SupportedDigestMethods;
import com.l7tech.security.xml.SupportedSignatureMethods;
import java.util.HashMap;
import java.util.Map;
import lombok.Generated;

public class XMLAlgHelper {
   private final Map<String, String> a = new HashMap<>();
   private final Map<String, String> b = new HashMap<String, String>() {
      static final long serialVersionUID = 1803981062399047492L;
      private static final String[] a;

      {
         String[] var2 = a;
         this.put(var2[3], var2[2]);
         this.put(var2[0], var2[1]);
      }

      static {
         String[] var5 = new String[4];
         int var3 = 0;
         String var2 = "4kA_X\u000f2+hB\u0001\u0015\u001333mR\u0000P\u0010-m0\u0005\u001bMXp0z[LARt,zXKS\u0016-\n\u000eVej/d0m)\u0005";
         int var4 = "4kA_X\u000f2+hB\u0001\u0015\u001333mR\u0000P\u0010-m0\u0005\u001bMXp0z[LARt,zXKS\u0016-\n\u000eVej/d0m)\u0005".length();
         char var1 = '*';
         int var7 = -1;

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

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

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

                     var2 = "\u000fWt\u0002S&4kA_X\u000f2+hB\u0001\u0015\u001333mR\u0000P\u0010-l0\u0005\u0016MXp0{FF\u0005\u0003n4~\u0004";
                     var4 = "\u000fWt\u0002S&4kA_X\u000f2+hB\u0001\u0015\u001333mR\u0000P\u0010-l0\u0005\u0016MXp0{FF\u0005\u0003n4~\u0004".length();
                     var1 = 5;
                     var7 = -1;
               }

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

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

         return var10000;
      }

      private static String a(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 -> 92;
               case 1 -> 31;
               case 2 -> 53;
               case 3 -> 47;
               case 4 -> 98;
               case 5 -> 32;
               default -> 29;
            });
         }

         return new String(var10001).intern();
      }
   };
   private static final String c;

   public XMLAlgHelper() {
      for (SupportedSignatureMethods var4 : SupportedSignatureMethods.values()) {
         if (!c.equals(var4.getKeyAlgorithmName())) {
            this.b.put(SupportedDigestMethods.fromAlias(var4.getDigestAlgorithmName()).getIdentifier(), var4.getDigestAlgorithmName());
            this.a.put(var4.getDisplayName(), var4.getAlgorithmIdentifier());
         }
      }
   }

   @Generated
   public Map<String, String> getSupportedSignatureMethods() {
      return this.a;
   }

   @Generated
   public Map<String, String> getSupportedDigestMethods() {
      return this.b;
   }

   static {
      String var10002 = a(a("\\k\u001d\u0017<L\u0012jw"));
      byte var10001 = -1;
      c = var10002;
   }

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

      return var10000;
   }

   private static String a(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 -> 15;
            case 1 -> 14;
            case 2 -> 126;
            case 3 -> 101;
            case 4 -> 89;
            case 5 -> 56;
            default -> 89;
         });
      }

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