package com.l7tech.external.assertions.gatewaygraphql.server.resolver.helper;

import com.l7tech.common.io.CertUtils;
import com.l7tech.external.assertions.gatewaygraphql.server.data.KeyDTO;
import com.l7tech.gateway.common.cluster.ClusterProperty;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.server.DefaultKey;
import com.l7tech.server.cluster.ClusterPropertyManager;
import com.l7tech.util.SyspropUtil;
import java.security.cert.X509Certificate;
import java.util.List;
import java.util.logging.Logger;
import lombok.Generated;

public class SsgKeyUsageHelper {
   @Generated
   private static final Logger a;
   private static final String b;
   private final ClusterPropertyManager c;
   private static final String[] d;

   public SsgKeyUsageHelper(ClusterPropertyManager var1) {
      this.c = var1;
   }

   public boolean hasAnyDesignatedKeyUsages(SsgKeyEntry var1, DefaultKey var2) {
      return !findDesignatedKeyUsages(var1, var2).isEmpty();
   }

   public static List<KeyDTO.KeyUsageType> findDesignatedKeyUsages(SsgKeyEntry param0, DefaultKey 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: new java/util/ArrayList
      // 003: dup
      // 004: invokespecial java/util/ArrayList.<init> ()V
      // 007: astore 2
      // 008: aload 1
      // 009: invokeinterface com/l7tech/server/DefaultKey.getSslInfo ()Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 1
      // 00e: astore 3
      // 00f: aload 0
      // 010: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 013: aload 3
      // 014: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 017: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 01a: ifeq 02e
      // 01d: aload 2
      // 01e: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/KeyDTO$KeyUsageType.SSL Lcom/l7tech/external/assertions/gatewaygraphql/server/data/KeyDTO$KeyUsageType;
      // 021: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 026: pop
      // 027: goto 02e
      // 02a: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/helper/SsgKeyUsageHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 02d: athrow
      // 02e: aload 1
      // 02f: invokeinterface com/l7tech/server/DefaultKey.getServerSslInfo ()Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 1
      // 034: astore 3
      // 035: aload 0
      // 036: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 039: aload 3
      // 03a: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 03d: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 040: ifeq 054
      // 043: aload 2
      // 044: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/KeyDTO$KeyUsageType.SERVER_SSL Lcom/l7tech/external/assertions/gatewaygraphql/server/data/KeyDTO$KeyUsageType;
      // 047: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 04c: pop
      // 04d: goto 054
      // 050: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/helper/SsgKeyUsageHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 053: athrow
      // 054: aload 1
      // 055: invokeinterface com/l7tech/server/DefaultKey.getClientSslInfo ()Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 1
      // 05a: astore 3
      // 05b: aload 0
      // 05c: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 05f: aload 3
      // 060: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 063: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 066: ifeq 07a
      // 069: aload 2
      // 06a: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/KeyDTO$KeyUsageType.CLIENT_SSL Lcom/l7tech/external/assertions/gatewaygraphql/server/data/KeyDTO$KeyUsageType;
      // 06d: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 072: pop
      // 073: goto 07a
      // 076: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/helper/SsgKeyUsageHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 079: athrow
      // 07a: aload 1
      // 07b: invokeinterface com/l7tech/server/DefaultKey.getCaInfo ()Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 1
      // 080: astore 3
      // 081: aload 3
      // 082: ifnull 0ab
      // 085: aload 0
      // 086: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 089: aload 3
      // 08a: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 08d: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 090: ifeq 0ab
      // 093: goto 09a
      // 096: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/helper/SsgKeyUsageHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 099: athrow
      // 09a: aload 2
      // 09b: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/KeyDTO$KeyUsageType.CA Lcom/l7tech/external/assertions/gatewaygraphql/server/data/KeyDTO$KeyUsageType;
      // 09e: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 0a3: pop
      // 0a4: goto 0ab
      // 0a7: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/helper/SsgKeyUsageHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0aa: athrow
      // 0ab: aload 1
      // 0ac: invokeinterface com/l7tech/server/DefaultKey.getAuditViewerInfo ()Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 1
      // 0b1: astore 3
      // 0b2: aload 3
      // 0b3: ifnull 0dc
      // 0b6: aload 0
      // 0b7: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 0ba: aload 3
      // 0bb: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 0be: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 0c1: ifeq 0dc
      // 0c4: goto 0cb
      // 0c7: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/helper/SsgKeyUsageHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ca: athrow
      // 0cb: aload 2
      // 0cc: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/KeyDTO$KeyUsageType.AUDIT_VIEWER Lcom/l7tech/external/assertions/gatewaygraphql/server/data/KeyDTO$KeyUsageType;
      // 0cf: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 0d4: pop
      // 0d5: goto 0dc
      // 0d8: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/helper/SsgKeyUsageHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0db: athrow
      // 0dc: aload 1
      // 0dd: invokeinterface com/l7tech/server/DefaultKey.getAuditSigningInfo ()Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 1
      // 0e2: astore 3
      // 0e3: aload 3
      // 0e4: ifnull 10d
      // 0e7: aload 0
      // 0e8: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 0eb: aload 3
      // 0ec: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 0ef: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 0f2: ifeq 10d
      // 0f5: goto 0fc
      // 0f8: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/helper/SsgKeyUsageHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0fb: athrow
      // 0fc: aload 2
      // 0fd: getstatic com/l7tech/external/assertions/gatewaygraphql/server/data/KeyDTO$KeyUsageType.AUDIT_SIGNING Lcom/l7tech/external/assertions/gatewaygraphql/server/data/KeyDTO$KeyUsageType;
      // 100: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 105: pop
      // 106: goto 10d
      // 109: invokestatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/helper/SsgKeyUsageHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 10c: athrow
      // 10d: goto 120
      // 110: astore 3
      // 111: getstatic com/l7tech/external/assertions/gatewaygraphql/server/resolver/helper/SsgKeyUsageHelper.a Ljava/util/logging/Logger;
      // 114: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 117: aload 3
      // 118: invokedynamic get (Ljava/lang/Exception;)Ljava/util/function/Supplier; bsm=java/lang/invoke/LambdaMetafactory.metafactory (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; args=[ ()Ljava/lang/Object;, com/l7tech/external/assertions/gatewaygraphql/server/resolver/helper/SsgKeyUsageHelper.lambda$findDesignatedKeyUsages$0 (Ljava/lang/Exception;)Ljava/lang/String;, ()Ljava/lang/String; ]
      // 11d: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/util/function/Supplier;)V
      // 120: aload 2
      // 121: areturn
      // try (99 -> 112): 113 java/lang/Exception
      // try (97 -> 105): 106 java/lang/Exception
      // try (78 -> 91): 92 java/lang/Exception
      // try (76 -> 84): 85 java/lang/Exception
      // try (57 -> 70): 71 java/lang/Exception
      // try (55 -> 63): 64 java/lang/Exception
      // try (39 -> 49): 50 java/lang/Exception
      // try (23 -> 33): 34 java/lang/Exception
      // try (7 -> 17): 18 java/lang/Exception
      // try (4 -> 115): 116 java/lang/Exception
   }

   public boolean isDefaultKeyMutable(KeyDTO.KeyUsageType var1) {
      String[] var2 = d;
      return var2[0].equals(SyspropUtil.getString(var1.internalSystemProperty(), var2[2]));
   }

   public void setKeyUsage(SsgKeyEntry var1, KeyDTO.KeyUsageType var2) throws ObjectModelException {
      String var3 = var1.getKeystoreId() + ":" + var1.getAlias();
      this.a(var2, var3);
   }

   private void a(KeyDTO.KeyUsageType var1, String var2) throws ObjectModelException {
      ClusterProperty var3 = (ClusterProperty)this.c.findByUniqueName(var1.internalClusterProperty());
      if (var3 == null) {
         var3 = new ClusterProperty(var1.internalClusterProperty(), var2);
         this.c.save(var3);
      } else {
         var3.setValue(var2);
         this.c.update(var3);
      }
   }

   private boolean a(SsgKeyEntry var1) {
      X509Certificate[] var2 = var1.getCertificateChain();
      int var3 = var2.length;

      for (X509Certificate var7 : var2) {
         if (!CertUtils.isCertCaCapable(var7)) {
            return false;
         }

         if (var3 > var7.getBasicConstraints()) {
            return false;
         }

         var3--;
      }

      return true;
   }

   static {
      String[] var5 = new String[3];
      int var3 = 0;
      String var2 = "Z\u001e\"-\u000e>j\u0002#'\bR*A\u0013>=\u0014\u0006*]\u00155h\r\u001a&C\u0015q!\u001e\u0017![\u001971\u0013\u001c(\u000f\u00049-Z\u0019*VP$;\u001b\u0015*\u000f\u0004(8\u001f^oL\u0011$;\u001fO\u0005Z\u001e\"-\u000e";
      int var4 = "Z\u001e\"-\u000e>j\u0002#'\bR*A\u0013>=\u0014\u0006*]\u00155h\r\u001a&C\u0015q!\u001e\u0017![\u001971\u0013\u001c(\u000f\u00049-Z\u0019*VP$;\u001b\u0015*\u000f\u0004(8\u001f^oL\u0011$;\u001fO\u0005Z\u001e\"-\u000e"
         .length();
      char var1 = 5;
      int var0 = -1;

      while (true) {
         String var10002 = a(73, a(var2.substring(++var0, var0 + var1)));
         byte var10001 = -1;
         var5[var3++] = var10002;
         if ((var0 += var1) >= var4) {
            d = var5;
            b = d[2];
            a = Logger.getLogger(SsgKeyUsageHelper.class.getName());
            return;
         }

         var1 = var2.charAt(var0);
      }
   }

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

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

      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 -> 102;
            case 1 -> 57;
            case 2 -> 24;
            case 3 -> 1;
            case 4 -> 51;
            case 5 -> 59;
            default -> 6;
         });
      }

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