package com.l7tech.server.security.keystore.ncipher;

import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.security.prov.JceProvider;
import com.l7tech.server.event.AdminInfo;
import com.l7tech.server.security.keystore.JdkKeyStoreBackedSsgKeyStore;
import com.l7tech.server.security.keystore.KeyAccessFilter;
import com.l7tech.server.security.keystore.KeystoreFile;
import com.l7tech.server.security.keystore.KeystoreFileManager;
import com.l7tech.server.security.keystore.SsgKeyFinder;
import com.l7tech.server.security.keystore.SsgKeyMetadataManager;
import com.l7tech.server.security.keystore.SsgKeyStore;
import com.l7tech.util.Charsets;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Pair;
import com.l7tech.util.PoolByteArrayOutputStream;
import com.l7tech.util.ResourceUtils;
import java.io.ByteArrayInputStream;
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
import java.util.logging.Logger;
import org.jetbrains.annotations.NotNull;

public class NcipherSsgKeyStore extends JdkKeyStoreBackedSsgKeyStore implements SsgKeyStore {
   static final String i;
   static final String j;
   private static final Logger k;
   static final String l;
   private static final String m;
   private static final long n = 5000L;
   private static final File o;
   private final Goid p;
   private final String q;
   private final KeystoreFileManager r;
   private KeyStore s;
   private NcipherKeyStoreData t;
   private int u = -1;
   private long v = 0L;
   private boolean w = false;
   private static final String[] y;

   public NcipherSsgKeyStore(Goid var1, String var2, KeystoreFileManager var3, KeyAccessFilter var4, SsgKeyMetadataManager var5) throws KeyStoreException {
      super(var4, var5);
      this.p = var1;
      this.q = var2;
      this.r = var3;
   }

   @NotNull
   KeystoreFile b() 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: aload 0
      // 01: invokevirtual com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 04: astore 1
      // 05: aload 0
      // 06: getfield com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.r Lcom/l7tech/server/security/keystore/KeystoreFileManager;
      // 09: ifnull 17
      // 0c: aload 1
      // 0d: ifnonnull 29
      // 10: goto 17
      // 13: invokestatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 16: athrow
      // 17: new java/security/KeyStoreException
      // 1a: dup
      // 1b: getstatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.y [Ljava/lang/String;
      // 1e: bipush 23
      // 20: aaload
      // 21: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 24: athrow
      // 25: invokestatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 28: athrow
      // 29: aload 0
      // 2a: getfield com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.r Lcom/l7tech/server/security/keystore/KeystoreFileManager;
      // 2d: aload 1
      // 2e: invokeinterface com/l7tech/server/security/keystore/KeystoreFileManager.findByPrimaryKey (Lcom/l7tech/objectmodel/Goid;)Lcom/l7tech/objectmodel/PersistentEntity; 2
      // 33: checkcast com/l7tech/server/security/keystore/KeystoreFile
      // 36: astore 2
      // 37: goto 62
      // 3a: astore 3
      // 3b: new java/security/KeyStoreException
      // 3e: dup
      // 3f: aload 0
      // 40: getfield com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.q Ljava/lang/String;
      // 43: aload 3
      // 44: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 47: getstatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.y [Ljava/lang/String;
      // 4a: astore 4
      // 4c: aload 4
      // 4e: bipush 1
      // 4f: aaload
      // 50: dup_x2
      // 51: pop
      // 52: aload 4
      // 54: bipush 19
      // 56: aaload
      // 57: swap
      // 58: 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" ]
      // 5d: aload 3
      // 5e: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 61: athrow
      // 62: aload 2
      // 63: ifnonnull 82
      // 66: new java/security/KeyStoreException
      // 69: dup
      // 6a: aload 1
      // 6b: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 6e: getstatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.y [Ljava/lang/String;
      // 71: bipush 8
      // 73: aaload
      // 74: swap
      // 75: 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" ]
      // 7a: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 7d: athrow
      // 7e: invokestatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 81: athrow
      // 82: aload 2
      // 83: dup
      // 84: ifnonnull 92
      // 87: bipush 0
      // 88: invokestatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.b (I)V
      // 8b: goto 92
      // 8e: invokestatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 91: athrow
      // 92: areturn
      // try (6 -> 18): 18 com/l7tech/objectmodel/FindException
      // try (3 -> 8): 9 com/l7tech/objectmodel/FindException
      // try (20 -> 26): 27 com/l7tech/objectmodel/FindException
      // try (49 -> 62): 62 com/l7tech/objectmodel/FindException
      // try (64 -> 69): 70 com/l7tech/objectmodel/FindException
   }

   private static Set<String> a(Set<String> var0, Set<String> var1) {
      LinkedHashSet var2 = new LinkedHashSet(var0);
      var2.removeAll(var1);
      return var2;
   }

   private static Pair<NcipherKeyStoreData, KeyStore> a(List<String> param0) 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: aconst_null
      // 01: astore 1
      // 02: aconst_null
      // 03: astore 2
      // 04: aconst_null
      // 05: astore 3
      // 06: aload 0
      // 07: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 0c: astore 4
      // 0e: aload 4
      // 10: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 15: ifeq 97
      // 18: aload 4
      // 1a: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 1f: checkcast java/lang/String
      // 22: astore 5
      // 24: getstatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.k Ljava/util/logging/Logger;
      // 27: aload 5
      // 29: getstatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.y [Ljava/lang/String;
      // 2c: astore 8
      // 2e: aload 8
      // 30: bipush 31
      // 32: aaload
      // 33: swap
      // 34: 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" ]
      // 39: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 3c: aload 5
      // 3e: invokestatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.a (Ljava/lang/String;)Ljava/security/KeyStore;
      // 41: astore 6
      // 43: aload 6
      // 45: ifnull 61
      // 48: aload 5
      // 4a: getstatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.o Ljava/io/File;
      // 4d: invokestatic com/l7tech/server/security/keystore/ncipher/NcipherKeyStoreData.createFromLocalDisk (Ljava/lang/String;Ljava/io/File;)Lcom/l7tech/server/security/keystore/ncipher/NcipherKeyStoreData;
      // 50: astore 7
      // 52: new com/l7tech/util/Pair
      // 55: dup
      // 56: aload 7
      // 58: aload 6
      // 5a: invokespecial com/l7tech/util/Pair.<init> (Ljava/lang/Object;Ljava/lang/Object;)V
      // 5d: astore 1
      // 5e: goto 97
      // 61: goto 94
      // 64: astore 6
      // 66: aload 5
      // 68: aload 6
      // 6a: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 6d: getstatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.y [Ljava/lang/String;
      // 70: astore 8
      // 72: aload 8
      // 74: bipush 7
      // 76: aaload
      // 77: dup_x2
      // 78: pop
      // 79: aload 8
      // 7b: bipush 19
      // 7d: aaload
      // 7e: swap
      // 7f: 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" ]
      // 84: astore 2
      // 85: getstatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.k Ljava/util/logging/Logger;
      // 88: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 8b: aload 2
      // 8c: aload 6
      // 8e: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 91: aload 6
      // 93: astore 3
      // 94: goto 0e
      // 97: aload 3
      // 98: ifnull b4
      // 9b: aload 2
      // 9c: ifnull b4
      // 9f: goto a6
      // a2: invokestatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // a5: athrow
      // a6: new java/security/KeyStoreException
      // a9: dup
      // aa: aload 2
      // ab: aload 3
      // ac: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // af: athrow
      // b0: invokestatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // b3: athrow
      // b4: aload 1
      // b5: areturn
      // try (16 -> 41): 43 java/lang/Exception
      // try (68 -> 72): 73 java/lang/Exception
      // try (70 -> 81): 81 java/lang/Exception
   }

   private static KeyStore a(String var0) throws KeyStoreException {
      KeyStore var1 = null;
      KeyStore var2 = JceProvider.getInstance().getKeyStore(y[0]);
      Object var3 = null;

      try {
         var2.load(new ByteArrayInputStream(var0.getBytes(Charsets.UTF8)), null);
         Enumeration var4 = var2.aliases();

         while (var4.hasMoreElements()) {
            String var5 = (String)var4.nextElement();
            if (var2.isKeyEntry(var5)) {
               var1 = var2;
               break;
            }
         }
      } catch (IOException var11) {
         throw new KeyStoreException(var11);
      } catch (NoSuchAlgorithmException var12) {
         throw new KeyStoreException(var12);
      } catch (CertificateException var13) {
         throw new KeyStoreException(var13);
      } finally {
         ResourceUtils.closeQuietly((Closeable)var3);
      }

      return var1;
   }

   private static Pair<NcipherKeyStoreData, KeyStore> c() throws KeyStoreException {
      String[] var6 = y;
      k.info(var6[28]);
      KeyStore var0 = JceProvider.getInstance().getKeyStore(var6[32]);
      PoolByteArrayOutputStream var1 = null;

      try {
         var0.load(null, null);
         var1 = new PoolByteArrayOutputStream();
         var0.store(var1, null);
         String var2 = var1.toString(Charsets.UTF8);
         NcipherKeyStoreData var3 = NcipherKeyStoreData.createFromLocalDisk(var2, o);
         return new Pair(var3, var0);
      } catch (IOException var11) {
         throw new KeyStoreException(var11);
      } catch (NoSuchAlgorithmException var12) {
         throw new KeyStoreException(var12);
      } catch (CertificateException var13) {
         throw new KeyStoreException(var13);
      } finally {
         ResourceUtils.closeQuietly(var1);
      }
   }

   @Override
   public Future<Boolean> deletePrivateKeyEntry(Runnable var1, String var2) throws KeyStoreException {
      return this.mutateKeystore(var1, new c(this, var2));
   }

   private Set<String> b(String var1) throws IOException, KeyStoreException {
      return NcipherKeyStoreData.createFromLocalDisk(var1, o).fileset.keySet();
   }

   @Override
   protected String getFormat() {
      return y[14];
   }

   @Override
   protected Logger getLogger() {
      return k;
   }

   @Override
   protected char[] getEntryPassword() {
      return new char[0];
   }

   @Override
   protected synchronized KeyStore keyStore() throws KeyStoreException {
      try {
         if (this.s != null && System.currentTimeMillis() - this.v <= this.getRefreshTime()) {
            return this.s;
         }
      } catch (FindException var7) {
         throw b(var7);
      }

      try {
         try {
            if (this.s != null && this.u == this.r.getVersion(this.getGoid())) {
               return this.s;
            }
         } catch (FindException var9) {
            throw b(var9);
         }

         KeystoreFile var1 = (KeystoreFile)this.r.findByPrimaryKey(this.getGoid());

         try {
            if (var1 == null) {
               throw new KeyStoreException(y[21] + this.getGoid());
            }
         } catch (FindException var8) {
            throw b(var8);
         }

         byte[] var2 = var1.getDatabytes();

         try {
            if (!var1.getFormat().equals(y[33])) {
               throw new KeyStoreException(y[27] + this.q + y[22] + var1.getFormat() + y[12]);
            }
         } catch (FindException var5) {
            throw b(var5);
         }

         label87: {
            try {
               if (var2 != null && var2.length >= 1) {
                  break label87;
               }
            } catch (FindException var6) {
               throw b(var6);
            }

            KeystoreFile var3 = this.r.mutateKeystoreFile(var1.getGoid(), new d(this));
            this.u = var3.getVersion();
            return this.s;
         }

         Pair var12 = this.a(var2);
         this.s = (KeyStore)var12.right;
         this.u = var1.getVersion();
         return this.s;
      } catch (FindException var10) {
         String var14 = this.q;
         String var15 = ExceptionUtils.getMessage(var10);
         String[] var13 = y;
         throw new KeyStoreException(var13[4] + var14 + var13[16] + var15, var10);
      } catch (UpdateException var11) {
         String var10002 = this.q;
         String var10003 = ExceptionUtils.getMessage(var11);
         String[] var4 = y;
         throw new KeyStoreException(var4[10] + var10002 + var4[19] + var10003, var11);
      }
   }

   @Override
   protected <OUT> Future<OUT> mutateKeystore(boolean var1, Runnable var2, Callable<OUT> var3) throws KeyStoreException {
      return this.submitMutation(var1, AdminInfo.find(false).wrapCallable(new e(this, var2, var3)));
   }

   synchronized Pair<NcipherKeyStoreData, KeyStore> a(byte[] var1) throws KeyStoreException {
      String[] var5 = y;
      k.info(var5[25]);

      try {
         NcipherKeyStoreData var2 = NcipherKeyStoreData.createFromBytes(var1);
         Set var3 = var2.saveFilesetToLocalDisk(o);
         var2.commitWrittenFiles(o, var3);
         KeyStore var4 = JceProvider.getInstance().getKeyStore(var5[32]);
         var4.load(new ByteArrayInputStream(var2.keystoreMetadata.getBytes(Charsets.UTF8)), null);
         this.v = System.currentTimeMillis();
         return new Pair(var2, var4);
      } catch (IOException var6) {
         String var11 = ExceptionUtils.getMessage(var6);
         var5 = y;
         throw new KeyStoreException(var5[24] + var11, var6);
      } catch (CertificateException var7) {
         String var10002 = ExceptionUtils.getMessage(var7);
         var5 = y;
         throw new KeyStoreException(var5[20] + var10002, var7);
      } catch (NoSuchAlgorithmException var8) {
         throw new KeyStoreException(y[20] + ExceptionUtils.getMessage(var8), var8);
      }
   }

   private synchronized Pair<NcipherKeyStoreData, KeyStore> d() throws KeyStoreException {
      Pair var1 = this.e();

      try {
         if (var1 != null) {
            return var1;
         }
      } catch (KeyStoreException var2) {
         throw b(var2);
      }

      return c();
   }

   private Pair<NcipherKeyStoreData, KeyStore> e() throws KeyStoreException {
      List var1 = new ArrayList();
      var1 = this.b(var1);
      return a(var1);
   }

   private List<String> b(List<String> param1) 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: aload 0
      // 01: invokevirtual com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.b ()Lcom/l7tech/server/security/keystore/KeystoreFile;
      // 04: getstatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.y [Ljava/lang/String;
      // 07: astore 6
      // 09: aload 6
      // 0b: bipush 11
      // 0d: aaload
      // 0e: invokevirtual com/l7tech/server/security/keystore/KeystoreFile.getProperty (Ljava/lang/String;)Ljava/lang/String;
      // 11: astore 2
      // 12: aload 2
      // 13: ifnull 36
      // 16: aload 2
      // 17: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 1a: invokevirtual java/lang/String.length ()I
      // 1d: ifle 36
      // 20: goto 27
      // 23: invokestatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 26: athrow
      // 27: aload 1
      // 28: aload 2
      // 29: invokeinterface java/util/List.add (Ljava/lang/Object;)Z 2
      // 2e: pop
      // 2f: goto 36
      // 32: invokestatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 35: athrow
      // 36: aload 1
      // 37: invokeinterface java/util/List.isEmpty ()Z 1
      // 3c: ifeq 95
      // 3f: new java/util/TreeSet
      // 42: dup
      // 43: getstatic java/lang/String.CASE_INSENSITIVE_ORDER Ljava/util/Comparator;
      // 46: invokespecial java/util/TreeSet.<init> (Ljava/util/Comparator;)V
      // 49: astore 3
      // 4a: aload 0
      // 4b: invokevirtual com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.b ()Lcom/l7tech/server/security/keystore/KeystoreFile;
      // 4e: getstatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.y [Ljava/lang/String;
      // 51: astore 6
      // 53: aload 6
      // 55: bipush 9
      // 57: aaload
      // 58: invokevirtual com/l7tech/server/security/keystore/KeystoreFile.getProperty (Ljava/lang/String;)Ljava/lang/String;
      // 5b: astore 4
      // 5d: aload 4
      // 5f: ifnull 8d
      // 62: aload 4
      // 64: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 67: invokevirtual java/lang/String.length ()I
      // 6a: ifle 8d
      // 6d: goto 74
      // 70: invokestatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 73: athrow
      // 74: aload 4
      // 76: getstatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.y [Ljava/lang/String;
      // 79: bipush 26
      // 7b: aaload
      // 7c: invokevirtual java/lang/String.split (Ljava/lang/String;)[Ljava/lang/String;
      // 7f: astore 5
      // 81: aload 3
      // 82: aload 5
      // 84: invokestatic java/util/Arrays.asList ([Ljava/lang/Object;)Ljava/util/List;
      // 87: invokeinterface java/util/Set.addAll (Ljava/util/Collection;)Z 2
      // 8c: pop
      // 8d: getstatic com/l7tech/server/security/keystore/ncipher/NcipherSsgKeyStore.o Ljava/io/File;
      // 90: aload 3
      // 91: invokestatic com/l7tech/server/security/keystore/ncipher/NcipherKeyStoreData.readKeystoreIdentifiersFromLocalDisk (Ljava/io/File;Ljava/util/Set;)Ljava/util/List;
      // 94: astore 1
      // 95: aload 1
      // 96: areturn
      // try (9 -> 15): 16 java/security/KeyStoreException
      // try (11 -> 22): 23 java/security/KeyStoreException
      // try (42 -> 48): 49 java/security/KeyStoreException
   }

   private synchronized byte[] a(NcipherKeyStoreData var1, KeyStore var2) throws KeyStoreException {
      String[] var13 = y;
      k.info(var13[13]);
      PoolByteArrayOutputStream var3 = null;

      try {
         String var4 = var1.keystoreMetadata;
         boolean var5 = this.w;

         Set var10000;
         label95: {
            try {
               this.w = false;
               if (var5) {
                  var10000 = this.b(var4);
                  break label95;
               }
            } catch (IOException var23) {
               throw b(var23);
            }

            var10000 = Collections.emptySet();
         }

         Set var6 = var10000;
         var3 = new PoolByteArrayOutputStream();
         var2.store(var3, null);
         String var7 = var3.toString(Charsets.UTF8);

         try {
            if (!var4.equals(var7)) {
               throw new KeyStoreException(y[15] + var4);
            }
         } catch (IOException var21) {
            throw b(var21);
         }

         label87: {
            try {
               if (var5) {
                  var10000 = this.b(var4);
                  break label87;
               }
            } catch (IOException var22) {
               throw b(var22);
            }

            var10000 = Collections.emptySet();
         }

         Set var8 = var10000;
         Set var9 = a(var6, var8);
         var1.addDeletedFiles(var9);

         for (String var11 : var9) {
            k.info(y[29] + var11);
         }

         var1.loadFilesetFromLocalDisk(o);
         return var1.toBytes();
      } catch (IOException var24) {
         throw new KeyStoreException(var24);
      } catch (CertificateException var25) {
         throw new KeyStoreException(var25);
      } catch (NoSuchAlgorithmException var26) {
         throw new KeyStoreException(var26);
      } finally {
         ResourceUtils.closeQuietly(var3);
      }
   }

   KeyStore f() {
      return this.s;
   }

   int g() {
      return this.u;
   }

   @Override
   public Goid getGoid() {
      return this.p;
   }

   @Override
   public SsgKeyFinder.SsgKeyStoreType getType() {
      return SsgKeyFinder.SsgKeyStoreType.NCIPHER_HARDWARE;
   }

   public String getName() {
      return this.q;
   }

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

   static {
      String[] var5 = new String[34];
      int var3 = 0;
      String var2 = "\bB.D\u001a9!Hr0[\u000007G3o&V\u001e9s\u0012ngX\u001d=7Fi&F\u0016+2\u0014dg_\u0017% \u0012n5QR82\u0012`gR\u00003>Fe&@\u0013>2\u0015dgR\u001d.s\rd>G\u00063!\u0003!)U\u001f97F*&O(@<)?\n!*Q\u00064<\u0002!bG\\y Fl2G\u0006|=\tugF\u0017(&\u0014ogZ\u00070?\u0011\u000ff)[\u00009\u0018\u0003x4@\u001d.6/e4G3o&V\u001e9s\u0012ngX\u001d=7Fi&F\u0016+2\u0014dg_\u0017% \u0012n5QR82\u0012`gR\u00003>Fe&@\u0013>2\u0015dgR\u001d.s\rd>G\u00063!\u0003!)U\u001f97F>\u0005n*\u001b\u001ek'\u0003b/\u001b\u00019!\u0010d5\u001b\u000190\u0013s.@\u000bs8\u0003x4@\u001d.6Io$]\u000246\u0014.\tW\u001b,;\u0003s\u0014G\u0015\u00176\u001fR3[\u00009\u0011\u000fo.@\u001b=?-d>G\u00063!\u0003H#43o&V\u001e9s\u0012ngX\u001d=7Fq5Q\u0017$:\u0015u.Z\u0015|=%h7\\\u0017.s\rd>G\u00063!\u0003!0]\u00064s/Eg!(ng_\u0017% \u0012n5Q-::\ndgR\u001d)=\u0002!0]\u00064s\u0001n.PR\u0011\u000ff)[\u00009\u0018\u0003x4@\u001d.6/e4K3o&V\u001e9s\u0012ng]\u001c5'\u000f`+]\b9s\u000e`5P\u0005=!\u0003!,Q\u000b/'\ts\"\u0014\u0016='\u0007!.ZR82\u0012`%U\u00019s\u0000n5\u0014\u00199*\u0015u(F\u0017|=\u0007l\"PR\u0011\u000fo.@\u001b=?-d>G\u00063!\u0003H#\u0002D(9+d5S\u001b24Fo\u0004]\u000246\u0014!,Q\u000b/'\ts\"\u0014\u0016='\u0007!!F\u001d1s\nn$U\u001e|7\u000fr,\u0014\u00063s\u0002`3U\u0010= \u0003\u0017\u000er*\u001a<?:\u0016i\"F99*5u(F\u0017\u00182\u0012`<5`1Q\u0016|8\u0003x4@\u001d.6Fl\"@\u001382\u0012`gP\u001d9 Fo(@R12\u0012b/\u0014\u0017$:\u0015u.Z\u0015|>\u0003u&P\u0013(2Fn!\u000e\u0002\\!\u0017In7@]25\u0007r3\u001b\u001917\u0007u&\u001b\u001e30\u0007m;\u0005n*\u001a\u001ek'\u0003b/\u001a\u00019!\u0010d5\u001a\u000190\u0013s.@\u000br8\u0003x4@\u001d.6Ho$]\u000246\u0014/,Y\u0016='\u0007M(W\u00130\u0003\u0007u/\u0002\\!<3o&V\u001e9s\u0012ngG\u000b20Fo\u0004]\u000246\u0014!,Q\u000b/'\ts\"\u0014\u0016='\u0007!!F\u001d1s\u0002`3U\u0010= \u0003!3[R8:\u0015j}\u0014!(ng_\u0017% \u0012n5Q-::\ndgR\u001d)=\u0002!0]\u00064s\u0001n.PR,Nd?D\u0017?'\u0003eg\u0016\u001a/>HO$]\u000246\u0014J\"M!(<\u0014d\u0003U\u0006=q]!![\u000727F#//o1U\u001e57F`5S\u000716\bu4\u0014\u0007/6\u0002!3[R0<\tjgA\u0002|8\u0003x4@\u001d.6Fg.X\u0017<3o&V\u001e9s\u0012ngG\u000b20Fo\u0004]\u000246\u0014!,Q\u000b/'\ts\"\u0014\u0016='\u0007!!F\u001d1s\u0002`3U\u0010= \u0003!3[R8:\u0015j}\u00149+d5S\u001b24Fo\u0004]\u000246\u0014!,Q\u000b/'\ts\"\u0014\u0016='\u0007!!F\u001d1s\u0002`3U\u0010= \u0003!3[R0<\u0005`+\u0014\u00165 \r\u0007:rm\u0018./yA\"`3U\u0010= \u0003!,Q\u000b|7\u0007u&\u0014\u00143!\u000b`3\u0014\u00072!\u0003b(S\u001c5)\u0003egR\u001d.s\bB.D\u001a9!Fj\"M\u0001(<\u0014dgZ\u001316\u0002!3%s\"U\u00065=\u0001!)Q\u0005|8\u0003x4@\u001d.6Fv.@\u001a5=Fo\u0004]\u000246\u0014!4Q\u0011)!\u000fu>\u0014\u00053!\ne8+`5_\u001b24Fo\u0004]\u000246\u0014!,Q\u000b|5\u000fm\"\u0014\u0013/s\u0012ngV\u0017|7\u0003m\"@\u00178s\u0005m2G\u00069!Kv.P\u0017fs\u0010\u0000h)P99*\u0015u(F\u0017\u001a:\ndN'u3Q\u001f,'\u000fo \u0014\u00063s\nn&PR:!\tlgZ15#\u000ed5\u0014\u000190\u0013s.@\u000b|$\ts+PR=s\u0016s\"Q\n5 \u0012h)SR76\u001fr3[\u00009s\u0011h3\\R\u0015\u0017F";
      int var4 = "\bB.D\u001a9!Hr0[\u000007G3o&V\u001e9s\u0012ngX\u001d=7Fi&F\u0016+2\u0014dg_\u0017% \u0012n5QR82\u0012`gR\u00003>Fe&@\u0013>2\u0015dgR\u001d.s\rd>G\u00063!\u0003!)U\u001f97F*&O(@<)?\n!*Q\u00064<\u0002!bG\\y Fl2G\u0006|=\tugF\u0017(&\u0014ogZ\u00070?\u0011\u000ff)[\u00009\u0018\u0003x4@\u001d.6/e4G3o&V\u001e9s\u0012ngX\u001d=7Fi&F\u0016+2\u0014dg_\u0017% \u0012n5QR82\u0012`gR\u00003>Fe&@\u0013>2\u0015dgR\u001d.s\rd>G\u00063!\u0003!)U\u001f97F>\u0005n*\u001b\u001ek'\u0003b/\u001b\u00019!\u0010d5\u001b\u000190\u0013s.@\u000bs8\u0003x4@\u001d.6Io$]\u000246\u0014.\tW\u001b,;\u0003s\u0014G\u0015\u00176\u001fR3[\u00009\u0011\u000fo.@\u001b=?-d>G\u00063!\u0003H#43o&V\u001e9s\u0012ngX\u001d=7Fq5Q\u0017$:\u0015u.Z\u0015|=%h7\\\u0017.s\rd>G\u00063!\u0003!0]\u00064s/Eg!(ng_\u0017% \u0012n5Q-::\ndgR\u001d)=\u0002!0]\u00064s\u0001n.PR\u0011\u000ff)[\u00009\u0018\u0003x4@\u001d.6/e4K3o&V\u001e9s\u0012ng]\u001c5'\u000f`+]\b9s\u000e`5P\u0005=!\u0003!,Q\u000b/'\ts\"\u0014\u0016='\u0007!.ZR82\u0012`%U\u00019s\u0000n5\u0014\u00199*\u0015u(F\u0017|=\u0007l\"PR\u0011\u000fo.@\u001b=?-d>G\u00063!\u0003H#\u0002D(9+d5S\u001b24Fo\u0004]\u000246\u0014!,Q\u000b/'\ts\"\u0014\u0016='\u0007!!F\u001d1s\nn$U\u001e|7\u000fr,\u0014\u00063s\u0002`3U\u0010= \u0003\u0017\u000er*\u001a<?:\u0016i\"F99*5u(F\u0017\u00182\u0012`<5`1Q\u0016|8\u0003x4@\u001d.6Fl\"@\u001382\u0012`gP\u001d9 Fo(@R12\u0012b/\u0014\u0017$:\u0015u.Z\u0015|>\u0003u&P\u0013(2Fn!\u000e\u0002\\!\u0017In7@]25\u0007r3\u001b\u001917\u0007u&\u001b\u001e30\u0007m;\u0005n*\u001a\u001ek'\u0003b/\u001a\u00019!\u0010d5\u001a\u000190\u0013s.@\u000br8\u0003x4@\u001d.6Ho$]\u000246\u0014/,Y\u0016='\u0007M(W\u00130\u0003\u0007u/\u0002\\!<3o&V\u001e9s\u0012ngG\u000b20Fo\u0004]\u000246\u0014!,Q\u000b/'\ts\"\u0014\u0016='\u0007!!F\u001d1s\u0002`3U\u0010= \u0003!3[R8:\u0015j}\u0014!(ng_\u0017% \u0012n5Q-::\ndgR\u001d)=\u0002!0]\u00064s\u0001n.PR,Nd?D\u0017?'\u0003eg\u0016\u001a/>HO$]\u000246\u0014J\"M!(<\u0014d\u0003U\u0006=q]!![\u000727F#//o1U\u001e57F`5S\u000716\bu4\u0014\u0007/6\u0002!3[R0<\tjgA\u0002|8\u0003x4@\u001d.6Fg.X\u0017<3o&V\u001e9s\u0012ngG\u000b20Fo\u0004]\u000246\u0014!,Q\u000b/'\ts\"\u0014\u0016='\u0007!!F\u001d1s\u0002`3U\u0010= \u0003!3[R8:\u0015j}\u00149+d5S\u001b24Fo\u0004]\u000246\u0014!,Q\u000b/'\ts\"\u0014\u0016='\u0007!!F\u001d1s\u0002`3U\u0010= \u0003!3[R0<\u0005`+\u0014\u00165 \r\u0007:rm\u0018./yA\"`3U\u0010= \u0003!,Q\u000b|7\u0007u&\u0014\u00143!\u000b`3\u0014\u00072!\u0003b(S\u001c5)\u0003egR\u001d.s\bB.D\u001a9!Fj\"M\u0001(<\u0014dgZ\u001316\u0002!3%s\"U\u00065=\u0001!)Q\u0005|8\u0003x4@\u001d.6Fv.@\u001a5=Fo\u0004]\u000246\u0014!4Q\u0011)!\u000fu>\u0014\u00053!\ne8+`5_\u001b24Fo\u0004]\u000246\u0014!,Q\u000b|5\u000fm\"\u0014\u0013/s\u0012ngV\u0017|7\u0003m\"@\u00178s\u0005m2G\u00069!Kv.P\u0017fs\u0010\u0000h)P99*\u0015u(F\u0017\u001a:\ndN'u3Q\u001f,'\u000fo \u0014\u00063s\nn&PR:!\tlgZ15#\u000ed5\u0014\u000190\u0013s.@\u000b|$\ts+PR=s\u0016s\"Q\n5 \u0012h)SR76\u001fr3[\u00009s\u0011h3\\R\u0015\u0017F"
         .length();
      char var1 = 14;
      int var7 = -1;

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

         while (true) {
            String var9 = b(var10000, d(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     y = var5;
                     String[] var10 = y;
                     l = y[14];
                     j = var10[3];
                     i = var10[6];
                     m = var10[32];
                     k = Logger.getLogger(NcipherSsgKeyStore.class.getName());
                     String[] var8 = y;
                     o = new File(ConfigFactory.getProperty(var8[18], var8[17]));
                     return;
                  }

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

                  var2 = "\tC/E\u001b8 Is1Z\u000116\u0017\u000fs+\u001b=>;\u0017h#G88+4t)G\u0016\u00193\u0013a";
                  var4 = "\tC/E\u001b8 Is1Z\u000116\u0017\u000fs+\u001b=>;\u0017h#G88+4t)G\u0016\u00193\u0013a".length();
                  var1 = 14;
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

   private static String b(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 -> 22;
            case 1 -> 113;
            case 2 -> 55;
            case 3 -> 68;
            case 4 -> 2;
            case 5 -> 44;
            default -> 35;
         });
      }

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