public final class sun.security.pkcs12.PKCS12KeyStore extends java.security.KeyStoreSpi
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.security.pkcs12.PKCS12KeyStore
  super_class: java.security.KeyStoreSpi
{
  public static final int VERSION_3;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

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

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

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

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

  private static final sun.security.util.Debug debug;
    descriptor: Lsun/security/util/Debug;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] keyBag;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] certBag;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] pkcs9Name;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] pkcs9KeyId;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] pkcs9certType;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] pbeWithSHAAnd40BitRC2CBC;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int[] pbeWithSHAAnd3KeyTripleDESCBC;
    descriptor: [I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static sun.security.util.ObjectIdentifier PKCS8ShroudedKeyBag_OID;
    descriptor: Lsun/security/util/ObjectIdentifier;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.security.util.ObjectIdentifier CertBag_OID;
    descriptor: Lsun/security/util/ObjectIdentifier;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.security.util.ObjectIdentifier PKCS9FriendlyName_OID;
    descriptor: Lsun/security/util/ObjectIdentifier;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.security.util.ObjectIdentifier PKCS9LocalKeyId_OID;
    descriptor: Lsun/security/util/ObjectIdentifier;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.security.util.ObjectIdentifier PKCS9CertType_OID;
    descriptor: Lsun/security/util/ObjectIdentifier;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.security.util.ObjectIdentifier pbeWithSHAAnd40BitRC2CBC_OID;
    descriptor: Lsun/security/util/ObjectIdentifier;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.security.util.ObjectIdentifier pbeWithSHAAnd3KeyTripleDESCBC_OID;
    descriptor: Lsun/security/util/ObjectIdentifier;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

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

  private java.security.SecureRandom random;
    descriptor: Ljava/security/SecureRandom;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Hashtable<java.lang.String, sun.security.pkcs12.PKCS12KeyStore$KeyEntry> entries;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;>;

  private java.util.ArrayList<sun.security.pkcs12.PKCS12KeyStore$KeyEntry> keyList;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;>;

  private java.util.LinkedHashMap<javax.security.auth.x500.X500Principal, java.security.cert.X509Certificate> certsMap;
    descriptor: Ljava/util/LinkedHashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/LinkedHashMap<Ljavax/security/auth/x500/X500Principal;Ljava/security/cert/X509Certificate;>;

  private java.util.ArrayList<sun.security.pkcs12.PKCS12KeyStore$CertEntry> certEntries;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Lsun/security/pkcs12/PKCS12KeyStore$CertEntry;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 130
            ldc "pkcs12"
            invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
            putstatic sun.security.pkcs12.PKCS12KeyStore.debug:Lsun/security/util/Debug;
         1: .line 132
            bipush 9
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            dup
            iconst_1
            iconst_2
            iastore
            dup
            iconst_2
            sipush 840
            iastore
            dup
            iconst_3
            ldc 113549
            iastore
            dup
            iconst_4
            iconst_1
            iastore
            dup
            iconst_5
            bipush 12
            iastore
            dup
            bipush 6
            bipush 10
            iastore
            dup
            bipush 7
            iconst_1
            iastore
            dup
            bipush 8
            iconst_2
            iastore
            putstatic sun.security.pkcs12.PKCS12KeyStore.keyBag:[I
         2: .line 133
            bipush 9
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            dup
            iconst_1
            iconst_2
            iastore
            dup
            iconst_2
            sipush 840
            iastore
            dup
            iconst_3
            ldc 113549
            iastore
            dup
            iconst_4
            iconst_1
            iastore
            dup
            iconst_5
            bipush 12
            iastore
            dup
            bipush 6
            bipush 10
            iastore
            dup
            bipush 7
            iconst_1
            iastore
            dup
            bipush 8
            iconst_3
            iastore
            putstatic sun.security.pkcs12.PKCS12KeyStore.certBag:[I
         3: .line 135
            bipush 7
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            dup
            iconst_1
            iconst_2
            iastore
            dup
            iconst_2
            sipush 840
            iastore
            dup
            iconst_3
            ldc 113549
            iastore
            dup
            iconst_4
            iconst_1
            iastore
            dup
            iconst_5
            bipush 9
            iastore
            dup
            bipush 6
            bipush 20
            iastore
            putstatic sun.security.pkcs12.PKCS12KeyStore.pkcs9Name:[I
         4: .line 136
            bipush 7
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            dup
            iconst_1
            iconst_2
            iastore
            dup
            iconst_2
            sipush 840
            iastore
            dup
            iconst_3
            ldc 113549
            iastore
            dup
            iconst_4
            iconst_1
            iastore
            dup
            iconst_5
            bipush 9
            iastore
            dup
            bipush 6
            bipush 21
            iastore
            putstatic sun.security.pkcs12.PKCS12KeyStore.pkcs9KeyId:[I
         5: .line 138
            bipush 8
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            dup
            iconst_1
            iconst_2
            iastore
            dup
            iconst_2
            sipush 840
            iastore
            dup
            iconst_3
            ldc 113549
            iastore
            dup
            iconst_4
            iconst_1
            iastore
            dup
            iconst_5
            bipush 9
            iastore
            dup
            bipush 6
            bipush 22
            iastore
            dup
            bipush 7
            iconst_1
            iastore
            putstatic sun.security.pkcs12.PKCS12KeyStore.pkcs9certType:[I
         6: .line 141
            bipush 8
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            dup
            iconst_1
            iconst_2
            iastore
            dup
            iconst_2
            sipush 840
            iastore
            dup
            iconst_3
            ldc 113549
            iastore
            dup
            iconst_4
            iconst_1
            iastore
            dup
            iconst_5
            bipush 12
            iastore
            dup
            bipush 6
            iconst_1
            iastore
            dup
            bipush 7
            bipush 6
            iastore
         7: .line 140
            putstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd40BitRC2CBC:[I
         8: .line 143
            bipush 8
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            dup
            iconst_1
            iconst_2
            iastore
            dup
            iconst_2
            sipush 840
            iastore
            dup
            iconst_3
            ldc 113549
            iastore
            dup
            iconst_4
            iconst_1
            iastore
            dup
            iconst_5
            bipush 12
            iastore
            dup
            bipush 6
            iconst_1
            iastore
            dup
            bipush 7
            iconst_3
            iastore
         9: .line 142
            putstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd3KeyTripleDESCBC:[I
        10: .line 165
            new sun.security.util.ObjectIdentifier
            dup
            getstatic sun.security.pkcs12.PKCS12KeyStore.keyBag:[I
            invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
            putstatic sun.security.pkcs12.PKCS12KeyStore.PKCS8ShroudedKeyBag_OID:Lsun/security/util/ObjectIdentifier;
        11: .line 166
            new sun.security.util.ObjectIdentifier
            dup
            getstatic sun.security.pkcs12.PKCS12KeyStore.certBag:[I
            invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
            putstatic sun.security.pkcs12.PKCS12KeyStore.CertBag_OID:Lsun/security/util/ObjectIdentifier;
        12: .line 167
            new sun.security.util.ObjectIdentifier
            dup
            getstatic sun.security.pkcs12.PKCS12KeyStore.pkcs9Name:[I
            invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
            putstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9FriendlyName_OID:Lsun/security/util/ObjectIdentifier;
        13: .line 168
            new sun.security.util.ObjectIdentifier
            dup
            getstatic sun.security.pkcs12.PKCS12KeyStore.pkcs9KeyId:[I
            invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
            putstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9LocalKeyId_OID:Lsun/security/util/ObjectIdentifier;
        14: .line 169
            new sun.security.util.ObjectIdentifier
            dup
            getstatic sun.security.pkcs12.PKCS12KeyStore.pkcs9certType:[I
            invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
            putstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9CertType_OID:Lsun/security/util/ObjectIdentifier;
        15: .line 171
            new sun.security.util.ObjectIdentifier
            dup
            getstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd40BitRC2CBC:[I
            invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
        16: .line 170
            putstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd40BitRC2CBC_OID:Lsun/security/util/ObjectIdentifier;
        17: .line 173
            new sun.security.util.ObjectIdentifier
            dup
            getstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd3KeyTripleDESCBC:[I
            invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
        18: .line 172
            putstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd3KeyTripleDESCBC_OID:Lsun/security/util/ObjectIdentifier;
        19: .line 174
            goto 21
      StackMap locals:
      StackMap stack: java.io.IOException
        20: pop
        21: .line 177
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
          10    19      20  Class java.io.IOException

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
         0: .line 121
            aload 0 /* this */
            invokespecial java.security.KeyStoreSpi.<init>:()V
         1: .line 153
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs12.PKCS12KeyStore.counter:I
         2: .line 158
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs12.PKCS12KeyStore.privateKeyCount:I
         3: .line 204
            aload 0 /* this */
         4: .line 205
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
         5: .line 207
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.security.pkcs12.PKCS12KeyStore.keyList:Ljava/util/ArrayList;
         6: .line 208
            aload 0 /* this */
         7: .line 209
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield sun.security.pkcs12.PKCS12KeyStore.certsMap:Ljava/util/LinkedHashMap;
         8: .line 210
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.security.pkcs12.PKCS12KeyStore.certEntries:Ljava/util/ArrayList;
         9: .line 121
            return
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lsun/security/pkcs12/PKCS12KeyStore;

  public java.security.Key engineGetKey(java.lang.String, char[]);
    descriptor: (Ljava/lang/String;[C)Ljava/security/Key;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=21, args_size=3
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.lang.String alias
        start local 2 // char[] password
         0: .line 230
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 1 /* alias */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            astore 3 /* entry */
        start local 3 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
         1: .line 231
            aconst_null
            astore 4 /* key */
        start local 4 // java.security.Key key
         2: .line 233
            aload 3 /* entry */
            ifnonnull 4
         3: .line 234
            aconst_null
            areturn
         4: .line 238
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.security.Key
      StackMap stack:
            aload 3 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.protectedPrivKey:[B
            astore 5 /* encrBytes */
        start local 5 // byte[] encrBytes
         5: .line 247
            new sun.security.pkcs.EncryptedPrivateKeyInfo
            dup
            aload 5 /* encrBytes */
            invokespecial sun.security.pkcs.EncryptedPrivateKeyInfo.<init>:([B)V
         6: .line 246
            astore 9 /* encrInfo */
        start local 9 // sun.security.pkcs.EncryptedPrivateKeyInfo encrInfo
         7: .line 248
            aload 9 /* encrInfo */
            invokevirtual sun.security.pkcs.EncryptedPrivateKeyInfo.getEncryptedData:()[B
            astore 6 /* encryptedKey */
        start local 6 // byte[] encryptedKey
         8: .line 251
            new sun.security.util.DerValue
            dup
            aload 9 /* encrInfo */
            invokevirtual sun.security.pkcs.EncryptedPrivateKeyInfo.getAlgorithm:()Lsun/security/x509/AlgorithmId;
            invokevirtual sun.security.x509.AlgorithmId.encode:()[B
            invokespecial sun.security.util.DerValue.<init>:([B)V
            astore 10 /* val */
        start local 10 // sun.security.util.DerValue val
         9: .line 252
            aload 10 /* val */
            invokevirtual sun.security.util.DerValue.toDerInputStream:()Lsun/security/util/DerInputStream;
            astore 11 /* in */
        start local 11 // sun.security.util.DerInputStream in
        10: .line 253
            aload 11 /* in */
            invokevirtual sun.security.util.DerInputStream.getOID:()Lsun/security/util/ObjectIdentifier;
            astore 8 /* algOid */
        start local 8 // sun.security.util.ObjectIdentifier algOid
        11: .line 254
            aload 0 /* this */
            aload 11 /* in */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.parseAlgParameters:(Lsun/security/util/DerInputStream;)Ljava/security/AlgorithmParameters;
            astore 7 /* algParams */
        end local 11 // sun.security.util.DerInputStream in
        end local 10 // sun.security.util.DerValue val
        end local 9 // sun.security.pkcs.EncryptedPrivateKeyInfo encrInfo
        start local 7 // java.security.AlgorithmParameters algParams
        12: .line 256
            goto 20
        end local 8 // sun.security.util.ObjectIdentifier algOid
        end local 7 // java.security.AlgorithmParameters algParams
        end local 6 // byte[] encryptedKey
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String char[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.security.Key byte[]
      StackMap stack: java.io.IOException
        13: astore 9 /* ioe */
        start local 9 // java.io.IOException ioe
        14: .line 258
            new java.security.UnrecoverableKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Private key not stored as PKCS#8 EncryptedPrivateKeyInfo: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 259
            aload 9 /* ioe */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 258
            invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
        17: .line 257
            astore 10 /* uke */
        start local 10 // java.security.UnrecoverableKeyException uke
        18: .line 260
            aload 10 /* uke */
            aload 9 /* ioe */
            invokevirtual java.security.UnrecoverableKeyException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        19: .line 261
            aload 10 /* uke */
            athrow
        end local 10 // java.security.UnrecoverableKeyException uke
        end local 9 // java.io.IOException ioe
        start local 6 // byte[] encryptedKey
        start local 7 // java.security.AlgorithmParameters algParams
        start local 8 // sun.security.util.ObjectIdentifier algOid
        20: .line 266
      StackMap locals: byte[] java.security.AlgorithmParameters sun.security.util.ObjectIdentifier
      StackMap stack:
            iconst_0
            istore 10 /* ic */
        start local 10 // int ic
        21: .line 268
            aload 7 /* algParams */
            ifnull 30
        22: .line 271
            aload 7 /* algParams */
            ldc Ljavax/crypto/spec/PBEParameterSpec;
            invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
            checkcast javax.crypto.spec.PBEParameterSpec
        23: .line 270
            astore 9 /* pbeSpec */
        start local 9 // javax.crypto.spec.PBEParameterSpec pbeSpec
        24: .line 272
            goto 27
        end local 9 // javax.crypto.spec.PBEParameterSpec pbeSpec
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String char[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.security.Key byte[] byte[] java.security.AlgorithmParameters sun.security.util.ObjectIdentifier top int
      StackMap stack: java.security.spec.InvalidParameterSpecException
        25: pop
        26: .line 273
            new java.io.IOException
            dup
            ldc "Invalid PBE algorithm parameters"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        start local 9 // javax.crypto.spec.PBEParameterSpec pbeSpec
        27: .line 275
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String char[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.security.Key byte[] byte[] java.security.AlgorithmParameters sun.security.util.ObjectIdentifier javax.crypto.spec.PBEParameterSpec int
      StackMap stack:
            aload 9 /* pbeSpec */
            invokevirtual javax.crypto.spec.PBEParameterSpec.getIterationCount:()I
            istore 10 /* ic */
        28: .line 277
            iload 10 /* ic */
            ldc 5000000
            if_icmple 30
        29: .line 278
            new java.io.IOException
            dup
            ldc "PBE iteration count too large"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // javax.crypto.spec.PBEParameterSpec pbeSpec
        30: .line 283
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String char[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.security.Key byte[] byte[] java.security.AlgorithmParameters sun.security.util.ObjectIdentifier top int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* password */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEKey:([C)Ljavax/crypto/SecretKey;
            astore 11 /* skey */
        start local 11 // javax.crypto.SecretKey skey
        31: .line 284
            aload 8 /* algOid */
            invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 12 /* cipher */
        start local 12 // javax.crypto.Cipher cipher
        32: .line 285
            aload 12 /* cipher */
            iconst_2
            aload 11 /* skey */
            aload 7 /* algParams */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
        33: .line 286
            aload 12 /* cipher */
            aload 6 /* encryptedKey */
            invokevirtual javax.crypto.Cipher.doFinal:([B)[B
            astore 13 /* privateKeyInfo */
        start local 13 // byte[] privateKeyInfo
        34: .line 288
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 13 /* privateKeyInfo */
            invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
            astore 14 /* kspec */
        start local 14 // java.security.spec.PKCS8EncodedKeySpec kspec
        35: .line 294
            new sun.security.util.DerValue
            dup
            aload 13 /* privateKeyInfo */
            invokespecial sun.security.util.DerValue.<init>:([B)V
            astore 15 /* val */
        start local 15 // sun.security.util.DerValue val
        36: .line 295
            aload 15 /* val */
            invokevirtual sun.security.util.DerValue.toDerInputStream:()Lsun/security/util/DerInputStream;
            astore 16 /* in */
        start local 16 // sun.security.util.DerInputStream in
        37: .line 296
            aload 16 /* in */
            invokevirtual sun.security.util.DerInputStream.getInteger:()I
            pop
        38: .line 297
            aload 16 /* in */
            iconst_2
            invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
            astore 17 /* value */
        start local 17 // sun.security.util.DerValue[] value
        39: .line 298
            new sun.security.x509.AlgorithmId
            dup
            aload 17 /* value */
            iconst_0
            aaload
            invokevirtual sun.security.util.DerValue.getOID:()Lsun/security/util/ObjectIdentifier;
            invokespecial sun.security.x509.AlgorithmId.<init>:(Lsun/security/util/ObjectIdentifier;)V
            astore 18 /* algId */
        start local 18 // sun.security.x509.AlgorithmId algId
        40: .line 299
            aload 18 /* algId */
            invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
            astore 19 /* algName */
        start local 19 // java.lang.String algName
        41: .line 301
            aload 19 /* algName */
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
            astore 20 /* kfac */
        start local 20 // java.security.KeyFactory kfac
        42: .line 302
            aload 20 /* kfac */
            aload 14 /* kspec */
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
            astore 4 /* key */
        end local 20 // java.security.KeyFactory kfac
        end local 19 // java.lang.String algName
        end local 18 // sun.security.x509.AlgorithmId algId
        end local 17 // sun.security.util.DerValue[] value
        end local 16 // sun.security.util.DerInputStream in
        end local 15 // sun.security.util.DerValue val
        end local 14 // java.security.spec.PKCS8EncodedKeySpec kspec
        end local 13 // byte[] privateKeyInfo
        end local 12 // javax.crypto.Cipher cipher
        end local 11 // javax.crypto.SecretKey skey
        end local 10 // int ic
        43: .line 303
            goto 51
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String char[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.security.Key byte[] byte[] java.security.AlgorithmParameters sun.security.util.ObjectIdentifier
      StackMap stack: java.lang.Exception
        44: astore 9 /* e */
        start local 9 // java.lang.Exception e
        45: .line 305
            new java.security.UnrecoverableKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Get Key failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        46: .line 306
            aload 9 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        47: .line 305
            invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
        48: .line 304
            astore 10 /* uke */
        start local 10 // java.security.UnrecoverableKeyException uke
        49: .line 307
            aload 10 /* uke */
            aload 9 /* e */
            invokevirtual java.security.UnrecoverableKeyException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        50: .line 308
            aload 10 /* uke */
            athrow
        end local 10 // java.security.UnrecoverableKeyException uke
        end local 9 // java.lang.Exception e
        51: .line 310
      StackMap locals:
      StackMap stack:
            aload 4 /* key */
            areturn
        end local 8 // sun.security.util.ObjectIdentifier algOid
        end local 7 // java.security.AlgorithmParameters algParams
        end local 6 // byte[] encryptedKey
        end local 5 // byte[] encrBytes
        end local 4 // java.security.Key key
        end local 3 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        end local 2 // char[] password
        end local 1 // java.lang.String alias
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   52     0            this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   52     1           alias  Ljava/lang/String;
            0   52     2        password  [C
            1   52     3           entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
            2   52     4             key  Ljava/security/Key;
            5   52     5       encrBytes  [B
            8   13     6    encryptedKey  [B
           20   52     6    encryptedKey  [B
           12   13     7       algParams  Ljava/security/AlgorithmParameters;
           20   52     7       algParams  Ljava/security/AlgorithmParameters;
           11   13     8          algOid  Lsun/security/util/ObjectIdentifier;
           20   52     8          algOid  Lsun/security/util/ObjectIdentifier;
            7   12     9        encrInfo  Lsun/security/pkcs/EncryptedPrivateKeyInfo;
            9   12    10             val  Lsun/security/util/DerValue;
           10   12    11              in  Lsun/security/util/DerInputStream;
           14   20     9             ioe  Ljava/io/IOException;
           18   20    10             uke  Ljava/security/UnrecoverableKeyException;
           24   25     9         pbeSpec  Ljavax/crypto/spec/PBEParameterSpec;
           27   30     9         pbeSpec  Ljavax/crypto/spec/PBEParameterSpec;
           21   43    10              ic  I
           31   43    11            skey  Ljavax/crypto/SecretKey;
           32   43    12          cipher  Ljavax/crypto/Cipher;
           34   43    13  privateKeyInfo  [B
           35   43    14           kspec  Ljava/security/spec/PKCS8EncodedKeySpec;
           36   43    15             val  Lsun/security/util/DerValue;
           37   43    16              in  Lsun/security/util/DerInputStream;
           39   43    17           value  [Lsun/security/util/DerValue;
           40   43    18           algId  Lsun/security/x509/AlgorithmId;
           41   43    19         algName  Ljava/lang/String;
           42   43    20            kfac  Ljava/security/KeyFactory;
           45   51     9               e  Ljava/lang/Exception;
           49   51    10             uke  Ljava/security/UnrecoverableKeyException;
      Exception table:
        from    to  target  type
           5    12      13  Class java.io.IOException
          22    24      25  Class java.security.spec.InvalidParameterSpecException
          20    43      44  Class java.lang.Exception
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    MethodParameters:
          Name  Flags
      alias     
      password  

  public java.security.cert.Certificate[] engineGetCertificateChain(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/security/cert/Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 325
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 1 /* alias */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            astore 2 /* entry */
        start local 2 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
         1: .line 326
            aload 2 /* entry */
            ifnull 5
         2: .line 327
            aload 2 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
            ifnonnull 4
         3: .line 328
            aconst_null
            areturn
         4: .line 330
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
      StackMap stack:
            aload 2 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
            invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            areturn
         5: .line 333
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        end local 1 // java.lang.String alias
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lsun/security/pkcs12/PKCS12KeyStore;
            0    6     1  alias  Ljava/lang/String;
            1    6     2  entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
    MethodParameters:
       Name  Flags
      alias  

  public java.security.cert.Certificate engineGetCertificate(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/security/cert/Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 353
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 1 /* alias */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            astore 2 /* entry */
        start local 2 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
         1: .line 354
            aload 2 /* entry */
            ifnull 5
         2: .line 355
            aload 2 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
            ifnonnull 4
         3: .line 356
            aconst_null
            areturn
         4: .line 358
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
      StackMap stack:
            aload 2 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
            iconst_0
            aaload
            areturn
         5: .line 361
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        end local 1 // java.lang.String alias
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lsun/security/pkcs12/PKCS12KeyStore;
            0    6     1  alias  Ljava/lang/String;
            1    6     2  entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
    MethodParameters:
       Name  Flags
      alias  

  public java.util.Date engineGetCreationDate(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Date;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 374
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 1 /* alias */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            astore 2 /* entry */
        start local 2 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
         1: .line 375
            aload 2 /* entry */
            ifnull 3
         2: .line 376
            new java.util.Date
            dup
            aload 2 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.date:Ljava/util/Date;
            invokevirtual java.util.Date.getTime:()J
            invokespecial java.util.Date.<init>:(J)V
            areturn
         3: .line 378
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
      StackMap stack:
            aconst_null
            areturn
        end local 2 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        end local 1 // java.lang.String alias
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lsun/security/pkcs12/PKCS12KeyStore;
            0    4     1  alias  Ljava/lang/String;
            1    4     2  entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
    MethodParameters:
       Name  Flags
      alias  

  public synchronized void engineSetKeyEntry(java.lang.String, java.security.Key, char[], java.security.cert.Certificate[]);
    descriptor: (Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.lang.String alias
        start local 2 // java.security.Key key
        start local 3 // char[] password
        start local 4 // java.security.cert.Certificate[] chain
         0: .line 409
            new sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            dup
            invokespecial sun.security.pkcs12.PKCS12KeyStore$KeyEntry.<init>:()V
            astore 5 /* entry */
        start local 5 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
         1: .line 410
            aload 5 /* entry */
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.date:Ljava/util/Date;
         2: .line 412
            aload 2 /* key */
            instanceof java.security.PrivateKey
            ifeq 10
         3: .line 413
            aload 2 /* key */
            invokeinterface java.security.Key.getFormat:()Ljava/lang/String;
            ldc "PKCS#8"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 414
            aload 2 /* key */
            invokeinterface java.security.Key.getFormat:()Ljava/lang/String;
            ldc "PKCS8"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         5: .line 416
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
      StackMap stack:
            aload 5 /* entry */
         6: .line 417
            aload 0 /* this */
            aload 2 /* key */
            invokeinterface java.security.Key.getEncoded:()[B
            aload 3 /* password */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.encryptPrivateKey:([B[C)[B
         7: .line 416
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.protectedPrivKey:[B
         8: .line 418
            goto 11
         9: .line 419
      StackMap locals:
      StackMap stack:
            new java.security.KeyStoreException
            dup
            ldc "Private key is not encodedas PKCS#8"
            invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 423
      StackMap locals:
      StackMap stack:
            new java.security.KeyStoreException
            dup
            ldc "Key is not a PrivateKey"
            invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 427
      StackMap locals:
      StackMap stack:
            aload 4 /* chain */
            ifnull 15
        12: .line 429
            aload 4 /* chain */
            arraylength
            iconst_1
            if_icmple 14
            aload 0 /* this */
            aload 4 /* chain */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.validateChain:([Ljava/security/cert/Certificate;)Z
            ifne 14
        13: .line 430
            new java.security.KeyStoreException
            dup
            ldc "Certificate chain is not validate"
            invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 432
      StackMap locals:
      StackMap stack:
            aload 5 /* entry */
            aload 4 /* chain */
            invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
        15: .line 436
      StackMap locals:
      StackMap stack:
            aload 5 /* entry */
            new java.lang.StringBuilder
            dup
            ldc "Time "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.date:Ljava/util/Date;
            invokevirtual java.util.Date.getTime:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc "UTF8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
        16: .line 438
            aload 5 /* entry */
            aload 1 /* alias */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.alias:Ljava/lang/String;
        17: .line 441
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 1 /* alias */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            aload 5 /* entry */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        18: .line 442
            goto 23
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String java.security.Key char[] java.security.cert.Certificate[]
      StackMap stack: java.lang.Exception
        19: astore 5 /* nsae */
        start local 5 // java.lang.Exception nsae
        20: .line 443
            new java.security.KeyStoreException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Key protection  algorithm not found: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        21: .line 444
            aload 5 /* nsae */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* nsae */
        22: .line 443
            invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Exception nsae
        23: .line 446
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.security.cert.Certificate[] chain
        end local 3 // char[] password
        end local 2 // java.security.Key key
        end local 1 // java.lang.String alias
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   24     1     alias  Ljava/lang/String;
            0   24     2       key  Ljava/security/Key;
            0   24     3  password  [C
            0   24     4     chain  [Ljava/security/cert/Certificate;
            1   18     5     entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
           20   23     5      nsae  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    18      19  Class java.lang.Exception
    Exceptions:
      throws java.security.KeyStoreException
    MethodParameters:
          Name  Flags
      alias     
      key       
      password  
      chain     

  public synchronized void engineSetKeyEntry(java.lang.String, byte[], java.security.cert.Certificate[]);
    descriptor: (Ljava/lang/String;[B[Ljava/security/cert/Certificate;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.lang.String alias
        start local 2 // byte[] key
        start local 3 // java.security.cert.Certificate[] chain
         0: .line 478
            new sun.security.pkcs.EncryptedPrivateKeyInfo
            aload 2 /* key */
            invokespecial sun.security.pkcs.EncryptedPrivateKeyInfo.<init>:([B)V
         1: .line 479
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
         3: .line 480
            new java.security.KeyStoreException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Private key is not stored as PKCS#8 EncryptedPrivateKeyInfo: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 481
            aload 4 /* ioe */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* ioe */
         5: .line 480
            invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException ioe
         6: .line 484
      StackMap locals:
      StackMap stack:
            new sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            dup
            invokespecial sun.security.pkcs12.PKCS12KeyStore$KeyEntry.<init>:()V
            astore 4 /* entry */
        start local 4 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
         7: .line 485
            aload 4 /* entry */
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.date:Ljava/util/Date;
         8: .line 489
            aload 4 /* entry */
            new java.lang.StringBuilder
            dup
            ldc "Time "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.date:Ljava/util/Date;
            invokevirtual java.util.Date.getTime:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc "UTF8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
         9: .line 490
            goto 11
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String byte[] java.security.cert.Certificate[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry
      StackMap stack: java.io.UnsupportedEncodingException
        10: pop
        11: .line 494
      StackMap locals:
      StackMap stack:
            aload 4 /* entry */
            aload 1 /* alias */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.alias:Ljava/lang/String;
        12: .line 496
            aload 4 /* entry */
            aload 2 /* key */
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.protectedPrivKey:[B
        13: .line 497
            aload 3 /* chain */
            ifnull 17
        14: .line 499
            aload 3 /* chain */
            arraylength
            iconst_1
            if_icmple 16
            aload 0 /* this */
            aload 3 /* chain */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.validateChain:([Ljava/security/cert/Certificate;)Z
            ifne 16
        15: .line 500
            new java.security.KeyStoreException
            dup
            ldc "Certificate chain is not valid"
            invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 503
      StackMap locals:
      StackMap stack:
            aload 4 /* entry */
            aload 3 /* chain */
            invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
        17: .line 507
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 1 /* alias */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            aload 4 /* entry */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 508
            return
        end local 4 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        end local 3 // java.security.cert.Certificate[] chain
        end local 2 // byte[] key
        end local 1 // java.lang.String alias
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   19     0   this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   19     1  alias  Ljava/lang/String;
            0   19     2    key  [B
            0   19     3  chain  [Ljava/security/cert/Certificate;
            3    6     4    ioe  Ljava/io/IOException;
            7   19     4  entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
           8     9      10  Class java.io.UnsupportedEncodingException
    Exceptions:
      throws java.security.KeyStoreException
    MethodParameters:
       Name  Flags
      alias  
      key    
      chain  

  private byte[] getSalt();
    descriptor: ()[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
         0: .line 517
            bipush 20
            newarray 8
            astore 1 /* salt */
        start local 1 // byte[] salt
         1: .line 518
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.random:Ljava/security/SecureRandom;
            ifnonnull 3
         2: .line 519
            aload 0 /* this */
            new java.security.SecureRandom
            dup
            invokespecial java.security.SecureRandom.<init>:()V
            putfield sun.security.pkcs12.PKCS12KeyStore.random:Ljava/security/SecureRandom;
         3: .line 521
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.random:Ljava/security/SecureRandom;
            aload 1 /* salt */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         4: .line 522
            aload 1 /* salt */
            areturn
        end local 1 // byte[] salt
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/security/pkcs12/PKCS12KeyStore;
            1    5     1  salt  [B

  private java.security.AlgorithmParameters getPBEAlgorithmParameters(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/security/AlgorithmParameters;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.lang.String algorithm
         0: .line 531
            aconst_null
            astore 2 /* algParams */
        start local 2 // java.security.AlgorithmParameters algParams
         1: .line 535
            new javax.crypto.spec.PBEParameterSpec
            dup
            aload 0 /* this */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getSalt:()[B
            ldc 50000
            invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
         2: .line 534
            astore 3 /* paramSpec */
        start local 3 // javax.crypto.spec.PBEParameterSpec paramSpec
         3: .line 537
            aload 1 /* algorithm */
            invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
            astore 2 /* algParams */
         4: .line 538
            aload 2 /* algParams */
            aload 3 /* paramSpec */
            invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
         5: .line 539
            goto 10
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String java.security.AlgorithmParameters javax.crypto.spec.PBEParameterSpec
      StackMap stack: java.lang.Exception
         6: astore 4 /* e */
        start local 4 // java.lang.Exception e
         7: .line 540
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "getPBEAlgorithmParameters failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 541
            aload 4 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* e */
         9: .line 540
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        10: .line 543
      StackMap locals:
      StackMap stack:
            aload 2 /* algParams */
            areturn
        end local 3 // javax.crypto.spec.PBEParameterSpec paramSpec
        end local 2 // java.security.AlgorithmParameters algParams
        end local 1 // java.lang.String algorithm
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   11     1  algorithm  Ljava/lang/String;
            1   11     2  algParams  Ljava/security/AlgorithmParameters;
            3   11     3  paramSpec  Ljavax/crypto/spec/PBEParameterSpec;
            7   10     4          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     5       6  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      algorithm  

  private java.security.AlgorithmParameters parseAlgParameters(sun.security.util.DerInputStream);
    descriptor: (Lsun/security/util/DerInputStream;)Ljava/security/AlgorithmParameters;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // sun.security.util.DerInputStream in
         0: .line 552
            aconst_null
            astore 2 /* algParams */
        start local 2 // java.security.AlgorithmParameters algParams
         1: .line 555
            aload 1 /* in */
            invokevirtual sun.security.util.DerInputStream.available:()I
            ifne 4
         2: .line 556
            aconst_null
            astore 3 /* params */
        start local 3 // sun.security.util.DerValue params
         3: .line 557
            goto 7
        end local 3 // sun.security.util.DerValue params
         4: .line 558
      StackMap locals: java.security.AlgorithmParameters
      StackMap stack:
            aload 1 /* in */
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 3 /* params */
        start local 3 // sun.security.util.DerValue params
         5: .line 559
            aload 3 /* params */
            getfield sun.security.util.DerValue.tag:B
            iconst_5
            if_icmpne 7
         6: .line 560
            aconst_null
            astore 3 /* params */
         7: .line 563
      StackMap locals: sun.security.util.DerValue
      StackMap stack:
            aload 3 /* params */
            ifnull 15
         8: .line 564
            ldc "PBE"
            invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
            astore 2 /* algParams */
         9: .line 565
            aload 2 /* algParams */
            aload 3 /* params */
            invokevirtual sun.security.util.DerValue.toByteArray:()[B
            invokevirtual java.security.AlgorithmParameters.init:([B)V
        end local 3 // sun.security.util.DerValue params
        10: .line 567
            goto 15
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerInputStream java.security.AlgorithmParameters
      StackMap stack: java.lang.Exception
        11: astore 3 /* e */
        start local 3 // java.lang.Exception e
        12: .line 568
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "parseAlgParameters failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 569
            aload 3 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
        14: .line 568
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception e
        15: .line 571
      StackMap locals:
      StackMap stack:
            aload 2 /* algParams */
            areturn
        end local 2 // java.security.AlgorithmParameters algParams
        end local 1 // sun.security.util.DerInputStream in
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   16     1         in  Lsun/security/util/DerInputStream;
            1   16     2  algParams  Ljava/security/AlgorithmParameters;
            3    4     3     params  Lsun/security/util/DerValue;
            5   10     3     params  Lsun/security/util/DerValue;
           12   15     3          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1    10      11  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  private javax.crypto.SecretKey getPBEKey(char[]);
    descriptor: ([C)Ljavax/crypto/SecretKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // char[] password
         0: .line 579
            aconst_null
            astore 2 /* skey */
        start local 2 // javax.crypto.SecretKey skey
         1: .line 582
            new javax.crypto.spec.PBEKeySpec
            dup
            aload 1 /* password */
            invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
            astore 3 /* keySpec */
        start local 3 // javax.crypto.spec.PBEKeySpec keySpec
         2: .line 583
            ldc "PBE"
            invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
            astore 4 /* skFac */
        start local 4 // javax.crypto.SecretKeyFactory skFac
         3: .line 584
            aload 4 /* skFac */
            aload 3 /* keySpec */
            invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
            astore 2 /* skey */
        end local 4 // javax.crypto.SecretKeyFactory skFac
        end local 3 // javax.crypto.spec.PBEKeySpec keySpec
         4: .line 585
            goto 9
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore char[] javax.crypto.SecretKey
      StackMap stack: java.lang.Exception
         5: astore 3 /* e */
        start local 3 // java.lang.Exception e
         6: .line 586
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "getSecretKey failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 587
            aload 3 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
         8: .line 586
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception e
         9: .line 589
      StackMap locals:
      StackMap stack:
            aload 2 /* skey */
            areturn
        end local 2 // javax.crypto.SecretKey skey
        end local 1 // char[] password
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   10     1  password  [C
            1   10     2      skey  Ljavax/crypto/SecretKey;
            2    4     3   keySpec  Ljavax/crypto/spec/PBEKeySpec;
            3    4     4     skFac  Ljavax/crypto/SecretKeyFactory;
            6    9     3         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      password  

  private byte[] encryptPrivateKey(byte[], char[]);
    descriptor: ([B[C)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // byte[] data
        start local 2 // char[] password
         0: .line 604
            aconst_null
            astore 3 /* key */
        start local 3 // byte[] key
         1: .line 609
            aload 0 /* this */
            ldc "PBEWithSHA1AndDESede"
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEAlgorithmParameters:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
         2: .line 608
            astore 4 /* algParams */
        start local 4 // java.security.AlgorithmParameters algParams
         3: .line 612
            aload 0 /* this */
            aload 2 /* password */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEKey:([C)Ljavax/crypto/SecretKey;
            astore 5 /* skey */
        start local 5 // javax.crypto.SecretKey skey
         4: .line 613
            ldc "PBEWithSHA1AndDESede"
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 6 /* cipher */
        start local 6 // javax.crypto.Cipher cipher
         5: .line 614
            aload 6 /* cipher */
            iconst_1
            aload 5 /* skey */
            aload 4 /* algParams */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
         6: .line 615
            aload 6 /* cipher */
            aload 1 /* data */
            invokevirtual javax.crypto.Cipher.doFinal:([B)[B
            astore 7 /* encryptedKey */
        start local 7 // byte[] encryptedKey
         7: .line 620
            new sun.security.x509.AlgorithmId
            dup
            getstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd3KeyTripleDESCBC_OID:Lsun/security/util/ObjectIdentifier;
            aload 4 /* algParams */
            invokespecial sun.security.x509.AlgorithmId.<init>:(Lsun/security/util/ObjectIdentifier;Ljava/security/AlgorithmParameters;)V
         8: .line 619
            astore 8 /* algid */
        start local 8 // sun.security.x509.AlgorithmId algid
         9: .line 622
            new sun.security.pkcs.EncryptedPrivateKeyInfo
            dup
            aload 8 /* algid */
            aload 7 /* encryptedKey */
            invokespecial sun.security.pkcs.EncryptedPrivateKeyInfo.<init>:(Lsun/security/x509/AlgorithmId;[B)V
        10: .line 621
            astore 9 /* encrInfo */
        start local 9 // sun.security.pkcs.EncryptedPrivateKeyInfo encrInfo
        11: .line 623
            aload 9 /* encrInfo */
            invokevirtual sun.security.pkcs.EncryptedPrivateKeyInfo.getEncoded:()[B
            astore 3 /* key */
        end local 9 // sun.security.pkcs.EncryptedPrivateKeyInfo encrInfo
        end local 8 // sun.security.x509.AlgorithmId algid
        end local 7 // byte[] encryptedKey
        end local 6 // javax.crypto.Cipher cipher
        end local 5 // javax.crypto.SecretKey skey
        end local 4 // java.security.AlgorithmParameters algParams
        12: .line 624
            goto 20
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore byte[] char[] byte[]
      StackMap stack: java.lang.Exception
        13: astore 4 /* e */
        start local 4 // java.lang.Exception e
        14: .line 626
            new java.security.UnrecoverableKeyException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Encrypt Private Key failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 627
            aload 4 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 626
            invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
        17: .line 625
            astore 5 /* uke */
        start local 5 // java.security.UnrecoverableKeyException uke
        18: .line 628
            aload 5 /* uke */
            aload 4 /* e */
            invokevirtual java.security.UnrecoverableKeyException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        19: .line 629
            aload 5 /* uke */
            athrow
        end local 5 // java.security.UnrecoverableKeyException uke
        end local 4 // java.lang.Exception e
        20: .line 632
      StackMap locals:
      StackMap stack:
            aload 3 /* key */
            areturn
        end local 3 // byte[] key
        end local 2 // char[] password
        end local 1 // byte[] data
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0          this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   21     1          data  [B
            0   21     2      password  [C
            1   21     3           key  [B
            3   12     4     algParams  Ljava/security/AlgorithmParameters;
            4   12     5          skey  Ljavax/crypto/SecretKey;
            5   12     6        cipher  Ljavax/crypto/Cipher;
            7   12     7  encryptedKey  [B
            9   12     8         algid  Lsun/security/x509/AlgorithmId;
           11   12     9      encrInfo  Lsun/security/pkcs/EncryptedPrivateKeyInfo;
           14   20     4             e  Ljava/lang/Exception;
           18   20     5           uke  Ljava/security/UnrecoverableKeyException;
      Exception table:
        from    to  target  type
           1    12      13  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    MethodParameters:
          Name  Flags
      data      
      password  

  public synchronized void engineSetCertificateEntry(java.lang.String, java.security.cert.Certificate);
    descriptor: (Ljava/lang/String;Ljava/security/cert/Certificate;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.lang.String alias
        start local 2 // java.security.cert.Certificate cert
         0: .line 652
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 1 /* alias */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            astore 3 /* entry */
        start local 3 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
         1: .line 653
            aload 3 /* entry */
            ifnull 3
         2: .line 654
            new java.security.KeyStoreException
            dup
            ldc "Cannot overwrite own certificate"
            invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 656
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
      StackMap stack:
            new java.security.KeyStoreException
            dup
            ldc "TrustedCertEntry not supported"
            invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        end local 2 // java.security.cert.Certificate cert
        end local 1 // java.lang.String alias
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lsun/security/pkcs12/PKCS12KeyStore;
            0    4     1  alias  Ljava/lang/String;
            0    4     2   cert  Ljava/security/cert/Certificate;
            1    4     3  entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
    Exceptions:
      throws java.security.KeyStoreException
    MethodParameters:
       Name  Flags
      alias  
      cert   

  public synchronized void engineDeleteEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 669
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 1 /* alias */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 670
            return
        end local 1 // java.lang.String alias
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lsun/security/pkcs12/PKCS12KeyStore;
            0    2     1  alias  Ljava/lang/String;
    Exceptions:
      throws java.security.KeyStoreException
    MethodParameters:
       Name  Flags
      alias  

  public java.util.Enumeration<java.lang.String> engineAliases();
    descriptor: ()Ljava/util/Enumeration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
         0: .line 678
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
            areturn
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs12/PKCS12KeyStore;
    Signature: ()Ljava/util/Enumeration<Ljava/lang/String;>;

  public boolean engineContainsAlias(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 689
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 1 /* alias */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.String alias
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lsun/security/pkcs12/PKCS12KeyStore;
            0    1     1  alias  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      alias  

  public int engineSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
         0: .line 698
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.size:()I
            ireturn
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/pkcs12/PKCS12KeyStore;

  public boolean engineIsKeyEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 709
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 1 /* alias */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            astore 2 /* entry */
        start local 2 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
         1: .line 710
            aload 2 /* entry */
            ifnull 3
         2: .line 711
            iconst_1
            ireturn
         3: .line 713
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        end local 1 // java.lang.String alias
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lsun/security/pkcs12/PKCS12KeyStore;
            0    4     1  alias  Ljava/lang/String;
            1    4     2  entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
    MethodParameters:
       Name  Flags
      alias  

  public boolean engineIsCertificateEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 726
            iconst_0
            ireturn
        end local 1 // java.lang.String alias
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lsun/security/pkcs12/PKCS12KeyStore;
            0    1     1  alias  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      alias  

  public java.lang.String engineGetCertificateAlias(java.security.cert.Certificate);
    descriptor: (Ljava/security/cert/Certificate;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.security.cert.Certificate cert
         0: .line 746
            aconst_null
            astore 2 /* certElem */
        start local 2 // java.security.cert.Certificate certElem
         1: .line 748
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
            astore 3 /* e */
        start local 3 // java.util.Enumeration e
         2: goto 9
         3: .line 749
      StackMap locals: java.security.cert.Certificate java.util.Enumeration
      StackMap stack:
            aload 3 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* alias */
        start local 4 // java.lang.String alias
         4: .line 750
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 4 /* alias */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            astore 5 /* entry */
        start local 5 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
         5: .line 751
            aload 5 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
            ifnull 7
         6: .line 752
            aload 5 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
            iconst_0
            aaload
            astore 2 /* certElem */
         7: .line 754
      StackMap locals: java.lang.String sun.security.pkcs12.PKCS12KeyStore$KeyEntry
      StackMap stack:
            aload 2 /* certElem */
            aload 1 /* cert */
            invokevirtual java.security.cert.Certificate.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 755
            aload 4 /* alias */
            areturn
        end local 5 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        end local 4 // java.lang.String alias
         9: .line 748
      StackMap locals:
      StackMap stack:
            aload 3 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
        end local 3 // java.util.Enumeration e
        10: .line 758
            aconst_null
            areturn
        end local 2 // java.security.cert.Certificate certElem
        end local 1 // java.security.cert.Certificate cert
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   11     1      cert  Ljava/security/cert/Certificate;
            1   11     2  certElem  Ljava/security/cert/Certificate;
            2   10     3         e  Ljava/util/Enumeration<Ljava/lang/String;>;
            4    9     4     alias  Ljava/lang/String;
            5    9     5     entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
    MethodParameters:
      Name  Flags
      cert  

  public synchronized void engineStore(java.io.OutputStream, char[]);
    descriptor: (Ljava/io/OutputStream;[C)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=19, args_size=3
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.io.OutputStream stream
        start local 2 // char[] password
         0: .line 778
            aload 2 /* password */
            ifnonnull 2
         1: .line 779
            new java.lang.IllegalArgumentException
            dup
            ldc "password can't be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 783
      StackMap locals:
      StackMap stack:
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 3 /* pfx */
        start local 3 // sun.security.util.DerOutputStream pfx
         3: .line 786
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 4 /* version */
        start local 4 // sun.security.util.DerOutputStream version
         4: .line 787
            aload 4 /* version */
            iconst_3
            invokevirtual sun.security.util.DerOutputStream.putInteger:(I)V
         5: .line 788
            aload 4 /* version */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            astore 5 /* pfxVersion */
        start local 5 // byte[] pfxVersion
         6: .line 789
            aload 3 /* pfx */
            aload 5 /* pfxVersion */
            invokevirtual sun.security.util.DerOutputStream.write:([B)V
         7: .line 792
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 6 /* authSafe */
        start local 6 // sun.security.util.DerOutputStream authSafe
         8: .line 795
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 7 /* authSafeContentInfo */
        start local 7 // sun.security.util.DerOutputStream authSafeContentInfo
         9: .line 798
            aload 0 /* this */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.createSafeContent:()[B
            astore 8 /* safeContentData */
        start local 8 // byte[] safeContentData
        10: .line 799
            new sun.security.pkcs.ContentInfo
            dup
            aload 8 /* safeContentData */
            invokespecial sun.security.pkcs.ContentInfo.<init>:([B)V
            astore 9 /* dataContentInfo */
        start local 9 // sun.security.pkcs.ContentInfo dataContentInfo
        11: .line 800
            aload 9 /* dataContentInfo */
            aload 7 /* authSafeContentInfo */
            invokevirtual sun.security.pkcs.ContentInfo.encode:(Lsun/security/util/DerOutputStream;)V
        12: .line 803
            aload 0 /* this */
            aload 2 /* password */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.createEncryptedData:([C)[B
            astore 10 /* encrData */
        start local 10 // byte[] encrData
        13: .line 805
            new sun.security.pkcs.ContentInfo
            dup
            getstatic sun.security.pkcs.ContentInfo.ENCRYPTED_DATA_OID:Lsun/security/util/ObjectIdentifier;
        14: .line 806
            new sun.security.util.DerValue
            dup
            aload 10 /* encrData */
            invokespecial sun.security.util.DerValue.<init>:([B)V
        15: .line 805
            invokespecial sun.security.pkcs.ContentInfo.<init>:(Lsun/security/util/ObjectIdentifier;Lsun/security/util/DerValue;)V
        16: .line 804
            astore 11 /* encrContentInfo */
        start local 11 // sun.security.pkcs.ContentInfo encrContentInfo
        17: .line 807
            aload 11 /* encrContentInfo */
            aload 7 /* authSafeContentInfo */
            invokevirtual sun.security.pkcs.ContentInfo.encode:(Lsun/security/util/DerOutputStream;)V
        18: .line 810
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 12 /* cInfo */
        start local 12 // sun.security.util.DerOutputStream cInfo
        19: .line 811
            aload 12 /* cInfo */
            bipush 48
            aload 7 /* authSafeContentInfo */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        20: .line 812
            aload 12 /* cInfo */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            astore 13 /* authenticatedSafe */
        start local 13 // byte[] authenticatedSafe
        21: .line 815
            new sun.security.pkcs.ContentInfo
            dup
            aload 13 /* authenticatedSafe */
            invokespecial sun.security.pkcs.ContentInfo.<init>:([B)V
            astore 14 /* contentInfo */
        start local 14 // sun.security.pkcs.ContentInfo contentInfo
        22: .line 816
            aload 14 /* contentInfo */
            aload 6 /* authSafe */
            invokevirtual sun.security.pkcs.ContentInfo.encode:(Lsun/security/util/DerOutputStream;)V
        23: .line 817
            aload 6 /* authSafe */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            astore 15 /* authSafeData */
        start local 15 // byte[] authSafeData
        24: .line 818
            aload 3 /* pfx */
            aload 15 /* authSafeData */
            invokevirtual sun.security.util.DerOutputStream.write:([B)V
        25: .line 821
            aload 0 /* this */
            aload 2 /* password */
            aload 13 /* authenticatedSafe */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.calculateMac:([C[B)[B
            astore 16 /* macData */
        start local 16 // byte[] macData
        26: .line 822
            aload 3 /* pfx */
            aload 16 /* macData */
            invokevirtual sun.security.util.DerOutputStream.write:([B)V
        27: .line 825
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 17 /* pfxout */
        start local 17 // sun.security.util.DerOutputStream pfxout
        28: .line 826
            aload 17 /* pfxout */
            bipush 48
            aload 3 /* pfx */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        29: .line 827
            aload 17 /* pfxout */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            astore 18 /* pfxData */
        start local 18 // byte[] pfxData
        30: .line 828
            aload 1 /* stream */
            aload 18 /* pfxData */
            invokevirtual java.io.OutputStream.write:([B)V
        31: .line 829
            aload 1 /* stream */
            invokevirtual java.io.OutputStream.flush:()V
        32: .line 830
            return
        end local 18 // byte[] pfxData
        end local 17 // sun.security.util.DerOutputStream pfxout
        end local 16 // byte[] macData
        end local 15 // byte[] authSafeData
        end local 14 // sun.security.pkcs.ContentInfo contentInfo
        end local 13 // byte[] authenticatedSafe
        end local 12 // sun.security.util.DerOutputStream cInfo
        end local 11 // sun.security.pkcs.ContentInfo encrContentInfo
        end local 10 // byte[] encrData
        end local 9 // sun.security.pkcs.ContentInfo dataContentInfo
        end local 8 // byte[] safeContentData
        end local 7 // sun.security.util.DerOutputStream authSafeContentInfo
        end local 6 // sun.security.util.DerOutputStream authSafe
        end local 5 // byte[] pfxVersion
        end local 4 // sun.security.util.DerOutputStream version
        end local 3 // sun.security.util.DerOutputStream pfx
        end local 2 // char[] password
        end local 1 // java.io.OutputStream stream
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   33     0                 this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   33     1               stream  Ljava/io/OutputStream;
            0   33     2             password  [C
            3   33     3                  pfx  Lsun/security/util/DerOutputStream;
            4   33     4              version  Lsun/security/util/DerOutputStream;
            6   33     5           pfxVersion  [B
            8   33     6             authSafe  Lsun/security/util/DerOutputStream;
            9   33     7  authSafeContentInfo  Lsun/security/util/DerOutputStream;
           10   33     8      safeContentData  [B
           11   33     9      dataContentInfo  Lsun/security/pkcs/ContentInfo;
           13   33    10             encrData  [B
           17   33    11      encrContentInfo  Lsun/security/pkcs/ContentInfo;
           19   33    12                cInfo  Lsun/security/util/DerOutputStream;
           21   33    13    authenticatedSafe  [B
           22   33    14          contentInfo  Lsun/security/pkcs/ContentInfo;
           24   33    15         authSafeData  [B
           26   33    16              macData  [B
           28   33    17               pfxout  Lsun/security/util/DerOutputStream;
           30   33    18              pfxData  [B
    Exceptions:
      throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      stream    
      password  

  private byte[] generateHash(byte[]);
    descriptor: ([B)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // byte[] data
         0: .line 838
            aconst_null
            astore 2 /* digest */
        start local 2 // byte[] digest
         1: .line 841
            ldc "SHA1"
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 3 /* md */
        start local 3 // java.security.MessageDigest md
         2: .line 842
            aload 3 /* md */
            aload 1 /* data */
            invokevirtual java.security.MessageDigest.update:([B)V
         3: .line 843
            aload 3 /* md */
            invokevirtual java.security.MessageDigest.digest:()[B
            astore 2 /* digest */
        end local 3 // java.security.MessageDigest md
         4: .line 844
            goto 7
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore byte[] byte[]
      StackMap stack: java.lang.Exception
         5: astore 3 /* e */
        start local 3 // java.lang.Exception e
         6: .line 845
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "generateHash failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception e
         7: .line 847
      StackMap locals:
      StackMap stack:
            aload 2 /* digest */
            areturn
        end local 2 // byte[] digest
        end local 1 // byte[] data
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lsun/security/pkcs12/PKCS12KeyStore;
            0    8     1    data  [B
            1    8     2  digest  [B
            2    4     3      md  Ljava/security/MessageDigest;
            6    7     3       e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      data  

  private byte[] calculateMac(char[], byte[]);
    descriptor: ([C[B)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // char[] passwd
        start local 2 // byte[] data
         0: .line 860
            aconst_null
            astore 3 /* mData */
        start local 3 // byte[] mData
         1: .line 861
            ldc "SHA1"
            astore 4 /* algName */
        start local 4 // java.lang.String algName
         2: .line 865
            aload 0 /* this */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getSalt:()[B
            astore 5 /* salt */
        start local 5 // byte[] salt
         3: .line 868
            ldc "HmacPBESHA1"
            invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
            astore 6 /* m */
        start local 6 // javax.crypto.Mac m
         4: .line 870
            new javax.crypto.spec.PBEParameterSpec
            dup
            aload 5 /* salt */
            ldc 100000
            invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
         5: .line 869
            astore 7 /* params */
        start local 7 // javax.crypto.spec.PBEParameterSpec params
         6: .line 871
            aload 0 /* this */
            aload 1 /* passwd */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEKey:([C)Ljavax/crypto/SecretKey;
            astore 8 /* key */
        start local 8 // javax.crypto.SecretKey key
         7: .line 872
            aload 6 /* m */
            aload 8 /* key */
            aload 7 /* params */
            invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
         8: .line 873
            aload 6 /* m */
            aload 2 /* data */
            invokevirtual javax.crypto.Mac.update:([B)V
         9: .line 874
            aload 6 /* m */
            invokevirtual javax.crypto.Mac.doFinal:()[B
            astore 9 /* macResult */
        start local 9 // byte[] macResult
        10: .line 877
            new sun.security.pkcs12.MacData
            dup
            aload 4 /* algName */
            aload 9 /* macResult */
            aload 5 /* salt */
        11: .line 878
            ldc 100000
        12: .line 877
            invokespecial sun.security.pkcs12.MacData.<init>:(Ljava/lang/String;[B[BI)V
            astore 10 /* macData */
        start local 10 // sun.security.pkcs12.MacData macData
        13: .line 879
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 11 /* bytes */
        start local 11 // sun.security.util.DerOutputStream bytes
        14: .line 880
            aload 11 /* bytes */
            aload 10 /* macData */
            invokevirtual sun.security.pkcs12.MacData.getEncoded:()[B
            invokevirtual sun.security.util.DerOutputStream.write:([B)V
        15: .line 881
            aload 11 /* bytes */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            astore 3 /* mData */
        end local 11 // sun.security.util.DerOutputStream bytes
        end local 10 // sun.security.pkcs12.MacData macData
        end local 9 // byte[] macResult
        end local 8 // javax.crypto.SecretKey key
        end local 7 // javax.crypto.spec.PBEParameterSpec params
        end local 6 // javax.crypto.Mac m
        end local 5 // byte[] salt
        16: .line 882
            goto 19
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore char[] byte[] byte[] java.lang.String
      StackMap stack: java.lang.Exception
        17: astore 5 /* e */
        start local 5 // java.lang.Exception e
        18: .line 883
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "calculateMac failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Exception e
        19: .line 885
      StackMap locals:
      StackMap stack:
            aload 3 /* mData */
            areturn
        end local 4 // java.lang.String algName
        end local 3 // byte[] mData
        end local 2 // byte[] data
        end local 1 // char[] passwd
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   20     1     passwd  [C
            0   20     2       data  [B
            1   20     3      mData  [B
            2   20     4    algName  Ljava/lang/String;
            3   16     5       salt  [B
            4   16     6          m  Ljavax/crypto/Mac;
            6   16     7     params  Ljavax/crypto/spec/PBEParameterSpec;
            7   16     8        key  Ljavax/crypto/SecretKey;
           10   16     9  macResult  [B
           13   16    10    macData  Lsun/security/pkcs12/MacData;
           14   16    11      bytes  Lsun/security/util/DerOutputStream;
           18   19     5          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2    16      17  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      passwd  
      data    

  private boolean validateChain(java.security.cert.Certificate[]);
    descriptor: ([Ljava/security/cert/Certificate;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.security.cert.Certificate[] certChain
         0: .line 894
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 9
         2: .line 896
      StackMap locals: int
      StackMap stack:
            aload 1 /* certChain */
            iload 2 /* i */
            aaload
            checkcast java.security.cert.X509Certificate
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
         3: .line 895
            astore 3 /* issuerDN */
        start local 3 // javax.security.auth.x500.X500Principal issuerDN
         4: .line 898
            aload 1 /* certChain */
            iload 2 /* i */
            iconst_1
            iadd
            aaload
            checkcast java.security.cert.X509Certificate
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
         5: .line 897
            astore 4 /* subjectDN */
        start local 4 // javax.security.auth.x500.X500Principal subjectDN
         6: .line 899
            aload 3 /* issuerDN */
            aload 4 /* subjectDN */
            invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 900
            iconst_0
            ireturn
        end local 4 // javax.security.auth.x500.X500Principal subjectDN
        end local 3 // javax.security.auth.x500.X500Principal issuerDN
         8: .line 894
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 2 /* i */
            aload 1 /* certChain */
            arraylength
            iconst_1
            isub
            if_icmplt 2
        end local 2 // int i
        10: .line 906
            new java.util.HashSet
            dup
            aload 1 /* certChain */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 2 /* set */
        start local 2 // java.util.Set set
        11: .line 907
            aload 2 /* set */
            invokeinterface java.util.Set.size:()I
            aload 1 /* certChain */
            arraylength
            if_icmpne 12
            iconst_1
            ireturn
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.security.cert.Certificate[] java.util.Set
      StackMap stack:
        12: iconst_0
            ireturn
        end local 2 // java.util.Set set
        end local 1 // java.security.cert.Certificate[] certChain
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   13     1  certChain  [Ljava/security/cert/Certificate;
            1   10     2          i  I
            4    8     3   issuerDN  Ljavax/security/auth/x500/X500Principal;
            6    8     4  subjectDN  Ljavax/security/auth/x500/X500Principal;
           11   13     2        set  Ljava/util/Set<Ljava/security/cert/Certificate;>;
    MethodParameters:
           Name  Flags
      certChain  

  private byte[] getBagAttributes(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.lang.String alias
        start local 2 // byte[] keyId
         0: .line 947
            aconst_null
            astore 3 /* localKeyID */
        start local 3 // byte[] localKeyID
         1: .line 948
            aconst_null
            astore 4 /* friendlyName */
        start local 4 // byte[] friendlyName
         2: .line 951
            aload 1 /* alias */
            ifnonnull 4
            aload 2 /* keyId */
            ifnonnull 4
         3: .line 952
            aconst_null
            areturn
         4: .line 956
      StackMap locals: byte[] byte[]
      StackMap stack:
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 5 /* bagAttrs */
        start local 5 // sun.security.util.DerOutputStream bagAttrs
         5: .line 959
            aload 1 /* alias */
            ifnull 14
         6: .line 960
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 6 /* bagAttr1 */
        start local 6 // sun.security.util.DerOutputStream bagAttr1
         7: .line 961
            aload 6 /* bagAttr1 */
            getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9FriendlyName_OID:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
         8: .line 962
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 7 /* bagAttrContent1 */
        start local 7 // sun.security.util.DerOutputStream bagAttrContent1
         9: .line 963
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 8 /* bagAttrValue1 */
        start local 8 // sun.security.util.DerOutputStream bagAttrValue1
        10: .line 964
            aload 7 /* bagAttrContent1 */
            aload 1 /* alias */
            invokevirtual sun.security.util.DerOutputStream.putBMPString:(Ljava/lang/String;)V
        11: .line 965
            aload 6 /* bagAttr1 */
            bipush 49
            aload 7 /* bagAttrContent1 */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        12: .line 966
            aload 8 /* bagAttrValue1 */
            bipush 48
            aload 6 /* bagAttr1 */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        13: .line 967
            aload 8 /* bagAttrValue1 */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            astore 4 /* friendlyName */
        end local 8 // sun.security.util.DerOutputStream bagAttrValue1
        end local 7 // sun.security.util.DerOutputStream bagAttrContent1
        end local 6 // sun.security.util.DerOutputStream bagAttr1
        14: .line 971
      StackMap locals: sun.security.util.DerOutputStream
      StackMap stack:
            aload 2 /* keyId */
            ifnull 23
        15: .line 972
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 6 /* bagAttr2 */
        start local 6 // sun.security.util.DerOutputStream bagAttr2
        16: .line 973
            aload 6 /* bagAttr2 */
            getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9LocalKeyId_OID:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
        17: .line 974
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 7 /* bagAttrContent2 */
        start local 7 // sun.security.util.DerOutputStream bagAttrContent2
        18: .line 975
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 8 /* bagAttrValue2 */
        start local 8 // sun.security.util.DerOutputStream bagAttrValue2
        19: .line 976
            aload 7 /* bagAttrContent2 */
            aload 2 /* keyId */
            invokevirtual sun.security.util.DerOutputStream.putOctetString:([B)V
        20: .line 977
            aload 6 /* bagAttr2 */
            bipush 49
            aload 7 /* bagAttrContent2 */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        21: .line 978
            aload 8 /* bagAttrValue2 */
            bipush 48
            aload 6 /* bagAttr2 */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        22: .line 979
            aload 8 /* bagAttrValue2 */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            astore 3 /* localKeyID */
        end local 8 // sun.security.util.DerOutputStream bagAttrValue2
        end local 7 // sun.security.util.DerOutputStream bagAttrContent2
        end local 6 // sun.security.util.DerOutputStream bagAttr2
        23: .line 982
      StackMap locals:
      StackMap stack:
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 6 /* attrs */
        start local 6 // sun.security.util.DerOutputStream attrs
        24: .line 983
            aload 4 /* friendlyName */
            ifnull 26
        25: .line 984
            aload 6 /* attrs */
            aload 4 /* friendlyName */
            invokevirtual sun.security.util.DerOutputStream.write:([B)V
        26: .line 986
      StackMap locals: sun.security.util.DerOutputStream
      StackMap stack:
            aload 3 /* localKeyID */
            ifnull 28
        27: .line 987
            aload 6 /* attrs */
            aload 3 /* localKeyID */
            invokevirtual sun.security.util.DerOutputStream.write:([B)V
        28: .line 989
      StackMap locals:
      StackMap stack:
            aload 5 /* bagAttrs */
            bipush 49
            aload 6 /* attrs */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        29: .line 990
            aload 5 /* bagAttrs */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            areturn
        end local 6 // sun.security.util.DerOutputStream attrs
        end local 5 // sun.security.util.DerOutputStream bagAttrs
        end local 4 // byte[] friendlyName
        end local 3 // byte[] localKeyID
        end local 2 // byte[] keyId
        end local 1 // java.lang.String alias
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   30     0             this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   30     1            alias  Ljava/lang/String;
            0   30     2            keyId  [B
            1   30     3       localKeyID  [B
            2   30     4     friendlyName  [B
            5   30     5         bagAttrs  Lsun/security/util/DerOutputStream;
            7   14     6         bagAttr1  Lsun/security/util/DerOutputStream;
            9   14     7  bagAttrContent1  Lsun/security/util/DerOutputStream;
           10   14     8    bagAttrValue1  Lsun/security/util/DerOutputStream;
           16   23     6         bagAttr2  Lsun/security/util/DerOutputStream;
           18   23     7  bagAttrContent2  Lsun/security/util/DerOutputStream;
           19   23     8    bagAttrValue2  Lsun/security/util/DerOutputStream;
           24   30     6            attrs  Lsun/security/util/DerOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      alias  
      keyId  

  private byte[] createEncryptedData(char[]);
    descriptor: ([C)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=16, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // char[] password
         0: .line 1003
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 2 /* out */
        start local 2 // sun.security.util.DerOutputStream out
         1: .line 1004
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
            astore 3 /* e */
        start local 3 // java.util.Enumeration e
         2: goto 45
         3: .line 1006
      StackMap locals: sun.security.util.DerOutputStream java.util.Enumeration
      StackMap stack:
            aload 3 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* alias */
        start local 4 // java.lang.String alias
         4: .line 1007
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 4 /* alias */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            astore 5 /* entry */
        start local 5 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
         5: .line 1011
            aload 5 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
            ifnonnull 8
         6: .line 1012
            iconst_0
            istore 6 /* chainLen */
        start local 6 // int chainLen
         7: .line 1013
            goto 9
        end local 6 // int chainLen
         8: .line 1014
      StackMap locals: java.lang.String sun.security.pkcs12.PKCS12KeyStore$KeyEntry
      StackMap stack:
            aload 5 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
            arraylength
            istore 6 /* chainLen */
        start local 6 // int chainLen
         9: .line 1017
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        10: goto 44
        11: .line 1019
      StackMap locals: int
      StackMap stack:
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 8 /* safeBag */
        start local 8 // sun.security.util.DerOutputStream safeBag
        12: .line 1020
            aload 8 /* safeBag */
            getstatic sun.security.pkcs12.PKCS12KeyStore.CertBag_OID:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
        13: .line 1023
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 9 /* certBag */
        start local 9 // sun.security.util.DerOutputStream certBag
        14: .line 1024
            aload 9 /* certBag */
            getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9CertType_OID:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
        15: .line 1027
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 10 /* certValue */
        start local 10 // sun.security.util.DerOutputStream certValue
        16: .line 1028
            aload 5 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
            iload 7 /* i */
            aaload
            checkcast java.security.cert.X509Certificate
            astore 11 /* cert */
        start local 11 // java.security.cert.X509Certificate cert
        17: .line 1029
            aload 10 /* certValue */
            aload 11 /* cert */
            invokevirtual java.security.cert.X509Certificate.getEncoded:()[B
            invokevirtual sun.security.util.DerOutputStream.putOctetString:([B)V
        18: .line 1030
            aload 9 /* certBag */
            bipush -128
        19: .line 1031
            iconst_1
            iconst_0
        20: .line 1030
            invokestatic sun.security.util.DerValue.createTag:(BZB)B
        21: .line 1031
            aload 10 /* certValue */
        22: .line 1030
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        23: .line 1034
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 12 /* certout */
        start local 12 // sun.security.util.DerOutputStream certout
        24: .line 1035
            aload 12 /* certout */
            bipush 48
            aload 9 /* certBag */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        25: .line 1036
            aload 12 /* certout */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            astore 13 /* certBagValue */
        start local 13 // byte[] certBagValue
        26: .line 1039
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 14 /* bagValue */
        start local 14 // sun.security.util.DerOutputStream bagValue
        27: .line 1040
            aload 14 /* bagValue */
            aload 13 /* certBagValue */
            invokevirtual sun.security.util.DerOutputStream.write:([B)V
        28: .line 1042
            aload 8 /* safeBag */
            bipush -128
        29: .line 1043
            iconst_1
            iconst_0
        30: .line 1042
            invokestatic sun.security.util.DerValue.createTag:(BZB)B
        31: .line 1043
            aload 14 /* bagValue */
        32: .line 1042
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        33: .line 1048
            aconst_null
            astore 15 /* bagAttrs */
        start local 15 // byte[] bagAttrs
        34: .line 1049
            iload 7 /* i */
            ifne 37
        35: .line 1051
            aload 0 /* this */
            aload 5 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.alias:Ljava/lang/String;
            aload 5 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getBagAttributes:(Ljava/lang/String;[B)[B
            astore 15 /* bagAttrs */
        36: .line 1052
            goto 40
        37: .line 1059
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore char[] sun.security.util.DerOutputStream java.util.Enumeration java.lang.String sun.security.pkcs12.PKCS12KeyStore$KeyEntry int int sun.security.util.DerOutputStream sun.security.util.DerOutputStream sun.security.util.DerOutputStream java.security.cert.X509Certificate sun.security.util.DerOutputStream byte[] sun.security.util.DerOutputStream byte[]
      StackMap stack:
            aload 0 /* this */
        38: .line 1060
            aload 11 /* cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            invokevirtual javax.security.auth.x500.X500Principal.getName:()Ljava/lang/String;
            aconst_null
        39: .line 1059
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getBagAttributes:(Ljava/lang/String;[B)[B
            astore 15 /* bagAttrs */
        40: .line 1062
      StackMap locals:
      StackMap stack:
            aload 15 /* bagAttrs */
            ifnull 42
        41: .line 1063
            aload 8 /* safeBag */
            aload 15 /* bagAttrs */
            invokevirtual sun.security.util.DerOutputStream.write:([B)V
        42: .line 1067
      StackMap locals:
      StackMap stack:
            aload 2 /* out */
            bipush 48
            aload 8 /* safeBag */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        end local 15 // byte[] bagAttrs
        end local 14 // sun.security.util.DerOutputStream bagValue
        end local 13 // byte[] certBagValue
        end local 12 // sun.security.util.DerOutputStream certout
        end local 11 // java.security.cert.X509Certificate cert
        end local 10 // sun.security.util.DerOutputStream certValue
        end local 9 // sun.security.util.DerOutputStream certBag
        end local 8 // sun.security.util.DerOutputStream safeBag
        43: .line 1017
            iinc 7 /* i */ 1
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore char[] sun.security.util.DerOutputStream java.util.Enumeration java.lang.String sun.security.pkcs12.PKCS12KeyStore$KeyEntry int int
      StackMap stack:
        44: iload 7 /* i */
            iload 6 /* chainLen */
            if_icmplt 11
        end local 7 // int i
        end local 6 // int chainLen
        end local 5 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        end local 4 // java.lang.String alias
        45: .line 1004
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore char[] sun.security.util.DerOutputStream java.util.Enumeration
      StackMap stack:
            aload 3 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
        end local 3 // java.util.Enumeration e
        46: .line 1072
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 3 /* safeBagValue */
        start local 3 // sun.security.util.DerOutputStream safeBagValue
        47: .line 1073
            aload 3 /* safeBagValue */
            bipush 48
            aload 2 /* out */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        48: .line 1074
            aload 3 /* safeBagValue */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            astore 4 /* safeBagData */
        start local 4 // byte[] safeBagData
        49: .line 1077
            aload 0 /* this */
            aload 4 /* safeBagData */
            aload 1 /* password */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.encryptContent:([B[C)[B
            astore 5 /* encrContentInfo */
        start local 5 // byte[] encrContentInfo
        50: .line 1080
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 6 /* encrData */
        start local 6 // sun.security.util.DerOutputStream encrData
        51: .line 1081
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 7 /* encrDataContent */
        start local 7 // sun.security.util.DerOutputStream encrDataContent
        52: .line 1082
            aload 6 /* encrData */
            iconst_0
            invokevirtual sun.security.util.DerOutputStream.putInteger:(I)V
        53: .line 1083
            aload 6 /* encrData */
            aload 5 /* encrContentInfo */
            invokevirtual sun.security.util.DerOutputStream.write:([B)V
        54: .line 1084
            aload 7 /* encrDataContent */
            bipush 48
            aload 6 /* encrData */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        55: .line 1085
            aload 7 /* encrDataContent */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            areturn
        end local 7 // sun.security.util.DerOutputStream encrDataContent
        end local 6 // sun.security.util.DerOutputStream encrData
        end local 5 // byte[] encrContentInfo
        end local 4 // byte[] safeBagData
        end local 3 // sun.security.util.DerOutputStream safeBagValue
        end local 2 // sun.security.util.DerOutputStream out
        end local 1 // char[] password
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   56     0             this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   56     1         password  [C
            1   56     2              out  Lsun/security/util/DerOutputStream;
            2   46     3                e  Ljava/util/Enumeration<Ljava/lang/String;>;
            4   45     4            alias  Ljava/lang/String;
            5   45     5            entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
            7    8     6         chainLen  I
            9   45     6         chainLen  I
           10   45     7                i  I
           12   43     8          safeBag  Lsun/security/util/DerOutputStream;
           14   43     9          certBag  Lsun/security/util/DerOutputStream;
           16   43    10        certValue  Lsun/security/util/DerOutputStream;
           17   43    11             cert  Ljava/security/cert/X509Certificate;
           24   43    12          certout  Lsun/security/util/DerOutputStream;
           26   43    13     certBagValue  [B
           27   43    14         bagValue  Lsun/security/util/DerOutputStream;
           34   43    15         bagAttrs  [B
           47   56     3     safeBagValue  Lsun/security/util/DerOutputStream;
           49   56     4      safeBagData  [B
           50   56     5  encrContentInfo  [B
           51   56     6         encrData  Lsun/security/util/DerOutputStream;
           52   56     7  encrDataContent  Lsun/security/util/DerOutputStream;
    Exceptions:
      throws java.security.cert.CertificateException, java.io.IOException
    MethodParameters:
          Name  Flags
      password  

  private byte[] createSafeContent();
    descriptor: ()[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=1
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
         0: .line 1097
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 1 /* out */
        start local 1 // sun.security.util.DerOutputStream out
         1: .line 1098
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
            astore 2 /* e */
        start local 2 // java.util.Enumeration e
         2: goto 25
         3: .line 1100
      StackMap locals: sun.security.util.DerOutputStream java.util.Enumeration
      StackMap stack:
            aload 2 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* alias */
        start local 3 // java.lang.String alias
         4: .line 1101
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 3 /* alias */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            astore 4 /* entry */
        start local 4 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
         5: .line 1104
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 5 /* safeBag */
        start local 5 // sun.security.util.DerOutputStream safeBag
         6: .line 1105
            aload 5 /* safeBag */
            getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS8ShroudedKeyBag_OID:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
         7: .line 1108
            aload 4 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.protectedPrivKey:[B
            astore 6 /* encrBytes */
        start local 6 // byte[] encrBytes
         8: .line 1109
            aconst_null
            astore 7 /* encrInfo */
        start local 7 // sun.security.pkcs.EncryptedPrivateKeyInfo encrInfo
         9: .line 1111
            new sun.security.pkcs.EncryptedPrivateKeyInfo
            dup
            aload 6 /* encrBytes */
            invokespecial sun.security.pkcs.EncryptedPrivateKeyInfo.<init>:([B)V
            astore 7 /* encrInfo */
        10: .line 1112
            goto 15
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerOutputStream java.util.Enumeration java.lang.String sun.security.pkcs12.PKCS12KeyStore$KeyEntry sun.security.util.DerOutputStream byte[] sun.security.pkcs.EncryptedPrivateKeyInfo
      StackMap stack: java.io.IOException
        11: astore 8 /* ioe */
        start local 8 // java.io.IOException ioe
        12: .line 1113
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Private key not stored as PKCS#8 EncryptedPrivateKeyInfo"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 1114
            aload 8 /* ioe */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        14: .line 1113
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.io.IOException ioe
        15: .line 1118
      StackMap locals:
      StackMap stack:
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 8 /* bagValue */
        start local 8 // sun.security.util.DerOutputStream bagValue
        16: .line 1119
            aload 8 /* bagValue */
            aload 7 /* encrInfo */
            invokevirtual sun.security.pkcs.EncryptedPrivateKeyInfo.getEncoded:()[B
            invokevirtual sun.security.util.DerOutputStream.write:([B)V
        17: .line 1120
            aload 5 /* safeBag */
            bipush -128
        18: .line 1121
            iconst_1
            iconst_0
        19: .line 1120
            invokestatic sun.security.util.DerValue.createTag:(BZB)B
        20: .line 1121
            aload 8 /* bagValue */
        21: .line 1120
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        22: .line 1124
            aload 0 /* this */
            aload 3 /* alias */
            aload 4 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getBagAttributes:(Ljava/lang/String;[B)[B
            astore 9 /* bagAttrs */
        start local 9 // byte[] bagAttrs
        23: .line 1125
            aload 5 /* safeBag */
            aload 9 /* bagAttrs */
            invokevirtual sun.security.util.DerOutputStream.write:([B)V
        24: .line 1128
            aload 1 /* out */
            bipush 48
            aload 5 /* safeBag */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        end local 9 // byte[] bagAttrs
        end local 8 // sun.security.util.DerOutputStream bagValue
        end local 7 // sun.security.pkcs.EncryptedPrivateKeyInfo encrInfo
        end local 6 // byte[] encrBytes
        end local 5 // sun.security.util.DerOutputStream safeBag
        end local 4 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        end local 3 // java.lang.String alias
        25: .line 1098
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerOutputStream java.util.Enumeration
      StackMap stack:
            aload 2 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
        end local 2 // java.util.Enumeration e
        26: .line 1132
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 2 /* safeBagValue */
        start local 2 // sun.security.util.DerOutputStream safeBagValue
        27: .line 1133
            aload 2 /* safeBagValue */
            bipush 48
            aload 1 /* out */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        28: .line 1134
            aload 2 /* safeBagValue */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            areturn
        end local 2 // sun.security.util.DerOutputStream safeBagValue
        end local 1 // sun.security.util.DerOutputStream out
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   29     0          this  Lsun/security/pkcs12/PKCS12KeyStore;
            1   29     1           out  Lsun/security/util/DerOutputStream;
            2   26     2             e  Ljava/util/Enumeration<Ljava/lang/String;>;
            4   25     3         alias  Ljava/lang/String;
            5   25     4         entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
            6   25     5       safeBag  Lsun/security/util/DerOutputStream;
            8   25     6     encrBytes  [B
            9   25     7      encrInfo  Lsun/security/pkcs/EncryptedPrivateKeyInfo;
           12   15     8           ioe  Ljava/io/IOException;
           16   25     8      bagValue  Lsun/security/util/DerOutputStream;
           23   25     9      bagAttrs  [B
           27   29     2  safeBagValue  Lsun/security/util/DerOutputStream;
      Exception table:
        from    to  target  type
           9    10      11  Class java.io.IOException
    Exceptions:
      throws java.security.cert.CertificateException, java.io.IOException

  private byte[] encryptContent(byte[], char[]);
    descriptor: ([B[C)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // byte[] data
        start local 2 // char[] password
         0: .line 1150
            aconst_null
            astore 3 /* encryptedData */
        start local 3 // byte[] encryptedData
         1: .line 1154
            aload 0 /* this */
            ldc "PBEWithSHA1AndRC2_40"
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEAlgorithmParameters:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
         2: .line 1153
            astore 4 /* algParams */
        start local 4 // java.security.AlgorithmParameters algParams
         3: .line 1155
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 5 /* bytes */
        start local 5 // sun.security.util.DerOutputStream bytes
         4: .line 1157
            new sun.security.x509.AlgorithmId
            dup
            getstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd40BitRC2CBC_OID:Lsun/security/util/ObjectIdentifier;
            aload 4 /* algParams */
            invokespecial sun.security.x509.AlgorithmId.<init>:(Lsun/security/util/ObjectIdentifier;Ljava/security/AlgorithmParameters;)V
         5: .line 1156
            astore 6 /* algId */
        start local 6 // sun.security.x509.AlgorithmId algId
         6: .line 1158
            aload 6 /* algId */
            aload 5 /* bytes */
            invokevirtual sun.security.x509.AlgorithmId.encode:(Lsun/security/util/DerOutputStream;)V
         7: .line 1159
            aload 5 /* bytes */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            astore 7 /* encodedAlgId */
        start local 7 // byte[] encodedAlgId
         8: .line 1163
            aload 0 /* this */
            aload 2 /* password */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEKey:([C)Ljavax/crypto/SecretKey;
            astore 8 /* skey */
        start local 8 // javax.crypto.SecretKey skey
         9: .line 1164
            ldc "PBEWithSHA1AndRC2_40"
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 9 /* cipher */
        start local 9 // javax.crypto.Cipher cipher
        10: .line 1165
            aload 9 /* cipher */
            iconst_1
            aload 8 /* skey */
            aload 4 /* algParams */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
        11: .line 1166
            aload 9 /* cipher */
            aload 1 /* data */
            invokevirtual javax.crypto.Cipher.doFinal:([B)[B
            astore 3 /* encryptedData */
        end local 9 // javax.crypto.Cipher cipher
        end local 8 // javax.crypto.SecretKey skey
        12: .line 1168
            goto 17
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore byte[] char[] byte[] java.security.AlgorithmParameters sun.security.util.DerOutputStream sun.security.x509.AlgorithmId byte[]
      StackMap stack: java.lang.Exception
        13: astore 8 /* e */
        start local 8 // java.lang.Exception e
        14: .line 1169
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to encrypt safe contents entry: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 1170
            aload 8 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 8 /* e */
        16: .line 1169
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.lang.Exception e
        17: .line 1174
      StackMap locals:
      StackMap stack:
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 8 /* bytes2 */
        start local 8 // sun.security.util.DerOutputStream bytes2
        18: .line 1175
            aload 8 /* bytes2 */
            getstatic sun.security.pkcs.ContentInfo.DATA_OID:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
        19: .line 1176
            aload 8 /* bytes2 */
            aload 7 /* encodedAlgId */
            invokevirtual sun.security.util.DerOutputStream.write:([B)V
        20: .line 1179
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 9 /* tmpout2 */
        start local 9 // sun.security.util.DerOutputStream tmpout2
        21: .line 1180
            aload 9 /* tmpout2 */
            aload 3 /* encryptedData */
            invokevirtual sun.security.util.DerOutputStream.putOctetString:([B)V
        22: .line 1181
            aload 8 /* bytes2 */
            bipush -128
        23: .line 1182
            iconst_0
            iconst_0
        24: .line 1181
            invokestatic sun.security.util.DerValue.createTag:(BZB)B
        25: .line 1182
            aload 9 /* tmpout2 */
        26: .line 1181
            invokevirtual sun.security.util.DerOutputStream.writeImplicit:(BLsun/security/util/DerOutputStream;)V
        27: .line 1185
            new sun.security.util.DerOutputStream
            dup
            invokespecial sun.security.util.DerOutputStream.<init>:()V
            astore 10 /* out */
        start local 10 // sun.security.util.DerOutputStream out
        28: .line 1186
            aload 10 /* out */
            bipush 48
            aload 8 /* bytes2 */
            invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
        29: .line 1187
            aload 10 /* out */
            invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
            areturn
        end local 10 // sun.security.util.DerOutputStream out
        end local 9 // sun.security.util.DerOutputStream tmpout2
        end local 8 // sun.security.util.DerOutputStream bytes2
        end local 7 // byte[] encodedAlgId
        end local 6 // sun.security.x509.AlgorithmId algId
        end local 5 // sun.security.util.DerOutputStream bytes
        end local 4 // java.security.AlgorithmParameters algParams
        end local 3 // byte[] encryptedData
        end local 2 // char[] password
        end local 1 // byte[] data
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   30     0           this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   30     1           data  [B
            0   30     2       password  [C
            1   30     3  encryptedData  [B
            3   30     4      algParams  Ljava/security/AlgorithmParameters;
            4   30     5          bytes  Lsun/security/util/DerOutputStream;
            6   30     6          algId  Lsun/security/x509/AlgorithmId;
            8   30     7   encodedAlgId  [B
            9   12     8           skey  Ljavax/crypto/SecretKey;
           10   12     9         cipher  Ljavax/crypto/Cipher;
           14   17     8              e  Ljava/lang/Exception;
           18   30     8         bytes2  Lsun/security/util/DerOutputStream;
           21   30     9        tmpout2  Lsun/security/util/DerOutputStream;
           28   30    10            out  Lsun/security/util/DerOutputStream;
      Exception table:
        from    to  target  type
           8    12      13  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      data      
      password  

  public synchronized void engineLoad(java.io.InputStream, char[]);
    descriptor: (Ljava/io/InputStream;[C)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=26, args_size=3
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // java.io.InputStream stream
        start local 2 // char[] password
         0: .line 1215
            aload 1 /* stream */
            ifnonnull 2
         1: .line 1216
            return
         2: .line 1219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs12.PKCS12KeyStore.counter:I
         3: .line 1221
            new sun.security.util.DerValue
            dup
            aload 1 /* stream */
            invokespecial sun.security.util.DerValue.<init>:(Ljava/io/InputStream;)V
            astore 3 /* val */
        start local 3 // sun.security.util.DerValue val
         4: .line 1222
            aload 3 /* val */
            invokevirtual sun.security.util.DerValue.toDerInputStream:()Lsun/security/util/DerInputStream;
            astore 4 /* s */
        start local 4 // sun.security.util.DerInputStream s
         5: .line 1223
            aload 4 /* s */
            invokevirtual sun.security.util.DerInputStream.getInteger:()I
            istore 5 /* version */
        start local 5 // int version
         6: .line 1225
            iload 5 /* version */
            iconst_3
            if_icmpeq 8
         7: .line 1226
            new java.io.IOException
            dup
            ldc "PKCS12 keystore not in version 3 format"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1229
      StackMap locals: sun.security.util.DerValue sun.security.util.DerInputStream int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clear:()V
         9: .line 1235
            new sun.security.pkcs.ContentInfo
            dup
            aload 4 /* s */
            invokespecial sun.security.pkcs.ContentInfo.<init>:(Lsun/security/util/DerInputStream;)V
            astore 7 /* authSafe */
        start local 7 // sun.security.pkcs.ContentInfo authSafe
        10: .line 1236
            aload 7 /* authSafe */
            invokevirtual sun.security.pkcs.ContentInfo.getContentType:()Lsun/security/util/ObjectIdentifier;
            astore 8 /* contentType */
        start local 8 // sun.security.util.ObjectIdentifier contentType
        11: .line 1238
            aload 8 /* contentType */
            getstatic sun.security.pkcs.ContentInfo.DATA_OID:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 1239
            aload 7 /* authSafe */
            invokevirtual sun.security.pkcs.ContentInfo.getData:()[B
            astore 6 /* authSafeData */
        start local 6 // byte[] authSafeData
        13: .line 1240
            goto 15
        end local 6 // byte[] authSafeData
        14: .line 1241
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int top sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier
      StackMap stack:
            new java.io.IOException
            dup
            ldc "public key protected PKCS12 not supported"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        start local 6 // byte[] authSafeData
        15: .line 1244
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier
      StackMap stack:
            new sun.security.util.DerInputStream
            dup
            aload 6 /* authSafeData */
            invokespecial sun.security.util.DerInputStream.<init>:([B)V
            astore 9 /* as */
        start local 9 // sun.security.util.DerInputStream as
        16: .line 1245
            aload 9 /* as */
            iconst_2
            invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
            astore 10 /* safeContentsArray */
        start local 10 // sun.security.util.DerValue[] safeContentsArray
        17: .line 1246
            aload 10 /* safeContentsArray */
            arraylength
            istore 11 /* count */
        start local 11 // int count
        18: .line 1249
            aload 0 /* this */
            iconst_0
            putfield sun.security.pkcs12.PKCS12KeyStore.privateKeyCount:I
        19: .line 1254
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        20: goto 79
        21: .line 1260
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int int
      StackMap stack:
            new sun.security.util.DerInputStream
            dup
            aload 10 /* safeContentsArray */
            iload 12 /* i */
            aaload
            invokevirtual sun.security.util.DerValue.toByteArray:()[B
            invokespecial sun.security.util.DerInputStream.<init>:([B)V
            astore 15 /* sci */
        start local 15 // sun.security.util.DerInputStream sci
        22: .line 1261
            new sun.security.pkcs.ContentInfo
            dup
            aload 15 /* sci */
            invokespecial sun.security.pkcs.ContentInfo.<init>:(Lsun/security/util/DerInputStream;)V
            astore 14 /* safeContents */
        start local 14 // sun.security.pkcs.ContentInfo safeContents
        23: .line 1262
            aload 14 /* safeContents */
            invokevirtual sun.security.pkcs.ContentInfo.getContentType:()Lsun/security/util/ObjectIdentifier;
            astore 8 /* contentType */
        24: .line 1263
            aconst_null
            astore 13 /* safeContentsData */
        start local 13 // byte[] safeContentsData
        25: .line 1264
            aload 8 /* contentType */
            getstatic sun.security.pkcs.ContentInfo.DATA_OID:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 28
        26: .line 1265
            aload 14 /* safeContents */
            invokevirtual sun.security.pkcs.ContentInfo.getData:()[B
            astore 13 /* safeContentsData */
        27: .line 1266
            goto 76
      StackMap locals: byte[] sun.security.pkcs.ContentInfo sun.security.util.DerInputStream
      StackMap stack:
        28: aload 8 /* contentType */
            getstatic sun.security.pkcs.ContentInfo.ENCRYPTED_DATA_OID:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.equals:(Lsun/security/util/ObjectIdentifier;)Z
            ifeq 75
        29: .line 1267
            aload 2 /* password */
            ifnonnull 31
        30: .line 1268
            goto 78
        31: .line 1271
      StackMap locals:
      StackMap stack:
            aload 14 /* safeContents */
            invokevirtual sun.security.pkcs.ContentInfo.getContent:()Lsun/security/util/DerValue;
            invokevirtual sun.security.util.DerValue.toDerInputStream:()Lsun/security/util/DerInputStream;
        32: .line 1270
            astore 16 /* edi */
        start local 16 // sun.security.util.DerInputStream edi
        33: .line 1272
            aload 16 /* edi */
            invokevirtual sun.security.util.DerInputStream.getInteger:()I
            pop
        34: .line 1273
            aload 16 /* edi */
            iconst_2
            invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
            astore 17 /* seq */
        start local 17 // sun.security.util.DerValue[] seq
        35: .line 1274
            aload 17 /* seq */
            iconst_0
            aaload
            invokevirtual sun.security.util.DerValue.getOID:()Lsun/security/util/ObjectIdentifier;
            pop
        36: .line 1275
            aload 17 /* seq */
            iconst_1
            aaload
            invokevirtual sun.security.util.DerValue.toByteArray:()[B
            pop
        37: .line 1276
            aload 17 /* seq */
            iconst_2
            aaload
            iconst_0
            invokevirtual sun.security.util.DerValue.isContextSpecific:(B)Z
            ifne 39
        38: .line 1277
            new java.io.IOException
            dup
            ldc "encrypted content not present!"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        39: .line 1279
      StackMap locals: sun.security.util.DerInputStream sun.security.util.DerValue[]
      StackMap stack:
            iconst_4
            istore 18 /* newTag */
        start local 18 // byte newTag
        40: .line 1280
            aload 17 /* seq */
            iconst_2
            aaload
            invokevirtual sun.security.util.DerValue.isConstructed:()Z
            ifeq 42
        41: .line 1281
            iload 18 /* newTag */
            bipush 32
            ior
            i2b
            istore 18 /* newTag */
        42: .line 1282
      StackMap locals: int
      StackMap stack:
            aload 17 /* seq */
            iconst_2
            aaload
            iload 18 /* newTag */
            invokevirtual sun.security.util.DerValue.resetTag:(B)V
        43: .line 1283
            aload 17 /* seq */
            iconst_2
            aaload
            invokevirtual sun.security.util.DerValue.getOctetString:()[B
            astore 13 /* safeContentsData */
        44: .line 1286
            aload 17 /* seq */
            iconst_1
            aaload
            invokevirtual sun.security.util.DerValue.toDerInputStream:()Lsun/security/util/DerInputStream;
            astore 19 /* in */
        start local 19 // sun.security.util.DerInputStream in
        45: .line 1287
            aload 19 /* in */
            invokevirtual sun.security.util.DerInputStream.getOID:()Lsun/security/util/ObjectIdentifier;
            astore 20 /* algOid */
        start local 20 // sun.security.util.ObjectIdentifier algOid
        46: .line 1288
            aload 0 /* this */
            aload 19 /* in */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.parseAlgParameters:(Lsun/security/util/DerInputStream;)Ljava/security/AlgorithmParameters;
            astore 21 /* algParams */
        start local 21 // java.security.AlgorithmParameters algParams
        47: .line 1291
            iconst_0
            istore 23 /* ic */
        start local 23 // int ic
        48: .line 1293
            aload 21 /* algParams */
            ifnull 59
        49: .line 1296
            aload 21 /* algParams */
            ldc Ljavax/crypto/spec/PBEParameterSpec;
            invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
            checkcast javax.crypto.spec.PBEParameterSpec
        50: .line 1295
            astore 22 /* pbeSpec */
        start local 22 // javax.crypto.spec.PBEParameterSpec pbeSpec
        51: .line 1297
            goto 56
        end local 22 // javax.crypto.spec.PBEParameterSpec pbeSpec
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int int byte[] sun.security.pkcs.ContentInfo sun.security.util.DerInputStream sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.util.DerInputStream sun.security.util.ObjectIdentifier java.security.AlgorithmParameters top int
      StackMap stack: java.security.spec.InvalidParameterSpecException
        52: pop
        53: .line 1298
            new java.io.IOException
            dup
        54: .line 1299
            ldc "Invalid PBE algorithm parameters"
        55: .line 1298
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        start local 22 // javax.crypto.spec.PBEParameterSpec pbeSpec
        56: .line 1301
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int int byte[] sun.security.pkcs.ContentInfo sun.security.util.DerInputStream sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.util.DerInputStream sun.security.util.ObjectIdentifier java.security.AlgorithmParameters javax.crypto.spec.PBEParameterSpec int
      StackMap stack:
            aload 22 /* pbeSpec */
            invokevirtual javax.crypto.spec.PBEParameterSpec.getIterationCount:()I
            istore 23 /* ic */
        57: .line 1303
            iload 23 /* ic */
            ldc 5000000
            if_icmple 59
        58: .line 1304
            new java.io.IOException
            dup
            ldc "PBE iteration count too large"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 22 // javax.crypto.spec.PBEParameterSpec pbeSpec
        59: .line 1308
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int int byte[] sun.security.pkcs.ContentInfo sun.security.util.DerInputStream sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.util.DerInputStream sun.security.util.ObjectIdentifier java.security.AlgorithmParameters top int
      StackMap stack:
            getstatic sun.security.pkcs12.PKCS12KeyStore.debug:Lsun/security/util/Debug;
            ifnull 64
        60: .line 1309
            getstatic sun.security.pkcs12.PKCS12KeyStore.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "Loading PKCS#7 encryptedData ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        61: .line 1310
            new sun.security.x509.AlgorithmId
            dup
            aload 20 /* algOid */
            invokespecial sun.security.x509.AlgorithmId.<init>:(Lsun/security/util/ObjectIdentifier;)V
            invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        62: .line 1311
            ldc " iterations: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 23 /* ic */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        63: .line 1309
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        64: .line 1316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* password */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEKey:([C)Ljavax/crypto/SecretKey;
            astore 24 /* skey */
        start local 24 // javax.crypto.SecretKey skey
        65: .line 1317
            aload 20 /* algOid */
            invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 25 /* cipher */
        start local 25 // javax.crypto.Cipher cipher
        66: .line 1318
            aload 25 /* cipher */
            iconst_2
            aload 24 /* skey */
            aload 21 /* algParams */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
        67: .line 1319
            aload 25 /* cipher */
            aload 13 /* safeContentsData */
            invokevirtual javax.crypto.Cipher.doFinal:([B)[B
            astore 13 /* safeContentsData */
        end local 25 // javax.crypto.Cipher cipher
        end local 24 // javax.crypto.SecretKey skey
        68: .line 1321
            goto 76
      StackMap locals:
      StackMap stack: java.lang.Exception
        69: astore 24 /* e */
        start local 24 // java.lang.Exception e
        70: .line 1322
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "failed to decrypt safe contents entry: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        71: .line 1323
            aload 24 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        72: .line 1322
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            astore 25 /* ioe */
        start local 25 // java.io.IOException ioe
        73: .line 1324
            aload 25 /* ioe */
            aload 24 /* e */
            invokevirtual java.io.IOException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        74: .line 1325
            aload 25 /* ioe */
            athrow
        end local 25 // java.io.IOException ioe
        end local 24 // java.lang.Exception e
        end local 23 // int ic
        end local 21 // java.security.AlgorithmParameters algParams
        end local 20 // sun.security.util.ObjectIdentifier algOid
        end local 19 // sun.security.util.DerInputStream in
        end local 18 // byte newTag
        end local 17 // sun.security.util.DerValue[] seq
        end local 16 // sun.security.util.DerInputStream edi
        75: .line 1328
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int int byte[] sun.security.pkcs.ContentInfo sun.security.util.DerInputStream
      StackMap stack:
            new java.io.IOException
            dup
            ldc "public key protected PKCS12 not supported"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        76: .line 1331
      StackMap locals:
      StackMap stack:
            new sun.security.util.DerInputStream
            dup
            aload 13 /* safeContentsData */
            invokespecial sun.security.util.DerInputStream.<init>:([B)V
            astore 16 /* sc */
        start local 16 // sun.security.util.DerInputStream sc
        77: .line 1332
            aload 0 /* this */
            aload 16 /* sc */
            aload 2 /* password */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.loadSafeContents:(Lsun/security/util/DerInputStream;[C)V
        end local 16 // sun.security.util.DerInputStream sc
        end local 15 // sun.security.util.DerInputStream sci
        end local 14 // sun.security.pkcs.ContentInfo safeContents
        end local 13 // byte[] safeContentsData
        78: .line 1254
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        79: iload 12 /* i */
            iload 11 /* count */
            if_icmplt 21
        end local 12 // int i
        80: .line 1336
            aload 2 /* password */
            ifnull 103
            aload 4 /* s */
            invokevirtual sun.security.util.DerInputStream.available:()I
            ifle 103
        81: .line 1337
            new sun.security.pkcs12.MacData
            dup
            aload 4 /* s */
            invokespecial sun.security.pkcs12.MacData.<init>:(Lsun/security/util/DerInputStream;)V
            astore 12 /* macData */
        start local 12 // sun.security.pkcs12.MacData macData
        82: .line 1338
            aload 12 /* macData */
            invokevirtual sun.security.pkcs12.MacData.getIterations:()I
            istore 13 /* ic */
        start local 13 // int ic
        83: .line 1341
            iload 13 /* ic */
            ldc 5000000
            if_icmple 87
        84: .line 1342
            new java.security.InvalidAlgorithmParameterException
            dup
        85: .line 1343
            new java.lang.StringBuilder
            dup
            ldc "MAC iteration count too large: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 13 /* ic */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        86: .line 1342
            invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
            athrow
        87: .line 1346
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.pkcs12.MacData int
      StackMap stack:
            aload 12 /* macData */
            invokevirtual sun.security.pkcs12.MacData.getDigestAlgName:()Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            astore 14 /* algName */
        start local 14 // java.lang.String algName
        88: .line 1347
            aload 14 /* algName */
            ldc "SHA"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 91
        89: .line 1348
            aload 14 /* algName */
            ldc "SHA1"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 91
        90: .line 1349
            aload 14 /* algName */
            ldc "SHA-1"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 92
        91: .line 1350
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "SHA1"
            astore 14 /* algName */
        92: .line 1354
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "HmacPBE"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* algName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
            astore 15 /* m */
        start local 15 // javax.crypto.Mac m
        93: .line 1356
            new javax.crypto.spec.PBEParameterSpec
            dup
            aload 12 /* macData */
            invokevirtual sun.security.pkcs12.MacData.getSalt:()[B
            iload 13 /* ic */
            invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
        94: .line 1355
            astore 16 /* params */
        start local 16 // javax.crypto.spec.PBEParameterSpec params
        95: .line 1357
            aload 0 /* this */
            aload 2 /* password */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEKey:([C)Ljavax/crypto/SecretKey;
            astore 17 /* key */
        start local 17 // javax.crypto.SecretKey key
        96: .line 1358
            aload 15 /* m */
            aload 17 /* key */
            aload 16 /* params */
            invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
        97: .line 1359
            aload 15 /* m */
            aload 6 /* authSafeData */
            invokevirtual javax.crypto.Mac.update:([B)V
        98: .line 1360
            aload 15 /* m */
            invokevirtual javax.crypto.Mac.doFinal:()[B
            astore 18 /* macResult */
        start local 18 // byte[] macResult
        99: .line 1362
            aload 12 /* macData */
            invokevirtual sun.security.pkcs12.MacData.getDigest:()[B
            aload 18 /* macResult */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifne 103
       100: .line 1363
            new java.lang.SecurityException
            dup
            ldc "Failed PKCS12 integrity checking"
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 18 // byte[] macResult
        end local 17 // javax.crypto.SecretKey key
        end local 16 // javax.crypto.spec.PBEParameterSpec params
        end local 15 // javax.crypto.Mac m
        end local 14 // java.lang.String algName
       101: .line 1366
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.pkcs12.MacData int
      StackMap stack: java.lang.Exception
            astore 14 /* e */
        start local 14 // java.lang.Exception e
       102: .line 1367
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Integrity check failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 14 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 14 // java.lang.Exception e
        end local 13 // int ic
        end local 12 // sun.security.pkcs12.MacData macData
       103: .line 1374
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.keyList:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.keyList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            anewarray sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry[]
            astore 12 /* list */
        start local 12 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry[] list
       104: .line 1375
            iconst_0
            istore 13 /* m */
        start local 13 // int m
       105: goto 133
       106: .line 1376
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry[] int
      StackMap stack:
            aload 12 /* list */
            iload 13 /* m */
            aaload
            astore 14 /* entry */
        start local 14 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
       107: .line 1377
            aload 14 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
            ifnull 132
       108: .line 1379
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
       109: .line 1378
            astore 15 /* chain */
        start local 15 // java.util.ArrayList chain
       110: .line 1380
            aload 0 /* this */
            aload 14 /* entry */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.findMatchedCertificate:(Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;)Ljava/security/cert/X509Certificate;
            astore 16 /* cert */
        start local 16 // java.security.cert.X509Certificate cert
       111: .line 1383
            goto 129
       112: .line 1385
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.util.ArrayList java.security.cert.X509Certificate
      StackMap stack:
            aload 15 /* chain */
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifne 124
       113: .line 1386
            aload 15 /* chain */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 18
            goto 123
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.pkcs12.PKCS12KeyStore$KeyEntry[] int sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.util.ArrayList java.security.cert.X509Certificate top java.util.Iterator
      StackMap stack:
       114: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            astore 17 /* chainCert */
        start local 17 // java.security.cert.X509Certificate chainCert
       115: .line 1387
            aload 16 /* cert */
            aload 17 /* chainCert */
            invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
            ifeq 123
       116: .line 1388
            getstatic sun.security.pkcs12.PKCS12KeyStore.debug:Lsun/security/util/Debug;
            ifnull 130
       117: .line 1389
            getstatic sun.security.pkcs12.PKCS12KeyStore.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "Loop detected in certificate chain. Skip adding repeated cert to chain. Subject: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       118: .line 1392
            aload 16 /* cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
       119: .line 1393
            invokevirtual javax.security.auth.x500.X500Principal.toString:()Ljava/lang/String;
       120: .line 1392
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       121: .line 1389
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
       122: .line 1395
            goto 130
        end local 17 // java.security.cert.X509Certificate chainCert
       123: .line 1386
      StackMap locals:
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 114
       124: .line 1399
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.pkcs12.PKCS12KeyStore$KeyEntry[] int sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.util.ArrayList java.security.cert.X509Certificate
      StackMap stack:
            aload 15 /* chain */
            aload 16 /* cert */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
       125: .line 1400
            aload 16 /* cert */
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 17 /* issuerDN */
        start local 17 // javax.security.auth.x500.X500Principal issuerDN
       126: .line 1401
            aload 17 /* issuerDN */
            aload 16 /* cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
            ifeq 128
       127: .line 1402
            goto 130
       128: .line 1404
      StackMap locals: javax.security.auth.x500.X500Principal
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.certsMap:Ljava/util/LinkedHashMap;
            aload 17 /* issuerDN */
            invokevirtual java.util.LinkedHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            astore 16 /* cert */
        end local 17 // javax.security.auth.x500.X500Principal issuerDN
       129: .line 1383
      StackMap locals:
      StackMap stack:
            aload 16 /* cert */
            ifnonnull 112
       130: .line 1407
      StackMap locals:
      StackMap stack:
            aload 15 /* chain */
            invokevirtual java.util.ArrayList.size:()I
            ifle 132
       131: .line 1408
            aload 14 /* entry */
            aload 15 /* chain */
            aload 15 /* chain */
            invokevirtual java.util.ArrayList.size:()I
            anewarray java.security.cert.Certificate
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.security.cert.Certificate[]
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
        end local 16 // java.security.cert.X509Certificate cert
        end local 15 // java.util.ArrayList chain
        end local 14 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
       132: .line 1375
      StackMap locals:
      StackMap stack:
            iinc 13 /* m */ 1
      StackMap locals:
      StackMap stack:
       133: iload 13 /* m */
            aload 12 /* list */
            arraylength
            if_icmplt 106
        end local 13 // int m
       134: .line 1411
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.certEntries:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
       135: .line 1412
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.certsMap:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.clear:()V
       136: .line 1413
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.keyList:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
       137: .line 1414
            return
        end local 12 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry[] list
        end local 11 // int count
        end local 10 // sun.security.util.DerValue[] safeContentsArray
        end local 9 // sun.security.util.DerInputStream as
        end local 8 // sun.security.util.ObjectIdentifier contentType
        end local 7 // sun.security.pkcs.ContentInfo authSafe
        end local 6 // byte[] authSafeData
        end local 5 // int version
        end local 4 // sun.security.util.DerInputStream s
        end local 3 // sun.security.util.DerValue val
        end local 2 // char[] password
        end local 1 // java.io.InputStream stream
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0  138     0               this  Lsun/security/pkcs12/PKCS12KeyStore;
            0  138     1             stream  Ljava/io/InputStream;
            0  138     2           password  [C
            4  138     3                val  Lsun/security/util/DerValue;
            5  138     4                  s  Lsun/security/util/DerInputStream;
            6  138     5            version  I
           13   14     6       authSafeData  [B
           15  138     6       authSafeData  [B
           10  138     7           authSafe  Lsun/security/pkcs/ContentInfo;
           11  138     8        contentType  Lsun/security/util/ObjectIdentifier;
           16  138     9                 as  Lsun/security/util/DerInputStream;
           17  138    10  safeContentsArray  [Lsun/security/util/DerValue;
           18  138    11              count  I
           20   80    12                  i  I
           25   78    13   safeContentsData  [B
           23   78    14       safeContents  Lsun/security/pkcs/ContentInfo;
           22   78    15                sci  Lsun/security/util/DerInputStream;
           33   75    16                edi  Lsun/security/util/DerInputStream;
           35   75    17                seq  [Lsun/security/util/DerValue;
           40   75    18             newTag  B
           45   75    19                 in  Lsun/security/util/DerInputStream;
           46   75    20             algOid  Lsun/security/util/ObjectIdentifier;
           47   75    21          algParams  Ljava/security/AlgorithmParameters;
           51   52    22            pbeSpec  Ljavax/crypto/spec/PBEParameterSpec;
           56   59    22            pbeSpec  Ljavax/crypto/spec/PBEParameterSpec;
           48   75    23                 ic  I
           65   68    24               skey  Ljavax/crypto/SecretKey;
           66   68    25             cipher  Ljavax/crypto/Cipher;
           70   75    24                  e  Ljava/lang/Exception;
           73   75    25                ioe  Ljava/io/IOException;
           77   78    16                 sc  Lsun/security/util/DerInputStream;
           82  103    12            macData  Lsun/security/pkcs12/MacData;
           83  103    13                 ic  I
           88  101    14            algName  Ljava/lang/String;
           93  101    15                  m  Ljavax/crypto/Mac;
           95  101    16             params  Ljavax/crypto/spec/PBEParameterSpec;
           96  101    17                key  Ljavax/crypto/SecretKey;
           99  101    18          macResult  [B
          102  103    14                  e  Ljava/lang/Exception;
          104  138    12               list  [Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
          105  134    13                  m  I
          107  132    14              entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
          110  132    15              chain  Ljava/util/ArrayList<Ljava/security/cert/X509Certificate;>;
          111  132    16               cert  Ljava/security/cert/X509Certificate;
          115  123    17          chainCert  Ljava/security/cert/X509Certificate;
          126  129    17           issuerDN  Ljavax/security/auth/x500/X500Principal;
      Exception table:
        from    to  target  type
          49    51      52  Class java.security.spec.InvalidParameterSpecException
          64    68      69  Class java.lang.Exception
          83   101     101  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      stream    
      password  

  private java.security.cert.X509Certificate findMatchedCertificate(sun.security.pkcs12.PKCS12KeyStore$KeyEntry);
    descriptor: (Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;)Ljava/security/cert/X509Certificate;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
         0: .line 1422
            aconst_null
            astore 2 /* keyIdMatch */
        start local 2 // sun.security.pkcs12.PKCS12KeyStore$CertEntry keyIdMatch
         1: .line 1423
            aconst_null
            astore 3 /* aliasMatch */
        start local 3 // sun.security.pkcs12.PKCS12KeyStore$CertEntry aliasMatch
         2: .line 1424
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.certEntries:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.pkcs12.PKCS12KeyStore$KeyEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.pkcs12.PKCS12KeyStore$CertEntry
            astore 4 /* ce */
        start local 4 // sun.security.pkcs12.PKCS12KeyStore$CertEntry ce
         4: .line 1425
            aload 1 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
            aload 4 /* ce */
            getfield sun.security.pkcs12.PKCS12KeyStore$CertEntry.keyId:[B
            invokestatic java.util.Arrays.equals:([B[B)Z
            ifeq 8
         5: .line 1426
            aload 4 /* ce */
            astore 2 /* keyIdMatch */
         6: .line 1427
            aload 1 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.alias:Ljava/lang/String;
            aload 4 /* ce */
            getfield sun.security.pkcs12.PKCS12KeyStore$CertEntry.alias:Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 10
         7: .line 1429
            aload 4 /* ce */
            getfield sun.security.pkcs12.PKCS12KeyStore$CertEntry.cert:Ljava/security/cert/X509Certificate;
            areturn
         8: .line 1431
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.pkcs12.PKCS12KeyStore$KeyEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry java.util.Iterator
      StackMap stack:
            aload 1 /* entry */
            getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.alias:Ljava/lang/String;
            aload 4 /* ce */
            getfield sun.security.pkcs12.PKCS12KeyStore$CertEntry.alias:Ljava/lang/String;
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 10
         9: .line 1432
            aload 4 /* ce */
            astore 3 /* aliasMatch */
        end local 4 // sun.security.pkcs12.PKCS12KeyStore$CertEntry ce
        10: .line 1424
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.pkcs12.PKCS12KeyStore$KeyEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        11: .line 1436
            aload 2 /* keyIdMatch */
            ifnull 12
            aload 2 /* keyIdMatch */
            getfield sun.security.pkcs12.PKCS12KeyStore$CertEntry.cert:Ljava/security/cert/X509Certificate;
            areturn
        12: .line 1437
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.pkcs12.PKCS12KeyStore$KeyEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry
      StackMap stack:
            aload 3 /* aliasMatch */
            ifnull 13
            aload 3 /* aliasMatch */
            getfield sun.security.pkcs12.PKCS12KeyStore$CertEntry.cert:Ljava/security/cert/X509Certificate;
            areturn
        13: .line 1438
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // sun.security.pkcs12.PKCS12KeyStore$CertEntry aliasMatch
        end local 2 // sun.security.pkcs12.PKCS12KeyStore$CertEntry keyIdMatch
        end local 1 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   14     1       entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
            1   14     2  keyIdMatch  Lsun/security/pkcs12/PKCS12KeyStore$CertEntry;
            2   14     3  aliasMatch  Lsun/security/pkcs12/PKCS12KeyStore$CertEntry;
            4   10     4          ce  Lsun/security/pkcs12/PKCS12KeyStore$CertEntry;
    MethodParameters:
       Name  Flags
      entry  

  private void loadSafeContents(sun.security.util.DerInputStream, char[]);
    descriptor: (Lsun/security/util/DerInputStream;[C)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=20, args_size=3
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
        start local 1 // sun.security.util.DerInputStream stream
        start local 2 // char[] password
         0: .line 1444
            aload 1 /* stream */
            iconst_2
            invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
            astore 3 /* safeBags */
        start local 3 // sun.security.util.DerValue[] safeBags
         1: .line 1445
            aload 3 /* safeBags */
            arraylength
            istore 4 /* count */
        start local 4 // int count
         2: .line 1450
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 96
         4: .line 1454
      StackMap locals: sun.security.util.DerValue[] int int
      StackMap stack:
            aconst_null
            astore 9 /* bagItem */
        start local 9 // java.lang.Object bagItem
         5: .line 1456
            aload 3 /* safeBags */
            iload 5 /* i */
            aaload
            invokevirtual sun.security.util.DerValue.toDerInputStream:()Lsun/security/util/DerInputStream;
            astore 7 /* sbi */
        start local 7 // sun.security.util.DerInputStream sbi
         6: .line 1457
            aload 7 /* sbi */
            invokevirtual sun.security.util.DerInputStream.getOID:()Lsun/security/util/ObjectIdentifier;
            astore 6 /* bagId */
        start local 6 // sun.security.util.ObjectIdentifier bagId
         7: .line 1458
            aload 7 /* sbi */
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 8 /* bagValue */
        start local 8 // sun.security.util.DerValue bagValue
         8: .line 1459
            aload 8 /* bagValue */
            iconst_0
            invokevirtual sun.security.util.DerValue.isContextSpecific:(B)Z
            ifne 12
         9: .line 1460
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unsupported PKCS12 bag value type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 1461
            aload 8 /* bagValue */
            getfield sun.security.util.DerValue.tag:B
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 1460
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 1463
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerInputStream char[] sun.security.util.DerValue[] int int sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue java.lang.Object
      StackMap stack:
            aload 8 /* bagValue */
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 8 /* bagValue */
        13: .line 1464
            aload 6 /* bagId */
            getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS8ShroudedKeyBag_OID:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 19
        14: .line 1465
            new sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            dup
            invokespecial sun.security.pkcs12.PKCS12KeyStore$KeyEntry.<init>:()V
            astore 10 /* kEntry */
        start local 10 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry kEntry
        15: .line 1466
            aload 10 /* kEntry */
            aload 8 /* bagValue */
            invokevirtual sun.security.util.DerValue.toByteArray:()[B
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.protectedPrivKey:[B
        16: .line 1467
            aload 10 /* kEntry */
            astore 9 /* bagItem */
        17: .line 1468
            aload 0 /* this */
            dup
            getfield sun.security.pkcs12.PKCS12KeyStore.privateKeyCount:I
            iconst_1
            iadd
            putfield sun.security.pkcs12.PKCS12KeyStore.privateKeyCount:I
        end local 10 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry kEntry
        18: .line 1469
            goto 33
      StackMap locals:
      StackMap stack:
        19: aload 6 /* bagId */
            getstatic sun.security.pkcs12.PKCS12KeyStore.CertBag_OID:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 33
        20: .line 1470
            new sun.security.util.DerInputStream
            dup
            aload 8 /* bagValue */
            invokevirtual sun.security.util.DerValue.toByteArray:()[B
            invokespecial sun.security.util.DerInputStream.<init>:([B)V
            astore 10 /* cs */
        start local 10 // sun.security.util.DerInputStream cs
        21: .line 1471
            aload 10 /* cs */
            iconst_2
            invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
            astore 11 /* certValues */
        start local 11 // sun.security.util.DerValue[] certValues
        22: .line 1472
            aload 11 /* certValues */
            iconst_0
            aaload
            invokevirtual sun.security.util.DerValue.getOID:()Lsun/security/util/ObjectIdentifier;
            pop
        23: .line 1473
            aload 11 /* certValues */
            iconst_1
            aaload
            iconst_0
            invokevirtual sun.security.util.DerValue.isContextSpecific:(B)Z
            ifne 27
        24: .line 1474
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unsupported PKCS12 cert value type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        25: .line 1475
            aload 11 /* certValues */
            iconst_1
            aaload
            getfield sun.security.util.DerValue.tag:B
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 1474
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        27: .line 1477
      StackMap locals: sun.security.util.DerInputStream sun.security.util.DerValue[]
      StackMap stack:
            aload 11 /* certValues */
            iconst_1
            aaload
            getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
            invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
            astore 12 /* certValue */
        start local 12 // sun.security.util.DerValue certValue
        28: .line 1478
            ldc "X509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 13 /* cf */
        start local 13 // java.security.cert.CertificateFactory cf
        29: .line 1480
            aload 13 /* cf */
        30: .line 1481
            new java.io.ByteArrayInputStream
            dup
            aload 12 /* certValue */
            invokevirtual sun.security.util.DerValue.getOctetString:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
        31: .line 1480
            invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
            checkcast java.security.cert.X509Certificate
            astore 14 /* cert */
        start local 14 // java.security.cert.X509Certificate cert
        32: .line 1482
            aload 14 /* cert */
            astore 9 /* bagItem */
        end local 14 // java.security.cert.X509Certificate cert
        end local 13 // java.security.cert.CertificateFactory cf
        end local 12 // sun.security.util.DerValue certValue
        end local 11 // sun.security.util.DerValue[] certValues
        end local 10 // sun.security.util.DerInputStream cs
        33: .line 1489
      StackMap locals:
      StackMap stack:
            aload 7 /* sbi */
            iconst_2
            invokevirtual sun.security.util.DerInputStream.getSet:(I)[Lsun/security/util/DerValue;
            astore 10 /* attrSet */
        start local 10 // sun.security.util.DerValue[] attrSet
        34: .line 1490
            goto 37
        end local 10 // sun.security.util.DerValue[] attrSet
      StackMap locals:
      StackMap stack: java.io.IOException
        35: pop
        36: .line 1494
            aconst_null
            astore 10 /* attrSet */
        start local 10 // sun.security.util.DerValue[] attrSet
        37: .line 1497
      StackMap locals: sun.security.util.DerValue[]
      StackMap stack:
            aconst_null
            astore 11 /* alias */
        start local 11 // java.lang.String alias
        38: .line 1498
            aconst_null
            astore 12 /* keyId */
        start local 12 // byte[] keyId
        39: .line 1500
            aload 10 /* attrSet */
            ifnull 61
        40: .line 1501
            iconst_0
            istore 13 /* j */
        start local 13 // int j
        41: goto 60
        42: .line 1503
      StackMap locals: java.lang.String byte[] int
      StackMap stack:
            new sun.security.util.DerInputStream
            dup
            aload 10 /* attrSet */
            iload 13 /* j */
            aaload
            invokevirtual sun.security.util.DerValue.toByteArray:()[B
            invokespecial sun.security.util.DerInputStream.<init>:([B)V
        43: .line 1502
            astore 14 /* as */
        start local 14 // sun.security.util.DerInputStream as
        44: .line 1504
            aload 14 /* as */
            iconst_2
            invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
            astore 15 /* attrSeq */
        start local 15 // sun.security.util.DerValue[] attrSeq
        45: .line 1505
            aload 15 /* attrSeq */
            iconst_0
            aaload
            invokevirtual sun.security.util.DerValue.getOID:()Lsun/security/util/ObjectIdentifier;
            astore 16 /* attrId */
        start local 16 // sun.security.util.ObjectIdentifier attrId
        46: .line 1507
            new sun.security.util.DerInputStream
            dup
            aload 15 /* attrSeq */
            iconst_1
            aaload
            invokevirtual sun.security.util.DerValue.toByteArray:()[B
            invokespecial sun.security.util.DerInputStream.<init>:([B)V
        47: .line 1506
            astore 17 /* vs */
        start local 17 // sun.security.util.DerInputStream vs
        48: .line 1510
            aload 17 /* vs */
            iconst_1
            invokevirtual sun.security.util.DerInputStream.getSet:(I)[Lsun/security/util/DerValue;
            astore 18 /* valSet */
        start local 18 // sun.security.util.DerValue[] valSet
        49: .line 1511
            goto 54
        end local 18 // sun.security.util.DerValue[] valSet
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerInputStream char[] sun.security.util.DerValue[] int int sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue java.lang.Object sun.security.util.DerValue[] java.lang.String byte[] int sun.security.util.DerInputStream sun.security.util.DerValue[] sun.security.util.ObjectIdentifier sun.security.util.DerInputStream
      StackMap stack: java.io.IOException
        50: astore 19 /* e */
        start local 19 // java.io.IOException e
        51: .line 1512
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Attribute "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 16 /* attrId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        52: .line 1513
            ldc " should have a value "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 19 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        53: .line 1512
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 19 // java.io.IOException e
        start local 18 // sun.security.util.DerValue[] valSet
        54: .line 1515
      StackMap locals: sun.security.util.DerValue[]
      StackMap stack:
            aload 16 /* attrId */
            getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9FriendlyName_OID:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 57
        55: .line 1516
            aload 18 /* valSet */
            iconst_0
            aaload
            invokevirtual sun.security.util.DerValue.getBMPString:()Ljava/lang/String;
            astore 11 /* alias */
        56: .line 1517
            goto 59
      StackMap locals:
      StackMap stack:
        57: aload 16 /* attrId */
            getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9LocalKeyId_OID:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 59
        58: .line 1518
            aload 18 /* valSet */
            iconst_0
            aaload
            invokevirtual sun.security.util.DerValue.getOctetString:()[B
            astore 12 /* keyId */
        end local 18 // sun.security.util.DerValue[] valSet
        end local 17 // sun.security.util.DerInputStream vs
        end local 16 // sun.security.util.ObjectIdentifier attrId
        end local 15 // sun.security.util.DerValue[] attrSeq
        end local 14 // sun.security.util.DerInputStream as
        59: .line 1501
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerInputStream char[] sun.security.util.DerValue[] int int sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue java.lang.Object sun.security.util.DerValue[] java.lang.String byte[] int
      StackMap stack:
            iinc 13 /* j */ 1
      StackMap locals:
      StackMap stack:
        60: iload 13 /* j */
            aload 10 /* attrSet */
            arraylength
            if_icmplt 42
        end local 13 // int j
        61: .line 1534
      StackMap locals:
      StackMap stack:
            aload 9 /* bagItem */
            instanceof sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            ifeq 85
        62: .line 1535
            aload 9 /* bagItem */
            checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
            astore 13 /* entry */
        start local 13 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        63: .line 1536
            aload 12 /* keyId */
            ifnonnull 66
        64: .line 1541
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.privateKeyCount:I
            iconst_1
            if_icmpne 95
        65: .line 1542
            ldc "01"
            ldc "UTF8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            astore 12 /* keyId */
        66: .line 1547
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
      StackMap stack:
            aload 13 /* entry */
            aload 12 /* keyId */
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
        67: .line 1549
            new java.lang.String
            dup
            aload 12 /* keyId */
            ldc "UTF8"
            invokespecial java.lang.String.<init>:([BLjava/lang/String;)V
            astore 14 /* keyIdStr */
        start local 14 // java.lang.String keyIdStr
        68: .line 1550
            aconst_null
            astore 15 /* date */
        start local 15 // java.util.Date date
        69: .line 1551
            aload 14 /* keyIdStr */
            ldc "Time "
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 76
        70: .line 1553
            new java.util.Date
            dup
        71: .line 1554
            aload 14 /* keyIdStr */
            iconst_5
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
        72: .line 1553
            invokespecial java.util.Date.<init>:(J)V
            astore 15 /* date */
        73: .line 1555
            goto 76
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerInputStream char[] sun.security.util.DerValue[] int int sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue java.lang.Object sun.security.util.DerValue[] java.lang.String byte[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.lang.String java.util.Date
      StackMap stack: java.lang.Exception
        74: pop
        75: .line 1556
            aconst_null
            astore 15 /* date */
        76: .line 1559
      StackMap locals:
      StackMap stack:
            aload 15 /* date */
            ifnonnull 78
        77: .line 1560
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            astore 15 /* date */
        78: .line 1562
      StackMap locals:
      StackMap stack:
            aload 13 /* entry */
            aload 15 /* date */
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.date:Ljava/util/Date;
        79: .line 1563
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.keyList:Ljava/util/ArrayList;
            aload 13 /* entry */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        80: .line 1564
            aload 11 /* alias */
            ifnonnull 82
        81: .line 1565
            aload 0 /* this */
            invokevirtual sun.security.pkcs12.PKCS12KeyStore.getUnfriendlyName:()Ljava/lang/String;
            astore 11 /* alias */
        82: .line 1566
      StackMap locals:
      StackMap stack:
            aload 13 /* entry */
            aload 11 /* alias */
            putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.alias:Ljava/lang/String;
        83: .line 1567
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
            aload 11 /* alias */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            aload 13 /* entry */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 15 // java.util.Date date
        end local 14 // java.lang.String keyIdStr
        end local 13 // sun.security.pkcs12.PKCS12KeyStore$KeyEntry entry
        84: .line 1568
            goto 95
      StackMap locals:
      StackMap stack:
        85: aload 9 /* bagItem */
            instanceof java.security.cert.X509Certificate
            ifeq 95
        86: .line 1569
            aload 9 /* bagItem */
            checkcast java.security.cert.X509Certificate
            astore 13 /* cert */
        start local 13 // java.security.cert.X509Certificate cert
        87: .line 1574
            aload 12 /* keyId */
            ifnonnull 90
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.privateKeyCount:I
            iconst_1
            if_icmpne 90
        88: .line 1576
            iload 5 /* i */
            ifne 90
        89: .line 1577
            ldc "01"
            ldc "UTF8"
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            astore 12 /* keyId */
        90: .line 1580
      StackMap locals: java.security.cert.X509Certificate
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.certEntries:Ljava/util/ArrayList;
            new sun.security.pkcs12.PKCS12KeyStore$CertEntry
            dup
            aload 13 /* cert */
            aload 12 /* keyId */
            aload 11 /* alias */
            invokespecial sun.security.pkcs12.PKCS12KeyStore$CertEntry.<init>:(Ljava/security/cert/X509Certificate;[BLjava/lang/String;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        91: .line 1581
            aload 13 /* cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 14 /* subjectDN */
        start local 14 // javax.security.auth.x500.X500Principal subjectDN
        92: .line 1582
            aload 14 /* subjectDN */
            ifnull 95
        93: .line 1583
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.certsMap:Ljava/util/LinkedHashMap;
            aload 14 /* subjectDN */
            invokevirtual java.util.LinkedHashMap.containsKey:(Ljava/lang/Object;)Z
            ifne 95
        94: .line 1584
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.certsMap:Ljava/util/LinkedHashMap;
            aload 14 /* subjectDN */
            aload 13 /* cert */
            invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 14 // javax.security.auth.x500.X500Principal subjectDN
        end local 13 // java.security.cert.X509Certificate cert
        end local 12 // byte[] keyId
        end local 11 // java.lang.String alias
        end local 10 // sun.security.util.DerValue[] attrSet
        end local 9 // java.lang.Object bagItem
        end local 8 // sun.security.util.DerValue bagValue
        end local 7 // sun.security.util.DerInputStream sbi
        end local 6 // sun.security.util.ObjectIdentifier bagId
        95: .line 1450
      StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerInputStream char[] sun.security.util.DerValue[] int int
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        96: iload 5 /* i */
            iload 4 /* count */
            if_icmplt 4
        end local 5 // int i
        97: .line 1589
            return
        end local 4 // int count
        end local 3 // sun.security.util.DerValue[] safeBags
        end local 2 // char[] password
        end local 1 // sun.security.util.DerInputStream stream
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   98     0        this  Lsun/security/pkcs12/PKCS12KeyStore;
            0   98     1      stream  Lsun/security/util/DerInputStream;
            0   98     2    password  [C
            1   98     3    safeBags  [Lsun/security/util/DerValue;
            2   98     4       count  I
            3   97     5           i  I
            7   95     6       bagId  Lsun/security/util/ObjectIdentifier;
            6   95     7         sbi  Lsun/security/util/DerInputStream;
            8   95     8    bagValue  Lsun/security/util/DerValue;
            5   95     9     bagItem  Ljava/lang/Object;
           15   18    10      kEntry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
           21   33    10          cs  Lsun/security/util/DerInputStream;
           22   33    11  certValues  [Lsun/security/util/DerValue;
           28   33    12   certValue  Lsun/security/util/DerValue;
           29   33    13          cf  Ljava/security/cert/CertificateFactory;
           32   33    14        cert  Ljava/security/cert/X509Certificate;
           34   35    10     attrSet  [Lsun/security/util/DerValue;
           37   95    10     attrSet  [Lsun/security/util/DerValue;
           38   95    11       alias  Ljava/lang/String;
           39   95    12       keyId  [B
           41   61    13           j  I
           44   59    14          as  Lsun/security/util/DerInputStream;
           45   59    15     attrSeq  [Lsun/security/util/DerValue;
           46   59    16      attrId  Lsun/security/util/ObjectIdentifier;
           48   59    17          vs  Lsun/security/util/DerInputStream;
           49   50    18      valSet  [Lsun/security/util/DerValue;
           54   59    18      valSet  [Lsun/security/util/DerValue;
           51   54    19           e  Ljava/io/IOException;
           63   84    13       entry  Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
           68   84    14    keyIdStr  Ljava/lang/String;
           69   84    15        date  Ljava/util/Date;
           87   95    13        cert  Ljava/security/cert/X509Certificate;
           92   95    14   subjectDN  Ljavax/security/auth/x500/X500Principal;
      Exception table:
        from    to  target  type
          33    34      35  Class java.io.IOException
          48    49      50  Class java.io.IOException
          70    73      74  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      stream    
      password  

  private java.lang.String getUnfriendlyName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.pkcs12.PKCS12KeyStore this
         0: .line 1592
            aload 0 /* this */
            dup
            getfield sun.security.pkcs12.PKCS12KeyStore.counter:I
            iconst_1
            iadd
            putfield sun.security.pkcs12.PKCS12KeyStore.counter:I
         1: .line 1593
            aload 0 /* this */
            getfield sun.security.pkcs12.PKCS12KeyStore.counter:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            areturn
        end local 0 // sun.security.pkcs12.PKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/pkcs12/PKCS12KeyStore;
}
SourceFile: "PKCS12KeyStore.java"
NestMembers:
  sun.security.pkcs12.PKCS12KeyStore$CertEntry  sun.security.pkcs12.PKCS12KeyStore$KeyEntry
InnerClasses:
  private CertEntry = sun.security.pkcs12.PKCS12KeyStore$CertEntry of sun.security.pkcs12.PKCS12KeyStore
  private KeyEntry = sun.security.pkcs12.PKCS12KeyStore$KeyEntry of sun.security.pkcs12.PKCS12KeyStore