package com.l7tech.server.log.syslog.impl;

import com.l7tech.objectmodel.Goid;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Functions.BinaryVoid;
import com.l7tech.util.Functions.Unary;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import org.apache.mina.core.service.IoConnector;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.ssl.SslFilter;

public class MinaSecureSyslogHandler extends g {
   private static final Logger c;
   private static final String d;
   private static final int e = 120;
   private SslFilter f;
   private String g;
   private Goid h;
   private StringBuilder i;
   private boolean j;
   private final Unary<Boolean, IoSession> k;
   private final Runnable l;
   private static final String[] n;

   MinaSecureSyslogHandler(BinaryVoid<IoSession, String> var1, Unary<Boolean, IoSession> var2, String var3, Goid var4, Runnable var5, boolean var6) {
      super(var1);
      this.k = var2;
      this.i = new StringBuilder();
      this.l = var5 != null ? var5 : () -> {};
      if (this.f == null) {
         this.g = var3;
         this.h = var4;
         SyslogSslCertificateFilter var7 = new SyslogSslCertificateFilter(this.a(), SyslogSslClientSupport.getHostnameVerifier(), var6);
         var7.setUseClientMode(true);
         this.f = var7;
      }
   }

   private SSLContext a() {
      // $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:
      // 00: invokestatic com/l7tech/server/log/syslog/impl/SyslogSslClientSupport.getTrustManager ()Ljavax/net/ssl/X509TrustManager;
      // 03: astore 2
      // 04: aload 0
      // 05: getfield com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.g Ljava/lang/String;
      // 08: ifnull 6a
      // 0b: aload 0
      // 0c: getfield com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.h Lcom/l7tech/objectmodel/Goid;
      // 0f: ifnull 6a
      // 12: goto 19
      // 15: invokestatic com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 18: athrow
      // 19: aload 0
      // 1a: getfield com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.h Lcom/l7tech/objectmodel/Goid;
      // 1d: invokestatic com/l7tech/objectmodel/Goid.isDefault (Lcom/l7tech/objectmodel/Goid;)Z
      // 20: ifne 6a
      // 23: goto 2a
      // 26: invokestatic com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 29: athrow
      // 2a: invokestatic com/l7tech/server/log/syslog/impl/SyslogSslClientSupport.isInitialized ()Z
      // 2d: ifeq 5f
      // 30: invokestatic com/l7tech/server/log/syslog/impl/SyslogSslClientSupport.getSsgKeyStoreManager ()Lcom/l7tech/server/security/keystore/SsgKeyStoreManager;
      // 33: aload 0
      // 34: getfield com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.g Ljava/lang/String;
      // 37: aload 0
      // 38: getfield com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.h Lcom/l7tech/objectmodel/Goid;
      // 3b: invokeinterface com/l7tech/server/security/keystore/SsgKeyStoreManager.lookupKeyByKeyAlias (Ljava/lang/String;Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 3
      // 40: astore 3
      // 41: new com/l7tech/common/io/SingleCertX509KeyManager
      // 44: dup
      // 45: aload 3
      // 46: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getCertificateChain ()[Ljava/security/cert/X509Certificate;
      // 49: aload 3
      // 4a: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getPrivateKey ()Ljava/security/PrivateKey;
      // 4d: invokespecial com/l7tech/common/io/SingleCertX509KeyManager.<init> ([Ljava/security/cert/X509Certificate;Ljava/security/PrivateKey;)V
      // 50: astore 4
      // 52: bipush 1
      // 53: anewarray 201
      // 56: dup
      // 57: bipush 0
      // 58: aload 4
      // 5a: aastore
      // 5b: astore 1
      // 5c: goto 61
      // 5f: aconst_null
      // 60: areturn
      // 61: goto 6e
      // 64: astore 3
      // 65: aconst_null
      // 66: areturn
      // 67: astore 3
      // 68: aconst_null
      // 69: areturn
      // 6a: invokestatic com/l7tech/server/log/syslog/impl/SyslogSslClientSupport.getDefaultKeyManagers ()[Ljavax/net/ssl/KeyManager;
      // 6d: astore 1
      // 6e: getstatic com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.n [Ljava/lang/String;
      // 71: astore 5
      // 73: aload 5
      // 75: bipush 5
      // 76: aaload
      // 77: invokestatic javax/net/ssl/SSLContext.getInstance (Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
      // 7a: astore 3
      // 7b: aload 3
      // 7c: aload 1
      // 7d: bipush 1
      // 7e: anewarray 233
      // 81: dup
      // 82: bipush 0
      // 83: aload 2
      // 84: aastore
      // 85: aconst_null
      // 86: invokevirtual javax/net/ssl/SSLContext.init ([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
      // 89: aload 3
      // 8a: areturn
      // 8b: astore 1
      // 8c: getstatic com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.c Ljava/util/logging/Logger;
      // 8f: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 92: getstatic com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.n [Ljava/lang/String;
      // 95: bipush 0
      // 96: aaload
      // 97: aload 1
      // 98: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 9b: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
      // 9e: aconst_null
      // 9f: areturn
      // try (5 -> 15): 16 java/security/GeneralSecurityException
      // try (2 -> 8): 9 java/security/GeneralSecurityException
      // try (18 -> 44): 46 java/security/GeneralSecurityException
      // try (18 -> 44): 49 com/l7tech/objectmodel/ObjectModelException
      // try (0 -> 44): 73 java/security/NoSuchAlgorithmException
      // try (0 -> 44): 73 java/security/KeyManagementException
      // try (45 -> 48): 73 java/security/NoSuchAlgorithmException
      // try (45 -> 48): 73 java/security/KeyManagementException
      // try (49 -> 51): 73 java/security/NoSuchAlgorithmException
      // try (49 -> 51): 73 java/security/KeyManagementException
      // try (52 -> 72): 73 java/security/NoSuchAlgorithmException
      // try (52 -> 72): 73 java/security/KeyManagementException
   }

   public void setupConnectorForSSL(IoConnector var1) {
      var1.getFilterChain().addLast(n[6], this.f);
   }

   @Override
   public void exceptionCaught(IoSession var1, Throwable var2) throws Exception {
      try {
         if (c.isLoggable(Level.WARNING)) {
            this.i.append(ExceptionUtils.getMessage(var2)).append(n[1]);
         }
      } catch (Exception var3) {
         throw a(var3);
      }

      super.exceptionCaught(var1, var2);
      this.l.run();
   }

   @Override
   public void sessionOpened(IoSession param1) throws Exception {
      // $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:
      // 00: aload 0
      // 01: aload 1
      // 02: invokeinterface org/apache/mina/core/session/IoSession.isConnected ()Z 1
      // 07: ifeq 22
      // 0a: aload 1
      // 0b: invokeinterface org/apache/mina/core/session/IoSession.isClosing ()Z 1
      // 10: ifne 22
      // 13: goto 1a
      // 16: invokestatic com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 19: athrow
      // 1a: bipush 1
      // 1b: goto 23
      // 1e: invokestatic com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 21: athrow
      // 22: bipush 0
      // 23: putfield com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.j Z
      // 26: aload 1
      // 27: invokeinterface org/apache/mina/core/session/IoSession.getConfig ()Lorg/apache/mina/core/session/IoSessionConfig; 1
      // 2c: getstatic org/apache/mina/core/session/IdleStatus.WRITER_IDLE Lorg/apache/mina/core/session/IdleStatus;
      // 2f: bipush 120
      // 31: invokeinterface org/apache/mina/core/session/IoSessionConfig.setIdleTime (Lorg/apache/mina/core/session/IdleStatus;I)V 3
      // 36: aload 0
      // 37: aload 1
      // 38: invokespecial com/l7tech/server/log/syslog/impl/g.sessionOpened (Lorg/apache/mina/core/session/IoSession;)V
      // 3b: return
      // try (0 -> 7): 8 java/lang/Exception
      // try (4 -> 12): 12 java/lang/Exception
   }

   @Override
   public void sessionClosed(IoSession var1) throws Exception {
      try {
         if ((Boolean)this.k.call(var1)) {
            this.j = false;
         }
      } catch (Exception var2) {
         throw a(var2);
      }

      try {
         if (this.i.length() > 0) {
            c.log(Level.WARNING, n[2], this.i.toString());
            this.i = new StringBuilder();
         }
      } catch (Exception var3) {
         throw a(var3);
      }

      c.log(Level.FINE, n[4], System.currentTimeMillis() - var1.getCreationTime());
      super.sessionClosed(var1);
   }

   public void sessionIdle(IoSession param1, IdleStatus param2) throws Exception {
      // $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:
      // 00: getstatic org/apache/mina/core/session/IdleStatus.WRITER_IDLE Lorg/apache/mina/core/session/IdleStatus;
      // 03: aload 2
      // 04: invokevirtual java/lang/Object.equals (Ljava/lang/Object;)Z
      // 07: ifeq 32
      // 0a: aload 0
      // 0b: getfield com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.k Lcom/l7tech/util/Functions$Unary;
      // 0e: aload 1
      // 0f: invokeinterface com/l7tech/util/Functions$Unary.call (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 14: checkcast java/lang/Boolean
      // 17: invokevirtual java/lang/Boolean.booleanValue ()Z
      // 1a: ifne 32
      // 1d: goto 24
      // 20: invokestatic com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 23: athrow
      // 24: aload 1
      // 25: invokeinterface org/apache/mina/core/session/IoSession.closeNow ()Lorg/apache/mina/core/future/CloseFuture; 1
      // 2a: pop
      // 2b: goto 32
      // 2e: invokestatic com/l7tech/server/log/syslog/impl/MinaSecureSyslogHandler.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 31: athrow
      // 32: aload 0
      // 33: aload 1
      // 34: aload 2
      // 35: invokespecial com/l7tech/server/log/syslog/impl/g.sessionIdle (Lorg/apache/mina/core/session/IoSession;Lorg/apache/mina/core/session/IdleStatus;)V
      // 38: return
      // try (0 -> 11): 12 java/lang/Exception
      // try (4 -> 17): 18 java/lang/Exception
   }

   @Override
   public boolean verifySession(IoSession var1) {
      boolean var2 = super.verifySession(var1);
      return var2 && this.f.isSslStarted(var1) && this.j ? this.f.getSslSession(var1) != null : false;
   }

   SSLSession a(IoSession var1) {
      return this.f.getSslSession(var1);
   }

   static {
      String[] var5 = new String[7];
      int var3 = 0;
      String var2 = "NCmO\u001b/\u0015oB,D\u00199AzCxD\u0016>P;~_a4%[oHtYW,Zi\r_H\u0014?G~\r_T\u0004&Z|\u0017,VG7\u0002 \r#H~@\r\u0004/FhDcCW)Yt^iIW=\\oE,H\u00058Zi^6\r\fzH\u0002 \r\u001eHH\u007f^\u001e%[;N`B\u0004/Q;LjY\u00128\u00153@\u007f\u0004MjN+P";
      int var4 = "NCmO\u001b/\u0015oB,D\u00199AzCxD\u0016>P;~_a4%[oHtYW,Zi\r_H\u0014?G~\r_T\u0004&Z|\u0017,VG7\u0002 \r#H~@\r\u0004/FhDcCW)Yt^iIW=\\oE,H\u00058Zi^6\r\fzH\u0002 \r\u001eHH\u007f^\u001e%[;N`B\u0004/Q;LjY\u00128\u00153@\u007f\u0004MjN+P"
         .length();
      char var1 = '7';
      int var7 = -1;

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

         while (true) {
            String var8 = b(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     n = var5;
                     d = n[3];
                     c = Logger.getLogger(MinaSecureSyslogHandler.class.getName());
                     return;
                  }

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

                  var2 = ")\u00079\u0003\u000e8\u0006";
                  var4 = ")\u00079\u0003\u000e8\u0006".length();
                  var1 = 3;
                  var7 = -1;
            }

            var10000 = 16;
            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] ^ 67);
      }

      return var10000;
   }

   private static String b(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 -> 109;
            case 1 -> 91;
            case 2 -> 122;
            case 3 -> 91;
            case 4 -> 1;
            case 5 -> 60;
            default -> 67;
         });
      }

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