package com.l7tech.server.security;

import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.policy.assertion.ext.security.Signer;
import com.l7tech.policy.assertion.ext.security.SignerException;
import com.l7tech.policy.assertion.ext.security.SignerServices;
import com.l7tech.server.DefaultKey;
import com.l7tech.server.security.keystore.SsgKeyStoreManager;
import com.l7tech.util.ExceptionUtils;
import java.security.UnrecoverableKeyException;
import java.util.logging.Logger;

public class SignerServicesImpl implements SignerServices {
   private static final Logger a;
   private final SsgKeyStoreManager b;
   private final DefaultKey c;
   private static final String[] d;

   public SignerServicesImpl(SsgKeyStoreManager var1, DefaultKey var2) {
      this.b = var1;
      this.c = var2;
   }

   public Signer createSigner(String var1) throws SignerException {
      SsgKeyEntry var2 = this.a(var1);

      UnrecoverableKeyException var3;
      try {
         if (var2 == null) {
            return null;
         }

         try {
            return new SignerImpl(var2.getPrivateKey());
         } catch (UnrecoverableKeyException var4) {
            var3 = var4;
         }
      } catch (SignerException var5) {
         throw a(var5);
      }

      throw new SignerException(d[3] + ExceptionUtils.getMessage(var3), var3);
   }

   private SsgKeyEntry a(String param1) throws SignerException {
      // $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: aload 1
      // 001: ifnull 012
      // 004: aload 1
      // 005: invokevirtual java/lang/String.length ()I
      // 008: ifne 023
      // 00b: goto 012
      // 00e: invokestatic com/l7tech/server/security/SignerServicesImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 011: athrow
      // 012: new com/l7tech/policy/assertion/ext/security/SignerException
      // 015: dup
      // 016: getstatic com/l7tech/server/security/SignerServicesImpl.d [Ljava/lang/String;
      // 019: bipush 0
      // 01a: aaload
      // 01b: invokespecial com/l7tech/policy/assertion/ext/security/SignerException.<init> (Ljava/lang/String;)V
      // 01e: athrow
      // 01f: invokestatic com/l7tech/server/security/SignerServicesImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 022: athrow
      // 023: aconst_null
      // 024: astore 2
      // 025: aload 1
      // 026: getstatic com/l7tech/server/security/SignerServicesImpl.d [Ljava/lang/String;
      // 029: astore 10
      // 02b: aload 10
      // 02d: bipush 8
      // 02f: aaload
      // 030: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 033: ifeq 065
      // 036: aload 0
      // 037: getfield com/l7tech/server/security/SignerServicesImpl.c Lcom/l7tech/server/DefaultKey;
      // 03a: invokeinterface com/l7tech/server/DefaultKey.getServerSslInfo ()Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 1
      // 03f: astore 2
      // 040: goto 183
      // 043: astore 3
      // 044: getstatic com/l7tech/server/security/SignerServicesImpl.a Ljava/util/logging/Logger;
      // 047: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 04a: aload 3
      // 04b: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 04e: getstatic com/l7tech/server/security/SignerServicesImpl.d [Ljava/lang/String;
      // 051: astore 10
      // 053: aload 10
      // 055: bipush 1
      // 056: aaload
      // 057: swap
      // 058: 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" ]
      // 05d: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 060: aconst_null
      // 061: astore 2
      // 062: goto 183
      // 065: aload 1
      // 066: ldc ":"
      // 068: invokevirtual java/lang/String.split (Ljava/lang/String;)[Ljava/lang/String;
      // 06b: astore 3
      // 06c: aload 3
      // 06d: arraylength
      // 06e: bipush 2
      // 06f: if_icmpeq 084
      // 072: new com/l7tech/policy/assertion/ext/security/SignerException
      // 075: dup
      // 076: getstatic com/l7tech/server/security/SignerServicesImpl.d [Ljava/lang/String;
      // 079: bipush 6
      // 07b: aaload
      // 07c: invokespecial com/l7tech/policy/assertion/ext/security/SignerException.<init> (Ljava/lang/String;)V
      // 07f: athrow
      // 080: invokestatic com/l7tech/server/security/SignerServicesImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 083: athrow
      // 084: aload 3
      // 085: bipush 0
      // 086: aaload
      // 087: astore 4
      // 089: aload 3
      // 08a: bipush 1
      // 08b: aaload
      // 08c: astore 5
      // 08e: aload 4
      // 090: getstatic com/l7tech/server/security/SignerServicesImpl.d [Ljava/lang/String;
      // 093: bipush 2
      // 094: aaload
      // 095: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 098: ifne 0ad
      // 09b: aload 4
      // 09d: invokestatic com/l7tech/objectmodel/Goid.parseGoid (Ljava/lang/String;)Lcom/l7tech/objectmodel/Goid;
      // 0a0: invokestatic com/l7tech/objectmodel/Goid.isDefault (Lcom/l7tech/objectmodel/Goid;)Z
      // 0a3: ifeq 0e4
      // 0a6: goto 0ad
      // 0a9: invokestatic com/l7tech/server/security/SignerServicesImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ac: athrow
      // 0ad: aload 0
      // 0ae: getfield com/l7tech/server/security/SignerServicesImpl.b Lcom/l7tech/server/security/keystore/SsgKeyStoreManager;
      // 0b1: aload 5
      // 0b3: getstatic com/l7tech/objectmodel/Goid.DEFAULT_GOID Lcom/l7tech/objectmodel/Goid;
      // 0b6: invokeinterface com/l7tech/server/security/keystore/SsgKeyStoreManager.lookupKeyByKeyAlias (Ljava/lang/String;Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 3
      // 0bb: astore 2
      // 0bc: goto 183
      // 0bf: astore 6
      // 0c1: getstatic com/l7tech/server/security/SignerServicesImpl.a Ljava/util/logging/Logger;
      // 0c4: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 0c7: aload 6
      // 0c9: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 0cc: getstatic com/l7tech/server/security/SignerServicesImpl.d [Ljava/lang/String;
      // 0cf: astore 10
      // 0d1: aload 10
      // 0d3: bipush 9
      // 0d5: aaload
      // 0d6: swap
      // 0d7: 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" ]
      // 0dc: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 0df: aconst_null
      // 0e0: astore 2
      // 0e1: goto 183
      // 0e4: aload 4
      // 0e6: invokestatic com/l7tech/objectmodel/Goid.parseGoid (Ljava/lang/String;)Lcom/l7tech/objectmodel/Goid;
      // 0e9: astore 6
      // 0eb: bipush 0
      // 0ec: istore 7
      // 0ee: aload 0
      // 0ef: getfield com/l7tech/server/security/SignerServicesImpl.b Lcom/l7tech/server/security/keystore/SsgKeyStoreManager;
      // 0f2: invokeinterface com/l7tech/server/security/keystore/SsgKeyStoreManager.findAll ()Ljava/util/List; 1
      // 0f7: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 0fc: astore 8
      // 0fe: aload 8
      // 100: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 105: ifeq 13b
      // 108: aload 8
      // 10a: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 10f: checkcast com/l7tech/server/security/keystore/SsgKeyFinder
      // 112: astore 9
      // 114: aload 6
      // 116: aload 9
      // 118: invokeinterface com/l7tech/server/security/keystore/SsgKeyFinder.getKeyStore ()Lcom/l7tech/server/security/keystore/SsgKeyStore; 1
      // 11d: invokeinterface com/l7tech/server/security/keystore/SsgKeyStore.getGoid ()Lcom/l7tech/objectmodel/Goid; 1
      // 122: invokevirtual com/l7tech/objectmodel/Goid.equals (Ljava/lang/Object;)Z
      // 125: ifeq 138
      // 128: bipush 1
      // 129: istore 7
      // 12b: aload 9
      // 12d: aload 5
      // 12f: invokeinterface com/l7tech/server/security/keystore/SsgKeyFinder.getCertificateChain (Ljava/lang/String;)Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 2
      // 134: astore 2
      // 135: goto 13b
      // 138: goto 0fe
      // 13b: iload 7
      // 13d: ifne 163
      // 140: getstatic com/l7tech/server/security/SignerServicesImpl.a Ljava/util/logging/Logger;
      // 143: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 146: aload 4
      // 148: getstatic com/l7tech/server/security/SignerServicesImpl.d [Ljava/lang/String;
      // 14b: bipush 4
      // 14c: aaload
      // 14d: swap
      // 14e: getstatic com/l7tech/server/security/SignerServicesImpl.d [Ljava/lang/String;
      // 151: bipush 7
      // 153: aaload
      // 154: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // 159: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 15c: goto 163
      // 15f: invokestatic com/l7tech/server/security/SignerServicesImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 162: athrow
      // 163: goto 183
      // 166: astore 6
      // 168: getstatic com/l7tech/server/security/SignerServicesImpl.a Ljava/util/logging/Logger;
      // 16b: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 16e: aload 6
      // 170: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 173: getstatic com/l7tech/server/security/SignerServicesImpl.d [Ljava/lang/String;
      // 176: bipush 5
      // 177: aaload
      // 178: swap
      // 179: 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" ]
      // 17e: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 181: aconst_null
      // 182: astore 2
      // 183: aload 2
      // 184: areturn
      // try (2 -> 15): 15 java/io/IOException
      // try (0 -> 5): 6 java/io/IOException
      // try (27 -> 31): 32 java/io/IOException
      // try (73 -> 83): 84 java/io/IOException
      // try (52 -> 63): 63 java/io/IOException
      // try (86 -> 92): 93 com/l7tech/objectmodel/FindException
      // try (86 -> 92): 93 java/security/KeyStoreException
      // try (140 -> 154): 155 java/io/IOException
      // try (109 -> 157): 158 com/l7tech/objectmodel/FindException
      // try (109 -> 157): 158 java/security/KeyStoreException
   }

   static {
      String[] var5 = new String[10];
      int var3 = 0;
      String var2 = "p\u0000Y\n4x\u0013\u0004!x\n<|\u0004J\u0007H\n=xJA\u0005L^&3*q\u0006]H3xJP\u0007\u001cL6s\u000e\u0004/]^:j\u000b]OO\n;x\fE\u001dP^\u007fN9hHWO&'J\u0002\tY\u0019q\u0006]H3xJP\u0007\u001cI-x\u000bP\r\u001cY6z\u0004A\u001a\u0006\n5q\u0006]H3xJP\u0007\u001cL6s\u000e\u0004/]^:j\u000b]HLX6k\u000bP\r\u001cA:dP\u0004\u0003YS,i\u0005V\r\u001c]6i\u0002\u0004\u0001X\n$q\u0006]H3xJP\u0007\u001cL6s\u000e\u0004/]^:j\u000b]HLX6k\u000bP\r\u001cA:dP\u0004\u0016m\u0006JK3t\u000e\u0004\u0003YS\u007fT.\u0004\u000eSX2|\u001e\n\u000b\u0004\u0006S^\u007f{\u0005Q\u0006X\u0004";
      int var4 = "p\u0000Y\n4x\u0013\u0004!x\n<|\u0004J\u0007H\n=xJA\u0005L^&3*q\u0006]H3xJP\u0007\u001cL6s\u000e\u0004/]^:j\u000b]OO\n;x\fE\u001dP^\u007fN9hHWO&'J\u0002\tY\u0019q\u0006]H3xJP\u0007\u001cI-x\u000bP\r\u001cY6z\u0004A\u001a\u0006\n5q\u0006]H3xJP\u0007\u001cL6s\u000e\u0004/]^:j\u000b]HLX6k\u000bP\r\u001cA:dP\u0004\u0003YS,i\u0005V\r\u001c]6i\u0002\u0004\u0001X\n$q\u0006]H3xJP\u0007\u001cL6s\u000e\u0004/]^:j\u000b]HLX6k\u000bP\r\u001cA:dP\u0004\u0016m\u0006JK3t\u000e\u0004\u0003YS\u007fT.\u0004\u000eSX2|\u001e\n\u000b\u0004\u0006S^\u007f{\u0005Q\u0006X\u0004"
         .length();
      char var1 = 27;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 69;
         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) {
                     d = var5;
                     a = Logger.getLogger(SignerServicesImpl.class.getName());
                     return;
                  }

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

                  var2 = "?sE:O\u0012$2E\u001e\u000bp;\t\u0013D_\u000fu0MGl\u001e\u001dy)H\u001e\u000b\u000f\u001bu(H\u0013N_\u0002y'\u0013G";
                  var4 = "?sE:O\u0012$2E\u001e\u000bp;\t\u0013D_\u000fu0MGl\u001e\u001dy)H\u001e\u000b\u000f\u001bu(H\u0013N_\u0002y'\u0013G".length();
                  var1 = 6;
                  var7 = -1;
            }

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

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

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

      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 -> 97;
            case 1 -> 45;
            case 2 -> 121;
            case 3 -> 111;
            case 4 -> 26;
            case 5 -> 88;
            default -> 47;
         });
      }

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