package com.l7tech.server.security.cert;

import com.l7tech.gateway.common.audit.Audit;
import java.security.cert.CertPathValidatorException;
import java.security.cert.Certificate;
import java.security.cert.PKIXCertPathChecker;
import java.security.cert.PKIXParameters;
import java.security.cert.TrustAnchor;
import java.security.cert.X509Certificate;
import java.util.Collection;
import java.util.Collections;
import java.util.Set;
import java.util.logging.Logger;

public class RevocationCheckingPKIXCertPathChecker extends PKIXCertPathChecker {
   private static final Logger a;
   private final RevocationCheckerFactory b;
   private final Set<TrustAnchor> c;
   private final Audit d;
   private X509Certificate e;
   private final X509Certificate[] f;
   private static final String[] g;

   public RevocationCheckingPKIXCertPathChecker(RevocationCheckerFactory var1, PKIXParameters var2, Audit var3) {
      this.b = var1;
      this.c = var2.getTrustAnchors();
      this.d = var3;
      this.f = new X509Certificate[1];
   }

   @Override
   public void check(Certificate param1, Collection<String> param2) throws CertPathValidatorException {
      // $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: instanceof java/security/cert/X509Certificate
      // 004: ifne 018
      // 007: new java/security/cert/CertPathValidatorException
      // 00a: dup
      // 00b: getstatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.g [Ljava/lang/String;
      // 00e: bipush 5
      // 00f: aaload
      // 010: invokespecial java/security/cert/CertPathValidatorException.<init> (Ljava/lang/String;)V
      // 013: athrow
      // 014: invokestatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.a (Ljava/security/cert/CertPathValidatorException;)Ljava/security/cert/CertPathValidatorException;
      // 017: athrow
      // 018: aload 1
      // 019: checkcast java/security/cert/X509Certificate
      // 01c: astore 3
      // 01d: aload 0
      // 01e: getfield com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.f [Ljava/security/cert/X509Certificate;
      // 021: bipush 0
      // 022: aaload
      // 023: ifnull 05d
      // 026: aload 3
      // 027: aload 0
      // 028: getfield com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.f [Ljava/security/cert/X509Certificate;
      // 02b: bipush 0
      // 02c: aaload
      // 02d: invokestatic com/l7tech/common/io/CertUtils.certsAreEqual (Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)Z
      // 030: ifeq 05d
      // 033: goto 03a
      // 036: invokestatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.a (Ljava/security/cert/CertPathValidatorException;)Ljava/security/cert/CertPathValidatorException;
      // 039: athrow
      // 03a: new java/security/cert/CertPathValidatorException
      // 03d: dup
      // 03e: aload 3
      // 03f: invokevirtual java/security/cert/X509Certificate.getSubjectDN ()Ljava/security/Principal;
      // 042: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 045: getstatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.g [Ljava/lang/String;
      // 048: bipush 1
      // 049: aaload
      // 04a: swap
      // 04b: getstatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.g [Ljava/lang/String;
      // 04e: bipush 3
      // 04f: aaload
      // 050: 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" ]
      // 055: invokespecial java/security/cert/CertPathValidatorException.<init> (Ljava/lang/String;)V
      // 058: athrow
      // 059: invokestatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.a (Ljava/security/cert/CertPathValidatorException;)Ljava/security/cert/CertPathValidatorException;
      // 05c: athrow
      // 05d: getstatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.a Ljava/util/logging/Logger;
      // 060: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 063: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 066: ifeq 082
      // 069: getstatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.a Ljava/util/logging/Logger;
      // 06c: getstatic java/util/logging/Level.FINE Ljava/util/logging/Level;
      // 06f: getstatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.g [Ljava/lang/String;
      // 072: bipush 4
      // 073: aaload
      // 074: aload 3
      // 075: invokevirtual java/security/cert/X509Certificate.getSubjectDN ()Ljava/security/Principal;
      // 078: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
      // 07b: goto 082
      // 07e: invokestatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.a (Ljava/security/cert/CertPathValidatorException;)Ljava/security/cert/CertPathValidatorException;
      // 081: athrow
      // 082: aload 0
      // 083: getfield com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.e Ljava/security/cert/X509Certificate;
      // 086: astore 4
      // 088: aload 4
      // 08a: ifnonnull 106
      // 08d: aload 0
      // 08e: getfield com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.c Ljava/util/Set;
      // 091: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 096: astore 5
      // 098: aload 5
      // 09a: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 09f: ifeq 0de
      // 0a2: aload 5
      // 0a4: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 0a9: checkcast java/security/cert/TrustAnchor
      // 0ac: astore 6
      // 0ae: aload 6
      // 0b0: invokevirtual java/security/cert/TrustAnchor.getTrustedCert ()Ljava/security/cert/X509Certificate;
      // 0b3: astore 7
      // 0b5: aload 7
      // 0b7: invokevirtual java/security/cert/X509Certificate.getSubjectX500Principal ()Ljavax/security/auth/x500/X500Principal;
      // 0ba: aload 3
      // 0bb: invokevirtual java/security/cert/X509Certificate.getIssuerX500Principal ()Ljavax/security/auth/x500/X500Principal;
      // 0be: invokevirtual javax/security/auth/x500/X500Principal.equals (Ljava/lang/Object;)Z
      // 0c1: ifeq 0db
      // 0c4: aload 3
      // 0c5: aload 7
      // 0c7: invokestatic com/l7tech/security/cert/CertVerifier.isVerified (Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)Z
      // 0ca: ifeq 0db
      // 0cd: goto 0d4
      // 0d0: invokestatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.a (Ljava/security/cert/CertPathValidatorException;)Ljava/security/cert/CertPathValidatorException;
      // 0d3: athrow
      // 0d4: aload 7
      // 0d6: astore 4
      // 0d8: goto 0de
      // 0db: goto 098
      // 0de: aload 4
      // 0e0: ifnonnull 106
      // 0e3: new java/security/cert/CertPathValidatorException
      // 0e6: dup
      // 0e7: aload 3
      // 0e8: invokevirtual java/security/cert/X509Certificate.getSubjectDN ()Ljava/security/Principal;
      // 0eb: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 0ee: getstatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.g [Ljava/lang/String;
      // 0f1: bipush 2
      // 0f2: aaload
      // 0f3: swap
      // 0f4: getstatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.g [Ljava/lang/String;
      // 0f7: bipush 0
      // 0f8: aaload
      // 0f9: 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" ]
      // 0fe: invokespecial java/security/cert/CertPathValidatorException.<init> (Ljava/lang/String;)V
      // 101: athrow
      // 102: invokestatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.a (Ljava/security/cert/CertPathValidatorException;)Ljava/security/cert/CertPathValidatorException;
      // 105: athrow
      // 106: aload 0
      // 107: getfield com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.b Lcom/l7tech/server/security/cert/RevocationCheckerFactory;
      // 10a: aload 4
      // 10c: invokevirtual com/l7tech/server/security/cert/RevocationCheckerFactory.getRevocationChecker (Ljava/security/cert/X509Certificate;)Lcom/l7tech/server/security/cert/RevocationChecker;
      // 10f: astore 5
      // 111: aload 5
      // 113: aload 3
      // 114: aload 4
      // 116: aload 0
      // 117: getfield com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.d Lcom/l7tech/gateway/common/audit/Audit;
      // 11a: getstatic com/l7tech/security/types/CertificateValidationResult.UNKNOWN Lcom/l7tech/security/types/CertificateValidationResult;
      // 11d: invokeinterface com/l7tech/server/security/cert/RevocationChecker.getRevocationStatus (Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;Lcom/l7tech/gateway/common/audit/Audit;Lcom/l7tech/security/types/CertificateValidationResult;)Lcom/l7tech/security/types/CertificateValidationResult; 5
      // 122: astore 6
      // 124: aload 6
      // 126: getstatic com/l7tech/security/types/CertificateValidationResult.OK Lcom/l7tech/security/types/CertificateValidationResult;
      // 129: invokevirtual com/l7tech/security/types/CertificateValidationResult.equals (Ljava/lang/Object;)Z
      // 12c: ifne 15b
      // 12f: aload 0
      // 130: getfield com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.f [Ljava/security/cert/X509Certificate;
      // 133: bipush 0
      // 134: aload 3
      // 135: aastore
      // 136: new java/security/cert/CertPathValidatorException
      // 139: dup
      // 13a: aload 3
      // 13b: invokevirtual java/security/cert/X509Certificate.getSubjectDN ()Ljava/security/Principal;
      // 13e: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 141: getstatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.g [Ljava/lang/String;
      // 144: bipush 8
      // 146: aaload
      // 147: swap
      // 148: getstatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.g [Ljava/lang/String;
      // 14b: bipush 6
      // 14d: aaload
      // 14e: 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" ]
      // 153: invokespecial java/security/cert/CertPathValidatorException.<init> (Ljava/lang/String;)V
      // 156: athrow
      // 157: invokestatic com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.a (Ljava/security/cert/CertPathValidatorException;)Ljava/security/cert/CertPathValidatorException;
      // 15a: athrow
      // 15b: aload 0
      // 15c: aload 3
      // 15d: putfield com/l7tech/server/security/cert/RevocationCheckingPKIXCertPathChecker.e Ljava/security/cert/X509Certificate;
      // 160: return
      // try (0 -> 10): 10 java/security/cert/CertPathValidatorException
      // try (15 -> 27): 28 java/security/cert/CertPathValidatorException
      // try (20 -> 45): 45 java/security/cert/CertPathValidatorException
      // try (47 -> 59): 60 java/security/cert/CertPathValidatorException
      // try (81 -> 91): 92 java/security/cert/CertPathValidatorException
      // try (98 -> 115): 115 java/security/cert/CertPathValidatorException
      // try (130 -> 154): 154 java/security/cert/CertPathValidatorException
   }

   @Override
   public Set<String> getSupportedExtensions() {
      return Collections.emptySet();
   }

   @Override
   public void init(boolean var1) throws CertPathValidatorException {
      try {
         if (var1) {
            throw new CertPathValidatorException(g[7]);
         }
      } catch (CertPathValidatorException var2) {
         throw a(var2);
      }

      this.e = null;
   }

   @Override
   public boolean isForwardCheckingSupported() {
      return false;
   }

   static {
      String[] var5 = new String[9];
      int var3 = 0;
      String var2 = "_\u0003C\r\u0015[Q\u0016@\u0003\f\bR)*F\u001d\f\u0019\u001aD\u0011L\u0005C\u0019\u0013U\u001bHK\u0005\u001b\u0012\\\u001dGK\u0005\u0015\t\u0010\u001bF\u0019\u0017\u0013\u001dY\u001bB\u001f\u0006Z\\\u0019;F\u0019\u0017\u0013\u001dY\u001bB\u001f\u0006Z\u0015_\f\u0003\u001f\u0011\u000f\bD\u001dGKD\u0002_\r4(F\u0019\u0005\u0015\t]\u0011M\fC\b\u001eF\u0017@\n\u0017\u0013\u0014^X@\u0003\u0006\u0019\u0010\u0010\u001eL\u0019C\u0019\u001eB\fJ\r\n\u0019\u001aD\u001d\u0003LD\u0001KM_\u0004E&7M\u0007\u001aZ#\u001eM\u0013RC\u0019\u001eB\fJ\r\n\u0019\u001aD\u001dPK\u0002\b\u001e\u0010\u000bV\u001b\u0013\u0015\tD\u001dGE\u0002_\r";
      int var4 = "_\u0003C\r\u0015[Q\u0016@\u0003\f\bR)*F\u001d\f\u0019\u001aD\u0011L\u0005C\u0019\u0013U\u001bHK\u0005\u001b\u0012\\\u001dGK\u0005\u0015\t\u0010\u001bF\u0019\u0017\u0013\u001dY\u001bB\u001f\u0006Z\\\u0019;F\u0019\u0017\u0013\u001dY\u001bB\u001f\u0006Z\u0015_\f\u0003\u001f\u0011\u000f\bD\u001dGKD\u0002_\r4(F\u0019\u0005\u0015\t]\u0011M\fC\b\u001eF\u0017@\n\u0017\u0013\u0014^X@\u0003\u0006\u0019\u0010\u0010\u001eL\u0019C\u0019\u001eB\fJ\r\n\u0019\u001aD\u001d\u0003LD\u0001KM_\u0004E&7M\u0007\u001aZ#\u001eM\u0013RC\u0019\u001eB\fJ\r\n\u0019\u001aD\u001dPK\u0002\b\u001e\u0010\u000bV\u001b\u0013\u0015\tD\u001dGE\u0002_\r"
         .length();
      char var1 = '\r';
      int var7 = -1;

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

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

                  var2 = "y\u000b^S\\N\u0013\u001f\u0007DA^W\u001eQ\u0003\fJRHWL\u0011\\TRN\u0003Z\u0000)m\u0001ZK^]\u0003V\u000bB\u0004^T\u0012\\\u000f\fB\\U\u001bZ\u0000\fBRNW\\\u0001^PTZ\u001e\\\u0005XA\u001d\u001b";
                  var4 = "y\u000b^S\\N\u0013\u001f\u0007DA^W\u001eQ\u0003\fJRHWL\u0011\\TRN\u0003Z\u0000)m\u0001ZK^]\u0003V\u000bB\u0004^T\u0012\\\u000f\fB\\U\u001bZ\u0000\fBRNW\\\u0001^PTZ\u001e\\\u0005XA\u001d\u001b"
                     .length();
                  var1 = 30;
                  var7 = -1;
            }

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

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

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

      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 -> 100;
            case 1 -> 63;
            case 2 -> 119;
            case 3 -> 127;
            case 4 -> 102;
            case 5 -> 103;
            default -> 44;
         });
      }

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