package com.l7tech.server.admin;

import com.l7tech.common.io.AliasNotFoundException;
import com.l7tech.common.io.CertGenParams;
import com.l7tech.common.io.KeyGenParams;
import com.l7tech.gateway.common.security.MultipleAliasesException;
import com.l7tech.gateway.common.security.SpecialKeyType;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.gateway.common.security.keystore.SsgKeyMetadata;
import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.ObjectNotFoundException;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.security.prov.ProviderUtil;
import com.l7tech.server.DefaultKey;
import com.l7tech.server.event.AdminInfo;
import com.l7tech.server.event.EntityChangeSet;
import com.l7tech.server.event.RoleAwareEntityDeletionEvent;
import com.l7tech.server.event.admin.Deleted;
import com.l7tech.server.event.admin.KeyExportedEvent;
import com.l7tech.server.event.admin.Updated;
import com.l7tech.server.security.keystore.SsgKeyFinder;
import com.l7tech.server.security.keystore.SsgKeyStore;
import com.l7tech.server.security.keystore.SsgKeyStoreManager;
import com.l7tech.util.CallableRunnable;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Functions;
import com.l7tech.util.Pair;
import com.l7tech.util.PoolByteArrayOutputStream;
import com.l7tech.util.TextUtils;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.PrivateKey;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.security.auth.x500.X500Principal;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationEventPublisher;

public class PrivateKeyAdminHelper {
   private static final Logger a;
   public static final String PROP_PKCS12_PARSING_PROVIDER;
   private final DefaultKey b;
   private final SsgKeyStoreManager c;
   private final ApplicationEventPublisher d;
   private static final String[] e;

   public PrivateKeyAdminHelper(DefaultKey var1, SsgKeyStoreManager var2, ApplicationEventPublisher var3) {
      this.b = var1;
      this.c = var2;
      this.d = var3;
   }

   public SsgKeyEntry doFindKeyEntry(String var1, Goid var2) throws FindException, KeyStoreException {
      try {
         try {
            if (var1 == null) {
               return this.b.getServerSslInfo();
            }
         } catch (IOException var4) {
            throw a(var4);
         }

         return this.c.lookupKeyByKeyAlias(var1, var2);
      } catch (IOException var5) {
         return null;
      } catch (ObjectNotFoundException var6) {
         return null;
      }
   }

   public boolean isKeyActive(SsgKeyFinder param1, String param2) throws KeyStoreException {
      // $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/gateway/common/spring/remoting/RemoteUtils.getHttpServletRequest ()Ljakarta/servlet/http/HttpServletRequest;
      // 03: astore 3
      // 04: aconst_null
      // 05: aload 3
      // 06: if_acmpne 0f
      // 09: bipush 0
      // 0a: ireturn
      // 0b: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e: athrow
      // 0f: aload 3
      // 10: invokestatic com/l7tech/server/transport/http/HttpTransportModule.getConnector (Ljakarta/servlet/ServletRequest;)Lcom/l7tech/gateway/common/transport/SsgConnector;
      // 13: astore 4
      // 15: aconst_null
      // 16: aload 4
      // 18: if_acmpne 21
      // 1b: bipush 0
      // 1c: ireturn
      // 1d: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 20: athrow
      // 21: aload 4
      // 23: invokevirtual com/l7tech/gateway/common/transport/SsgConnector.getKeyAlias ()Ljava/lang/String;
      // 26: ifnull 42
      // 29: aload 2
      // 2a: aload 4
      // 2c: invokevirtual com/l7tech/gateway/common/transport/SsgConnector.getKeyAlias ()Ljava/lang/String;
      // 2f: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 32: ifne 42
      // 35: goto 3c
      // 38: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3b: athrow
      // 3c: bipush 0
      // 3d: ireturn
      // 3e: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 41: athrow
      // 42: aload 4
      // 44: invokevirtual com/l7tech/gateway/common/transport/SsgConnector.getKeystoreGoid ()Lcom/l7tech/objectmodel/Goid;
      // 47: astore 5
      // 49: aload 5
      // 4b: ifnull 69
      // 4e: aload 5
      // 50: aload 1
      // 51: invokeinterface com/l7tech/server/security/keystore/SsgKeyFinder.getGoid ()Lcom/l7tech/objectmodel/Goid; 1
      // 56: invokestatic com/l7tech/objectmodel/Goid.equals (Lcom/l7tech/objectmodel/Goid;Lcom/l7tech/objectmodel/Goid;)Z
      // 59: ifne 69
      // 5c: goto 63
      // 5f: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 62: athrow
      // 63: bipush 0
      // 64: ireturn
      // 65: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 68: athrow
      // 69: aload 1
      // 6a: aload 2
      // 6b: invokeinterface com/l7tech/server/security/keystore/SsgKeyFinder.getCertificateChain (Ljava/lang/String;)Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 2
      // 70: astore 6
      // 72: goto 79
      // 75: astore 7
      // 77: bipush 0
      // 78: ireturn
      // 79: aload 0
      // 7a: aload 4
      // 7c: invokevirtual com/l7tech/gateway/common/transport/SsgConnector.getKeyAlias ()Ljava/lang/String;
      // 7f: aload 5
      // 81: ifnull 8d
      // 84: aload 5
      // 86: goto 90
      // 89: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8c: athrow
      // 8d: getstatic com/l7tech/objectmodel/PersistentEntity.DEFAULT_GOID Lcom/l7tech/objectmodel/Goid;
      // 90: invokevirtual com/l7tech/server/admin/PrivateKeyAdminHelper.doFindKeyEntry (Ljava/lang/String;Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry;
      // 93: astore 7
      // 95: aload 7
      // 97: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getCertificate ()Ljava/security/cert/X509Certificate;
      // 9a: aload 6
      // 9c: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getCertificate ()Ljava/security/cert/X509Certificate;
      // 9f: invokestatic com/l7tech/common/io/CertUtils.certsAreEqual (Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)Z
      // a2: ireturn
      // a3: astore 7
      // a5: bipush 0
      // a6: ireturn
      // try (39 -> 49): 49 com/l7tech/objectmodel/ObjectNotFoundException
      // try (37 -> 44): 45 com/l7tech/objectmodel/ObjectNotFoundException
      // try (22 -> 32): 32 com/l7tech/objectmodel/ObjectNotFoundException
      // try (19 -> 27): 28 com/l7tech/objectmodel/ObjectNotFoundException
      // try (12 -> 17): 17 com/l7tech/objectmodel/ObjectNotFoundException
      // try (2 -> 7): 7 com/l7tech/objectmodel/ObjectNotFoundException
      // try (51 -> 55): 56 com/l7tech/objectmodel/ObjectNotFoundException
      // try (59 -> 66): 66 com/l7tech/objectmodel/ObjectNotFoundException
      // try (59 -> 76): 77 com/l7tech/objectmodel/FindException
   }

   public List<String> findImpactedKeysByReplaceCertChain(Goid var1, String var2, X509Certificate[] var3) throws UpdateException {
      SsgKeyFinder var4;
      try {
         var4 = this.c.findByPrimaryKey(var1);
      } catch (KeyStoreException | FindException var9) {
         String var10002 = ExceptionUtils.getMessage(var9);
         String[] var7 = e;
         throw new UpdateException(var7[21] + var10002, var9);
      }

      SsgKeyStore var5 = var4.getKeyStore();

      try {
         if (var5 == null) {
            throw new UpdateException(e[61] + var1 + e[16]);
         }
      } catch (KeyStoreException var10) {
         throw a(var10);
      }

      try {
         return var5.findImpactedKeysByReplaceCertChain(var2, var3);
      } catch (Exception var8) {
         throw new UpdateException(e[14] + ExceptionUtils.getMessage(var8), var8);
      }
   }

   public void doUpdateCertificateChain(Goid var1, String var2, X509Certificate[] var3) throws UpdateException {
      this.doUpdateCertificateChain(var1, var2, var3, false);
   }

   public void doUpdateCertificateChain(Goid var1, String var2, X509Certificate[] var3, boolean var4) throws UpdateException {
      SsgKeyFinder var5;
      try {
         var5 = this.c.findByPrimaryKey(var1);
      } catch (KeyStoreException var10) {
         String var15 = ExceptionUtils.getMessage(var10);
         String[] var13 = e;
         throw new UpdateException(var13[21] + var15, var10);
      } catch (FindException var11) {
         String var10002 = ExceptionUtils.getMessage(var11);
         String[] var8 = e;
         throw new UpdateException(var8[21] + var10002, var11);
      }

      SsgKeyStore var6 = var5.getKeyStore();

      try {
         if (var6 == null) {
            throw new UpdateException(e[4] + var1 + e[33]);
         }
      } catch (KeyStoreException var12) {
         throw a(var12);
      }

      try {
         String[] var14 = e;
         Future var7 = var6.replaceCertificateChain(this.a(var6, var2, var14[32], var14[56]), var2, var3, var4);
         var7.get();
      } catch (Exception var9) {
         throw new UpdateException(e[57] + ExceptionUtils.getMessage(var9), var9);
      }
   }

   public void doUpdateKeyMetadata(Goid var1, @NotNull String var2, @Nullable SsgKeyMetadata var3) throws UpdateException {
      try {
         if (var2 == null) {
            a(0);
         }
      } catch (KeyStoreException var10) {
         throw a(var10);
      }

      SsgKeyFinder var4;
      try {
         var4 = this.c.findByPrimaryKey(var1);
      } catch (KeyStoreException | FindException var9) {
         String var10002 = ExceptionUtils.getMessage(var9);
         String[] var6 = e;
         throw new UpdateException(var6[53] + var10002, var9);
      }

      try {
         var4.getCertificateChain(var2);
         SsgKeyStore var5 = var4.getKeyStore();

         try {
            if (var5 != null) {
               var5.updateKeyMetadata(var1, var2, var3);
            }
         } catch (KeyStoreException var7) {
            throw a(var7);
         }
      } catch (Exception var8) {
         throw new UpdateException(e[48] + ExceptionUtils.getMessage(var8), var8);
      }
   }

   public Future<X509Certificate> doGenerateKeyPair(
      Goid var1, String var2, @Nullable SsgKeyMetadata var3, X500Principal var4, KeyGenParams var5, int var6, boolean var7, String var8
   ) throws FindException, GeneralSecurityException {
      SsgKeyStore var9 = this.a(var1, var2, var4, var6);
      return var9.generateKeyPair(this.a(var9, var2, e[29]), var2, var5, new CertGenParams(var4, var6, var7, var8), var3);
   }

   public SsgKeyEntry doImportKeyFromKeyStoreFile(
      Goid var1, String var2, @Nullable SsgKeyMetadata var3, @Nullable byte[] var4, String var5, @Nullable char[] var6, char[] var7, @Nullable String var8
   ) throws KeyStoreException, NoSuchProviderException, IOException, NoSuchAlgorithmException, CertificateException, AliasNotFoundException, MultipleAliasesException, UnrecoverableKeyException, SaveException, InterruptedException, ExecutionException, ObjectNotFoundException {
      return this.doImportKeyFromKeyStoreFile(var1, var2, var3, var4, var5, var6, var7, var8, false);
   }

   public X509Certificate[] getCertficatesFromKeystoreBytes(@Nullable byte[] var1, String var2, @Nullable char[] var3, char[] var4, @Nullable String var5) throws UnrecoverableKeyException, MultipleAliasesException, CertificateException, KeyStoreException, NoSuchAlgorithmException, IOException, NoSuchProviderException, AliasNotFoundException {
      Pair var6 = this.a(var1, var2, var3, var4, var5);
      return (X509Certificate[])var6.getValue();
   }

   public String getSubjectDNBeforeImport(Goid var1, String var2, @Nullable byte[] var3, String var4, @Nullable char[] var5, char[] var6, @Nullable String var7) throws KeyStoreException, NoSuchProviderException, IOException, NoSuchAlgorithmException, CertificateException, AliasNotFoundException, MultipleAliasesException, UnrecoverableKeyException, SaveException {
      Pair var8 = this.a(var3, var4, var5, var6, var7);
      SsgKeyStore var9 = this.a(var1);
      SsgKeyEntry var10 = new SsgKeyEntry(var9.getGoid(), var2, (X509Certificate[])var8.right, (PrivateKey)var8.left);
      return var10.getSubjectDN();
   }

   public SsgKeyEntry doImportKeyFromKeyStoreFile(
      Goid var1,
      String var2,
      @Nullable SsgKeyMetadata var3,
      @Nullable byte[] var4,
      String var5,
      @Nullable char[] var6,
      char[] var7,
      @Nullable String var8,
      boolean var9
   ) throws KeyStoreException, NoSuchProviderException, IOException, NoSuchAlgorithmException, CertificateException, AliasNotFoundException, MultipleAliasesException, UnrecoverableKeyException, SaveException, InterruptedException, ExecutionException, ObjectNotFoundException {
      Pair var10 = this.a(var4, var5, var6, var7, var8);
      SsgKeyStore var11 = this.a(var1);
      SsgKeyEntry var12 = new SsgKeyEntry(var11.getGoid(), var2, (X509Certificate[])var10.right, (PrivateKey)var10.left);

      try {
         if (var3 != null) {
            var12.attachMetadata(var3);
         }
      } catch (KeyStoreException var16) {
         throw a(var16);
      }

      String[] var14 = e;
      Future var13 = var11.storePrivateKeyEntry(this.a(var11, var2, var14[5]), var12, false, var9);

      try {
         if (!(Boolean)var13.get()) {
            throw new KeyStoreException(var14[54]);
         }
      } catch (KeyStoreException var15) {
         throw a(var15);
      }

      return var11.getCertificateChain(var2);
   }

   private Pair<PrivateKey, X509Certificate[]> a(@Nullable byte[] param1, String param2, @Nullable char[] param3, char[] param4, @Nullable String param5) throws NoSuchProviderException, KeyStoreException, CertificateException, NoSuchAlgorithmException, IOException, AliasNotFoundException, MultipleAliasesException, UnrecoverableKeyException {
      // $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: aload 2
      // 002: invokevirtual com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/String;)Ljava/security/KeyStore;
      // 005: astore 6
      // 007: aload 6
      // 009: new java/io/ByteArrayInputStream
      // 00c: dup
      // 00d: aload 1
      // 00e: invokespecial java/io/ByteArrayInputStream.<init> ([B)V
      // 011: aload 3
      // 012: invokevirtual java/security/KeyStore.load (Ljava/io/InputStream;[C)V
      // 015: goto 03d
      // 018: astore 7
      // 01a: aload 7
      // 01c: athrow
      // 01d: astore 7
      // 01f: new java/security/KeyStoreException
      // 022: dup
      // 023: aload 7
      // 025: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 028: getstatic com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // 02b: astore 10
      // 02d: aload 10
      // 02f: bipush 3
      // 030: aaload
      // 031: swap
      // 032: 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" ]
      // 037: aload 7
      // 039: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 03c: athrow
      // 03d: aload 5
      // 03f: ifnonnull 0dd
      // 042: new java/util/ArrayList
      // 045: dup
      // 046: aload 6
      // 048: invokevirtual java/security/KeyStore.aliases ()Ljava/util/Enumeration;
      // 04b: invokestatic java/util/Collections.list (Ljava/util/Enumeration;)Ljava/util/ArrayList;
      // 04e: invokespecial java/util/ArrayList.<init> (Ljava/util/Collection;)V
      // 051: astore 7
      // 053: aload 7
      // 055: invokeinterface java/util/List.isEmpty ()Z 1
      // 05a: ifeq 06f
      // 05d: new com/l7tech/common/io/AliasNotFoundException
      // 060: dup
      // 061: getstatic com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // 064: bipush 46
      // 066: aaload
      // 067: invokespecial com/l7tech/common/io/AliasNotFoundException.<init> (Ljava/lang/String;)V
      // 06a: athrow
      // 06b: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 06e: athrow
      // 06f: aload 7
      // 071: invokeinterface java/util/List.size ()I 1
      // 076: bipush 1
      // 077: if_icmple 0cc
      // 07a: aload 7
      // 07c: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 081: astore 8
      // 083: aload 8
      // 085: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 08a: ifeq 0b0
      // 08d: aload 6
      // 08f: aload 8
      // 091: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 096: checkcast java/lang/String
      // 099: invokevirtual java/security/KeyStore.isKeyEntry (Ljava/lang/String;)Z
      // 09c: ifne 083
      // 09f: goto 0a6
      // 0a2: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0a5: athrow
      // 0a6: aload 8
      // 0a8: invokeinterface java/util/Iterator.remove ()V 1
      // 0ad: goto 083
      // 0b0: new com/l7tech/gateway/common/security/MultipleAliasesException
      // 0b3: dup
      // 0b4: aload 7
      // 0b6: aload 7
      // 0b8: invokeinterface java/util/List.size ()I 1
      // 0bd: anewarray 594
      // 0c0: invokeinterface java/util/List.toArray ([Ljava/lang/Object;)[Ljava/lang/Object; 2
      // 0c5: checkcast [Ljava/lang/String;
      // 0c8: invokespecial com/l7tech/gateway/common/security/MultipleAliasesException.<init> ([Ljava/lang/String;)V
      // 0cb: athrow
      // 0cc: aload 7
      // 0ce: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 0d3: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 0d8: checkcast java/lang/String
      // 0db: astore 5
      // 0dd: aload 6
      // 0df: aload 5
      // 0e1: invokevirtual java/security/KeyStore.getCertificateChain (Ljava/lang/String;)[Ljava/security/cert/Certificate;
      // 0e4: astore 7
      // 0e6: aload 6
      // 0e8: aload 5
      // 0ea: aload 4
      // 0ec: invokevirtual java/security/KeyStore.getKey (Ljava/lang/String;[C)Ljava/security/Key;
      // 0ef: astore 8
      // 0f1: aload 7
      // 0f3: ifnull 102
      // 0f6: aload 8
      // 0f8: ifnonnull 11c
      // 0fb: goto 102
      // 0fe: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 101: athrow
      // 102: new com/l7tech/common/io/AliasNotFoundException
      // 105: dup
      // 106: aload 5
      // 108: getstatic com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // 10b: bipush 51
      // 10d: aaload
      // 10e: swap
      // 10f: 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" ]
      // 114: invokespecial com/l7tech/common/io/AliasNotFoundException.<init> (Ljava/lang/String;)V
      // 117: athrow
      // 118: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 11b: athrow
      // 11c: aload 7
      // 11e: invokestatic com/l7tech/common/io/CertUtils.asX509CertificateArray ([Ljava/security/cert/Certificate;)[Ljava/security/cert/X509Certificate;
      // 121: astore 9
      // 123: aload 8
      // 125: instanceof java/security/PrivateKey
      // 128: ifne 14c
      // 12b: new java/security/KeyStoreException
      // 12e: dup
      // 12f: aload 8
      // 131: invokeinterface java/security/Key.getClass ()Ljava/lang/Class; 1
      // 136: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 139: getstatic com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // 13c: bipush 2
      // 13d: aaload
      // 13e: swap
      // 13f: 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" ]
      // 144: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 147: athrow
      // 148: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 14b: athrow
      // 14c: new com/l7tech/util/Pair
      // 14f: dup
      // 150: aload 8
      // 152: checkcast java/security/PrivateKey
      // 155: aload 9
      // 157: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 15a: areturn
      // try (0 -> 11): 12 java/security/KeyStoreException
      // try (0 -> 11): 12 java/io/IOException
      // try (0 -> 11): 12 java/security/NoSuchAlgorithmException
      // try (0 -> 11): 12 java/security/cert/CertificateException
      // try (0 -> 11): 15 java/lang/RuntimeException
      // try (39 -> 49): 49 java/security/KeyStoreException
      // try (58 -> 67): 68 java/security/KeyStoreException
      // try (97 -> 101): 102 java/security/KeyStoreException
      // try (99 -> 114): 114 java/security/KeyStoreException
      // try (119 -> 134): 134 java/security/KeyStoreException
   }

   public List<String> findImpactedKeysByImportKey(
      Goid var1, String var2, @Nullable byte[] var3, String var4, @Nullable char[] var5, char[] var6, @Nullable String var7
   ) throws GeneralSecurityException, AliasNotFoundException, MultipleAliasesException, IOException, SaveException {
      Pair var8 = this.a(var3, var4, var5, var6, var7);
      SsgKeyStore var9 = this.a(var1);
      return var9.findImpactedKeysByReplaceCertChain(var2, (X509Certificate[])var8.right);
   }

   public byte[] doExportKeyAsPkcs12(Goid var1, String var2, String var3, char[] var4) throws FindException, KeyStoreException, UnrecoverableKeyException {
      SsgKeyFinder var5 = this.c.findByPrimaryKey(var1);

      try {
         if (!var5.isKeyExportSupported()) {
            throw new UnrecoverableKeyException(e[50]);
         }
      } catch (IOException var24) {
         throw a(var24);
      }

      SsgKeyEntry var6 = this.c.lookupKeyByKeyAlias(var2, var1);

      try {
         if (!var6.isPrivateKeyAvailable()) {
            throw new UnrecoverableKeyException(e[11] + var2 + e[58]);
         }
      } catch (IOException var23) {
         throw a(var23);
      }

      if (var3 == null) {
         var3 = var2;
      }

      PrivateKey var7 = var6.getPrivateKey();
      X509Certificate[] var8 = var6.getCertificateChain();
      PoolByteArrayOutputStream var9 = new PoolByteArrayOutputStream();
      KeyStore var10 = KeyStore.getInstance(e[37], ProviderUtil.loadInstalledBCProxy().getBCProvider());

      try {
         var10.load(null, var4);
         var10.setKeyEntry(var3, var7, var4, var8);
         var10.store(var9, var4);
         this.d.publishEvent(new KeyExportedEvent(this, var6.getKeystoreId(), var6.getAlias(), this.a(var6)));
         return var9.toByteArray();
      } catch (IOException var19) {
         throw new KeyStoreException(var19);
      } catch (NoSuchAlgorithmException var20) {
         throw new KeyStoreException(var20);
      } catch (CertificateException var21) {
         throw new KeyStoreException(var21);
      } finally {
         var9.close();
      }
   }

   public static String getClusterPropertyForSpecialKeyType(SpecialKeyType var0) {
      String var1;
      switch (l.a[var0.ordinal()]) {
         case 1:
            String[] var7 = e;
            var1 = var7[45];
            break;
         case 2:
            String[] var6 = e;
            var1 = var6[9];
            break;
         case 3:
            String[] var5 = e;
            var1 = var5[13];
            break;
         case 4:
            String[] var4 = e;
            var1 = var4[43];
            break;
         case 5:
            String[] var3 = e;
            var1 = var3[49];
            break;
         case 6:
            String[] var2 = e;
            var1 = var2[27];
            break;
         default:
            throw new IllegalArgumentException(e[28] + var0);
      }

      return var1;
   }

   private String a(SsgKeyEntry var1) {
      X509Certificate var2 = var1.getCertificate();

      try {
         if (var2 == null) {
            return null;
         }
      } catch (RuntimeException var3) {
         throw a(var3);
      }

      return var2.getSubjectDN().getName();
   }

   private KeyStore a(String param1) throws KeyStoreException, NoSuchProviderException {
      // $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 com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // 03: astore 3
      // 04: aload 3
      // 05: bipush 38
      // 07: aaload
      // 08: aload 1
      // 09: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 0c: ifeq 80
      // 0f: aload 3
      // 10: bipush 1
      // 11: aaload
      // 12: aload 3
      // 13: bipush 39
      // 15: aaload
      // 16: invokestatic com/l7tech/util/ConfigFactory.getProperty (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
      // 19: astore 2
      // 1a: aconst_null
      // 1b: aload 2
      // 1c: if_acmpeq 42
      // 1f: aload 2
      // 20: invokevirtual java/lang/String.length ()I
      // 23: bipush 1
      // 24: if_icmplt 42
      // 27: goto 2e
      // 2a: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2d: athrow
      // 2e: aload 2
      // 2f: getstatic com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // 32: bipush 17
      // 34: aaload
      // 35: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 38: ifeq 50
      // 3b: goto 42
      // 3e: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 41: athrow
      // 42: getstatic com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // 45: bipush 38
      // 47: aaload
      // 48: invokestatic java/security/KeyStore.getInstance (Ljava/lang/String;)Ljava/security/KeyStore;
      // 4b: areturn
      // 4c: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4f: athrow
      // 50: getstatic com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // 53: bipush 12
      // 55: aaload
      // 56: aload 2
      // 57: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 5a: ifeq 73
      // 5d: getstatic com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // 60: bipush 38
      // 62: aaload
      // 63: invokestatic com/l7tech/security/prov/ProviderUtil.loadInstalledBCProxy ()Lcom/l7tech/security/prov/bc/api/BCProxy;
      // 66: invokeinterface com/l7tech/security/prov/bc/api/BCProxy.getBCProvider ()Ljava/security/Provider; 1
      // 6b: invokestatic java/security/KeyStore.getInstance (Ljava/lang/String;Ljava/security/Provider;)Ljava/security/KeyStore;
      // 6e: areturn
      // 6f: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 72: athrow
      // 73: getstatic com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // 76: astore 3
      // 77: aload 3
      // 78: bipush 38
      // 7a: aaload
      // 7b: aload 2
      // 7c: invokestatic java/security/KeyStore.getInstance (Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
      // 7f: areturn
      // 80: getstatic com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // 83: bipush 64
      // 85: aaload
      // 86: aload 1
      // 87: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 8a: ifeq 9b
      // 8d: getstatic com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // 90: bipush 30
      // 92: aaload
      // 93: invokestatic java/security/KeyStore.getInstance (Ljava/lang/String;)Ljava/security/KeyStore;
      // 96: areturn
      // 97: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 9a: athrow
      // 9b: new java/security/KeyStoreException
      // 9e: dup
      // 9f: aload 1
      // a0: getstatic com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // a3: bipush 20
      // a5: aaload
      // a6: swap
      // a7: 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" ]
      // ac: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // af: athrow
      // try (16 -> 23): 24 java/security/KeyStoreException
      // try (19 -> 32): 33 java/security/KeyStoreException
      // try (26 -> 40): 40 java/security/KeyStoreException
      // try (42 -> 55): 55 java/security/KeyStoreException
      // try (65 -> 76): 76 java/security/KeyStoreException
   }

   private SsgKeyStore a(Goid var1) throws SaveException {
      SsgKeyFinder var2;
      try {
         var2 = this.c.findByPrimaryKey(var1);
      } catch (KeyStoreException | FindException var6) {
         String var10002 = ExceptionUtils.getMessage(var6);
         String[] var4 = e;
         throw new SaveException(var4[31] + var10002, var6);
      }

      SsgKeyStore var3 = var2.getKeyStore();

      try {
         if (var3 == null) {
            throw new SaveException(e[4] + var1 + e[33]);
         } else {
            return var3;
         }
      } catch (KeyStoreException var5) {
         throw a(var5);
      }
   }

   private SsgKeyStore a(Goid var1, String var2, X500Principal var3, int var4) throws FindException, KeyStoreException {
      try {
         if (var2 == null) {
            throw new NullPointerException(e[6]);
         }
      } catch (ObjectNotFoundException var14) {
         throw a(var14);
      }

      try {
         if (var2.length() < 1) {
            throw new IllegalArgumentException(e[41]);
         }
      } catch (ObjectNotFoundException var10) {
         throw a(var10);
      }

      try {
         if (var3 == null) {
            throw new NullPointerException(e[35]);
         }
      } catch (ObjectNotFoundException var13) {
         throw a(var13);
      }

      String[] var7 = e;
      new X500Principal(var3.getName(var7[26])).getEncoded();

      SsgKeyFinder var5;
      try {
         var5 = this.c.findByPrimaryKey(var1);
      } catch (ObjectNotFoundException var9) {
         String var10002 = String.valueOf(var1);
         var7 = e;
         throw new FindException(var7[23] + var10002);
      }

      SsgKeyStore var6 = null;

      label57: {
         try {
            if (var5 == null || !var5.isMutable()) {
               break label57;
            }
         } catch (ObjectNotFoundException var12) {
            throw a(var12);
         }

         var6 = var5.getKeyStore();
      }

      try {
         if (var6 == null) {
            throw new FindException(e[62] + var1 + e[42]);
         }
      } catch (ObjectNotFoundException var11) {
         throw a(var11);
      }

      try {
         if (var4 < 1) {
            throw new IllegalArgumentException(e[36]);
         } else {
            return var6;
         }
      } catch (ObjectNotFoundException var8) {
         throw a(var8);
      }
   }

   private Runnable a(SsgKeyStore var1, String var2, String var3) {
      return new CallableRunnable(AdminInfo.find(true).wrapCallable(new i(this, var1, var2, var3)));
   }

   private Runnable a(SsgKeyStore var1, String var2, String var3, String var4) {
      EntityChangeSet var5 = new EntityChangeSet(new String[]{var3}, new Object[]{new Object()}, new Object[]{new Object()});
      return this.a(new Updated(SsgKeyEntry.createDummyEntityForAuditing(var1.getGoid(), var2), var5, var4));
   }

   private Runnable a(SsgKeyStore var1, String var2) {
      return this.a(new Deleted(SsgKeyEntry.createDummyEntityForAuditing(var1.getGoid(), var2)));
   }

   private Runnable a(ApplicationEvent var1) {
      return new CallableRunnable(AdminInfo.find(true).wrapCallable(new j(this, var1)));
   }

   public void validateKeyDeletionAllowed(@NotNull Goid param1, @NotNull String param2) throws FindException, KeyStoreException {
      // $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 1
      // 01: ifnonnull 0f
      // 04: bipush 1
      // 05: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (I)V
      // 08: goto 0f
      // 0b: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e: athrow
      // 0f: aload 2
      // 10: ifnonnull 1e
      // 13: bipush 2
      // 14: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (I)V
      // 17: goto 1e
      // 1a: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1d: athrow
      // 1e: aload 1
      // 1f: ifnull 3e
      // 22: aload 2
      // 23: ifnull 3e
      // 26: goto 2d
      // 29: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2c: athrow
      // 2d: aload 2
      // 2e: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 31: invokevirtual java/lang/String.isEmpty ()Z
      // 34: ifeq 50
      // 37: goto 3e
      // 3a: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 3d: athrow
      // 3e: new java/lang/IllegalArgumentException
      // 41: dup
      // 42: getstatic com/l7tech/server/admin/PrivateKeyAdminHelper.e [Ljava/lang/String;
      // 45: bipush 40
      // 47: aaload
      // 48: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 4b: athrow
      // 4c: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4f: athrow
      // 50: aload 0
      // 51: aload 2
      // 52: aload 1
      // 53: invokevirtual com/l7tech/server/admin/PrivateKeyAdminHelper.doFindKeyEntry (Ljava/lang/String;Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry;
      // 56: astore 3
      // 57: aload 3
      // 58: ifnonnull 60
      // 5b: return
      // 5c: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 5f: athrow
      // 60: aload 3
      // 61: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 64: astore 4
      // 66: aload 0
      // 67: aload 4
      // 69: invokevirtual com/l7tech/server/admin/PrivateKeyAdminHelper.b (Ljava/lang/String;)Ljava/util/List;
      // 6c: astore 5
      // 6e: aload 5
      // 70: invokeinterface java/util/List.isEmpty ()Z 1
      // 75: ifne 89
      // 78: aload 0
      // 79: aload 1
      // 7a: aload 2
      // 7b: aload 4
      // 7d: aload 5
      // 7f: invokevirtual com/l7tech/server/admin/PrivateKeyAdminHelper.a (Lcom/l7tech/objectmodel/Goid;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
      // 82: goto 89
      // 85: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 88: athrow
      // 89: return
      // try (0 -> 4): 5 com/l7tech/objectmodel/FindException
      // try (7 -> 11): 12 com/l7tech/objectmodel/FindException
      // try (14 -> 18): 19 com/l7tech/objectmodel/FindException
      // try (16 -> 25): 26 com/l7tech/objectmodel/FindException
      // try (21 -> 35): 35 com/l7tech/objectmodel/FindException
      // try (42 -> 45): 45 com/l7tech/objectmodel/FindException
      // try (54 -> 63): 64 com/l7tech/objectmodel/FindException
   }

   private List<SpecialKeyType> b(String var1) {
      ArrayList var2 = new ArrayList();

      try {
         this.a(var1, SpecialKeyType.SERVER_SSL, var2);
         this.a(var1, SpecialKeyType.CLIENT_SSL, var2);
         return var2;
      } catch (IOException var5) {
         String[] var4 = e;
         a.log(Level.WARNING, var4[8], new Object[]{var1, ExceptionUtils.getMessage(var5)});
         throw new IllegalArgumentException(var4[15] + ExceptionUtils.getMessage(var5), var5);
      }
   }

   private void a(String param1, SpecialKeyType param2, List<SpecialKeyType> param3) throws IOException {
      // $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: aconst_null
      // 01: astore 4
      // 03: aload 2
      // 04: getstatic com/l7tech/gateway/common/security/SpecialKeyType.SERVER_SSL Lcom/l7tech/gateway/common/security/SpecialKeyType;
      // 07: if_acmpne 18
      // 0a: aload 0
      // 0b: getfield com/l7tech/server/admin/PrivateKeyAdminHelper.b Lcom/l7tech/server/DefaultKey;
      // 0e: invokeinterface com/l7tech/server/DefaultKey.getLatestServerSslInfo ()Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 1
      // 13: astore 4
      // 15: goto 2a
      // 18: aload 2
      // 19: getstatic com/l7tech/gateway/common/security/SpecialKeyType.CLIENT_SSL Lcom/l7tech/gateway/common/security/SpecialKeyType;
      // 1c: if_acmpne 2a
      // 1f: aload 0
      // 20: getfield com/l7tech/server/admin/PrivateKeyAdminHelper.b Lcom/l7tech/server/DefaultKey;
      // 23: invokeinterface com/l7tech/server/DefaultKey.getLatestClientSslInfo ()Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry; 1
      // 28: astore 4
      // 2a: aload 4
      // 2c: ifnull 51
      // 2f: aload 1
      // 30: aload 4
      // 32: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getId ()Ljava/lang/String;
      // 35: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 38: ifeq 51
      // 3b: goto 42
      // 3e: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 41: athrow
      // 42: aload 3
      // 43: aload 2
      // 44: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 49: pop
      // 4a: goto 51
      // 4d: invokestatic com/l7tech/server/admin/PrivateKeyAdminHelper.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 50: athrow
      // 51: return
      // try (17 -> 24): 25 java/io/IOException
      // try (19 -> 31): 32 java/io/IOException
   }

   private void a(Goid var1, String var2, String var3, List<SpecialKeyType> var4) {
      String[] var6 = e;
      String var5 = String.valueOf(TextUtils.join(var6[59], Functions.map(var4, new k(this))));
      a.log(Level.WARNING, var6[60], new Object[]{var1, var2, var3, var5});
      throw new IllegalArgumentException(var6[55] + var2 + var6[24] + var5 + var6[18]);
   }

   public void doDeletePrivateKeyEntry(SsgKeyStore var1, String var2) throws DeleteException, KeyStoreException {
      try {
         SsgKeyEntry var3 = this.doFindKeyEntry(var2, var1.getGoid());

         try {
            if (var3 != null) {
               this.d.publishEvent(new RoleAwareEntityDeletionEvent(this, var3));
            }
         } catch (ExecutionException var6) {
            throw a(var6);
         }

         Future var4 = var1.deletePrivateKeyEntry(this.a(var1, var2), var2);
         var4.get();
      } catch (ExecutionException var7) {
         String var11 = ExceptionUtils.getMessage(var7);
         String[] var10 = e;
         throw new DeleteException(var10[22] + var11, var7);
      } catch (InterruptedException var8) {
         String var10002 = ExceptionUtils.getMessage(var8);
         String[] var5 = e;
         throw new DeleteException(var5[0] + var10002, var8);
      } catch (FindException var9) {
         throw new DeleteException(e[25] + ExceptionUtils.getMessage(var9), var9);
      }
   }

   static {
      String[] var5 = new String[65];
      int var3 = 0;
      String var2 = "aMPylN\u001d@L\u0011}iEY\u0014HTbs_RFF\u000b;+WL\\5l\u001cIQ@Y5kNDgW^ie\u0005M_@B*2\u0005MUQBrnL\u0013DQ^miOXF\u001f\u007fFH;eEIFZ\u0011rs\u000bS[W\u0011z {O]UPoe`XM\u0019\u0011\u0019aMPylN\u001d@L\u0011ieJY\u0014hTbS_RFF\u000b;\u0013QQCtr\u0011\u001d_FHhtDOQ\u0003x_ \b]NAtr_XP\rUOXzs\u000bTG\u0003_nlG\b_FHZlB\\G/qQCtr\u000b^\\FRpiEZ\u0014PA~cB\\X\u0003Anr[RGF\u0011}oY\u001d_FH;{\u001b@\u000e\u0003J*}\u001f_FHHtDOQ\rU~fJHXWb~r]XFpBw.JQ]BB-WL\\4l\u001cIQ@Y4sNOBFC4aOP]M\u001eKrBKUWTPeR|PNXuHNQDFC\u0016dQXma_X\u0014hTb MRF\u0003PwiJN\u0014\u0002v`\u001f_FHHtDOQ\rU~fJHXWrwiNS@pBw.JQ]BB\u0018qQCtr\u000bNQWErnL\u001dZFF;cNO@\u0019\u0011:wB_uo_\u001dBFCrfR\u001dGSTxiJQ\u0014SDipDNQ\u0003PhsBZZNTutX\u001dRLC;kND\u001a\u0003tirDO\u000e\u0003\r\u0014JB;rN\\P\u000e^ulR\u0007PFWzuGIi\u001a\u0003eseXX\u0014HTbs\u000b\\FF\u0011xrBI]@Pw MRF\u0003VztNJUZ\u0011HSg\u001d[STia_T[MB5 mTFPE;dNN]D_ztN\u001dU\u0003UrfMXFF_o @XM\u0003Wtr\u000bI\\FB~ [HFS^heX\u0013\u0013PLdkdJIQhTbMNIUGPoa\"\u007fFHHtDOQ\u0003WrlN\u001d@ZA~ ER@\u0003Bnp[RFWT\u007f:\u000b\u0018qQCtr\u000bZQWErnL\u001d_FHhtDOQ\u0019\u0011\u0016aMPylN\u001d@L\u0011\u007feGX@F\u0011peR\u0007\u0014\u001azL\u0011peRN@LC~ MRAMU;wBI\\\u0003X\u007f \u001c\u0013\u0019\u0011xuYOQMEwy\u000bYQPX|nJIQG\u0011}oY\u001d\u0014aMPylN\u001d@L\u0011}iEY\u0014HTb:\u000b\twb\u007fTNb~uo\u001b_FHHtDOQ\rPndBIgJVuiEZ\u001aB]raX\u0011zL\u0011huHU\u0014HTbTRMQ\u0019\u0011\tSF_~rJIQG\u0003~hb\u0018QQCtr\u000bZQWErnL\u001d_FHhtDOQ\u0019\u0011\u0010WFCoiMTWBE~CC\\]M\r\u0014JB;rN\\P\u000e^ulR\u0005UOXzs\nPM\u0011rs\u000bSAO]\u001bQ[ArrRyUZB;m^N@\u0003S~ [RGJErvN\u0006dhrH1\u0019\u0006dhrH1\u0019\u0002v`3_FHhtDOQd^rd\u000b\\ZG\u0011peR|XJPh FHGW\u0011uo_\u001dVF\u0011uuGQ\u0014LC;eFM@Z\u000eUOXzs\u000bTG\u0003Tvp_D\u000f\u0014JB;nDI\u0014NDoaIQQ\u0018_FHHtDOQ\rU~fJHXWrz.JQ]BB>uQVnmNS@\u0003Wtr\u000b}zLEUuGQ\u0014SPiaFX@FC;'\u000eN\u0013\u0003^} \u000eN\u001a\u0006B;m^N@\u0003_tt\u000b_Q\u0003_nlG\u0019_FHHtDOQ\rU~fJHXWbhl\u0005\\XJPh-\u007fFHHtDOQ\u0003WrlN\u001dWL_oaBSG\u0003_t [O]UPoe\u000bVQZ\u0011~n_O]FB\u001aBB]rdJIQhTbDNQQWXtnjQXLF~d qQCtr\u000bNQWErnL\u001dZFF;kND\u0014NToaO\\@B\u000b;\u001a_FHHtDOQ\rPndBIbJTleY\u0013UOXzs\u0018\u007fFH;eSM[QE;nDI\u0014BGziG\\VOT\"UOXzs\u000bS[W\u0011}o^SP\u0003Xu `XMpEtrN\u001dRJ]~:\u000b+WL\\5l\u001cIQ@Y5kNDgW^ie\u0005M_@B*2\u0005MUQBrnL\u0013DQ^miOXF\u0018qQCtr\u000bZQWErnL\u001d_FHhtDOQ\u0019\u0011\u001f}NAtr_\u001d[STia_T[M\u0011ie_HFMT\u007f M\\XPT\u0013wB_uo_\u001dPF]~tN\u001d_FH;'\bFFAwaHXP!qQCtr\u000bNQWErnL\u001dU\u0003_~w\u000b^QQErfB^UWT! \u0014\u0014@PunDI\u0014AT;eSM[QE~d\u0005\u0002\u0018\u0003XvO^xkNY\u0014GTwe_T[M\u0011tf\u000bMFLE~c_XP\u0003bHL\u000bVQZ\u000b;kNDGW^ielR]G\f`0V\u0011\u0014B]raX\u0000O\u0012L7 @XMjU&{\u0019@\u0018\u0003EbpNN\tX\u0002f\u0013QQCtr\u0011\u001d_FHhtDOQ\u0003x_ \u0011\u007fFHhtDOQ\u0003FrtC\u001d]G\u0011";
      int var4 = "aMPylN\u001d@L\u0011}iEY\u0014HTbs_RFF\u000b;+WL\\5l\u001cIQ@Y5kNDgW^ie\u0005M_@B*2\u0005MUQBrnL\u0013DQ^miOXF\u001f\u007fFH;eEIFZ\u0011rs\u000bS[W\u0011z {O]UPoe`XM\u0019\u0011\u0019aMPylN\u001d@L\u0011ieJY\u0014hTbS_RFF\u000b;\u0013QQCtr\u0011\u001d_FHhtDOQ\u0003x_ \b]NAtr_XP\rUOXzs\u000bTG\u0003_nlG\b_FHZlB\\G/qQCtr\u000b^\\FRpiEZ\u0014PA~cB\\X\u0003Anr[RGF\u0011}oY\u001d_FH;{\u001b@\u000e\u0003J*}\u001f_FHHtDOQ\rU~fJHXWb~r]XFpBw.JQ]BB-WL\\4l\u001cIQ@Y4sNOBFC4aOP]M\u001eKrBKUWTPeR|PNXuHNQDFC\u0016dQXma_X\u0014hTb MRF\u0003PwiJN\u0014\u0002v`\u001f_FHHtDOQ\rU~fJHXWrwiNS@pBw.JQ]BB\u0018qQCtr\u000bNQWErnL\u001dZFF;cNO@\u0019\u0011:wB_uo_\u001dBFCrfR\u001dGSTxiJQ\u0014SDipDNQ\u0003PhsBZZNTutX\u001dRLC;kND\u001a\u0003tirDO\u000e\u0003\r\u0014JB;rN\\P\u000e^ulR\u0007PFWzuGIi\u001a\u0003eseXX\u0014HTbs\u000b\\FF\u0011xrBI]@Pw MRF\u0003VztNJUZ\u0011HSg\u001d[STia_T[MB5 mTFPE;dNN]D_ztN\u001dU\u0003UrfMXFF_o @XM\u0003Wtr\u000bI\\FB~ [HFS^heX\u0013\u0013PLdkdJIQhTbMNIUGPoa\"\u007fFHHtDOQ\u0003WrlN\u001d@ZA~ ER@\u0003Bnp[RFWT\u007f:\u000b\u0018qQCtr\u000bZQWErnL\u001d_FHhtDOQ\u0019\u0011\u0016aMPylN\u001d@L\u0011\u007feGX@F\u0011peR\u0007\u0014\u001azL\u0011peRN@LC~ MRAMU;wBI\\\u0003X\u007f \u001c\u0013\u0019\u0011xuYOQMEwy\u000bYQPX|nJIQG\u0011}oY\u001d\u0014aMPylN\u001d@L\u0011}iEY\u0014HTb:\u000b\twb\u007fTNb~uo\u001b_FHHtDOQ\rPndBIgJVuiEZ\u001aB]raX\u0011zL\u0011huHU\u0014HTbTRMQ\u0019\u0011\tSF_~rJIQG\u0003~hb\u0018QQCtr\u000bZQWErnL\u001d_FHhtDOQ\u0019\u0011\u0010WFCoiMTWBE~CC\\]M\r\u0014JB;rN\\P\u000e^ulR\u0005UOXzs\nPM\u0011rs\u000bSAO]\u001bQ[ArrRyUZB;m^N@\u0003S~ [RGJErvN\u0006dhrH1\u0019\u0006dhrH1\u0019\u0002v`3_FHhtDOQd^rd\u000b\\ZG\u0011peR|XJPh FHGW\u0011uo_\u001dVF\u0011uuGQ\u0014LC;eFM@Z\u000eUOXzs\u000bTG\u0003Tvp_D\u000f\u0014JB;nDI\u0014NDoaIQQ\u0018_FHHtDOQ\rU~fJHXWrz.JQ]BB>uQVnmNS@\u0003Wtr\u000b}zLEUuGQ\u0014SPiaFX@FC;'\u000eN\u0013\u0003^} \u000eN\u001a\u0006B;m^N@\u0003_tt\u000b_Q\u0003_nlG\u0019_FHHtDOQ\rU~fJHXWbhl\u0005\\XJPh-\u007fFHHtDOQ\u0003WrlN\u001dWL_oaBSG\u0003_t [O]UPoe\u000bVQZ\u0011~n_O]FB\u001aBB]rdJIQhTbDNQQWXtnjQXLF~d qQCtr\u000bNQWErnL\u001dZFF;kND\u0014NToaO\\@B\u000b;\u001a_FHHtDOQ\rPndBIbJTleY\u0013UOXzs\u0018\u007fFH;eSM[QE;nDI\u0014BGziG\\VOT\"UOXzs\u000bS[W\u0011}o^SP\u0003Xu `XMpEtrN\u001dRJ]~:\u000b+WL\\5l\u001cIQ@Y5kNDgW^ie\u0005M_@B*2\u0005MUQBrnL\u0013DQ^miOXF\u0018qQCtr\u000bZQWErnL\u001d_FHhtDOQ\u0019\u0011\u001f}NAtr_\u001d[STia_T[M\u0011ie_HFMT\u007f M\\XPT\u0013wB_uo_\u001dPF]~tN\u001d_FH;'\bFFAwaHXP!qQCtr\u000bNQWErnL\u001dU\u0003_~w\u000b^QQErfB^UWT! \u0014\u0014@PunDI\u0014AT;eSM[QE~d\u0005\u0002\u0018\u0003XvO^xkNY\u0014GTwe_T[M\u0011tf\u000bMFLE~c_XP\u0003bHL\u000bVQZ\u000b;kNDGW^ielR]G\f`0V\u0011\u0014B]raX\u0000O\u0012L7 @XMjU&{\u0019@\u0018\u0003EbpNN\tX\u0002f\u0013QQCtr\u0011\u001d_FHhtDOQ\u0003x_ \u0011\u007fFHhtDOQ\u0003FrtC\u001d]G\u0011"
         .length();
      char var1 = 25;
      int var7 = -1;

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

         while (true) {
            String var8 = a(var10000, c(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     e = var5;
                     PROP_PKCS12_PARSING_PROVIDER = e[52];
                     a = Logger.getLogger(PrivateKeyAdminHelper.class.getName());
                     return;
                  }

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

                  var2 = "4-#\u0003\u001f/$:\u000f5\u0019\u000f\u0003\u0015\u0003\t";
                  var4 = "4-#\u0003\u001f/$:\u000f5\u0019\u000f\u0003\u0015\u0003\t".length();
                  var1 = '\f';
                  var7 = -1;
            }

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

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

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

      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 -> 18;
            case 1 -> 5;
            case 2 -> 23;
            case 3 -> 61;
            case 4 -> 38;
            case 5 -> 13;
            default -> 27;
         });
      }

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