package com.l7tech.server.security.cert;

import com.l7tech.server.security.keystore.SsgKeyStoreManager;
import com.l7tech.server.util.ApplicationEventProxy;
import com.l7tech.util.SyspropUtil;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.springframework.context.ApplicationListener;

public class SslContextInitializer {
   private static final Logger a;
   private static final String b;
   private static final String c;
   private static final String d;
   private static final boolean e;
   private static final String f;
   private static final String g;
   private final X509TrustManager h;
   private final SsgKeyStoreManager i;
   private final ApplicationEventProxy j;
   private ApplicationListener k = new y(this);
   private static final String[] l;

   public SslContextInitializer(X509TrustManager var1, SsgKeyStoreManager var2, ApplicationEventProxy var3) {
      this.h = var1;
      this.i = var2;
      this.j = var3;
   }

   public void init() {
      if (e) {
         this.a();
         this.j.addApplicationListener(this.k);
      }
   }

   private void a() {
      String[] var2 = l;
      a.info(var2[2]);

      try {
         SSLContext var1 = SSLContext.getInstance(f);
         var1.init(new KeyManager[]{new ag(this.i)}, new TrustManager[]{this.h}, null);
         SSLContext.setDefault(new ad(this, new af(this, var1), var1.getProvider(), var1.getProtocol()));
      } catch (NoSuchAlgorithmException var3) {
         var2 = l;
         a.log(Level.WARNING, var2[6], var3);
      } catch (KeyManagementException var4) {
         var2 = l;
         a.log(Level.WARNING, var2[10], var4);
      } catch (Exception var5) {
         a.log(Level.WARNING, l[10], var5);
      }
   }

   static {
      String[] var5 = new String[11];
      int var3 = 0;
      String var2 = "\u001d\u0011br.\u0018\u0012\u001b\u001dgr1J\u0014\b\u001b}r1J\u0005\u000b\ff(;\u0001\u0015\r\u0012!5,\\\u0012\u001f\u0012c\u0018'I\u0007\u000b\u0012{\u000f1C%\u0011\u0010{9:[2\u001d\u0011br.\u0018\u0012\u001b\u001dgr1J\u0014\b\u001b}r1J\u0005\u000b\ff(;\u0001\u0005\u001b\f{r1\\\n.\f`(-L\t\u0012:j:#Z\n\n%V,ju\u000bA\u000f\n\u0017n0+U\u000f\u0010\u0019/8'I\u0007\u000b\u0012{|\u0011|*^\u001d`26J\u001e\nP3\u001d\u0011br.\u0018\u0012\u001b\u001dgr1J\u0014\b\u001b}r1J\u0005\u000b\ff(;\u0001\u0005\u001b\f{r1\\\n.\f`(-L\t\u0012\rJ2#M\n\u001b\u001a2\u001d\u0011br.\u0018\u0012\u001b\u001dgr1J\u0014\b\u001b}r1J\u0005\u000b\ff(;\u0001\u0005\u001b\f{r1\\\n.\f`(-L\t\u0012:j:#Z\n\n3\u001d\u0011br.\u0018\u0012\u001b\u001dgr1J\u0014\b\u001b}r1J\u0005\u000b\ff(;\u0001\u0005\u001b\f{r1\\\n.\f`(-L\t\u0012\rJ2#M\n\u001b\u001a\u001e;\f}30\u000f\u000f\u0010\u0017{5#C\u000f\u0004\u0017a;b|52^l3,[\u0003\u0006\n *2\\*s\u0003F*2\\*s\u0001WR^[\u0010\u0011YWPL#|\u0016c5\bO!o\u0007*2\\*s\u0001T";
      int var4 = "\u001d\u0011br.\u0018\u0012\u001b\u001dgr1J\u0014\b\u001b}r1J\u0005\u000b\ff(;\u0001\u0015\r\u0012!5,\\\u0012\u001f\u0012c\u0018'I\u0007\u000b\u0012{\u000f1C%\u0011\u0010{9:[2\u001d\u0011br.\u0018\u0012\u001b\u001dgr1J\u0014\b\u001b}r1J\u0005\u000b\ff(;\u0001\u0005\u001b\f{r1\\\n.\f`(-L\t\u0012:j:#Z\n\n%V,ju\u000bA\u000f\n\u0017n0+U\u000f\u0010\u0019/8'I\u0007\u000b\u0012{|\u0011|*^\u001d`26J\u001e\nP3\u001d\u0011br.\u0018\u0012\u001b\u001dgr1J\u0014\b\u001b}r1J\u0005\u000b\ff(;\u0001\u0005\u001b\f{r1\\\n.\f`(-L\t\u0012\rJ2#M\n\u001b\u001a2\u001d\u0011br.\u0018\u0012\u001b\u001dgr1J\u0014\b\u001b}r1J\u0005\u000b\ff(;\u0001\u0005\u001b\f{r1\\\n.\f`(-L\t\u0012:j:#Z\n\n3\u001d\u0011br.\u0018\u0012\u001b\u001dgr1J\u0014\b\u001b}r1J\u0005\u000b\ff(;\u0001\u0005\u001b\f{r1\\\n.\f`(-L\t\u0012\rJ2#M\n\u001b\u001a\u001e;\f}30\u000f\u000f\u0010\u0017{5#C\u000f\u0004\u0017a;b|52^l3,[\u0003\u0006\n *2\\*s\u0003F*2\\*s\u0001WR^[\u0010\u0011YWPL#|\u0016c5\bO!o\u0007*2\\*s\u0001T"
         .length();
      char var1 = '7';
      int var7 = -1;

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

         while (true) {
            String var9 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     l = var5;
                     String[] var10 = l;
                     d = l[5];
                     b = var10[9];
                     c = var10[1];
                     a = Logger.getLogger(SslContextInitializer.class.getName());
                     String[] var8 = l;
                     e = SyspropUtil.getBoolean(var8[0], false);
                     f = SyspropUtil.getString(var8[4], var8[8]);
                     g = SyspropUtil.getString(var8[3], var8[7]);
                     return;
                  }

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

                  var2 = ")%VF\u001a,&/)SF\u0005~ </IF\u0005~1?8R\u001c\u000f5!9&\u0015\u0001\u0018h&+&W,\u0013}3?&O;\u0005w\u0011%$O\r\u000eo\u001e\u000f8I\u0007\u0004;;$#O\u0001\u0017w;0#U\u000fVH\u0001\u0006jX\u0007\u0018o72>";
                  var4 = ")%VF\u001a,&/)SF\u0005~ </IF\u0005~1?8R\u001c\u000f5!9&\u0015\u0001\u0018h&+&W,\u0013}3?&O;\u0005w\u0011%$O\r\u000eo\u001e\u000f8I\u0007\u0004;;$#O\u0001\u0017w;0#U\u000fVH\u0001\u0006jX\u0007\u0018o72>"
                     .length();
                  var1 = '7';
                  var7 = -1;
            }

            var10000 = 65;
            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] ^ 19);
      }

      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 -> 11;
            case 1 -> 11;
            case 2 -> 122;
            case 3 -> 41;
            case 4 -> 55;
            case 5 -> 90;
            default -> 19;
         });
      }

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