public class com.sun.security.auth.module.KeyStoreLoginModule implements javax.security.auth.spi.LoginModule
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.security.auth.module.KeyStoreLoginModule
  super_class: java.lang.Object
{
  private static final int UNINITIALIZED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int INITIALIZED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int AUTHENTICATED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int LOGGED_IN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int PROTECTED_PATH;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int TOKEN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int NORMAL;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final java.lang.String NONE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "NONE"

  private static final java.lang.String P11KEYSTORE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "PKCS11"

  private static final javax.security.auth.callback.TextOutputCallback bannerCallback;
    descriptor: Ljavax/security/auth/callback/TextOutputCallback;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final javax.security.auth.callback.ConfirmationCallback confirmationCallback;
    descriptor: Ljavax/security/auth/callback/ConfirmationCallback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private javax.security.auth.Subject subject;
    descriptor: Ljavax/security/auth/Subject;
    flags: (0x0002) ACC_PRIVATE

  private javax.security.auth.callback.CallbackHandler callbackHandler;
    descriptor: Ljavax/security/auth/callback/CallbackHandler;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, java.lang.Object> sharedState;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  private java.util.Map<java.lang.String, ?> options;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;*>;

  private char[] keyStorePassword;
    descriptor: [C
    flags: (0x0002) ACC_PRIVATE

  private char[] privateKeyPassword;
    descriptor: [C
    flags: (0x0002) ACC_PRIVATE

  private java.security.KeyStore keyStore;
    descriptor: Ljava/security/KeyStore;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String keyStoreURL;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String keyStoreType;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String keyStoreProvider;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String keyStoreAlias;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String keyStorePasswordURL;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String privateKeyPasswordURL;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private boolean debug;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private javax.security.auth.x500.X500Principal principal;
    descriptor: Ljavax/security/auth/x500/X500Principal;
    flags: (0x0002) ACC_PRIVATE

  private java.security.cert.Certificate[] fromKeyStore;
    descriptor: [Ljava/security/cert/Certificate;
    flags: (0x0002) ACC_PRIVATE

  private java.security.cert.CertPath certP;
    descriptor: Ljava/security/cert/CertPath;
    flags: (0x0002) ACC_PRIVATE

  private javax.security.auth.x500.X500PrivateCredential privateCredential;
    descriptor: Ljavax/security/auth/x500/X500PrivateCredential;
    flags: (0x0002) ACC_PRIVATE

  private int status;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean nullStream;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean token;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean protectedPath;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 131
            new javax.security.auth.callback.TextOutputCallback
            dup
         1: .line 132
            iconst_0
         2: .line 133
            ldc "Please.enter.keystore.information"
            invokestatic sun.security.util.ResourcesMgr.getAuthResourceString:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 131
            invokespecial javax.security.auth.callback.TextOutputCallback.<init>:(ILjava/lang/String;)V
         4: .line 130
            putstatic com.sun.security.auth.module.KeyStoreLoginModule.bannerCallback:Ljavax/security/auth/callback/TextOutputCallback;
         5: .line 133
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
         0: .line 114
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 134
            aload 0 /* this */
         2: .line 135
            new javax.security.auth.callback.ConfirmationCallback
            dup
         3: .line 136
            iconst_0
         4: .line 137
            iconst_2
         5: .line 138
            iconst_3
         6: .line 135
            invokespecial javax.security.auth.callback.ConfirmationCallback.<init>:(III)V
            putfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
         7: .line 158
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
         8: .line 160
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
         9: .line 161
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.KeyStoreLoginModule.nullStream:Z
        10: .line 162
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.KeyStoreLoginModule.token:Z
        11: .line 163
            aload 0 /* this */
            iconst_0
            putfield com.sun.security.auth.module.KeyStoreLoginModule.protectedPath:Z
        12: .line 114
            return
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lcom/sun/security/auth/module/KeyStoreLoginModule;

  public void initialize(javax.security.auth.Subject, javax.security.auth.callback.CallbackHandler, java.util.Map<java.lang.String, ?>, java.util.Map<java.lang.String, ?>);
    descriptor: (Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;Ljava/util/Map;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
        start local 1 // javax.security.auth.Subject subject
        start local 2 // javax.security.auth.callback.CallbackHandler callbackHandler
        start local 3 // java.util.Map sharedState
        start local 4 // java.util.Map options
         0: .line 191
            aload 0 /* this */
            aload 1 /* subject */
            putfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
         1: .line 192
            aload 0 /* this */
            aload 2 /* callbackHandler */
            putfield com.sun.security.auth.module.KeyStoreLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
         2: .line 193
            aload 0 /* this */
            aload 3 /* sharedState */
            putfield com.sun.security.auth.module.KeyStoreLoginModule.sharedState:Ljava/util/Map;
         3: .line 194
            aload 0 /* this */
            aload 4 /* options */
            putfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
         4: .line 196
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.processOptions:()V
         5: .line 197
            aload 0 /* this */
            iconst_1
            putfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
         6: .line 198
            return
        end local 4 // java.util.Map options
        end local 3 // java.util.Map sharedState
        end local 2 // javax.security.auth.callback.CallbackHandler callbackHandler
        end local 1 // javax.security.auth.Subject subject
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
            0    7     1          subject  Ljavax/security/auth/Subject;
            0    7     2  callbackHandler  Ljavax/security/auth/callback/CallbackHandler;
            0    7     3      sharedState  Ljava/util/Map<Ljava/lang/String;*>;
            0    7     4          options  Ljava/util/Map<Ljava/lang/String;*>;
    Signature: (Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;Ljava/util/Map<Ljava/lang/String;*>;Ljava/util/Map<Ljava/lang/String;*>;)V
    MethodParameters:
                 Name  Flags
      subject          
      callbackHandler  
      sharedState      
      options          

  private void processOptions();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
         0: .line 201
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
            ldc "keyStoreURL"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreURL:Ljava/lang/String;
         1: .line 202
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreURL:Ljava/lang/String;
            ifnonnull 11
         2: .line 203
            aload 0 /* this */
         3: .line 204
            new java.lang.StringBuilder
            dup
            ldc "file:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 205
            ldc "user.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
         5: .line 206
            getstatic java.io.File.separatorChar:C
            bipush 47
         6: .line 205
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 207
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc ".keystore"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 204
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 203
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreURL:Ljava/lang/String;
        10: .line 208
            goto 13
      StackMap locals:
      StackMap stack:
        11: ldc "NONE"
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreURL:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 209
            aload 0 /* this */
            iconst_1
            putfield com.sun.security.auth.module.KeyStoreLoginModule.nullStream:Z
        13: .line 211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
            ldc "keyStoreType"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
        14: .line 212
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
            ifnonnull 16
        15: .line 213
            aload 0 /* this */
            invokestatic java.security.KeyStore.getDefaultType:()Ljava/lang/String;
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
        16: .line 215
      StackMap locals:
      StackMap stack:
            ldc "PKCS11"
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 18
        17: .line 216
            aload 0 /* this */
            iconst_1
            putfield com.sun.security.auth.module.KeyStoreLoginModule.token:Z
        18: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
            ldc "keyStoreProvider"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreProvider:Ljava/lang/String;
        19: .line 221
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
            ldc "keyStoreAlias"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
        20: .line 223
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
            ldc "keyStorePasswordURL"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePasswordURL:Ljava/lang/String;
        21: .line 225
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
            ldc "privateKeyPasswordURL"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
        22: .line 227
            aload 0 /* this */
            ldc "true"
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
        23: .line 228
            ldc "protected"
        24: .line 227
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            putfield com.sun.security.auth.module.KeyStoreLoginModule.protectedPath:Z
        25: .line 230
            aload 0 /* this */
            ldc "true"
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.options:Ljava/util/Map;
            ldc "debug"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            putfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
        26: .line 231
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
            ifeq 36
        27: .line 232
            aload 0 /* this */
            aconst_null
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
        28: .line 233
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "keyStoreURL="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreURL:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
        29: .line 234
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "keyStoreType="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
        30: .line 235
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "keyStoreProvider="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreProvider:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
        31: .line 236
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "keyStoreAlias="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
        32: .line 237
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "keyStorePasswordURL="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePasswordURL:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
        33: .line 238
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "privateKeyPasswordURL="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
        34: .line 239
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "protectedPath="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.protectedPath:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
        35: .line 240
            aload 0 /* this */
            aconst_null
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
        36: .line 242
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   37     0  this  Lcom/sun/security/auth/module/KeyStoreLoginModule;

  public boolean login();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
         0: .line 257
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
            tableswitch { // 0 - 3
                    0: 1
                    1: 2
                    2: 2
                    3: 43
              default: 1
          }
         1: .line 260
      StackMap locals:
      StackMap stack:
            new javax.security.auth.login.LoginException
            dup
            ldc "The login module is not initialized"
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 264
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.token:Z
            ifeq 6
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.nullStream:Z
            ifne 6
         3: .line 265
            new javax.security.auth.login.LoginException
            dup
         4: .line 266
            ldc "if keyStoreType is PKCS11 then keyStoreURL must be NONE"
         5: .line 265
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.token:Z
            ifeq 10
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
            ifnull 10
         7: .line 271
            new javax.security.auth.login.LoginException
            dup
         8: .line 272
            ldc "if keyStoreType is PKCS11 then privateKeyPasswordURL must not be specified"
         9: .line 271
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 276
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.protectedPath:Z
            ifeq 16
        11: .line 277
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePasswordURL:Ljava/lang/String;
            ifnonnull 13
        12: .line 278
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
            ifnull 16
        13: .line 279
      StackMap locals:
      StackMap stack:
            new javax.security.auth.login.LoginException
            dup
        14: .line 280
            ldc "if protected is true then keyStorePasswordURL and privateKeyPasswordURL must not be specified"
        15: .line 279
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 286
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.protectedPath:Z
            ifeq 19
        17: .line 287
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.getAliasAndPasswords:(I)V
        18: .line 288
            goto 23
      StackMap locals:
      StackMap stack:
        19: aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.token:Z
            ifeq 22
        20: .line 289
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.getAliasAndPasswords:(I)V
        21: .line 290
            goto 23
        22: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.getAliasAndPasswords:(I)V
        23: .line 298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.getKeyStoreInfo:()V
        24: .line 299
            goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 1
        26: .line 300
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
            ifnull 30
        27: .line 301
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
            if_acmpeq 30
        28: .line 302
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
            iconst_0
            invokestatic java.util.Arrays.fill:([CC)V
        29: .line 303
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
        30: .line 305
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
            ifnull 33
        31: .line 306
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
            iconst_0
            invokestatic java.util.Arrays.fill:([CC)V
        32: .line 307
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
        33: .line 309
      StackMap locals:
      StackMap stack:
            aload 1
            athrow
        34: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
            ifnull 38
        35: .line 301
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
            if_acmpeq 38
        36: .line 302
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
            iconst_0
            invokestatic java.util.Arrays.fill:([CC)V
        37: .line 303
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
        38: .line 305
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
            ifnull 41
        39: .line 306
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
            iconst_0
            invokestatic java.util.Arrays.fill:([CC)V
        40: .line 307
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
        41: .line 310
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
        42: .line 311
            iconst_1
            ireturn
        43: .line 313
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   44     0  this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
      Exception table:
        from    to  target  type
          23    25      25  any
    Exceptions:
      throws javax.security.auth.login.LoginException

  private void getAliasAndPasswords(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
        start local 1 // int env
         0: .line 320
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
            ifnonnull 11
         1: .line 324
            iload 1 /* env */
            tableswitch { // 0 - 2
                    0: 2
                    1: 4
                    2: 7
              default: 10
          }
         2: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.checkAlias:()V
         3: .line 327
            goto 29
         4: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.checkAlias:()V
         5: .line 330
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.checkStorePass:()V
         6: .line 331
            goto 29
         7: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.checkAlias:()V
         8: .line 334
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.checkStorePass:()V
         9: .line 335
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.checkKeyPass:()V
        10: .line 339
      StackMap locals:
      StackMap stack:
            goto 29
        11: .line 344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
            ifnull 12
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            ifne 14
        12: .line 345
      StackMap locals:
      StackMap stack:
            new javax.security.auth.callback.NameCallback
            dup
            ldc "Keystore.alias."
            invokestatic sun.security.util.ResourcesMgr.getAuthResourceString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial javax.security.auth.callback.NameCallback.<init>:(Ljava/lang/String;)V
            astore 2 /* aliasCallback */
        start local 2 // javax.security.auth.callback.NameCallback aliasCallback
        13: .line 346
            goto 18
        end local 2 // javax.security.auth.callback.NameCallback aliasCallback
        14: .line 348
      StackMap locals:
      StackMap stack:
            new javax.security.auth.callback.NameCallback
            dup
            ldc "Keystore.alias."
            invokestatic sun.security.util.ResourcesMgr.getAuthResourceString:(Ljava/lang/String;)Ljava/lang/String;
        15: .line 349
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
        16: .line 348
            invokespecial javax.security.auth.callback.NameCallback.<init>:(Ljava/lang/String;Ljava/lang/String;)V
        17: .line 347
            astore 2 /* aliasCallback */
        start local 2 // javax.security.auth.callback.NameCallback aliasCallback
        18: .line 352
      StackMap locals: javax.security.auth.callback.NameCallback
      StackMap stack:
            aconst_null
            astore 3 /* storePassCallback */
        start local 3 // javax.security.auth.callback.PasswordCallback storePassCallback
        19: .line 353
            aconst_null
            astore 4 /* keyPassCallback */
        start local 4 // javax.security.auth.callback.PasswordCallback keyPassCallback
        20: .line 355
            iload 1 /* env */
            tableswitch { // 0 - 2
                    0: 21
                    1: 25
                    2: 22
              default: 28
          }
        21: .line 357
      StackMap locals: javax.security.auth.callback.PasswordCallback javax.security.auth.callback.PasswordCallback
      StackMap stack:
            goto 28
        22: .line 359
      StackMap locals:
      StackMap stack:
            new javax.security.auth.callback.PasswordCallback
            dup
        23: .line 360
            ldc "Private.key.password.optional."
            invokestatic sun.security.util.ResourcesMgr.getAuthResourceString:(Ljava/lang/String;)Ljava/lang/String;
            iconst_0
        24: .line 359
            invokespecial javax.security.auth.callback.PasswordCallback.<init>:(Ljava/lang/String;Z)V
            astore 4 /* keyPassCallback */
        25: .line 363
      StackMap locals:
      StackMap stack:
            new javax.security.auth.callback.PasswordCallback
            dup
        26: .line 364
            ldc "Keystore.password."
            invokestatic sun.security.util.ResourcesMgr.getAuthResourceString:(Ljava/lang/String;)Ljava/lang/String;
            iconst_0
        27: .line 363
            invokespecial javax.security.auth.callback.PasswordCallback.<init>:(Ljava/lang/String;Z)V
            astore 3 /* storePassCallback */
        28: .line 367
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* aliasCallback */
            aload 3 /* storePassCallback */
            aload 4 /* keyPassCallback */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.prompt:(Ljavax/security/auth/callback/NameCallback;Ljavax/security/auth/callback/PasswordCallback;Ljavax/security/auth/callback/PasswordCallback;)V
        end local 4 // javax.security.auth.callback.PasswordCallback keyPassCallback
        end local 3 // javax.security.auth.callback.PasswordCallback storePassCallback
        end local 2 // javax.security.auth.callback.NameCallback aliasCallback
        29: .line 370
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
            ifeq 31
        30: .line 371
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "alias="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
        31: .line 373
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int env
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   32     0               this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
            0   32     1                env  I
           13   14     2      aliasCallback  Ljavax/security/auth/callback/NameCallback;
           18   29     2      aliasCallback  Ljavax/security/auth/callback/NameCallback;
           19   29     3  storePassCallback  Ljavax/security/auth/callback/PasswordCallback;
           20   29     4    keyPassCallback  Ljavax/security/auth/callback/PasswordCallback;
    Exceptions:
      throws javax.security.auth.login.LoginException
    MethodParameters:
      Name  Flags
      env   

  private void checkAlias();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
         0: .line 376
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
            ifnonnull 4
         1: .line 377
            new javax.security.auth.login.LoginException
            dup
         2: .line 378
            ldc "Need to specify an alias option to use KeyStoreLoginModule non-interactively."
         3: .line 377
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 381
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
    Exceptions:
      throws javax.security.auth.login.LoginException

  private void checkStorePass();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
         0: .line 384
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePasswordURL:Ljava/lang/String;
            ifnonnull 4
         1: .line 385
            new javax.security.auth.login.LoginException
            dup
         2: .line 386
            ldc "Need to specify keyStorePasswordURL option to use KeyStoreLoginModule non-interactively."
         3: .line 385
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 389
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* in */
        start local 1 // java.io.InputStream in
         5: .line 391
            new java.net.URL
            dup
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePasswordURL:Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 1 /* in */
         6: .line 392
            aload 0 /* this */
            aload 1 /* in */
            invokestatic sun.security.util.Password.readPassword:(Ljava/io/InputStream;)[C
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
         7: .line 393
            goto 27
      StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
      StackMap stack: java.io.IOException
         8: astore 2 /* e */
        start local 2 // java.io.IOException e
         9: .line 394
            new javax.security.auth.login.LoginException
            dup
        10: .line 395
            new java.lang.StringBuilder
            dup
            ldc "Problem accessing keystore password \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 396
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePasswordURL:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 395
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 394
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 3 /* le */
        start local 3 // javax.security.auth.login.LoginException le
        14: .line 397
            aload 3 /* le */
            aload 2 /* e */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        15: .line 398
            aload 3 /* le */
            athrow
        end local 3 // javax.security.auth.login.LoginException le
        end local 2 // java.io.IOException e
        16: .line 399
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        17: .line 400
            aload 1 /* in */
            ifnull 26
        18: .line 402
            aload 1 /* in */
            invokevirtual java.io.InputStream.close:()V
        19: .line 403
            goto 26
      StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream top top java.lang.Throwable
      StackMap stack: java.io.IOException
        20: astore 5 /* ioe */
        start local 5 // java.io.IOException ioe
        21: .line 404
            new javax.security.auth.login.LoginException
            dup
        22: .line 405
            ldc "Problem closing the keystore password stream"
        23: .line 404
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 6 /* le */
        start local 6 // javax.security.auth.login.LoginException le
        24: .line 406
            aload 6 /* le */
            aload 5 /* ioe */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        25: .line 407
            aload 6 /* le */
            athrow
        end local 6 // javax.security.auth.login.LoginException le
        end local 5 // java.io.IOException ioe
        26: .line 410
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        27: .line 400
      StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
      StackMap stack:
            aload 1 /* in */
            ifnull 36
        28: .line 402
            aload 1 /* in */
            invokevirtual java.io.InputStream.close:()V
        29: .line 403
            goto 36
      StackMap locals:
      StackMap stack: java.io.IOException
        30: astore 5 /* ioe */
        start local 5 // java.io.IOException ioe
        31: .line 404
            new javax.security.auth.login.LoginException
            dup
        32: .line 405
            ldc "Problem closing the keystore password stream"
        33: .line 404
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 6 /* le */
        start local 6 // javax.security.auth.login.LoginException le
        34: .line 406
            aload 6 /* le */
            aload 5 /* ioe */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        35: .line 407
            aload 6 /* le */
            athrow
        end local 6 // javax.security.auth.login.LoginException le
        end local 5 // java.io.IOException ioe
        36: .line 411
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.InputStream in
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   37     0  this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
            5   37     1    in  Ljava/io/InputStream;
            9   16     2     e  Ljava/io/IOException;
           14   16     3    le  Ljavax/security/auth/login/LoginException;
           21   26     5   ioe  Ljava/io/IOException;
           31   36     5   ioe  Ljava/io/IOException;
           24   26     6    le  Ljavax/security/auth/login/LoginException;
           34   36     6    le  Ljavax/security/auth/login/LoginException;
      Exception table:
        from    to  target  type
           5     7       8  Class java.io.IOException
           5    16      16  any
          18    19      20  Class java.io.IOException
          28    29      30  Class java.io.IOException
    Exceptions:
      throws javax.security.auth.login.LoginException

  private void checkKeyPass();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
         0: .line 414
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
            ifnonnull 3
         1: .line 415
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
            putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
         2: .line 416
            goto 35
         3: .line 417
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* in */
        start local 1 // java.io.InputStream in
         4: .line 419
            new java.net.URL
            dup
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 1 /* in */
         5: .line 420
            aload 0 /* this */
            aload 1 /* in */
            invokestatic sun.security.util.Password.readPassword:(Ljava/io/InputStream;)[C
            putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
         6: .line 421
            goto 26
      StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
      StackMap stack: java.io.IOException
         7: astore 2 /* e */
        start local 2 // java.io.IOException e
         8: .line 422
            new javax.security.auth.login.LoginException
            dup
         9: .line 423
            new java.lang.StringBuilder
            dup
            ldc "Problem accessing private key password \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 424
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPasswordURL:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 423
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 422
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 3 /* le */
        start local 3 // javax.security.auth.login.LoginException le
        13: .line 425
            aload 3 /* le */
            aload 2 /* e */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        14: .line 426
            aload 3 /* le */
            athrow
        end local 3 // javax.security.auth.login.LoginException le
        end local 2 // java.io.IOException e
        15: .line 427
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        16: .line 428
            aload 1 /* in */
            ifnull 25
        17: .line 430
            aload 1 /* in */
            invokevirtual java.io.InputStream.close:()V
        18: .line 431
            goto 25
      StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream top top java.lang.Throwable
      StackMap stack: java.io.IOException
        19: astore 5 /* ioe */
        start local 5 // java.io.IOException ioe
        20: .line 432
            new javax.security.auth.login.LoginException
            dup
        21: .line 433
            ldc "Problem closing the private key password stream"
        22: .line 432
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 6 /* le */
        start local 6 // javax.security.auth.login.LoginException le
        23: .line 434
            aload 6 /* le */
            aload 5 /* ioe */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        24: .line 435
            aload 6 /* le */
            athrow
        end local 6 // javax.security.auth.login.LoginException le
        end local 5 // java.io.IOException ioe
        25: .line 438
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        26: .line 428
      StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
      StackMap stack:
            aload 1 /* in */
            ifnull 35
        27: .line 430
            aload 1 /* in */
            invokevirtual java.io.InputStream.close:()V
        28: .line 431
            goto 35
      StackMap locals:
      StackMap stack: java.io.IOException
        29: astore 5 /* ioe */
        start local 5 // java.io.IOException ioe
        30: .line 432
            new javax.security.auth.login.LoginException
            dup
        31: .line 433
            ldc "Problem closing the private key password stream"
        32: .line 432
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 6 /* le */
        start local 6 // javax.security.auth.login.LoginException le
        33: .line 434
            aload 6 /* le */
            aload 5 /* ioe */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        34: .line 435
            aload 6 /* le */
            athrow
        end local 6 // javax.security.auth.login.LoginException le
        end local 5 // java.io.IOException ioe
        end local 1 // java.io.InputStream in
        35: .line 440
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   36     0  this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
            4   35     1    in  Ljava/io/InputStream;
            8   15     2     e  Ljava/io/IOException;
           13   15     3    le  Ljavax/security/auth/login/LoginException;
           20   25     5   ioe  Ljava/io/IOException;
           30   35     5   ioe  Ljava/io/IOException;
           23   25     6    le  Ljavax/security/auth/login/LoginException;
           33   35     6    le  Ljavax/security/auth/login/LoginException;
      Exception table:
        from    to  target  type
           4     6       7  Class java.io.IOException
           4    15      15  any
          17    18      19  Class java.io.IOException
          27    28      29  Class java.io.IOException
    Exceptions:
      throws javax.security.auth.login.LoginException

  private void prompt(javax.security.auth.callback.NameCallback, javax.security.auth.callback.PasswordCallback, javax.security.auth.callback.PasswordCallback);
    descriptor: (Ljavax/security/auth/callback/NameCallback;Ljavax/security/auth/callback/PasswordCallback;Ljavax/security/auth/callback/PasswordCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
        start local 1 // javax.security.auth.callback.NameCallback aliasCallback
        start local 2 // javax.security.auth.callback.PasswordCallback storePassCallback
        start local 3 // javax.security.auth.callback.PasswordCallback keyPassCallback
         0: .line 447
            aload 2 /* storePassCallback */
            ifnonnull 24
         1: .line 452
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
         2: .line 453
            iconst_3
            anewarray javax.security.auth.callback.Callback
            dup
            iconst_0
         3: .line 454
            getstatic com.sun.security.auth.module.KeyStoreLoginModule.bannerCallback:Ljavax/security/auth/callback/TextOutputCallback;
            aastore
            dup
            iconst_1
            aload 1 /* aliasCallback */
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
            aastore
         4: .line 452
            invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
         5: .line 456
            goto 19
      StackMap locals:
      StackMap stack: java.io.IOException
         6: astore 4 /* e */
        start local 4 // java.io.IOException e
         7: .line 457
            new javax.security.auth.login.LoginException
            dup
         8: .line 458
            ldc "Problem retrieving keystore alias"
         9: .line 457
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 5 /* le */
        start local 5 // javax.security.auth.login.LoginException le
        10: .line 459
            aload 5 /* le */
            aload 4 /* e */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        11: .line 460
            aload 5 /* le */
            athrow
        end local 5 // javax.security.auth.login.LoginException le
        end local 4 // java.io.IOException e
        12: .line 461
      StackMap locals:
      StackMap stack: javax.security.auth.callback.UnsupportedCallbackException
            astore 4 /* e */
        start local 4 // javax.security.auth.callback.UnsupportedCallbackException e
        13: .line 462
            new javax.security.auth.login.LoginException
            dup
        14: .line 463
            new java.lang.StringBuilder
            dup
            ldc "Error: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual javax.security.auth.callback.UnsupportedCallbackException.getCallback:()Ljavax/security/auth/callback/Callback;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 464
            ldc " is not available to retrieve authentication "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 465
            ldc " information from the user"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 463
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 462
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // javax.security.auth.callback.UnsupportedCallbackException e
        19: .line 468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
            invokevirtual javax.security.auth.callback.ConfirmationCallback.getSelectedIndex:()I
            istore 4 /* confirmationResult */
        start local 4 // int confirmationResult
        20: .line 470
            iload 4 /* confirmationResult */
            iconst_2
            if_icmpne 22
        21: .line 471
            new javax.security.auth.login.LoginException
            dup
            ldc "Login cancelled"
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 474
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* aliasCallback */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.saveAlias:(Ljavax/security/auth/callback/NameCallback;)V
        end local 4 // int confirmationResult
        23: .line 476
            goto 76
      StackMap locals:
      StackMap stack:
        24: aload 3 /* keyPassCallback */
            ifnonnull 50
        25: .line 481
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
        26: .line 482
            iconst_4
            anewarray javax.security.auth.callback.Callback
            dup
            iconst_0
        27: .line 483
            getstatic com.sun.security.auth.module.KeyStoreLoginModule.bannerCallback:Ljavax/security/auth/callback/TextOutputCallback;
            aastore
            dup
            iconst_1
            aload 1 /* aliasCallback */
            aastore
            dup
            iconst_2
        28: .line 484
            aload 2 /* storePassCallback */
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
            aastore
        29: .line 481
            invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
        30: .line 486
            goto 44
      StackMap locals:
      StackMap stack: java.io.IOException
        31: astore 4 /* e */
        start local 4 // java.io.IOException e
        32: .line 487
            new javax.security.auth.login.LoginException
            dup
        33: .line 488
            ldc "Problem retrieving keystore alias and password"
        34: .line 487
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 5 /* le */
        start local 5 // javax.security.auth.login.LoginException le
        35: .line 489
            aload 5 /* le */
            aload 4 /* e */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        36: .line 490
            aload 5 /* le */
            athrow
        end local 5 // javax.security.auth.login.LoginException le
        end local 4 // java.io.IOException e
        37: .line 491
      StackMap locals:
      StackMap stack: javax.security.auth.callback.UnsupportedCallbackException
            astore 4 /* e */
        start local 4 // javax.security.auth.callback.UnsupportedCallbackException e
        38: .line 492
            new javax.security.auth.login.LoginException
            dup
        39: .line 493
            new java.lang.StringBuilder
            dup
            ldc "Error: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual javax.security.auth.callback.UnsupportedCallbackException.getCallback:()Ljavax/security/auth/callback/Callback;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        40: .line 494
            ldc " is not available to retrieve authentication "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        41: .line 495
            ldc " information from the user"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        42: .line 493
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        43: .line 492
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // javax.security.auth.callback.UnsupportedCallbackException e
        44: .line 498
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
            invokevirtual javax.security.auth.callback.ConfirmationCallback.getSelectedIndex:()I
            istore 4 /* confirmationResult */
        start local 4 // int confirmationResult
        45: .line 500
            iload 4 /* confirmationResult */
            iconst_2
            if_icmpne 47
        46: .line 501
            new javax.security.auth.login.LoginException
            dup
            ldc "Login cancelled"
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
        47: .line 504
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* aliasCallback */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.saveAlias:(Ljavax/security/auth/callback/NameCallback;)V
        48: .line 505
            aload 0 /* this */
            aload 2 /* storePassCallback */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.saveStorePass:(Ljavax/security/auth/callback/PasswordCallback;)V
        end local 4 // int confirmationResult
        49: .line 507
            goto 76
        50: .line 512
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.callbackHandler:Ljavax/security/auth/callback/CallbackHandler;
        51: .line 513
            iconst_5
            anewarray javax.security.auth.callback.Callback
            dup
            iconst_0
        52: .line 514
            getstatic com.sun.security.auth.module.KeyStoreLoginModule.bannerCallback:Ljavax/security/auth/callback/TextOutputCallback;
            aastore
            dup
            iconst_1
            aload 1 /* aliasCallback */
            aastore
            dup
            iconst_2
        53: .line 515
            aload 2 /* storePassCallback */
            aastore
            dup
            iconst_3
            aload 3 /* keyPassCallback */
            aastore
            dup
            iconst_4
        54: .line 516
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
            aastore
        55: .line 512
            invokeinterface javax.security.auth.callback.CallbackHandler.handle:([Ljavax/security/auth/callback/Callback;)V
        56: .line 518
            goto 70
      StackMap locals:
      StackMap stack: java.io.IOException
        57: astore 4 /* e */
        start local 4 // java.io.IOException e
        58: .line 519
            new javax.security.auth.login.LoginException
            dup
        59: .line 520
            ldc "Problem retrieving keystore alias and passwords"
        60: .line 519
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 5 /* le */
        start local 5 // javax.security.auth.login.LoginException le
        61: .line 521
            aload 5 /* le */
            aload 4 /* e */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        62: .line 522
            aload 5 /* le */
            athrow
        end local 5 // javax.security.auth.login.LoginException le
        end local 4 // java.io.IOException e
        63: .line 523
      StackMap locals:
      StackMap stack: javax.security.auth.callback.UnsupportedCallbackException
            astore 4 /* e */
        start local 4 // javax.security.auth.callback.UnsupportedCallbackException e
        64: .line 524
            new javax.security.auth.login.LoginException
            dup
        65: .line 525
            new java.lang.StringBuilder
            dup
            ldc "Error: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual javax.security.auth.callback.UnsupportedCallbackException.getCallback:()Ljavax/security/auth/callback/Callback;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        66: .line 526
            ldc " is not available to retrieve authentication "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        67: .line 527
            ldc " information from the user"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        68: .line 525
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        69: .line 524
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // javax.security.auth.callback.UnsupportedCallbackException e
        70: .line 530
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.confirmationCallback:Ljavax/security/auth/callback/ConfirmationCallback;
            invokevirtual javax.security.auth.callback.ConfirmationCallback.getSelectedIndex:()I
            istore 4 /* confirmationResult */
        start local 4 // int confirmationResult
        71: .line 532
            iload 4 /* confirmationResult */
            iconst_2
            if_icmpne 73
        72: .line 533
            new javax.security.auth.login.LoginException
            dup
            ldc "Login cancelled"
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
        73: .line 536
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* aliasCallback */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.saveAlias:(Ljavax/security/auth/callback/NameCallback;)V
        74: .line 537
            aload 0 /* this */
            aload 2 /* storePassCallback */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.saveStorePass:(Ljavax/security/auth/callback/PasswordCallback;)V
        75: .line 538
            aload 0 /* this */
            aload 3 /* keyPassCallback */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.saveKeyPass:(Ljavax/security/auth/callback/PasswordCallback;)V
        end local 4 // int confirmationResult
        76: .line 540
      StackMap locals:
      StackMap stack:
            return
        end local 3 // javax.security.auth.callback.PasswordCallback keyPassCallback
        end local 2 // javax.security.auth.callback.PasswordCallback storePassCallback
        end local 1 // javax.security.auth.callback.NameCallback aliasCallback
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   77     0                this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
            0   77     1       aliasCallback  Ljavax/security/auth/callback/NameCallback;
            0   77     2   storePassCallback  Ljavax/security/auth/callback/PasswordCallback;
            0   77     3     keyPassCallback  Ljavax/security/auth/callback/PasswordCallback;
            7   12     4                   e  Ljava/io/IOException;
           10   12     5                  le  Ljavax/security/auth/login/LoginException;
           13   19     4                   e  Ljavax/security/auth/callback/UnsupportedCallbackException;
           20   23     4  confirmationResult  I
           32   37     4                   e  Ljava/io/IOException;
           35   37     5                  le  Ljavax/security/auth/login/LoginException;
           38   44     4                   e  Ljavax/security/auth/callback/UnsupportedCallbackException;
           45   49     4  confirmationResult  I
           58   63     4                   e  Ljava/io/IOException;
           61   63     5                  le  Ljavax/security/auth/login/LoginException;
           64   70     4                   e  Ljavax/security/auth/callback/UnsupportedCallbackException;
           71   76     4  confirmationResult  I
      Exception table:
        from    to  target  type
           1     5       6  Class java.io.IOException
           1     5      12  Class javax.security.auth.callback.UnsupportedCallbackException
          25    30      31  Class java.io.IOException
          25    30      37  Class javax.security.auth.callback.UnsupportedCallbackException
          50    56      57  Class java.io.IOException
          50    56      63  Class javax.security.auth.callback.UnsupportedCallbackException
    Exceptions:
      throws javax.security.auth.login.LoginException
    MethodParameters:
                   Name  Flags
      aliasCallback      
      storePassCallback  
      keyPassCallback    

  private void saveAlias(javax.security.auth.callback.NameCallback);
    descriptor: (Ljavax/security/auth/callback/NameCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
        start local 1 // javax.security.auth.callback.NameCallback cb
         0: .line 543
            aload 0 /* this */
            aload 1 /* cb */
            invokevirtual javax.security.auth.callback.NameCallback.getName:()Ljava/lang/String;
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
         1: .line 544
            return
        end local 1 // javax.security.auth.callback.NameCallback cb
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
            0    2     1    cb  Ljavax/security/auth/callback/NameCallback;
    MethodParameters:
      Name  Flags
      cb    

  private void saveStorePass(javax.security.auth.callback.PasswordCallback);
    descriptor: (Ljavax/security/auth/callback/PasswordCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
        start local 1 // javax.security.auth.callback.PasswordCallback c
         0: .line 547
            aload 0 /* this */
            aload 1 /* c */
            invokevirtual javax.security.auth.callback.PasswordCallback.getPassword:()[C
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
         1: .line 548
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
            ifnonnull 3
         2: .line 550
            aload 0 /* this */
            iconst_0
            newarray 5
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
         3: .line 552
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            invokevirtual javax.security.auth.callback.PasswordCallback.clearPassword:()V
         4: .line 553
            return
        end local 1 // javax.security.auth.callback.PasswordCallback c
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
            0    5     1     c  Ljavax/security/auth/callback/PasswordCallback;
    MethodParameters:
      Name  Flags
      c     

  private void saveKeyPass(javax.security.auth.callback.PasswordCallback);
    descriptor: (Ljavax/security/auth/callback/PasswordCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
        start local 1 // javax.security.auth.callback.PasswordCallback c
         0: .line 556
            aload 0 /* this */
            aload 1 /* c */
            invokevirtual javax.security.auth.callback.PasswordCallback.getPassword:()[C
            putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
         1: .line 557
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
            ifnull 2
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
            arraylength
            ifne 3
         2: .line 562
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
            putfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
         3: .line 564
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            invokevirtual javax.security.auth.callback.PasswordCallback.clearPassword:()V
         4: .line 565
            return
        end local 1 // javax.security.auth.callback.PasswordCallback c
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
            0    5     1     c  Ljavax/security/auth/callback/PasswordCallback;
    MethodParameters:
      Name  Flags
      c     

  private void getKeyStoreInfo();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
         0: .line 572
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreProvider:Ljava/lang/String;
            ifnonnull 3
         1: .line 573
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
         2: .line 574
            goto 19
         3: .line 575
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         4: .line 576
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreType:Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreProvider:Ljava/lang/String;
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
         5: .line 575
            putfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
         6: .line 578
            goto 19
      StackMap locals:
      StackMap stack: java.security.KeyStoreException
         7: astore 1 /* e */
        start local 1 // java.security.KeyStoreException e
         8: .line 579
            new javax.security.auth.login.LoginException
            dup
         9: .line 580
            ldc "The specified keystore type was not available"
        10: .line 579
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 2 /* le */
        start local 2 // javax.security.auth.login.LoginException le
        11: .line 581
            aload 2 /* le */
            aload 1 /* e */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        12: .line 582
            aload 2 /* le */
            athrow
        end local 2 // javax.security.auth.login.LoginException le
        end local 1 // java.security.KeyStoreException e
        13: .line 583
      StackMap locals:
      StackMap stack: java.security.NoSuchProviderException
            astore 1 /* e */
        start local 1 // java.security.NoSuchProviderException e
        14: .line 584
            new javax.security.auth.login.LoginException
            dup
        15: .line 585
            ldc "The specified keystore provider was not available"
        16: .line 584
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 2 /* le */
        start local 2 // javax.security.auth.login.LoginException le
        17: .line 586
            aload 2 /* le */
            aload 1 /* e */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        18: .line 587
            aload 2 /* le */
            athrow
        end local 2 // javax.security.auth.login.LoginException le
        end local 1 // java.security.NoSuchProviderException e
        19: .line 591
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* in */
        start local 1 // java.io.InputStream in
        20: .line 593
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.nullStream:Z
            ifeq 23
        21: .line 595
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
            aconst_null
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
        22: .line 596
            goto 55
        23: .line 597
      StackMap locals: java.io.InputStream
      StackMap stack:
            new java.net.URL
            dup
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreURL:Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 1 /* in */
        24: .line 598
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
            aload 1 /* in */
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStorePassword:[C
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
        25: .line 600
            goto 55
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
        26: astore 2 /* e */
        start local 2 // java.net.MalformedURLException e
        27: .line 601
            new javax.security.auth.login.LoginException
            dup
        28: .line 602
            ldc "Incorrect keyStoreURL option"
        29: .line 601
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 3 /* le */
        start local 3 // javax.security.auth.login.LoginException le
        30: .line 603
            aload 3 /* le */
            aload 2 /* e */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        31: .line 604
            aload 3 /* le */
            athrow
        end local 3 // javax.security.auth.login.LoginException le
        end local 2 // java.net.MalformedURLException e
        32: .line 605
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
            astore 2 /* e */
        start local 2 // java.security.GeneralSecurityException e
        33: .line 606
            new javax.security.auth.login.LoginException
            dup
        34: .line 607
            ldc "Error initializing keystore"
        35: .line 606
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 3 /* le */
        start local 3 // javax.security.auth.login.LoginException le
        36: .line 608
            aload 3 /* le */
            aload 2 /* e */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        37: .line 609
            aload 3 /* le */
            athrow
        end local 3 // javax.security.auth.login.LoginException le
        end local 2 // java.security.GeneralSecurityException e
        38: .line 610
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        39: .line 611
            new javax.security.auth.login.LoginException
            dup
        40: .line 612
            ldc "Error initializing keystore"
        41: .line 611
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 3 /* le */
        start local 3 // javax.security.auth.login.LoginException le
        42: .line 613
            aload 3 /* le */
            aload 2 /* e */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        43: .line 614
            aload 3 /* le */
            athrow
        end local 3 // javax.security.auth.login.LoginException le
        end local 2 // java.io.IOException e
        44: .line 615
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        45: .line 616
            aload 1 /* in */
            ifnull 54
        46: .line 618
            aload 1 /* in */
            invokevirtual java.io.InputStream.close:()V
        47: .line 619
            goto 54
      StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream top top java.lang.Throwable
      StackMap stack: java.io.IOException
        48: astore 5 /* ioe */
        start local 5 // java.io.IOException ioe
        49: .line 620
            new javax.security.auth.login.LoginException
            dup
        50: .line 621
            ldc "Error initializing keystore"
        51: .line 620
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 6 /* le */
        start local 6 // javax.security.auth.login.LoginException le
        52: .line 622
            aload 6 /* le */
            aload 5 /* ioe */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        53: .line 623
            aload 6 /* le */
            athrow
        end local 6 // javax.security.auth.login.LoginException le
        end local 5 // java.io.IOException ioe
        54: .line 626
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        55: .line 616
      StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
      StackMap stack:
            aload 1 /* in */
            ifnull 64
        56: .line 618
            aload 1 /* in */
            invokevirtual java.io.InputStream.close:()V
        57: .line 619
            goto 64
      StackMap locals:
      StackMap stack: java.io.IOException
        58: astore 5 /* ioe */
        start local 5 // java.io.IOException ioe
        59: .line 620
            new javax.security.auth.login.LoginException
            dup
        60: .line 621
            ldc "Error initializing keystore"
        61: .line 620
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 6 /* le */
        start local 6 // javax.security.auth.login.LoginException le
        62: .line 622
            aload 6 /* le */
            aload 5 /* ioe */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        63: .line 623
            aload 6 /* le */
            athrow
        end local 6 // javax.security.auth.login.LoginException le
        end local 5 // java.io.IOException ioe
        64: .line 630
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        65: .line 631
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
            invokevirtual java.security.KeyStore.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/Certificate;
        66: .line 630
            putfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
        67: .line 632
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
            ifnull 70
        68: .line 633
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
            arraylength
            ifeq 70
        69: .line 634
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
            iconst_0
            aaload
            instanceof java.security.cert.X509Certificate
            ifne 73
        70: .line 636
      StackMap locals:
      StackMap stack:
            new javax.security.auth.login.FailedLoginException
            dup
        71: .line 637
            ldc "Unable to find X.509 certificate chain in keystore"
        72: .line 636
            invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
            athrow
        73: .line 639
      StackMap locals:
      StackMap stack:
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 2 /* certList */
        start local 2 // java.util.LinkedList certList
        74: .line 640
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        75: goto 78
        76: .line 641
      StackMap locals: java.util.LinkedList int
      StackMap stack:
            aload 2 /* certList */
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
            iload 3 /* i */
            aaload
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        77: .line 640
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        78: iload 3 /* i */
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
            arraylength
            if_icmplt 76
        end local 3 // int i
        79: .line 644
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
        80: .line 643
            astore 3 /* certF */
        start local 3 // java.security.cert.CertificateFactory certF
        81: .line 645
            aload 0 /* this */
        82: .line 646
            aload 3 /* certF */
            aload 2 /* certList */
            invokevirtual java.security.cert.CertificateFactory.generateCertPath:(Ljava/util/List;)Ljava/security/cert/CertPath;
        83: .line 645
            putfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
        end local 3 // java.security.cert.CertificateFactory certF
        end local 2 // java.util.LinkedList certList
        84: .line 648
            goto 95
      StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
      StackMap stack: java.security.KeyStoreException
        85: astore 2 /* e */
        start local 2 // java.security.KeyStoreException e
        86: .line 649
            new javax.security.auth.login.LoginException
            dup
            ldc "Error using keystore"
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 3 /* le */
        start local 3 // javax.security.auth.login.LoginException le
        87: .line 650
            aload 3 /* le */
            aload 2 /* e */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        88: .line 651
            aload 3 /* le */
            athrow
        end local 3 // javax.security.auth.login.LoginException le
        end local 2 // java.security.KeyStoreException e
        89: .line 652
      StackMap locals:
      StackMap stack: java.security.cert.CertificateException
            astore 2 /* ce */
        start local 2 // java.security.cert.CertificateException ce
        90: .line 653
            new javax.security.auth.login.LoginException
            dup
        91: .line 654
            ldc "Error: X.509 Certificate type unavailable"
        92: .line 653
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 3 /* le */
        start local 3 // javax.security.auth.login.LoginException le
        93: .line 655
            aload 3 /* le */
            aload 2 /* ce */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        94: .line 656
            aload 3 /* le */
            athrow
        end local 3 // javax.security.auth.login.LoginException le
        end local 2 // java.security.cert.CertificateException ce
        95: .line 661
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.fromKeyStore:[Ljava/security/cert/Certificate;
            iconst_0
            aaload
            checkcast java.security.cert.X509Certificate
            astore 2 /* certificate */
        start local 2 // java.security.cert.X509Certificate certificate
        96: .line 662
            aload 0 /* this */
            new javax.security.auth.x500.X500Principal
            dup
        97: .line 663
            aload 2 /* certificate */
            invokevirtual java.security.cert.X509Certificate.getSubjectDN:()Ljava/security/Principal;
            invokeinterface java.security.Principal.getName:()Ljava/lang/String;
            invokespecial javax.security.auth.x500.X500Principal.<init>:(Ljava/lang/String;)V
        98: .line 662
            putfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
        99: .line 666
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateKeyPassword:[C
            invokevirtual java.security.KeyStore.getKey:(Ljava/lang/String;[C)Ljava/security/Key;
            astore 3 /* privateKey */
        start local 3 // java.security.Key privateKey
       100: .line 667
            aload 3 /* privateKey */
            ifnull 102
       101: .line 668
            aload 3 /* privateKey */
            instanceof java.security.PrivateKey
            ifne 105
       102: .line 670
      StackMap locals: java.security.cert.X509Certificate java.security.Key
      StackMap stack:
            new javax.security.auth.login.FailedLoginException
            dup
       103: .line 671
            ldc "Unable to recover key from keystore"
       104: .line 670
            invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
            athrow
       105: .line 674
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new javax.security.auth.x500.X500PrivateCredential
            dup
       106: .line 675
            aload 2 /* certificate */
            aload 3 /* privateKey */
            checkcast java.security.PrivateKey
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStoreAlias:Ljava/lang/String;
            invokespecial javax.security.auth.x500.X500PrivateCredential.<init>:(Ljava/security/cert/X509Certificate;Ljava/security/PrivateKey;Ljava/lang/String;)V
       107: .line 674
            putfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
        end local 3 // java.security.Key privateKey
        end local 2 // java.security.cert.X509Certificate certificate
       108: .line 676
            goto 123
      StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule java.io.InputStream
      StackMap stack: java.security.KeyStoreException
       109: astore 2 /* e */
        start local 2 // java.security.KeyStoreException e
       110: .line 677
            new javax.security.auth.login.LoginException
            dup
            ldc "Error using keystore"
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 3 /* le */
        start local 3 // javax.security.auth.login.LoginException le
       111: .line 678
            aload 3 /* le */
            aload 2 /* e */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
       112: .line 679
            aload 3 /* le */
            athrow
        end local 3 // javax.security.auth.login.LoginException le
        end local 2 // java.security.KeyStoreException e
       113: .line 680
      StackMap locals:
      StackMap stack: java.security.NoSuchAlgorithmException
            astore 2 /* e */
        start local 2 // java.security.NoSuchAlgorithmException e
       114: .line 681
            new javax.security.auth.login.LoginException
            dup
            ldc "Error using keystore"
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 3 /* le */
        start local 3 // javax.security.auth.login.LoginException le
       115: .line 682
            aload 3 /* le */
            aload 2 /* e */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
       116: .line 683
            aload 3 /* le */
            athrow
        end local 3 // javax.security.auth.login.LoginException le
        end local 2 // java.security.NoSuchAlgorithmException e
       117: .line 684
      StackMap locals:
      StackMap stack: java.security.UnrecoverableKeyException
            astore 2 /* e */
        start local 2 // java.security.UnrecoverableKeyException e
       118: .line 685
            new javax.security.auth.login.FailedLoginException
            dup
       119: .line 686
            ldc "Unable to recover key from keystore"
       120: .line 685
            invokespecial javax.security.auth.login.FailedLoginException.<init>:(Ljava/lang/String;)V
            astore 3 /* fle */
        start local 3 // javax.security.auth.login.FailedLoginException fle
       121: .line 687
            aload 3 /* fle */
            aload 2 /* e */
            invokevirtual javax.security.auth.login.FailedLoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
       122: .line 688
            aload 3 /* fle */
            athrow
        end local 3 // javax.security.auth.login.FailedLoginException fle
        end local 2 // java.security.UnrecoverableKeyException e
       123: .line 690
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
            ifeq 129
       124: .line 691
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "principal="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
       125: .line 692
            ldc "\n certificate="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       126: .line 693
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
            invokevirtual javax.security.auth.x500.X500PrivateCredential.getCertificate:()Ljava/security/cert/X509Certificate;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
       127: .line 694
            ldc "\n alias ="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
            invokevirtual javax.security.auth.x500.X500PrivateCredential.getAlias:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       128: .line 691
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
       129: .line 696
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.InputStream in
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0  130     0         this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
            8   13     1            e  Ljava/security/KeyStoreException;
           11   13     2           le  Ljavax/security/auth/login/LoginException;
           14   19     1            e  Ljava/security/NoSuchProviderException;
           17   19     2           le  Ljavax/security/auth/login/LoginException;
           20  130     1           in  Ljava/io/InputStream;
           27   32     2            e  Ljava/net/MalformedURLException;
           30   32     3           le  Ljavax/security/auth/login/LoginException;
           33   38     2            e  Ljava/security/GeneralSecurityException;
           36   38     3           le  Ljavax/security/auth/login/LoginException;
           39   44     2            e  Ljava/io/IOException;
           42   44     3           le  Ljavax/security/auth/login/LoginException;
           49   54     5          ioe  Ljava/io/IOException;
           59   64     5          ioe  Ljava/io/IOException;
           52   54     6           le  Ljavax/security/auth/login/LoginException;
           62   64     6           le  Ljavax/security/auth/login/LoginException;
           74   84     2     certList  Ljava/util/LinkedList<Ljava/security/cert/Certificate;>;
           75   79     3            i  I
           81   84     3        certF  Ljava/security/cert/CertificateFactory;
           86   89     2            e  Ljava/security/KeyStoreException;
           87   89     3           le  Ljavax/security/auth/login/LoginException;
           90   95     2           ce  Ljava/security/cert/CertificateException;
           93   95     3           le  Ljavax/security/auth/login/LoginException;
           96  108     2  certificate  Ljava/security/cert/X509Certificate;
          100  108     3   privateKey  Ljava/security/Key;
          110  113     2            e  Ljava/security/KeyStoreException;
          111  113     3           le  Ljavax/security/auth/login/LoginException;
          114  117     2            e  Ljava/security/NoSuchAlgorithmException;
          115  117     3           le  Ljavax/security/auth/login/LoginException;
          118  123     2            e  Ljava/security/UnrecoverableKeyException;
          121  123     3          fle  Ljavax/security/auth/login/FailedLoginException;
      Exception table:
        from    to  target  type
           0     6       7  Class java.security.KeyStoreException
           0     6      13  Class java.security.NoSuchProviderException
          20    25      26  Class java.net.MalformedURLException
          20    25      32  Class java.security.GeneralSecurityException
          20    25      38  Class java.io.IOException
          20    44      44  any
          46    47      48  Class java.io.IOException
          56    57      58  Class java.io.IOException
          64    84      85  Class java.security.KeyStoreException
          64    84      89  Class java.security.cert.CertificateException
          95   108     109  Class java.security.KeyStoreException
          95   108     113  Class java.security.NoSuchAlgorithmException
          95   108     117  Class java.security.UnrecoverableKeyException
    Exceptions:
      throws javax.security.auth.login.LoginException

  public boolean commit();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
         0: .line 726
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
            tableswitch { // 0 - 3
                    0: 1
                    1: 2
                    2: 4
                    3: 8
              default: 1
          }
         1: .line 729
      StackMap locals:
      StackMap stack:
            new javax.security.auth.login.LoginException
            dup
            ldc "The login module is not initialized"
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 731
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.logoutInternal:()V
         3: .line 732
            new javax.security.auth.login.LoginException
            dup
            ldc "Authentication failed"
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 734
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.commitInternal:()Z
            ifeq 6
         5: .line 735
            iconst_1
            ireturn
         6: .line 737
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.logoutInternal:()V
         7: .line 738
            new javax.security.auth.login.LoginException
            dup
            ldc "Unable to retrieve certificates"
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 741
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
    Exceptions:
      throws javax.security.auth.login.LoginException

  private boolean commitInternal();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
         0: .line 749
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.isReadOnly:()Z
            ifeq 2
         1: .line 750
            new javax.security.auth.login.LoginException
            dup
            ldc "Subject is set readonly"
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 752
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 753
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPublicCredentials:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 754
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrivateCredentials:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 755
            aload 0 /* this */
            iconst_3
            putfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
         6: .line 756
            iconst_1
            ireturn
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
    Exceptions:
      throws javax.security.auth.login.LoginException

  public boolean abort();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
         0: .line 782
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
            tableswitch { // 0 - 3
                    0: 1
                    1: 2
                    2: 3
                    3: 5
              default: 1
          }
         1: .line 785
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 787
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         3: .line 789
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.logoutInternal:()V
         4: .line 790
            iconst_1
            ireturn
         5: .line 792
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.logoutInternal:()V
         6: .line 793
            iconst_1
            ireturn
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
    Exceptions:
      throws javax.security.auth.login.LoginException

  public boolean logout();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
         0: .line 813
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
            ifeq 2
         1: .line 814
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Entering logout "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
         2: .line 815
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
            tableswitch { // 0 - 3
                    0: 3
                    1: 6
                    2: 6
                    3: 7
              default: 6
          }
         3: .line 817
      StackMap locals:
      StackMap stack:
            new javax.security.auth.login.LoginException
            dup
         4: .line 818
            ldc "The login module is not initialized"
         5: .line 817
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 825
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         7: .line 827
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.logoutInternal:()V
         8: .line 828
            iconst_1
            ireturn
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
    Exceptions:
      throws javax.security.auth.login.LoginException

  private void logoutInternal();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
         0: .line 833
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
            ifeq 2
         1: .line 834
            aload 0 /* this */
            ldc "Entering logoutInternal"
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
         2: .line 839
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* logoutException */
        start local 1 // javax.security.auth.login.LoginException logoutException
         3: .line 840
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.keyStore:Ljava/security/KeyStore;
            invokevirtual java.security.KeyStore.getProvider:()Ljava/security/Provider;
            astore 2 /* provider */
        start local 2 // java.security.Provider provider
         4: .line 841
            aload 2 /* provider */
            instanceof java.security.AuthProvider
            ifeq 12
         5: .line 842
            aload 2 /* provider */
            checkcast java.security.AuthProvider
            astore 3 /* ap */
        start local 3 // java.security.AuthProvider ap
         6: .line 844
            aload 3 /* ap */
            invokevirtual java.security.AuthProvider.logout:()V
         7: .line 845
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
            ifeq 12
         8: .line 846
            aload 0 /* this */
            ldc "logged out of KeyStore AuthProvider"
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
         9: .line 848
            goto 12
      StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule javax.security.auth.login.LoginException java.security.Provider java.security.AuthProvider
      StackMap stack: javax.security.auth.login.LoginException
        10: astore 4 /* le */
        start local 4 // javax.security.auth.login.LoginException le
        11: .line 850
            aload 4 /* le */
            astore 1 /* logoutException */
        end local 4 // javax.security.auth.login.LoginException le
        end local 3 // java.security.AuthProvider ap
        12: .line 854
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.isReadOnly:()Z
            ifeq 39
        13: .line 857
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
        14: .line 858
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
        15: .line 859
            aload 0 /* this */
            iconst_1
            putfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
        16: .line 861
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrivateCredentials:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3 /* it */
        start local 3 // java.util.Iterator it
        17: .line 862
            goto 35
        18: .line 863
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 4 /* obj */
        start local 4 // java.lang.Object obj
        19: .line 864
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
            aload 4 /* obj */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 35
        20: .line 865
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
        21: .line 867
            aload 4 /* obj */
            checkcast javax.security.auth.Destroyable
            invokeinterface javax.security.auth.Destroyable.destroy:()V
        22: .line 868
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.debug:Z
            ifeq 36
        23: .line 869
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Destroyed private credential, "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        24: .line 870
            aload 4 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        25: .line 869
            invokevirtual com.sun.security.auth.module.KeyStoreLoginModule.debugPrint:(Ljava/lang/String;)V
        26: .line 871
            goto 36
        27: .line 872
      StackMap locals: com.sun.security.auth.module.KeyStoreLoginModule javax.security.auth.login.LoginException java.security.Provider java.util.Iterator java.lang.Object
      StackMap stack: javax.security.auth.DestroyFailedException
            astore 5 /* dfe */
        start local 5 // javax.security.auth.DestroyFailedException dfe
        28: .line 873
            new javax.security.auth.login.LoginException
            dup
        29: .line 874
            new java.lang.StringBuilder
            dup
            ldc "Unable to destroy private credential, "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        30: .line 875
            aload 4 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        31: .line 874
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        32: .line 873
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            astore 6 /* le */
        start local 6 // javax.security.auth.login.LoginException le
        33: .line 876
            aload 6 /* le */
            aload 5 /* dfe */
            invokevirtual javax.security.auth.login.LoginException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        34: .line 877
            aload 6 /* le */
            athrow
        end local 6 // javax.security.auth.login.LoginException le
        end local 5 // javax.security.auth.DestroyFailedException dfe
        end local 4 // java.lang.Object obj
        35: .line 862
      StackMap locals:
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        36: .line 885
      StackMap locals:
      StackMap stack:
            new javax.security.auth.login.LoginException
            dup
        37: .line 886
            ldc "Unable to remove Principal (X500Principal ) and public credential (certificatepath) from read-only Subject"
        38: .line 885
            invokespecial javax.security.auth.login.LoginException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.util.Iterator it
        39: .line 891
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
            ifnull 42
        40: .line 892
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrincipals:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        41: .line 893
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.KeyStoreLoginModule.principal:Ljavax/security/auth/x500/X500Principal;
        42: .line 895
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
            ifnull 45
        43: .line 896
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPublicCredentials:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        44: .line 897
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.KeyStoreLoginModule.certP:Ljava/security/cert/CertPath;
        45: .line 899
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
            ifnull 48
        46: .line 900
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.subject:Ljavax/security/auth/Subject;
            invokevirtual javax.security.auth.Subject.getPrivateCredentials:()Ljava/util/Set;
            aload 0 /* this */
            getfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        47: .line 901
            aload 0 /* this */
            aconst_null
            putfield com.sun.security.auth.module.KeyStoreLoginModule.privateCredential:Ljavax/security/auth/x500/X500PrivateCredential;
        48: .line 905
      StackMap locals:
      StackMap stack:
            aload 1 /* logoutException */
            ifnull 50
        49: .line 906
            aload 1 /* logoutException */
            athrow
        50: .line 908
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.security.auth.module.KeyStoreLoginModule.status:I
        51: .line 909
            return
        end local 2 // java.security.Provider provider
        end local 1 // javax.security.auth.login.LoginException logoutException
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   52     0             this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
            3   52     1  logoutException  Ljavax/security/auth/login/LoginException;
            4   52     2         provider  Ljava/security/Provider;
            6   12     3               ap  Ljava/security/AuthProvider;
           11   12     4               le  Ljavax/security/auth/login/LoginException;
           17   39     3               it  Ljava/util/Iterator<Ljava/lang/Object;>;
           19   35     4              obj  Ljava/lang/Object;
           28   35     5              dfe  Ljavax/security/auth/DestroyFailedException;
           33   35     6               le  Ljavax/security/auth/login/LoginException;
      Exception table:
        from    to  target  type
           6     9      10  Class javax.security.auth.login.LoginException
          21    26      27  Class javax.security.auth.DestroyFailedException
    Exceptions:
      throws javax.security.auth.login.LoginException

  private void debugPrint(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
        start local 1 // java.lang.String message
         0: .line 913
            aload 1 /* message */
            ifnonnull 3
         1: .line 914
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
         2: .line 915
            goto 4
         3: .line 916
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Debug KeyStoreLoginModule: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* message */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 918
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String message
        end local 0 // com.sun.security.auth.module.KeyStoreLoginModule this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/sun/security/auth/module/KeyStoreLoginModule;
            0    5     1  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      message  
}
SourceFile: "KeyStoreLoginModule.java"