package com.l7tech.common.http;

import com.l7tech.common.io.CertUtils;
import com.l7tech.common.password.Sha512Crypt;
import com.l7tech.util.Charsets;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.HexUtils;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.logging.Level;
import java.util.logging.Logger;

public class CertificateCheck2Info {
   private static final Logger a;
   private static final int b;
   private static final String c;
   private final String d;
   private final String e;
   private final String f;
   private final String g;
   private static final String[] h;

   public CertificateCheck2Info(String var1, String var2, String var3, String var4) {
      this.d = var1;
      this.e = var2;
      this.f = var3;
      this.g = var4;
   }

   public static CertificateCheck2Info parseHttpHeader(HttpHeader var0) {
      String var1 = var0.getName();
      String var2 = var0.getFullValue();
      if (var1 != null && var1.toLowerCase().startsWith(c)) {
         String var3 = var1.substring(b);
         String[] var8 = h;
         String[] var4 = var2.split(var8[9]);
         if (var4.length != 3) {
            a.fine(var8[6]);
            return null;
         } else {
            String var5 = var4[0].trim();
            String var6 = var4[1].trim();
            String var7 = var4[2].trim();
            return new CertificateCheck2Info(var3, var5, var6, var7);
         }
      } else {
         return null;
      }
   }

   public HttpHeader asHttpHeader() {
      String var10000 = this.d.trim();
      String[] var3 = h;
      String var1 = var3[5] + var10000;
      String var2 = this.e + var3[3] + this.f + var3[4] + this.g;
      return new GenericHttpHeader(var1, var2);
   }

   public boolean checkCert(byte[] var1, char[] var2, byte[] var3) {
      try {
         if (this.isNoPass()) {
            return false;
         }
      } catch (IOException var12) {
         throw a(var12);
      }

      try {
         byte[] var4 = HexUtils.unHexDump(this.g);
         String[] var13 = h;
         String var5 = Sha512Crypt.crypt(
            MessageDigest.getInstance(var13[8]), MessageDigest.getInstance(var13[1]), new String(var2).getBytes(Charsets.UTF8), new String(var4, Charsets.UTF8)
         );
         byte[] var6 = HexUtils.unHexDump(this.e);
         byte[] var7 = CertUtils.getVerifierBytes(var5.getBytes(Charsets.UTF8), var3, var6, var1);
         byte[] var8 = HexUtils.unHexDump(this.f);
         return Arrays.equals(var7, var8);
      } catch (IOException var10) {
         Logger var10000 = a;
         Level var10001 = Level.WARNING;
         String var10002 = ExceptionUtils.getMessage(var10);
         String[] var9 = h;
         var10000.log(var10001, var9[0] + var10002, ExceptionUtils.getDebugException(var10));
         return false;
      } catch (NoSuchAlgorithmException var11) {
         a.log(Level.SEVERE, h[7] + ExceptionUtils.getMessage(var11), ExceptionUtils.getDebugException(var11));
         return false;
      }
   }

   public boolean isNoPass() {
      return h[2].equals(this.f);
   }

   static {
      String[] var5 = new String[11];
      int var3 = 0;
      String var2 = "\u001actF\u0014,W;b5@\u001d*\u0018+h5G\u001d;\u0003oN}A\u001b\"Eo{pV\u0011/\u001e*\u007f5B\n&\u001ao~pV\u000e,\u0005u-\u0007\u001cET\tMxE\u0006\u0001BEe+\u001a\u0002t-\u0002t-\u000f\u0003:8g\u001d;\u0003bN}A\u001b\"EbQ\u0006j{K\n \u0019(-vA\n=W\fepG\u0013{W'ht@\u001d;W;etPX-\u0018*~5J\u0017=W,b{P\u0019 \u0019oy}V\u001d,W<hxM\u001b&\u001b c8@\u001d%\u001e\"daA\u001ci\u0003*\u007fxW3\u001actF\u0014,W;b5@\u001d*\u0018+h5G\u001d;\u0003oN}A\u001b\"Eo{pV\u0011/\u001e*\u007f5B\n&\u001ao~pV\u000e,\u0005u-\u0007\u001cET\tMxE";
      int var4 = "\u001actF\u0014,W;b5@\u001d*\u0018+h5G\u001d;\u0003oN}A\u001b\"Eo{pV\u0011/\u001e*\u007f5B\n&\u001ao~pV\u000e,\u0005u-\u0007\u001cET\tMxE\u0006\u0001BEe+\u001a\u0002t-\u0002t-\u000f\u0003:8g\u001d;\u0003bN}A\u001b\"EbQ\u0006j{K\n \u0019(-vA\n=W\fepG\u0013{W'ht@\u001d;W;etPX-\u0018*~5J\u0017=W,b{P\u0019 \u0019oy}V\u001d,W<hxM\u001b&\u001b c8@\u001d%\u001e\"daA\u001ci\u0003*\u007fxW3\u001actF\u0014,W;b5@\u001d*\u0018+h5G\u001d;\u0003oN}A\u001b\"Eo{pV\u0011/\u001e*\u007f5B\n&\u001ao~pV\u000e,\u0005u-\u0007\u001cET\tMxE"
         .length();
      char var1 = '3';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 14;
         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) {
                     h = var5;
                     a = Logger.getLogger(CertificateCheck2Info.class.getName());
                     String[] var8 = h;
                     b = var8[10].length();
                     c = var8[5].toLowerCase();
                     return;
                  }

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

                  var2 = "~\u0013RrIW0\u000fnWU\npVn\u000f#\u0010,vO(\u000f";
                  var4 = "~\u0013RrIW0\u000fnWU\npVn\u000f#\u0010,vO(\u000f".length();
                  var1 = 7;
                  var7 = -1;
            }

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

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

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

      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 -> 65;
            case 1 -> 3;
            case 2 -> 27;
            case 3 -> 42;
            case 4 -> 118;
            case 5 -> 71;
            default -> 121;
         });
      }

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