package com.l7tech.common.io;

import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Functions;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.Provider;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;
import java.security.interfaces.ECPublicKey;
import java.security.interfaces.RSAPublicKey;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import javax.security.auth.x500.X500Principal;
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.DERPrintableString;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.asn1.DERSet;
import org.bouncycastle.asn1.x500.style.BCStyle;
import org.bouncycastle.asn1.x509.AccessDescription;
import org.bouncycastle.asn1.x509.Attribute;
import org.bouncycastle.asn1.x509.AuthorityInformationAccess;
import org.bouncycastle.asn1.x509.AuthorityKeyIdentifier;
import org.bouncycastle.asn1.x509.BasicConstraints;
import org.bouncycastle.asn1.x509.CRLDistPoint;
import org.bouncycastle.asn1.x509.DistributionPoint;
import org.bouncycastle.asn1.x509.DistributionPointName;
import org.bouncycastle.asn1.x509.ExtendedKeyUsage;
import org.bouncycastle.asn1.x509.GeneralName;
import org.bouncycastle.asn1.x509.GeneralNames;
import org.bouncycastle.asn1.x509.KeyPurposeId;
import org.bouncycastle.asn1.x509.PolicyInformation;
import org.bouncycastle.asn1.x509.SubjectDirectoryAttributes;
import org.bouncycastle.asn1.x509.SubjectKeyIdentifier;
import org.bouncycastle.cert.jcajce.JcaX509ExtensionUtils;

public class ParamsCertificateGenerator {
   private final CertGenParams a;
   static final boolean b;
   private static final SecureRandom c;
   private final SecureRandom d;
   private final String e;
   private static final String[] f;

   public ParamsCertificateGenerator(CertGenParams var1) throws CertificateGeneratorException {
      this(var1, c, null);
   }

   public ParamsCertificateGenerator(CertGenParams var1, SecureRandom var2, String var3) throws CertificateGeneratorException {
      this.a = var1;
      if (this.a.getSubjectDn() == null) {
         throw new CertificateGeneratorException(f[25]);
      }

      ParamsCertificateGenerator var10000;
      SecureRandom var10001;
      label19: {
         try {
            var10000 = this;
            if (var2 == null) {
               var10001 = c;
               break label19;
            }
         } catch (CertificateGeneratorException var4) {
            throw a(var4);
         }

         var10001 = var2;
      }

      var10000.d = var10001;
      this.e = var3;
   }

   public X509Certificate generateCertificate(PublicKey param1, PrivateKey param2, X509Certificate param3) throws CertificateGeneratorException {
      // $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 0
      // 001: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 004: invokevirtual com/l7tech/common/io/CertGenParams.getSubjectDn ()Ljavax/security/auth/x500/X500Principal;
      // 007: invokevirtual javax/security/auth/x500/X500Principal.getEncoded ()[B
      // 00a: invokestatic org/bouncycastle/asn1/x500/X500Name.getInstance (Ljava/lang/Object;)Lorg/bouncycastle/asn1/x500/X500Name;
      // 00d: astore 4
      // 00f: aload 0
      // 010: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 013: invokevirtual com/l7tech/common/io/CertGenParams.getHashAlgorithm ()Ljava/lang/String;
      // 016: astore 5
      // 018: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 01b: astore 17
      // 01d: aload 17
      // 01f: bipush 22
      // 021: aaload
      // 022: aload 5
      // 024: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 027: ifeq 02d
      // 02a: aconst_null
      // 02b: astore 5
      // 02d: aload 0
      // 02e: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 031: invokevirtual com/l7tech/common/io/CertGenParams.getSignatureAlgorithm ()Ljava/lang/String;
      // 034: astore 6
      // 036: aload 6
      // 038: ifnonnull 05e
      // 03b: aload 3
      // 03c: ifnonnull 04e
      // 03f: goto 046
      // 042: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 045: athrow
      // 046: aload 1
      // 047: goto 052
      // 04a: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 04d: athrow
      // 04e: aload 3
      // 04f: invokevirtual java/security/cert/X509Certificate.getPublicKey ()Ljava/security/PublicKey;
      // 052: aload 5
      // 054: aconst_null
      // 055: aconst_null
      // 056: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.getSigAlg (Ljava/security/PublicKey;Ljava/lang/String;Ljava/security/Provider;Ljava/lang/String;)Ljava/lang/String;
      // 059: astore 6
      // 05b: goto 08d
      // 05e: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 061: bipush 11
      // 063: aaload
      // 064: aload 6
      // 066: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 069: ifeq 08d
      // 06c: aload 3
      // 06d: ifnonnull 07f
      // 070: goto 077
      // 073: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 076: athrow
      // 077: aload 1
      // 078: goto 083
      // 07b: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 07e: athrow
      // 07f: aload 3
      // 080: invokevirtual java/security/cert/X509Certificate.getPublicKey ()Ljava/security/PublicKey;
      // 083: aload 5
      // 085: aconst_null
      // 086: aload 6
      // 088: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.getSigAlg (Ljava/security/PublicKey;Ljava/lang/String;Ljava/security/Provider;Ljava/lang/String;)Ljava/lang/String;
      // 08b: astore 6
      // 08d: aload 3
      // 08e: ifnull 0ad
      // 091: new org/bouncycastle/cert/jcajce/JcaX509CertificateHolder
      // 094: dup
      // 095: aload 3
      // 096: invokespecial org/bouncycastle/cert/jcajce/JcaX509CertificateHolder.<init> (Ljava/security/cert/X509Certificate;)V
      // 099: invokevirtual org/bouncycastle/cert/jcajce/JcaX509CertificateHolder.getSubject ()Lorg/bouncycastle/asn1/x500/X500Name;
      // 09c: astore 7
      // 09e: goto 0b1
      // 0a1: astore 8
      // 0a3: new com/l7tech/common/io/CertificateGeneratorException
      // 0a6: dup
      // 0a7: aload 8
      // 0a9: invokespecial com/l7tech/common/io/CertificateGeneratorException.<init> (Ljava/lang/Throwable;)V
      // 0ac: athrow
      // 0ad: aload 4
      // 0af: astore 7
      // 0b1: aload 3
      // 0b2: ifnull 0c0
      // 0b5: aload 3
      // 0b6: invokevirtual java/security/cert/X509Certificate.getPublicKey ()Ljava/security/PublicKey;
      // 0b9: goto 0c1
      // 0bc: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0bf: athrow
      // 0c0: aload 1
      // 0c1: astore 8
      // 0c3: aload 0
      // 0c4: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 0c7: invokevirtual com/l7tech/common/io/CertGenParams.getDaysUntilExpiry ()I
      // 0ca: ifle 0db
      // 0cd: aload 0
      // 0ce: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 0d1: invokevirtual com/l7tech/common/io/CertGenParams.getDaysUntilExpiry ()I
      // 0d4: goto 0de
      // 0d7: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0da: athrow
      // 0db: sipush 1825
      // 0de: istore 9
      // 0e0: aload 0
      // 0e1: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 0e4: invokevirtual com/l7tech/common/io/CertGenParams.getNotBefore ()Ljava/util/Date;
      // 0e7: ifnull 0f8
      // 0ea: aload 0
      // 0eb: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 0ee: invokevirtual com/l7tech/common/io/CertGenParams.getNotBefore ()Ljava/util/Date;
      // 0f1: goto 10d
      // 0f4: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f7: athrow
      // 0f8: new java/util/Date
      // 0fb: dup
      // 0fc: new java/util/Date
      // 0ff: dup
      // 100: invokespecial java/util/Date.<init> ()V
      // 103: invokevirtual java/util/Date.getTime ()J
      // 106: ldc2_w 600000
      // 109: lsub
      // 10a: invokespecial java/util/Date.<init> (J)V
      // 10d: astore 10
      // 10f: aload 0
      // 110: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 113: invokevirtual com/l7tech/common/io/CertGenParams.getNotAfter ()Ljava/util/Date;
      // 116: ifnull 127
      // 119: aload 0
      // 11a: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 11d: invokevirtual com/l7tech/common/io/CertGenParams.getNotAfter ()Ljava/util/Date;
      // 120: goto 144
      // 123: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 126: athrow
      // 127: new java/util/Date
      // 12a: dup
      // 12b: aload 10
      // 12d: invokevirtual java/util/Date.getTime ()J
      // 130: iload 9
      // 132: bipush 24
      // 134: imul
      // 135: bipush 60
      // 137: imul
      // 138: bipush 60
      // 13a: imul
      // 13b: i2l
      // 13c: ldc2_w 1000
      // 13f: lmul
      // 140: ladd
      // 141: invokespecial java/util/Date.<init> (J)V
      // 144: astore 11
      // 146: aload 0
      // 147: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 14a: invokevirtual com/l7tech/common/io/CertGenParams.getSerialNumber ()Ljava/math/BigInteger;
      // 14d: ifnull 15e
      // 150: aload 0
      // 151: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 154: invokevirtual com/l7tech/common/io/CertGenParams.getSerialNumber ()Ljava/math/BigInteger;
      // 157: goto 16e
      // 15a: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 15d: athrow
      // 15e: new java/math/BigInteger
      // 161: dup
      // 162: bipush 64
      // 164: aload 0
      // 165: getfield com/l7tech/common/io/ParamsCertificateGenerator.d Ljava/security/SecureRandom;
      // 168: invokespecial java/math/BigInteger.<init> (ILjava/util/Random;)V
      // 16b: invokevirtual java/math/BigInteger.abs ()Ljava/math/BigInteger;
      // 16e: astore 12
      // 170: new org/bouncycastle/cert/jcajce/JcaX509v3CertificateBuilder
      // 173: dup
      // 174: aload 7
      // 176: aload 12
      // 178: aload 10
      // 17a: aload 11
      // 17c: aload 4
      // 17e: aload 1
      // 17f: invokespecial org/bouncycastle/cert/jcajce/JcaX509v3CertificateBuilder.<init> (Lorg/bouncycastle/asn1/x500/X500Name;Ljava/math/BigInteger;Ljava/util/Date;Ljava/util/Date;Lorg/bouncycastle/asn1/x500/X500Name;Ljava/security/PublicKey;)V
      // 182: astore 13
      // 184: aload 0
      // 185: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 188: invokevirtual com/l7tech/common/io/CertGenParams.isIncludeBasicConstraints ()Z
      // 18b: ifeq 1a3
      // 18e: aload 13
      // 190: getstatic org/bouncycastle/asn1/x509/Extension.basicConstraints Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
      // 193: bipush 1
      // 194: aload 0
      // 195: invokevirtual com/l7tech/common/io/ParamsCertificateGenerator.createBasicConstraints ()Lorg/bouncycastle/asn1/x509/BasicConstraints;
      // 198: invokevirtual org/bouncycastle/cert/X509v3CertificateBuilder.addExtension (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)Lorg/bouncycastle/cert/X509v3CertificateBuilder;
      // 19b: pop
      // 19c: goto 1a3
      // 19f: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a2: athrow
      // 1a3: aload 0
      // 1a4: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 1a7: invokevirtual com/l7tech/common/io/CertGenParams.isIncludeKeyUsage ()Z
      // 1aa: ifeq 1d2
      // 1ad: aload 13
      // 1af: getstatic org/bouncycastle/asn1/x509/Extension.keyUsage Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
      // 1b2: aload 0
      // 1b3: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 1b6: invokevirtual com/l7tech/common/io/CertGenParams.isKeyUsageCritical ()Z
      // 1b9: new org/bouncycastle/asn1/x509/KeyUsage
      // 1bc: dup
      // 1bd: aload 0
      // 1be: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 1c1: invokevirtual com/l7tech/common/io/CertGenParams.getKeyUsageBits ()I
      // 1c4: invokespecial org/bouncycastle/asn1/x509/KeyUsage.<init> (I)V
      // 1c7: invokevirtual org/bouncycastle/cert/X509v3CertificateBuilder.addExtension (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)Lorg/bouncycastle/cert/X509v3CertificateBuilder;
      // 1ca: pop
      // 1cb: goto 1d2
      // 1ce: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1d1: athrow
      // 1d2: aload 0
      // 1d3: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 1d6: invokevirtual com/l7tech/common/io/CertGenParams.isIncludeExtendedKeyUsage ()Z
      // 1d9: ifeq 1fe
      // 1dc: aload 13
      // 1de: getstatic org/bouncycastle/asn1/x509/Extension.extendedKeyUsage Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
      // 1e1: aload 0
      // 1e2: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 1e5: invokevirtual com/l7tech/common/io/CertGenParams.isExtendedKeyUsageCritical ()Z
      // 1e8: aload 0
      // 1e9: aload 0
      // 1ea: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 1ed: invokevirtual com/l7tech/common/io/CertGenParams.getExtendedKeyUsageKeyPurposeOids ()Ljava/util/List;
      // 1f0: invokevirtual com/l7tech/common/io/ParamsCertificateGenerator.createExtendedKeyUsage (Ljava/util/List;)Lorg/bouncycastle/asn1/x509/ExtendedKeyUsage;
      // 1f3: invokevirtual org/bouncycastle/cert/X509v3CertificateBuilder.addExtension (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)Lorg/bouncycastle/cert/X509v3CertificateBuilder;
      // 1f6: pop
      // 1f7: goto 1fe
      // 1fa: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1fd: athrow
      // 1fe: aload 0
      // 1ff: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 202: invokevirtual com/l7tech/common/io/CertGenParams.isIncludeSki ()Z
      // 205: ifeq 21e
      // 208: aload 13
      // 20a: getstatic org/bouncycastle/asn1/x509/Extension.subjectKeyIdentifier Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
      // 20d: bipush 0
      // 20e: aload 0
      // 20f: aload 1
      // 210: invokevirtual com/l7tech/common/io/ParamsCertificateGenerator.createSubjectKeyIdentifier (Ljava/security/PublicKey;)Lorg/bouncycastle/asn1/x509/SubjectKeyIdentifier;
      // 213: invokevirtual org/bouncycastle/cert/X509v3CertificateBuilder.addExtension (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)Lorg/bouncycastle/cert/X509v3CertificateBuilder;
      // 216: pop
      // 217: goto 21e
      // 21a: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 21d: athrow
      // 21e: aload 0
      // 21f: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 222: invokevirtual com/l7tech/common/io/CertGenParams.isIncludeAki ()Z
      // 225: ifeq 23f
      // 228: aload 13
      // 22a: getstatic org/bouncycastle/asn1/x509/Extension.authorityKeyIdentifier Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
      // 22d: bipush 0
      // 22e: aload 0
      // 22f: aload 8
      // 231: invokevirtual com/l7tech/common/io/ParamsCertificateGenerator.createAuthorityKeyIdentifier (Ljava/security/PublicKey;)Lorg/bouncycastle/asn1/x509/AuthorityKeyIdentifier;
      // 234: invokevirtual org/bouncycastle/cert/X509v3CertificateBuilder.addExtension (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)Lorg/bouncycastle/cert/X509v3CertificateBuilder;
      // 237: pop
      // 238: goto 23f
      // 23b: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 23e: athrow
      // 23f: aload 0
      // 240: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 243: invokevirtual com/l7tech/common/io/CertGenParams.isIncludeSubjectDirectoryAttributes ()Z
      // 246: ifeq 26b
      // 249: aload 13
      // 24b: getstatic org/bouncycastle/asn1/x509/Extension.subjectDirectoryAttributes Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
      // 24e: aload 0
      // 24f: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 252: invokevirtual com/l7tech/common/io/CertGenParams.isSubjectDirectoryAttributesCritical ()Z
      // 255: aload 0
      // 256: aload 0
      // 257: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 25a: invokevirtual com/l7tech/common/io/CertGenParams.getCountryOfCitizenshipCountryCodes ()Ljava/util/List;
      // 25d: invokevirtual com/l7tech/common/io/ParamsCertificateGenerator.createSubjectDirectoryAttributes (Ljava/util/List;)Lorg/bouncycastle/asn1/x509/SubjectDirectoryAttributes;
      // 260: invokevirtual org/bouncycastle/cert/X509v3CertificateBuilder.addExtension (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)Lorg/bouncycastle/cert/X509v3CertificateBuilder;
      // 263: pop
      // 264: goto 26b
      // 267: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 26a: athrow
      // 26b: aload 0
      // 26c: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 26f: invokevirtual com/l7tech/common/io/CertGenParams.isIncludeCertificatePolicies ()Z
      // 272: ifeq 297
      // 275: aload 13
      // 277: getstatic org/bouncycastle/asn1/x509/Extension.certificatePolicies Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
      // 27a: aload 0
      // 27b: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 27e: invokevirtual com/l7tech/common/io/CertGenParams.isCertificatePoliciesCritical ()Z
      // 281: aload 0
      // 282: aload 0
      // 283: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 286: invokevirtual com/l7tech/common/io/CertGenParams.getCertificatePolicies ()Ljava/util/List;
      // 289: invokevirtual com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/util/List;)Lorg/bouncycastle/asn1/DERSequence;
      // 28c: invokevirtual org/bouncycastle/cert/X509v3CertificateBuilder.addExtension (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)Lorg/bouncycastle/cert/X509v3CertificateBuilder;
      // 28f: pop
      // 290: goto 297
      // 293: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 296: athrow
      // 297: aload 0
      // 298: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 29b: invokevirtual com/l7tech/common/io/CertGenParams.isIncludeSubjectAlternativeName ()Z
      // 29e: ifeq 2c3
      // 2a1: aload 13
      // 2a3: getstatic org/bouncycastle/asn1/x509/Extension.subjectAlternativeName Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
      // 2a6: aload 0
      // 2a7: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 2aa: invokevirtual com/l7tech/common/io/CertGenParams.isSubjectAlternativeNameCritical ()Z
      // 2ad: aload 0
      // 2ae: aload 0
      // 2af: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 2b2: invokevirtual com/l7tech/common/io/CertGenParams.getSubjectAlternativeNames ()Ljava/util/List;
      // 2b5: invokevirtual com/l7tech/common/io/ParamsCertificateGenerator.b (Ljava/util/List;)Lorg/bouncycastle/asn1/ASN1Encodable;
      // 2b8: invokevirtual org/bouncycastle/cert/X509v3CertificateBuilder.addExtension (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)Lorg/bouncycastle/cert/X509v3CertificateBuilder;
      // 2bb: pop
      // 2bc: goto 2c3
      // 2bf: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2c2: athrow
      // 2c3: aload 0
      // 2c4: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 2c7: invokevirtual com/l7tech/common/io/CertGenParams.isIncludeAuthorityInfoAccess ()Z
      // 2ca: ifeq 2ef
      // 2cd: aload 13
      // 2cf: getstatic org/bouncycastle/asn1/x509/Extension.authorityInfoAccess Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
      // 2d2: aload 0
      // 2d3: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 2d6: invokevirtual com/l7tech/common/io/CertGenParams.isAuthorityInfoAccessCritical ()Z
      // 2d9: aload 0
      // 2da: aload 0
      // 2db: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 2de: invokevirtual com/l7tech/common/io/CertGenParams.getAuthorityInfoAccessOcspUrls ()Ljava/util/List;
      // 2e1: invokevirtual com/l7tech/common/io/ParamsCertificateGenerator.d (Ljava/util/List;)Lorg/bouncycastle/asn1/ASN1Encodable;
      // 2e4: invokevirtual org/bouncycastle/cert/X509v3CertificateBuilder.addExtension (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)Lorg/bouncycastle/cert/X509v3CertificateBuilder;
      // 2e7: pop
      // 2e8: goto 2ef
      // 2eb: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2ee: athrow
      // 2ef: aload 0
      // 2f0: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 2f3: invokevirtual com/l7tech/common/io/CertGenParams.isIncludeCrlDistributionPoints ()Z
      // 2f6: ifeq 31b
      // 2f9: aload 13
      // 2fb: getstatic org/bouncycastle/asn1/x509/Extension.cRLDistributionPoints Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
      // 2fe: aload 0
      // 2ff: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 302: invokevirtual com/l7tech/common/io/CertGenParams.isCrlDistributionPointsCritical ()Z
      // 305: aload 0
      // 306: aload 0
      // 307: getfield com/l7tech/common/io/ParamsCertificateGenerator.a Lcom/l7tech/common/io/CertGenParams;
      // 30a: invokevirtual com/l7tech/common/io/CertGenParams.getCrlDistributionPointsUrls ()Ljava/util/List;
      // 30d: invokevirtual com/l7tech/common/io/ParamsCertificateGenerator.c (Ljava/util/List;)Lorg/bouncycastle/asn1/ASN1Encodable;
      // 310: invokevirtual org/bouncycastle/cert/X509v3CertificateBuilder.addExtension (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)Lorg/bouncycastle/cert/X509v3CertificateBuilder;
      // 313: pop
      // 314: goto 31b
      // 317: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 31a: athrow
      // 31b: aload 0
      // 31c: aload 6
      // 31e: invokevirtual com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/String;)Z
      // 321: ifeq 342
      // 324: new org/bouncycastle/operator/DefaultAlgorithmNameFinder
      // 327: dup
      // 328: invokespecial org/bouncycastle/operator/DefaultAlgorithmNameFinder.<init> ()V
      // 32b: astore 15
      // 32d: aload 15
      // 32f: new org/bouncycastle/asn1/ASN1ObjectIdentifier
      // 332: dup
      // 333: aload 6
      // 335: invokespecial org/bouncycastle/asn1/ASN1ObjectIdentifier.<init> (Ljava/lang/String;)V
      // 338: invokeinterface org/bouncycastle/operator/AlgorithmNameFinder.getAlgorithmName (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Ljava/lang/String; 2
      // 33d: astore 14
      // 33f: goto 346
      // 342: aload 6
      // 344: astore 14
      // 346: aload 0
      // 347: getfield com/l7tech/common/io/ParamsCertificateGenerator.e Ljava/lang/String;
      // 34a: ifnonnull 372
      // 34d: new org/bouncycastle/operator/jcajce/JcaContentSignerBuilder
      // 350: dup
      // 351: aload 14
      // 353: invokespecial org/bouncycastle/operator/jcajce/JcaContentSignerBuilder.<init> (Ljava/lang/String;)V
      // 356: aload 2
      // 357: invokevirtual org/bouncycastle/operator/jcajce/JcaContentSignerBuilder.build (Ljava/security/PrivateKey;)Lorg/bouncycastle/operator/ContentSigner;
      // 35a: astore 15
      // 35c: new org/bouncycastle/cert/jcajce/JcaX509CertificateConverter
      // 35f: dup
      // 360: invokespecial org/bouncycastle/cert/jcajce/JcaX509CertificateConverter.<init> ()V
      // 363: aload 13
      // 365: aload 15
      // 367: invokevirtual org/bouncycastle/cert/X509v3CertificateBuilder.build (Lorg/bouncycastle/operator/ContentSigner;)Lorg/bouncycastle/cert/X509CertificateHolder;
      // 36a: invokevirtual org/bouncycastle/cert/jcajce/JcaX509CertificateConverter.getCertificate (Lorg/bouncycastle/cert/X509CertificateHolder;)Ljava/security/cert/X509Certificate;
      // 36d: astore 16
      // 36f: goto 3a2
      // 372: new org/bouncycastle/operator/jcajce/JcaContentSignerBuilder
      // 375: dup
      // 376: aload 14
      // 378: invokespecial org/bouncycastle/operator/jcajce/JcaContentSignerBuilder.<init> (Ljava/lang/String;)V
      // 37b: aload 0
      // 37c: getfield com/l7tech/common/io/ParamsCertificateGenerator.e Ljava/lang/String;
      // 37f: invokevirtual org/bouncycastle/operator/jcajce/JcaContentSignerBuilder.setProvider (Ljava/lang/String;)Lorg/bouncycastle/operator/jcajce/JcaContentSignerBuilder;
      // 382: aload 2
      // 383: invokevirtual org/bouncycastle/operator/jcajce/JcaContentSignerBuilder.build (Ljava/security/PrivateKey;)Lorg/bouncycastle/operator/ContentSigner;
      // 386: astore 15
      // 388: new org/bouncycastle/cert/jcajce/JcaX509CertificateConverter
      // 38b: dup
      // 38c: invokespecial org/bouncycastle/cert/jcajce/JcaX509CertificateConverter.<init> ()V
      // 38f: aload 0
      // 390: getfield com/l7tech/common/io/ParamsCertificateGenerator.e Ljava/lang/String;
      // 393: invokevirtual org/bouncycastle/cert/jcajce/JcaX509CertificateConverter.setProvider (Ljava/lang/String;)Lorg/bouncycastle/cert/jcajce/JcaX509CertificateConverter;
      // 396: aload 13
      // 398: aload 15
      // 39a: invokevirtual org/bouncycastle/cert/X509v3CertificateBuilder.build (Lorg/bouncycastle/operator/ContentSigner;)Lorg/bouncycastle/cert/X509CertificateHolder;
      // 39d: invokevirtual org/bouncycastle/cert/jcajce/JcaX509CertificateConverter.getCertificate (Lorg/bouncycastle/cert/X509CertificateHolder;)Ljava/security/cert/X509Certificate;
      // 3a0: astore 16
      // 3a2: aload 16
      // 3a4: areturn
      // 3a5: astore 14
      // 3a7: new com/l7tech/common/io/CertificateGeneratorException
      // 3aa: dup
      // 3ab: aload 14
      // 3ad: invokespecial com/l7tech/common/io/CertificateGeneratorException.<init> (Ljava/lang/Throwable;)V
      // 3b0: athrow
      // try (49 -> 56): 56 java/security/cert/CertificateEncodingException
      // try (43 -> 51): 52 java/security/cert/CertificateEncodingException
      // try (26 -> 33): 33 java/security/cert/CertificateEncodingException
      // try (24 -> 28): 29 java/security/cert/CertificateEncodingException
      // try (67 -> 73): 74 java/security/cert/CertificateEncodingException
      // try (337 -> 353): 354 java/security/cert/CertificateEncodingException
      // try (318 -> 334): 335 java/security/cert/CertificateEncodingException
      // try (299 -> 315): 316 java/security/cert/CertificateEncodingException
      // try (280 -> 296): 297 java/security/cert/CertificateEncodingException
      // try (261 -> 277): 278 java/security/cert/CertificateEncodingException
      // try (246 -> 258): 259 java/security/cert/CertificateEncodingException
      // try (231 -> 243): 244 java/security/cert/CertificateEncodingException
      // try (212 -> 228): 229 java/security/cert/CertificateEncodingException
      // try (192 -> 209): 210 java/security/cert/CertificateEncodingException
      // try (178 -> 189): 190 java/security/cert/CertificateEncodingException
      // try (150 -> 158): 158 java/security/cert/CertificateEncodingException
      // try (123 -> 131): 131 java/security/cert/CertificateEncodingException
      // try (103 -> 111): 111 java/security/cert/CertificateEncodingException
      // try (91 -> 99): 99 java/security/cert/CertificateEncodingException
      // try (82 -> 87): 87 java/security/cert/CertificateEncodingException
      // try (178 -> 415): 416 org/bouncycastle/operator/OperatorCreationException
      // try (178 -> 415): 416 java/security/cert/CertificateException
      // try (178 -> 415): 416 java/io/IOException
   }

   private boolean a(String var1) {
      try {
         new ASN1ObjectIdentifier(var1);
         return true;
      } catch (IllegalArgumentException var3) {
         return false;
      }
   }

   protected BasicConstraints createBasicConstraints() {
      BasicConstraints var1;
      if (this.a.isBasicConstraintsCa()) {
         Integer var2 = this.a.getBasicConstraintsPathLength();
         if (var2 == null) {
            var2 = 0;
         }

         var1 = new BasicConstraints(var2);
      } else {
         var1 = new BasicConstraints(false);
      }

      return var1;
   }

   protected AuthorityKeyIdentifier createAuthorityKeyIdentifier(PublicKey var1) throws CertificateGeneratorException {
      try {
         JcaX509ExtensionUtils var2 = new JcaX509ExtensionUtils();
         return var2.createAuthorityKeyIdentifier(var1);
      } catch (NoSuchAlgorithmException var3) {
         throw new CertificateGeneratorException(f[1] + ExceptionUtils.getMessage(var3), var3);
      }
   }

   protected SubjectKeyIdentifier createSubjectKeyIdentifier(PublicKey var1) throws CertificateGeneratorException {
      try {
         return new JcaX509ExtensionUtils().createSubjectKeyIdentifier(var1);
      } catch (NoSuchAlgorithmException var3) {
         throw new CertificateGeneratorException(f[0] + ExceptionUtils.getMessage(var3), var3);
      }
   }

   protected ExtendedKeyUsage createExtendedKeyUsage(List<String> var1) {
      int var2 = 0;
      KeyPurposeId[] var3 = new KeyPurposeId[var1.size()];

      for (String var5 : var1) {
         var3[var2++] = KeyPurposeId.getInstance(new ASN1ObjectIdentifier(var5));
      }

      return new ExtendedKeyUsage(var3);
   }

   protected SubjectDirectoryAttributes createSubjectDirectoryAttributes(List<String> var1) {
      ArrayList var2 = new ArrayList();
      if (var1 != null) {
         for (String var4 : var1) {
            var2.add(new Attribute(BCStyle.COUNTRY_OF_CITIZENSHIP, new DERSet(new DERPrintableString(var4))));
         }
      }

      return new SubjectDirectoryAttributes(new Vector(var2));
   }

   private DERSequence a(List<String> var1) {
      return new DERSequence(Functions.map(var1, var0 -> new PolicyInformation(new ASN1ObjectIdentifier(var0))).toArray(new ASN1Object[var1.size()]));
   }

   private ASN1Encodable b(List<X509GeneralName> var1) {
      List var2 = Functions.map(var1, var0 -> {
         if (var0.isString()) {
            X509GeneralName.Type var1x = var0.getType();
            if (var1x == X509GeneralName.Type.directoryName) {
               try {
                  ASN1Primitive var2x = ASN1Primitive.fromByteArray(new X500Principal(var0.getStringVal()).getEncoded());
                  return new GeneralName(var0.getType().getTag(), var2x);
               } catch (IOException var4) {
                  String var10002 = ExceptionUtils.getMessage(var4);
                  String[] var3 = f;
                  throw new IllegalArgumentException(var3[18] + var10002, var4);
               }
            } else {
               return new GeneralName(var0.getType().getTag(), var0.getStringVal());
            }
         } else {
            try {
               return new GeneralName(var0.getType().getTag(), ASN1Primitive.fromByteArray(var0.getDerVal()));
            } catch (IOException var5) {
               throw new IllegalArgumentException(f[14] + ExceptionUtils.getMessage(var5), var5);
            }
         }
      });
      return new GeneralNames(var2.toArray(new GeneralName[var2.size()]));
   }

   private ASN1Encodable c(List<List<String>> var1) {
      ArrayList var2 = new ArrayList();

      for (List var4 : var1) {
         ArrayList var5 = new ArrayList();

         for (String var7 : var4) {
            var5.add(new GeneralName(6, var7));
         }

         var2.add(new DistributionPoint(new DistributionPointName(new GeneralNames(var5.toArray(new GeneralName[var5.size()]))), null, null));
      }

      return new CRLDistPoint(var2.toArray(new DistributionPoint[var2.size()]));
   }

   private ASN1Encodable d(List<String> var1) {
      ArrayList var2 = new ArrayList();

      for (String var4 : var1) {
         var2.add(new AccessDescription(AccessDescription.id_ad_ocsp, new GeneralName(6, var4)));
      }

      return new AuthorityInformationAccess(var2.toArray(new AccessDescription[var2.size()]));
   }

   public static String getSigAlg(PublicKey param0, String param1, Provider param2, String param3) {
      // $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/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 003: astore 10
      // 005: aload 10
      // 007: bipush 23
      // 009: aaload
      // 00a: aload 3
      // 00b: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 00e: istore 6
      // 010: aload 1
      // 011: ifnonnull 019
      // 014: aload 10
      // 016: bipush 5
      // 017: aaload
      // 018: astore 1
      // 019: aload 0
      // 01a: invokeinterface java/security/PublicKey.getAlgorithm ()Ljava/lang/String; 1
      // 01f: astore 7
      // 021: aload 3
      // 022: ifnull 061
      // 025: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 028: bipush 17
      // 02a: aaload
      // 02b: aload 7
      // 02d: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 030: ifne 061
      // 033: goto 03a
      // 036: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 039: athrow
      // 03a: new java/lang/IllegalArgumentException
      // 03d: dup
      // 03e: aload 3
      // 03f: aload 0
      // 040: invokeinterface java/security/PublicKey.getAlgorithm ()Ljava/lang/String; 1
      // 045: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 048: bipush 12
      // 04a: aaload
      // 04b: dup_x2
      // 04c: pop
      // 04d: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 050: bipush 19
      // 052: aaload
      // 053: swap
      // 054: 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" ]
      // 059: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 05c: athrow
      // 05d: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 060: athrow
      // 061: aload 0
      // 062: instanceof java/security/interfaces/ECKey
      // 065: ifne 07d
      // 068: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 06b: bipush 15
      // 06d: aaload
      // 06e: aload 7
      // 070: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 073: ifeq 098
      // 076: goto 07d
      // 079: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 07c: athrow
      // 07d: aload 1
      // 07e: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 081: astore 10
      // 083: aload 10
      // 085: bipush 4
      // 086: aaload
      // 087: invokedynamic makeConcatWithConstants (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" ]
      // 08c: astore 4
      // 08e: aload 10
      // 090: bipush 24
      // 092: aaload
      // 093: astore 5
      // 095: goto 197
      // 098: aload 0
      // 099: instanceof java/security/interfaces/RSAKey
      // 09c: ifne 0b4
      // 09f: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 0a2: bipush 20
      // 0a4: aaload
      // 0a5: aload 7
      // 0a7: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 0aa: ifeq 13b
      // 0ad: goto 0b4
      // 0b0: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0b3: athrow
      // 0b4: aload 3
      // 0b5: ifnull 0f1
      // 0b8: goto 0bf
      // 0bb: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0be: athrow
      // 0bf: iload 6
      // 0c1: ifne 0f1
      // 0c4: goto 0cb
      // 0c7: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ca: athrow
      // 0cb: new java/lang/IllegalArgumentException
      // 0ce: dup
      // 0cf: aload 3
      // 0d0: aload 0
      // 0d1: invokeinterface java/security/PublicKey.getAlgorithm ()Ljava/lang/String; 1
      // 0d6: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 0d9: bipush 7
      // 0db: aaload
      // 0dc: dup_x2
      // 0dd: pop
      // 0de: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 0e1: bipush 3
      // 0e2: aaload
      // 0e3: swap
      // 0e4: 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" ]
      // 0e9: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 0ec: athrow
      // 0ed: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f0: athrow
      // 0f1: iload 6
      // 0f3: ifeq 109
      // 0f6: aload 1
      // 0f7: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 0fa: bipush 27
      // 0fc: aaload
      // 0fd: invokedynamic makeConcatWithConstants (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" ]
      // 102: goto 119
      // 105: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 108: athrow
      // 109: aload 1
      // 10a: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 10d: astore 10
      // 10f: aload 10
      // 111: bipush 9
      // 113: aaload
      // 114: invokedynamic makeConcatWithConstants (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" ]
      // 119: astore 4
      // 11b: iload 6
      // 11d: ifeq 12c
      // 120: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 123: bipush 2
      // 124: aaload
      // 125: goto 136
      // 128: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 12b: athrow
      // 12c: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 12f: astore 10
      // 131: aload 10
      // 133: bipush 21
      // 135: aaload
      // 136: astore 5
      // 138: goto 197
      // 13b: aload 0
      // 13c: instanceof java/security/interfaces/DSAKey
      // 13f: ifne 157
      // 142: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 145: bipush 16
      // 147: aaload
      // 148: aload 7
      // 14a: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 14d: ifeq 173
      // 150: goto 157
      // 153: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 156: athrow
      // 157: aload 1
      // 158: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 15b: astore 10
      // 15d: aload 10
      // 15f: bipush 13
      // 161: aaload
      // 162: invokedynamic makeConcatWithConstants (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" ]
      // 167: astore 4
      // 169: aload 10
      // 16b: bipush 26
      // 16d: aaload
      // 16e: astore 5
      // 170: goto 197
      // 173: aload 1
      // 174: aload 7
      // 176: getstatic com/l7tech/common/io/ParamsCertificateGenerator.f [Ljava/lang/String;
      // 179: astore 10
      // 17b: aload 10
      // 17d: bipush 6
      // 17f: aaload
      // 180: swap
      // 181: 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" ]
      // 186: astore 4
      // 188: aload 7
      // 18a: aload 10
      // 18c: bipush 8
      // 18e: aaload
      // 18f: swap
      // 190: invokedynamic makeConcatWithConstants (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" ]
      // 195: astore 5
      // 197: getstatic com/l7tech/common/io/ParamsCertificateGenerator.b Z
      // 19a: ifne 1ab
      // 19d: aload 0
      // 19e: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.isShortKey (Ljava/security/PublicKey;)Z
      // 1a1: ifeq 1b2
      // 1a4: goto 1ab
      // 1a7: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1aa: athrow
      // 1ab: aload 5
      // 1ad: areturn
      // 1ae: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1b1: athrow
      // 1b2: aload 4
      // 1b4: astore 8
      // 1b6: aload 2
      // 1b7: ifnonnull 1c7
      // 1ba: aload 4
      // 1bc: invokestatic java/security/Signature.getInstance (Ljava/lang/String;)Ljava/security/Signature;
      // 1bf: pop
      // 1c0: goto 1ce
      // 1c3: invokestatic com/l7tech/common/io/ParamsCertificateGenerator.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1c6: athrow
      // 1c7: aload 4
      // 1c9: aload 2
      // 1ca: invokestatic java/security/Signature.getInstance (Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Signature;
      // 1cd: pop
      // 1ce: goto 1d7
      // 1d1: astore 9
      // 1d3: aload 5
      // 1d5: astore 8
      // 1d7: aload 8
      // 1d9: areturn
      // try (202 -> 208): 208 java/security/NoSuchAlgorithmException
      // try (190 -> 198): 198 java/security/NoSuchAlgorithmException
      // try (188 -> 193): 194 java/security/NoSuchAlgorithmException
      // try (146 -> 155): 156 java/security/NoSuchAlgorithmException
      // try (131 -> 137): 137 java/security/NoSuchAlgorithmException
      // try (113 -> 121): 121 java/security/NoSuchAlgorithmException
      // try (89 -> 111): 111 java/security/NoSuchAlgorithmException
      // try (84 -> 91): 92 java/security/NoSuchAlgorithmException
      // try (75 -> 86): 87 java/security/NoSuchAlgorithmException
      // try (72 -> 81): 82 java/security/NoSuchAlgorithmException
      // try (47 -> 56): 57 java/security/NoSuchAlgorithmException
      // try (19 -> 45): 45 java/security/NoSuchAlgorithmException
      // try (17 -> 25): 26 java/security/NoSuchAlgorithmException
      // try (202 -> 214): 215 java/security/NoSuchAlgorithmException
   }

   public static boolean isShortKey(PublicKey var0) {
      if (var0 instanceof ECPublicKey var5) {
         int var6 = var5.getParams().getCurve().getField().getFieldSize();

         try {
            if (var6 < 256) {
               return true;
            }
         } catch (IllegalArgumentException var3) {
            throw a(var3);
         }

         return false;
      } else if (var0 instanceof RSAPublicKey var1) {
         int var2 = CertUtils.getRsaKeyBits(var1);

         try {
            if (var2 < 768) {
               return true;
            }
         } catch (IllegalArgumentException var4) {
            throw a(var4);
         }

         return false;
      } else {
         return true;
      }
   }

   static {
      String[] var5 = new String[28];
      int var3 = 0;
      String var2 = "-If\r,\u0002O\fH'\f2\u0002\u000e\fB'<\u000b.O\u001eUh\u0002`\u0014\u001a\u001aMb\f4G\u001f\rEk\u0006#G\u0004\u001d^=O--If\r,\u0002O\fH'\f2\u0002\u000e\fB'.\u000b.O\u001eUh\u0002`\u000e\u001c\u000bRb\u001d`\u0017\u001a\u001aKn\f`\f\n\u0001\u001d'\u0012+oF^7\u000e\u001b\u0010uT.!\t\u000b5`A^\u0005XAh\u001d`\t\u000fNs\u0007\u0005$++f\u0006+oF\\xS\u0004\u000fNs\u0007\u001c1Iq\u000e,\u000e\u000bXTn\b.\u0006\u001b\rUb.,\u0000\u0000\nNs\u0007-]O\b+oF^7\u000e\u001b\u0010\u0007\u000fNs\u0007\u00124.+\u001bHjA,P\u001b\u001dDoA3\u0002\f\rUn\u001b9I\f\u001dUsA!\u000b\u0018\u0019^t<)\u0000\u0001/Ns\u0007\u0013\u000f\u000eI\n*tF<\u0013&B(tT\u001c1Iq\u000e,\u000e\u000bXTn\b.\u0006\u001b\rUb.,\u0000\u0000\nNs\u0007-]O\u0007\u000fNs\u0007\u00044.'1Iq\u000e,\u000e\u000bXcB=`\u0011\u000e\u0014RbO&\b\u001dX\u007f2_y \n\u0016Bu\u000e,)\u000e\u0015B=O\u0002=d\u0003<tF\u0003*tF+1Iq\u000e,\u000e\u000bXBi\f/\u0003\n\u001c\u0007q\u000e,\u0012\nXAh\u001d`?ZH\u001e@\n.\u0002\u001d\u0019KI\u000e-\u0002UX\u0005XAh\u001d`\u0003*tF\u000b+oF^7\u000e\u001b\u0010uT.\t9Rs\u0000-\u0006\u001b\u0011D\n*tF<\u0013&B(tT\r+oF^7\u000e\u001b\u0010bD+\u0013&\u00189\u0007t\u001a\"\r\n\u001bS'+\u000eG\u0006\u000b\u0007u\n1\u0012\u0006\nBc";
      int var4 = "-If\r,\u0002O\fH'\f2\u0002\u000e\fB'<\u000b.O\u001eUh\u0002`\u0014\u001a\u001aMb\f4G\u001f\rEk\u0006#G\u0004\u001d^=O--If\r,\u0002O\fH'\f2\u0002\u000e\fB'.\u000b.O\u001eUh\u0002`\u000e\u001c\u000bRb\u001d`\u0017\u001a\u001aKn\f`\f\n\u0001\u001d'\u0012+oF^7\u000e\u001b\u0010uT.!\t\u000b5`A^\u0005XAh\u001d`\t\u000fNs\u0007\u0005$++f\u0006+oF\\xS\u0004\u000fNs\u0007\u001c1Iq\u000e,\u000e\u000bXTn\b.\u0006\u001b\rUb.,\u0000\u0000\nNs\u0007-]O\b+oF^7\u000e\u001b\u0010\u0007\u000fNs\u0007\u00124.+\u001bHjA,P\u001b\u001dDoA3\u0002\f\rUn\u001b9I\f\u001dUsA!\u000b\u0018\u0019^t<)\u0000\u0001/Ns\u0007\u0013\u000f\u000eI\n*tF<\u0013&B(tT\u001c1Iq\u000e,\u000e\u000bXTn\b.\u0006\u001b\rUb.,\u0000\u0000\nNs\u0007-]O\u0007\u000fNs\u0007\u00044.'1Iq\u000e,\u000e\u000bXcB=`\u0011\u000e\u0014RbO&\b\u001dX\u007f2_y \n\u0016Bu\u000e,)\u000e\u0015B=O\u0002=d\u0003<tF\u0003*tF+1Iq\u000e,\u000e\u000bXBi\f/\u0003\n\u001c\u0007q\u000e,\u0012\nXAh\u001d`?ZH\u001e@\n.\u0002\u001d\u0019KI\u000e-\u0002UX\u0005XAh\u001d`\u0003*tF\u000b+oF^7\u000e\u001b\u0010uT.\t9Rs\u0000-\u0006\u001b\u0011D\n*tF<\u0013&B(tT\r+oF^7\u000e\u001b\u0010bD+\u0013&\u00189\u0007t\u001a\"\r\n\u001bS'+\u000eG\u0006\u000b\u0007u\n1\u0012\u0006\nBc"
         .length();
      char var1 = '.';
      int var7 = -1;

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

         while (true) {
            String var8 = a(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     f = var5;
                     b = ConfigFactory.getBooleanProperty(f[10], false);
                     c = new SecureRandom();
                     return;
                  }

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

                  var2 = "\u0007Cjr\u001b\"7<Ox\u0002\u000e#b_+>\u0018\u00025eO\u000e+\rr";
                  var4 = "\u0007Cjr\u001b\"7<Ox\u0002\u000e#b_+>\u0018\u00025eO\u000e+\rr".length();
                  var1 = 11;
                  var7 = -1;
            }

            var10000 = 9;
            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] ^ 74);
      }

      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 -> 93;
            case 1 -> 2;
            case 2 -> 34;
            case 3 -> 74;
            case 4 -> 101;
            case 5 -> 66;
            default -> 74;
         });
      }

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