package com.l7tech.server.security.cert;

import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.ObjectNotFoundException;
import com.l7tech.objectmodel.PersistentEntity;
import com.l7tech.server.security.keystore.SsgKeyStoreManager;
import java.net.Socket;
import java.security.KeyStoreException;
import java.security.Principal;
import java.security.PrivateKey;
import java.security.UnrecoverableKeyException;
import java.security.cert.X509Certificate;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.net.ssl.SSLEngine;
import javax.net.ssl.X509ExtendedKeyManager;
import javax.security.auth.x500.X500Principal;

class ag extends X509ExtendedKeyManager {
   private final SsgKeyStoreManager a;
   private static final String[] b;

   private ag(SsgKeyStoreManager var1) {
      this.a = var1;
   }

   @Override
   public String[] getClientAliases(String param1, Principal[] param2) {
      // $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: getstatic com/l7tech/server/security/cert/SslContextInitializer.a Ljava/util/logging/Logger;
      // 003: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 006: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 009: ifeq 048
      // 00c: getstatic com/l7tech/server/security/cert/SslContextInitializer.a Ljava/util/logging/Logger;
      // 00f: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 012: aload 1
      // 013: aload 2
      // 014: ifnonnull 02a
      // 017: goto 01e
      // 01a: invokestatic com/l7tech/server/security/cert/ag.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 01d: athrow
      // 01e: getstatic com/l7tech/server/security/cert/ag.b [Ljava/lang/String;
      // 021: bipush 0
      // 022: aaload
      // 023: goto 02e
      // 026: invokestatic com/l7tech/server/security/cert/ag.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 029: athrow
      // 02a: aload 2
      // 02b: invokestatic java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
      // 02e: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 031: getstatic com/l7tech/server/security/cert/ag.b [Ljava/lang/String;
      // 034: astore 9
      // 036: aload 9
      // 038: bipush 9
      // 03a: aaload
      // 03b: dup_x2
      // 03c: pop
      // 03d: ldc " "
      // 03f: swap
      // 040: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // 045: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 048: new java/util/ArrayList
      // 04b: dup
      // 04c: invokespecial java/util/ArrayList.<init> ()V
      // 04f: astore 3
      // 050: aload 0
      // 051: getfield com/l7tech/server/security/cert/ag.a Lcom/l7tech/server/security/keystore/SsgKeyStoreManager;
      // 054: invokeinterface com/l7tech/server/security/keystore/SsgKeyStoreManager.findAll ()Ljava/util/List; 1
      // 059: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 05e: astore 4
      // 060: aload 4
      // 062: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 067: ifeq 10f
      // 06a: aload 4
      // 06c: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 071: checkcast com/l7tech/server/security/keystore/SsgKeyFinder
      // 074: astore 5
      // 076: aload 5
      // 078: invokeinterface com/l7tech/server/security/keystore/SsgKeyFinder.getAliases ()Ljava/util/List; 1
      // 07d: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 082: astore 6
      // 084: aload 6
      // 086: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 08b: ifeq 10c
      // 08e: aload 6
      // 090: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 095: checkcast java/lang/String
      // 098: astore 7
      // 09a: aload 5
      // 09c: aload 7
      // 09e: invokeinterface com/l7tech/server/security/keystore/SsgKeyFinder.getCertificateChain (Ljava/lang/String;)Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 2
      // 0a3: astore 8
      // 0a5: aload 8
      // 0a7: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.isPrivateKeyAvailable ()Z
      // 0aa: ifeq 109
      // 0ad: aload 8
      // 0af: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getCertificate ()Ljava/security/cert/X509Certificate;
      // 0b2: invokestatic com/l7tech/common/io/CertUtils.isCertCaCapable (Ljava/security/cert/X509Certificate;)Z
      // 0b5: ifne 109
      // 0b8: goto 0bf
      // 0bb: invokestatic com/l7tech/server/security/cert/ag.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0be: athrow
      // 0bf: aload 1
      // 0c0: ifnull 0e2
      // 0c3: goto 0ca
      // 0c6: invokestatic com/l7tech/server/security/cert/ag.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0c9: athrow
      // 0ca: aload 1
      // 0cb: aload 8
      // 0cd: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getPrivateKey ()Ljava/security/PrivateKey;
      // 0d0: invokeinterface java/security/PrivateKey.getAlgorithm ()Ljava/lang/String; 1
      // 0d5: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0d8: ifeq 109
      // 0db: goto 0e2
      // 0de: invokestatic com/l7tech/server/security/cert/ag.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e1: athrow
      // 0e2: aload 0
      // 0e3: aload 2
      // 0e4: aload 8
      // 0e6: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getCertificate ()Ljava/security/cert/X509Certificate;
      // 0e9: invokevirtual java/security/cert/X509Certificate.getIssuerX500Principal ()Ljavax/security/auth/x500/X500Principal;
      // 0ec: invokevirtual com/l7tech/server/security/cert/ag.a ([Ljava/security/Principal;Ljavax/security/auth/x500/X500Principal;)Z
      // 0ef: ifeq 109
      // 0f2: goto 0f9
      // 0f5: invokestatic com/l7tech/server/security/cert/ag.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f8: athrow
      // 0f9: aload 3
      // 0fa: aload 7
      // 0fc: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 101: pop
      // 102: goto 109
      // 105: invokestatic com/l7tech/server/security/cert/ag.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 108: athrow
      // 109: goto 084
      // 10c: goto 060
      // 10f: goto 173
      // 112: astore 4
      // 114: getstatic com/l7tech/server/security/cert/SslContextInitializer.a Ljava/util/logging/Logger;
      // 117: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 11a: getstatic com/l7tech/server/security/cert/ag.b [Ljava/lang/String;
      // 11d: astore 9
      // 11f: aload 9
      // 121: bipush 10
      // 123: aaload
      // 124: aload 4
      // 126: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 129: goto 173
      // 12c: astore 4
      // 12e: getstatic com/l7tech/server/security/cert/SslContextInitializer.a Ljava/util/logging/Logger;
      // 131: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 134: getstatic com/l7tech/server/security/cert/ag.b [Ljava/lang/String;
      // 137: astore 9
      // 139: aload 9
      // 13b: bipush 8
      // 13d: aaload
      // 13e: aload 4
      // 140: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 143: goto 173
      // 146: astore 4
      // 148: getstatic com/l7tech/server/security/cert/SslContextInitializer.a Ljava/util/logging/Logger;
      // 14b: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 14e: getstatic com/l7tech/server/security/cert/ag.b [Ljava/lang/String;
      // 151: astore 9
      // 153: aload 9
      // 155: bipush 8
      // 157: aaload
      // 158: aload 4
      // 15a: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 15d: goto 173
      // 160: astore 4
      // 162: getstatic com/l7tech/server/security/cert/SslContextInitializer.a Ljava/util/logging/Logger;
      // 165: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 168: getstatic com/l7tech/server/security/cert/ag.b [Ljava/lang/String;
      // 16b: bipush 8
      // 16d: aaload
      // 16e: aload 4
      // 170: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 173: aload 3
      // 174: invokeinterface java/util/List.isEmpty ()Z 1
      // 179: ifeq 184
      // 17c: aconst_null
      // 17d: goto 196
      // 180: invokestatic com/l7tech/server/security/cert/ag.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 183: athrow
      // 184: aload 3
      // 185: aload 3
      // 186: invokeinterface java/util/List.size ()I 1
      // 18b: anewarray 233
      // 18e: invokeinterface java/util/List.toArray ([Ljava/lang/Object;)[Ljava/lang/Object; 2
      // 193: checkcast [Ljava/lang/String;
      // 196: areturn
      // try (87 -> 101): 102 java/security/KeyStoreException
      // try (78 -> 94): 95 java/security/KeyStoreException
      // try (73 -> 84): 85 java/security/KeyStoreException
      // try (66 -> 75): 76 java/security/KeyStoreException
      // try (63 -> 70): 71 java/security/KeyStoreException
      // try (4 -> 16): 16 java/security/KeyStoreException
      // try (0 -> 9): 10 java/security/KeyStoreException
      // try (36 -> 106): 107 java/security/KeyStoreException
      // try (36 -> 106): 118 com/l7tech/objectmodel/ObjectNotFoundException
      // try (36 -> 106): 129 com/l7tech/objectmodel/FindException
      // try (36 -> 106): 140 java/security/UnrecoverableKeyException
      // try (148 -> 153): 153 java/security/KeyStoreException
   }

   private boolean a(Principal[] var1, X500Principal var2) {
      boolean var3 = false;
      if (var1 == null) {
         var3 = true;
      } else {
         for (Principal var7 : var1) {
            if (var2.equals(var7)) {
               var3 = true;
               break;
            }

            if (SslContextInitializer.a.isLoggable(Level.FINEST)) {
               Logger var10000 = SslContextInitializer.a;
               Level var10001 = Level.FINEST;
               String var10002 = var7.getName();
               String var10003 = var2.getName();
               String[] var8 = b;
               var10000.log(var10001, var8[14] + var10002 + var8[12] + var10003);
            }
         }
      }

      return var3;
   }

   @Override
   public String chooseClientAlias(String[] var1, Principal[] var2, Socket var3) {
      return this.a(var1, var2);
   }

   @Override
   public String chooseEngineClientAlias(String[] var1, Principal[] var2, SSLEngine var3) {
      return this.a(var1, var2);
   }

   private String a(String[] var1, Principal[] var2) {
      String var3 = null;
      if (var1 != null) {
         for (String var7 : var1) {
            String[] var8 = this.getClientAliases(var7, var2);
            if (var8 != null && var8.length > 0 && var8[0] != null) {
               var3 = var8[0];
               break;
            }
         }
      }

      return var3;
   }

   @Override
   public X509Certificate[] getCertificateChain(String var1) {
      try {
         if (SslContextInitializer.a.isLoggable(Level.FINE)) {
            SslContextInitializer.a.log(Level.FINE, b[15] + var1 + b[5]);
         }
      } catch (ObjectNotFoundException var7) {
         throw a(var7);
      }

      try {
         return this.a.lookupKeyByKeyAlias(var1, PersistentEntity.DEFAULT_GOID).getCertificateChain();
      } catch (ObjectNotFoundException var4) {
         String[] var8 = b;
         SslContextInitializer.a.log(Level.INFO, var8[7] + var1 + var8[17]);
      } catch (FindException var5) {
         String[] var3 = b;
         SslContextInitializer.a.log(Level.WARNING, var3[16], var5);
      } catch (KeyStoreException var6) {
         SslContextInitializer.a.log(Level.WARNING, b[1], var6);
      }

      return null;
   }

   @Override
   public PrivateKey getPrivateKey(String var1) {
      try {
         if (SslContextInitializer.a.isLoggable(Level.FINE)) {
            SslContextInitializer.a.log(Level.FINE, b[11] + var1 + b[6]);
         }
      } catch (ObjectNotFoundException var8) {
         throw a(var8);
      }

      try {
         return this.a.lookupKeyByKeyAlias(var1, PersistentEntity.DEFAULT_GOID).getPrivateKey();
      } catch (ObjectNotFoundException var4) {
         String[] var10 = b;
         SslContextInitializer.a.log(Level.INFO, var10[4] + var1 + var10[13]);
      } catch (UnrecoverableKeyException var5) {
         String[] var9 = b;
         SslContextInitializer.a.log(Level.WARNING, var9[3], var5);
      } catch (FindException var6) {
         String[] var3 = b;
         SslContextInitializer.a.log(Level.WARNING, var3[2], var6);
      } catch (KeyStoreException var7) {
         SslContextInitializer.a.log(Level.WARNING, b[2], var7);
      }

      return null;
   }

   @Override
   public String[] getServerAliases(String var1, Principal[] var2) {
      return this.getClientAliases(var1, var2);
   }

   @Override
   public String chooseServerAlias(String var1, Principal[] var2, Socket var3) {
      return this.chooseClientAlias(new String[]{var1}, var2, var3);
   }

   @Override
   public String chooseEngineServerAlias(String var1, Principal[] var2, SSLEngine var3) {
      return this.chooseEngineClientAlias(new String[]{var1}, var2, var3);
   }

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

   static {
      String[] var5 = new String[18];
      int var3 = 0;
      String var2 = "\u0003\u0005 \u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx;=\u0017\u001a#E1;9\u0011\u000bj@091\u000b@\u001a\u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx(*\f\u0018+W=x3\u0000\u0017d\u001a\u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx(*\f\u0018+W=x3\u0000\u0017d0\u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx(*\f\u0018+W=x3\u0000\u0017j\u000b67,E\b%V6<x\u0003\u00018\u0003941\u0004\u001dj\u0004\u0002\u007fv\u0002\u007fv6\u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx;=\u0017\u001a#E1;9\u0011\u000bj@091\u000bNbM7,x\u0003\u0001?M<x>\n\u001cjB419\u0016Nm\u001d\u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx;4\f\u000b$Wx94\f\u000f9F+v\u0017\u001f=\u0011\u001a#M?x;\t\u0007/M,x9\t\u0007+P=+x\u001d\u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx;4\f\u000b$Wx94\f\u000f9F+v\u001f\u001f=\u0011\u001a#M?x(\u0017\u0007<B,=x\u000e\u000b3\u0003>7*E\u000f&J9+xB\u0003xwE\u0003\u007fqK\u0019\b*\f\u0000)J(94E\n%F+x6\n\u001ajN9,;\rN%\u001f=\u0011\u001a#M?x;\u0000\u001c>J>1;\u0004\u001a/\u0003;09\f\u0000jE7*x\u0004\u0002#B+x\u007f";
      int var4 = "\u0003\u0005 \u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx;=\u0017\u001a#E1;9\u0011\u000bj@091\u000b@\u001a\u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx(*\f\u0018+W=x3\u0000\u0017d\u001a\u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx(*\f\u0018+W=x3\u0000\u0017d0\u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx(*\f\u0018+W=x3\u0000\u0017j\u000b67,E\b%V6<x\u0003\u00018\u0003941\u0004\u001dj\u0004\u0002\u007fv\u0002\u007fv6\u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx;=\u0017\u001a#E1;9\u0011\u000bj@091\u000bNbM7,x\u0003\u0001?M<x>\n\u001cjB419\u0016Nm\u001d\u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx;4\f\u000b$Wx94\f\u000f9F+v\u0017\u001f=\u0011\u001a#M?x;\t\u0007/M,x9\t\u0007+P=+x\u001d\u001d*\u0017\u00018\u0003?=,\u0011\u0007$Dx;4\f\u000b$Wx94\f\u000f9F+v\u001f\u001f=\u0011\u001a#M?x(\u0017\u0007<B,=x\u000e\u000b3\u0003>7*E\u000f&J9+xB\u0003xwE\u0003\u007fqK\u0019\b*\f\u0000)J(94E\n%F+x6\n\u001ajN9,;\rN%\u001f=\u0011\u001a#M?x;\u0000\u001c>J>1;\u0004\u001a/\u0003;09\f\u0000jE7*x\u0004\u0002#B+x\u007f"
         .length();
      char var1 = 2;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 38;
         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) {
                     b = var5;
                     return;
                  }

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

                  var2 = "\u0016!\u001c\n3\b46'\u001a\f/Os06\u001c\u0011(N:02\u001a\u0000aK;2:\u0000K\u0003tz@";
                  var4 = "\u0016!\u001c\n3\b46'\u001a\f/Os06\u001c\u0011(N:02\u001a\u0000aK;2:\u0000K\u0003tz@".length();
                  var1 = ' ';
                  var7 = -1;
            }

            var10000 = 45;
            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] ^ 126);
      }

      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 -> 126;
            case 1 -> 126;
            case 2 -> 67;
            case 3 -> 72;
            case 4 -> 108;
            case 5 -> 5;
            default -> 126;
         });
      }

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