public final class org.apache.commons.net.util.KeyManagerUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.commons.net.util.KeyManagerUtils
  super_class: java.lang.Object
{
  private static final java.lang.String DEFAULT_STORE_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 67
            invokestatic java.security.KeyStore.getDefaultType:()Ljava/lang/String;
            putstatic org.apache.commons.net.util.KeyManagerUtils.DEFAULT_STORE_TYPE:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.net.util.KeyManagerUtils this
         0: .line 69
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 71
            return
        end local 0 // org.apache.commons.net.util.KeyManagerUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/commons/net/util/KeyManagerUtils;

  public static javax.net.ssl.KeyManager createClientKeyManager(java.security.KeyStore, java.lang.String, java.lang.String);
    descriptor: (Ljava/security/KeyStore;Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/KeyManager;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.security.KeyStore ks
        start local 1 // java.lang.String keyAlias
        start local 2 // java.lang.String keyPass
         0: .line 86
            new org.apache.commons.net.util.KeyManagerUtils$ClientKeyStore
            dup
            aload 0 /* ks */
            aload 1 /* keyAlias */
            ifnull 1
            aload 1 /* keyAlias */
            goto 2
      StackMap locals: java.security.KeyStore java.lang.String java.lang.String
      StackMap stack: new 0 new 0 java.security.KeyStore
         1: aload 0 /* ks */
            invokestatic org.apache.commons.net.util.KeyManagerUtils.findAlias:(Ljava/security/KeyStore;)Ljava/lang/String;
      StackMap locals: java.security.KeyStore java.lang.String java.lang.String
      StackMap stack: new 0 new 0 java.security.KeyStore java.lang.String
         2: aload 2 /* keyPass */
            invokespecial org.apache.commons.net.util.KeyManagerUtils$ClientKeyStore.<init>:(Ljava/security/KeyStore;Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* cks */
        start local 3 // org.apache.commons.net.util.KeyManagerUtils$ClientKeyStore cks
         3: .line 87
            new org.apache.commons.net.util.KeyManagerUtils$X509KeyManager
            dup
            aload 3 /* cks */
            invokespecial org.apache.commons.net.util.KeyManagerUtils$X509KeyManager.<init>:(Lorg/apache/commons/net/util/KeyManagerUtils$ClientKeyStore;)V
            areturn
        end local 3 // org.apache.commons.net.util.KeyManagerUtils$ClientKeyStore cks
        end local 2 // java.lang.String keyPass
        end local 1 // java.lang.String keyAlias
        end local 0 // java.security.KeyStore ks
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0        ks  Ljava/security/KeyStore;
            0    4     1  keyAlias  Ljava/lang/String;
            0    4     2   keyPass  Ljava/lang/String;
            3    4     3       cks  Lorg/apache/commons/net/util/KeyManagerUtils$ClientKeyStore;
    Exceptions:
      throws java.security.GeneralSecurityException
    MethodParameters:
          Name  Flags
      ks        
      keyAlias  
      keyPass   

  public static javax.net.ssl.KeyManager createClientKeyManager(java.lang.String, java.io.File, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/KeyManager;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // java.lang.String storeType
        start local 1 // java.io.File storePath
        start local 2 // java.lang.String storePass
        start local 3 // java.lang.String keyAlias
        start local 4 // java.lang.String keyPass
         0: .line 107
            aload 0 /* storeType */
            aload 1 /* storePath */
            aload 2 /* storePass */
            invokestatic org.apache.commons.net.util.KeyManagerUtils.loadStore:(Ljava/lang/String;Ljava/io/File;Ljava/lang/String;)Ljava/security/KeyStore;
            astore 5 /* ks */
        start local 5 // java.security.KeyStore ks
         1: .line 108
            aload 5 /* ks */
            aload 3 /* keyAlias */
            aload 4 /* keyPass */
            invokestatic org.apache.commons.net.util.KeyManagerUtils.createClientKeyManager:(Ljava/security/KeyStore;Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/KeyManager;
            areturn
        end local 5 // java.security.KeyStore ks
        end local 4 // java.lang.String keyPass
        end local 3 // java.lang.String keyAlias
        end local 2 // java.lang.String storePass
        end local 1 // java.io.File storePath
        end local 0 // java.lang.String storeType
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0  storeType  Ljava/lang/String;
            0    2     1  storePath  Ljava/io/File;
            0    2     2  storePass  Ljava/lang/String;
            0    2     3   keyAlias  Ljava/lang/String;
            0    2     4    keyPass  Ljava/lang/String;
            1    2     5         ks  Ljava/security/KeyStore;
    Exceptions:
      throws java.io.IOException, java.security.GeneralSecurityException
    MethodParameters:
           Name  Flags
      storeType  
      storePath  
      storePass  
      keyAlias   
      keyPass    

  public static javax.net.ssl.KeyManager createClientKeyManager(java.io.File, java.lang.String, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/KeyManager;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.io.File storePath
        start local 1 // java.lang.String storePass
        start local 2 // java.lang.String keyAlias
         0: .line 126
            getstatic org.apache.commons.net.util.KeyManagerUtils.DEFAULT_STORE_TYPE:Ljava/lang/String;
            aload 0 /* storePath */
            aload 1 /* storePass */
            aload 2 /* keyAlias */
            aload 1 /* storePass */
            invokestatic org.apache.commons.net.util.KeyManagerUtils.createClientKeyManager:(Ljava/lang/String;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/KeyManager;
            areturn
        end local 2 // java.lang.String keyAlias
        end local 1 // java.lang.String storePass
        end local 0 // java.io.File storePath
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  storePath  Ljava/io/File;
            0    1     1  storePass  Ljava/lang/String;
            0    1     2   keyAlias  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.security.GeneralSecurityException
    MethodParameters:
           Name  Flags
      storePath  
      storePass  
      keyAlias   

  public static javax.net.ssl.KeyManager createClientKeyManager(java.io.File, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;)Ljavax/net/ssl/KeyManager;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.io.File storePath
        start local 1 // java.lang.String storePass
         0: .line 144
            getstatic org.apache.commons.net.util.KeyManagerUtils.DEFAULT_STORE_TYPE:Ljava/lang/String;
            aload 0 /* storePath */
            aload 1 /* storePass */
            aconst_null
            aload 1 /* storePass */
            invokestatic org.apache.commons.net.util.KeyManagerUtils.createClientKeyManager:(Ljava/lang/String;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/KeyManager;
            areturn
        end local 1 // java.lang.String storePass
        end local 0 // java.io.File storePath
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  storePath  Ljava/io/File;
            0    1     1  storePass  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.security.GeneralSecurityException
    MethodParameters:
           Name  Flags
      storePath  
      storePass  

  private static java.security.KeyStore loadStore(java.lang.String, java.io.File, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/io/File;Ljava/lang/String;)Ljava/security/KeyStore;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // java.lang.String storeType
        start local 1 // java.io.File storePath
        start local 2 // java.lang.String storePass
         0: .line 149
            aload 0 /* storeType */
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 3 /* ks */
        start local 3 // java.security.KeyStore ks
         1: .line 150
            aconst_null
            astore 4 /* stream */
        start local 4 // java.io.FileInputStream stream
         2: .line 152
            new java.io.FileInputStream
            dup
            aload 1 /* storePath */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 4 /* stream */
         3: .line 153
            aload 3 /* ks */
            aload 4 /* stream */
            aload 2 /* storePass */
            invokevirtual java.lang.String.toCharArray:()[C
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
         4: .line 154
            goto 8
      StackMap locals: java.lang.String java.io.File java.lang.String java.security.KeyStore java.io.FileInputStream
      StackMap stack: java.lang.Throwable
         5: astore 5
         6: .line 155
            aload 4 /* stream */
            invokestatic org.apache.commons.net.io.Util.closeQuietly:(Ljava/io/Closeable;)V
         7: .line 156
            aload 5
            athrow
         8: .line 155
      StackMap locals:
      StackMap stack:
            aload 4 /* stream */
            invokestatic org.apache.commons.net.io.Util.closeQuietly:(Ljava/io/Closeable;)V
         9: .line 157
            aload 3 /* ks */
            areturn
        end local 4 // java.io.FileInputStream stream
        end local 3 // java.security.KeyStore ks
        end local 2 // java.lang.String storePass
        end local 1 // java.io.File storePath
        end local 0 // java.lang.String storeType
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0  storeType  Ljava/lang/String;
            0   10     1  storePath  Ljava/io/File;
            0   10     2  storePass  Ljava/lang/String;
            1   10     3         ks  Ljava/security/KeyStore;
            2   10     4     stream  Ljava/io/FileInputStream;
      Exception table:
        from    to  target  type
           2     5       5  any
    Exceptions:
      throws java.security.KeyStoreException, java.io.IOException, java.security.GeneralSecurityException
    MethodParameters:
           Name  Flags
      storeType  
      storePath  
      storePass  

  private static java.lang.String findAlias(java.security.KeyStore);
    descriptor: (Ljava/security/KeyStore;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.security.KeyStore ks
         0: .line 161
            aload 0 /* ks */
            invokevirtual java.security.KeyStore.aliases:()Ljava/util/Enumeration;
            astore 1 /* e */
        start local 1 // java.util.Enumeration e
         1: .line 162
            goto 5
         2: .line 163
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 1 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* entry */
        start local 2 // java.lang.String entry
         3: .line 164
            aload 0 /* ks */
            aload 2 /* entry */
            invokevirtual java.security.KeyStore.isKeyEntry:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 165
            aload 2 /* entry */
            areturn
        end local 2 // java.lang.String entry
         5: .line 162
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 2
         6: .line 168
            new java.security.KeyStoreException
            dup
            ldc "Cannot find a private key entry"
            invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.util.Enumeration e
        end local 0 // java.security.KeyStore ks
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0     ks  Ljava/security/KeyStore;
            1    7     1      e  Ljava/util/Enumeration<Ljava/lang/String;>;
            3    5     2  entry  Ljava/lang/String;
    Exceptions:
      throws java.security.KeyStoreException
    MethodParameters:
      Name  Flags
      ks    
}
SourceFile: "KeyManagerUtils.java"
NestMembers:
  org.apache.commons.net.util.KeyManagerUtils$ClientKeyStore  org.apache.commons.net.util.KeyManagerUtils$X509KeyManager
InnerClasses:
  private ClientKeyStore = org.apache.commons.net.util.KeyManagerUtils$ClientKeyStore of org.apache.commons.net.util.KeyManagerUtils
  private X509KeyManager = org.apache.commons.net.util.KeyManagerUtils$X509KeyManager of org.apache.commons.net.util.KeyManagerUtils