public class org.bouncycastle.jce.provider.JDKPKCS12KeyStore extends java.security.KeyStoreSpi implements org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers, org.bouncycastle.asn1.x509.X509ObjectIdentifiers, org.bouncycastle.jce.interfaces.BCKeyStore
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.jce.provider.JDKPKCS12KeyStore
  super_class: java.security.KeyStoreSpi
{
  private static final int SALT_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 20

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

  private static final java.security.Provider bcProvider;
    descriptor: Ljava/security/Provider;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable keys;
    descriptor: Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Hashtable localIds;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable certs;
    descriptor: Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Hashtable chainCerts;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Hashtable keyCerts;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0002) ACC_PRIVATE

  static final int NULL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int CERTIFICATE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int KEY;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int SECRET;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int SEALED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final int KEY_PRIVATE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int KEY_PUBLIC;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int KEY_SECRET;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  protected java.security.SecureRandom random;
    descriptor: Ljava/security/SecureRandom;
    flags: (0x0004) ACC_PROTECTED

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

  private org.bouncycastle.asn1.DERObjectIdentifier keyAlgorithm;
    descriptor: Lorg/bouncycastle/asn1/DERObjectIdentifier;
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.asn1.DERObjectIdentifier certAlgorithm;
    descriptor: Lorg/bouncycastle/asn1/DERObjectIdentifier;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 86
            new org.bouncycastle.jce.provider.BouncyCastleProvider
            dup
            invokespecial org.bouncycastle.jce.provider.BouncyCastleProvider.<init>:()V
            putstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.bcProvider:Ljava/security/Provider;
         1: .line 108
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.security.Provider, org.bouncycastle.asn1.DERObjectIdentifier, org.bouncycastle.asn1.DERObjectIdentifier);
    descriptor: (Ljava/security/Provider;Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DERObjectIdentifier;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.security.Provider provider
        start local 2 // org.bouncycastle.asn1.DERObjectIdentifier keyAlgorithm
        start local 3 // org.bouncycastle.asn1.DERObjectIdentifier certAlgorithm
         0: .line 157
            aload 0 /* this */
            invokespecial java.security.KeyStoreSpi.<init>:()V
         1: .line 88
            aload 0 /* this */
            new org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable
            dup
            invokespecial org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.<init>:()V
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
         2: .line 89
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.localIds:Ljava/util/Hashtable;
         3: .line 90
            aload 0 /* this */
            new org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable
            dup
            invokespecial org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.<init>:()V
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
         4: .line 91
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.chainCerts:Ljava/util/Hashtable;
         5: .line 92
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyCerts:Ljava/util/Hashtable;
         6: .line 110
            aload 0 /* this */
            new java.security.SecureRandom
            dup
            invokespecial java.security.SecureRandom.<init>:()V
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.random:Ljava/security/SecureRandom;
         7: .line 162
            aload 0 /* this */
            aload 2 /* keyAlgorithm */
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyAlgorithm:Lorg/bouncycastle/asn1/DERObjectIdentifier;
         8: .line 163
            aload 0 /* this */
            aload 3 /* certAlgorithm */
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certAlgorithm:Lorg/bouncycastle/asn1/DERObjectIdentifier;
         9: .line 167
            aload 1 /* provider */
            ifnull 12
        10: .line 169
            aload 0 /* this */
            ldc "X.509"
            aload 1 /* provider */
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/cert/CertificateFactory;
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certFact:Ljava/security/cert/CertificateFactory;
        11: .line 170
            goto 16
        12: .line 173
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.security.Provider org.bouncycastle.asn1.DERObjectIdentifier org.bouncycastle.asn1.DERObjectIdentifier
      StackMap stack:
            aload 0 /* this */
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certFact:Ljava/security/cert/CertificateFactory;
        13: .line 175
            goto 16
        14: .line 176
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        15: .line 178
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "can't create cert factory - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.Exception e
        16: .line 180
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.bouncycastle.asn1.DERObjectIdentifier certAlgorithm
        end local 2 // org.bouncycastle.asn1.DERObjectIdentifier keyAlgorithm
        end local 1 // java.security.Provider provider
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0   17     1       provider  Ljava/security/Provider;
            0   17     2   keyAlgorithm  Lorg/bouncycastle/asn1/DERObjectIdentifier;
            0   17     3  certAlgorithm  Lorg/bouncycastle/asn1/DERObjectIdentifier;
           15   16     4              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           9    13      14  Class java.lang.Exception
    MethodParameters:
               Name  Flags
      provider       
      keyAlgorithm   
      certAlgorithm  

  private org.bouncycastle.asn1.x509.SubjectKeyIdentifier createSubjectKeyId(java.security.PublicKey);
    descriptor: (Ljava/security/PublicKey;)Lorg/bouncycastle/asn1/x509/SubjectKeyIdentifier;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.security.PublicKey pubKey
         0: .line 187
            new org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
            dup
         1: .line 188
            aload 1 /* pubKey */
            invokeinterface java.security.PublicKey.getEncoded:()[B
            invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
            checkcast org.bouncycastle.asn1.ASN1Sequence
         2: .line 187
            invokespecial org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 2 /* info */
        start local 2 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo info
         3: .line 190
            new org.bouncycastle.asn1.x509.SubjectKeyIdentifier
            dup
            aload 2 /* info */
            invokespecial org.bouncycastle.asn1.x509.SubjectKeyIdentifier.<init>:(Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)V
         4: areturn
        end local 2 // org.bouncycastle.asn1.x509.SubjectPublicKeyInfo info
         5: .line 192
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         6: .line 194
            new java.lang.RuntimeException
            dup
            ldc "error creating key"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.security.PublicKey pubKey
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0    7     1  pubKey  Ljava/security/PublicKey;
            3    5     2    info  Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.Exception
    MethodParameters:
        Name  Flags
      pubKey  

  public void setRandom(java.security.SecureRandom);
    descriptor: (Ljava/security/SecureRandom;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.security.SecureRandom rand
         0: .line 201
            aload 0 /* this */
            aload 1 /* rand */
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.random:Ljava/security/SecureRandom;
         1: .line 202
            return
        end local 1 // java.security.SecureRandom rand
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0    2     1  rand  Ljava/security/SecureRandom;
    MethodParameters:
      Name  Flags
      rand  

  public java.util.Enumeration engineAliases();
    descriptor: ()Ljava/util/Enumeration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
         0: .line 206
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            astore 1 /* tab */
        start local 1 // java.util.Hashtable tab
         1: .line 208
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.keys:()Ljava/util/Enumeration;
            astore 2 /* e */
        start local 2 // java.util.Enumeration e
         2: .line 209
            goto 4
         3: .line 211
      StackMap locals: java.util.Hashtable java.util.Enumeration
      StackMap stack:
            aload 1 /* tab */
            aload 2 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            ldc "cert"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 209
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
         5: .line 214
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.keys:()Ljava/util/Enumeration;
            astore 2 /* e */
         6: .line 215
            goto 10
         7: .line 217
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* a */
        start local 3 // java.lang.String a
         8: .line 218
            aload 1 /* tab */
            aload 3 /* a */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 10
         9: .line 220
            aload 1 /* tab */
            aload 3 /* a */
            ldc "key"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.lang.String a
        10: .line 215
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 7
        11: .line 224
            aload 1 /* tab */
            invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
            areturn
        end local 2 // java.util.Enumeration e
        end local 1 // java.util.Hashtable tab
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            1   12     1   tab  Ljava/util/Hashtable;
            2   12     2     e  Ljava/util/Enumeration;
            8   10     3     a  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 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 230
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnonnull 1
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnonnull 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // java.lang.String alias
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0    2     1  alias  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      alias  

  public void engineDeleteEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 241
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.remove:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.security.Key
            astore 2 /* k */
        start local 2 // java.security.Key k
         1: .line 243
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.remove:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.security.cert.Certificate
            astore 3 /* c */
        start local 3 // java.security.cert.Certificate c
         2: .line 245
            aload 3 /* c */
            ifnull 4
         3: .line 247
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.chainCerts:Ljava/util/Hashtable;
            new org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId
            dup
            aload 0 /* this */
            aload 3 /* c */
            invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokespecial org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId.<init>:(Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;Ljava/security/PublicKey;)V
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 250
      StackMap locals: java.security.Key java.security.cert.Certificate
      StackMap stack:
            aload 2 /* k */
            ifnull 10
         5: .line 252
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.localIds:Ljava/util/Hashtable;
            aload 1 /* alias */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* id */
        start local 4 // java.lang.String id
         6: .line 253
            aload 4 /* id */
            ifnull 8
         7: .line 255
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyCerts:Ljava/util/Hashtable;
            aload 4 /* id */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.cert.Certificate
            astore 3 /* c */
         8: .line 257
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* c */
            ifnull 10
         9: .line 259
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.chainCerts:Ljava/util/Hashtable;
            new org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId
            dup
            aload 0 /* this */
            aload 3 /* c */
            invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokespecial org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId.<init>:(Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;Ljava/security/PublicKey;)V
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.String id
        10: .line 263
      StackMap locals:
      StackMap stack:
            aload 3 /* c */
            ifnonnull 12
            aload 2 /* k */
            ifnonnull 12
        11: .line 265
            new java.security.KeyStoreException
            dup
            new java.lang.StringBuilder
            dup
            ldc "no such entry as "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 267
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.security.cert.Certificate c
        end local 2 // java.security.Key k
        end local 1 // java.lang.String alias
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0   13     1  alias  Ljava/lang/String;
            1   13     2      k  Ljava/security/Key;
            2   13     3      c  Ljava/security/cert/Certificate;
            6   10     4     id  Ljava/lang/String;
    Exceptions:
      throws java.security.KeyStoreException
    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=3, locals=4, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 275
            aload 1 /* alias */
            ifnonnull 2
         1: .line 277
            new java.lang.IllegalArgumentException
            dup
            ldc "null alias passed to getCertificate."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 280
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.security.cert.Certificate
            astore 2 /* c */
        start local 2 // java.security.cert.Certificate c
         3: .line 285
            aload 2 /* c */
            ifnonnull 9
         4: .line 287
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.localIds:Ljava/util/Hashtable;
            aload 1 /* alias */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* id */
        start local 3 // java.lang.String id
         5: .line 288
            aload 3 /* id */
            ifnull 8
         6: .line 290
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyCerts:Ljava/util/Hashtable;
            aload 3 /* id */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.cert.Certificate
            astore 2 /* c */
         7: .line 291
            goto 9
         8: .line 294
      StackMap locals: java.security.cert.Certificate java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyCerts:Ljava/util/Hashtable;
            aload 1 /* alias */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.cert.Certificate
            astore 2 /* c */
        end local 3 // java.lang.String id
         9: .line 298
      StackMap locals:
      StackMap stack:
            aload 2 /* c */
            areturn
        end local 2 // java.security.cert.Certificate c
        end local 1 // java.lang.String alias
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0   10     1  alias  Ljava/lang/String;
            3   10     2      c  Ljava/security/cert/Certificate;
            5    9     3     id  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 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.security.cert.Certificate cert
         0: .line 304
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.elements:()Ljava/util/Enumeration;
            astore 2 /* c */
        start local 2 // java.util.Enumeration c
         1: .line 305
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.keys:()Ljava/util/Enumeration;
            astore 3 /* k */
        start local 3 // java.util.Enumeration k
         2: .line 307
            goto 7
         3: .line 309
      StackMap locals: java.util.Enumeration java.util.Enumeration
      StackMap stack:
            aload 2 /* c */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.security.cert.Certificate
            astore 4 /* tc */
        start local 4 // java.security.cert.Certificate tc
         4: .line 310
            aload 3 /* k */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* ta */
        start local 5 // java.lang.String ta
         5: .line 312
            aload 4 /* tc */
            aload 1 /* cert */
            invokevirtual java.security.cert.Certificate.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 314
            aload 5 /* ta */
            areturn
        end local 5 // java.lang.String ta
        end local 4 // java.security.cert.Certificate tc
         7: .line 307
      StackMap locals:
      StackMap stack:
            aload 2 /* c */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
         8: .line 318
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyCerts:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.elements:()Ljava/util/Enumeration;
            astore 2 /* c */
         9: .line 319
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyCerts:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
            astore 3 /* k */
        10: .line 321
            goto 15
        11: .line 323
      StackMap locals:
      StackMap stack:
            aload 2 /* c */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.security.cert.Certificate
            astore 4 /* tc */
        start local 4 // java.security.cert.Certificate tc
        12: .line 324
            aload 3 /* k */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* ta */
        start local 5 // java.lang.String ta
        13: .line 326
            aload 4 /* tc */
            aload 1 /* cert */
            invokevirtual java.security.cert.Certificate.equals:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 328
            aload 5 /* ta */
            areturn
        end local 5 // java.lang.String ta
        end local 4 // java.security.cert.Certificate tc
        15: .line 321
      StackMap locals:
      StackMap stack:
            aload 2 /* c */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 11
        16: .line 332
            aconst_null
            areturn
        end local 3 // java.util.Enumeration k
        end local 2 // java.util.Enumeration c
        end local 1 // java.security.cert.Certificate cert
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0   17     1  cert  Ljava/security/cert/Certificate;
            1   17     2     c  Ljava/util/Enumeration;
            2   17     3     k  Ljava/util/Enumeration;
            4    7     4    tc  Ljava/security/cert/Certificate;
            5    7     5    ta  Ljava/lang/String;
           12   15     4    tc  Ljava/security/cert/Certificate;
           13   15     5    ta  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      cert  

  public java.security.cert.Certificate[] engineGetCertificateChain(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/security/cert/Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 338
            aload 1 /* alias */
            ifnonnull 2
         1: .line 340
            new java.lang.IllegalArgumentException
            dup
            ldc "null alias passed to getCertificateChain."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineIsKeyEntry:(Ljava/lang/String;)Z
            ifne 4
         3: .line 345
            aconst_null
            areturn
         4: .line 348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineGetCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
            astore 2 /* c */
        start local 2 // java.security.cert.Certificate c
         5: .line 350
            aload 2 /* c */
            ifnull 48
         6: .line 352
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 3 /* cs */
        start local 3 // java.util.Vector cs
         7: .line 354
            goto 40
         8: .line 356
      StackMap locals: java.security.cert.Certificate java.util.Vector
      StackMap stack:
            aload 2 /* c */
            checkcast java.security.cert.X509Certificate
            astore 4 /* x509c */
        start local 4 // java.security.cert.X509Certificate x509c
         9: .line 357
            aconst_null
            astore 5 /* nextC */
        start local 5 // java.security.cert.Certificate nextC
        10: .line 359
            aload 4 /* x509c */
            getstatic org.bouncycastle.asn1.x509.X509Extensions.AuthorityKeyIdentifier:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
            invokevirtual java.security.cert.X509Certificate.getExtensionValue:(Ljava/lang/String;)[B
            astore 6 /* bytes */
        start local 6 // byte[] bytes
        11: .line 360
            aload 6 /* bytes */
            ifnull 21
        12: .line 364
            new org.bouncycastle.asn1.ASN1InputStream
            dup
            aload 6 /* bytes */
            invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:([B)V
            astore 7 /* aIn */
        start local 7 // org.bouncycastle.asn1.ASN1InputStream aIn
        13: .line 366
            aload 7 /* aIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1OctetString
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            astore 8 /* authBytes */
        start local 8 // byte[] authBytes
        14: .line 367
            new org.bouncycastle.asn1.ASN1InputStream
            dup
            aload 8 /* authBytes */
            invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:([B)V
            astore 7 /* aIn */
        15: .line 369
            new org.bouncycastle.asn1.x509.AuthorityKeyIdentifier
            dup
            aload 7 /* aIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            invokespecial org.bouncycastle.asn1.x509.AuthorityKeyIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 9 /* id */
        start local 9 // org.bouncycastle.asn1.x509.AuthorityKeyIdentifier id
        16: .line 370
            aload 9 /* id */
            invokevirtual org.bouncycastle.asn1.x509.AuthorityKeyIdentifier.getKeyIdentifier:()[B
            ifnull 21
        17: .line 372
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.chainCerts:Ljava/util/Hashtable;
            new org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId
            dup
            aload 0 /* this */
            aload 9 /* id */
            invokevirtual org.bouncycastle.asn1.x509.AuthorityKeyIdentifier.getKeyIdentifier:()[B
            invokespecial org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId.<init>:(Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;[B)V
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.cert.Certificate
            astore 5 /* nextC */
        end local 9 // org.bouncycastle.asn1.x509.AuthorityKeyIdentifier id
        end local 8 // byte[] authBytes
        end local 7 // org.bouncycastle.asn1.ASN1InputStream aIn
        18: .line 375
            goto 21
        19: .line 376
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.lang.String java.security.cert.Certificate java.util.Vector java.security.cert.X509Certificate java.security.cert.Certificate byte[]
      StackMap stack: java.io.IOException
            astore 7 /* e */
        start local 7 // java.io.IOException e
        20: .line 378
            new java.lang.RuntimeException
            dup
            aload 7 /* e */
            invokevirtual java.io.IOException.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.io.IOException e
        21: .line 382
      StackMap locals:
      StackMap stack:
            aload 5 /* nextC */
            ifnonnull 35
        22: .line 387
            aload 4 /* x509c */
            invokevirtual java.security.cert.X509Certificate.getIssuerDN:()Ljava/security/Principal;
            astore 7 /* i */
        start local 7 // java.security.Principal i
        23: .line 388
            aload 4 /* x509c */
            invokevirtual java.security.cert.X509Certificate.getSubjectDN:()Ljava/security/Principal;
            astore 8 /* s */
        start local 8 // java.security.Principal s
        24: .line 390
            aload 7 /* i */
            aload 8 /* s */
            invokeinterface java.security.Principal.equals:(Ljava/lang/Object;)Z
            ifne 35
        25: .line 392
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.chainCerts:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
            astore 9 /* e */
        start local 9 // java.util.Enumeration e
        26: .line 394
            goto 34
        27: .line 396
      StackMap locals: java.security.Principal java.security.Principal java.util.Enumeration
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.chainCerts:Ljava/util/Hashtable;
            aload 9 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            astore 10 /* crt */
        start local 10 // java.security.cert.X509Certificate crt
        28: .line 397
            aload 10 /* crt */
            invokevirtual java.security.cert.X509Certificate.getSubjectDN:()Ljava/security/Principal;
            astore 11 /* sub */
        start local 11 // java.security.Principal sub
        29: .line 398
            aload 11 /* sub */
            aload 7 /* i */
            invokeinterface java.security.Principal.equals:(Ljava/lang/Object;)Z
            ifeq 34
        30: .line 402
            aload 4 /* x509c */
            aload 10 /* crt */
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokevirtual java.security.cert.X509Certificate.verify:(Ljava/security/PublicKey;)V
        31: .line 403
            aload 10 /* crt */
            astore 5 /* nextC */
        32: .line 404
            goto 35
        33: .line 406
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.lang.String java.security.cert.Certificate java.util.Vector java.security.cert.X509Certificate java.security.cert.Certificate byte[] java.security.Principal java.security.Principal java.util.Enumeration java.security.cert.X509Certificate java.security.Principal
      StackMap stack: java.lang.Exception
            pop
        end local 11 // java.security.Principal sub
        end local 10 // java.security.cert.X509Certificate crt
        34: .line 394
      StackMap locals:
      StackMap stack:
            aload 9 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 27
        end local 9 // java.util.Enumeration e
        end local 8 // java.security.Principal s
        end local 7 // java.security.Principal i
        35: .line 415
      StackMap locals:
      StackMap stack:
            aload 3 /* cs */
            aload 2 /* c */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        36: .line 416
            aload 5 /* nextC */
            aload 2 /* c */
            if_acmpeq 39
        37: .line 418
            aload 5 /* nextC */
            astore 2 /* c */
        38: .line 419
            goto 40
        39: .line 422
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* c */
        end local 6 // byte[] bytes
        end local 5 // java.security.cert.Certificate nextC
        end local 4 // java.security.cert.X509Certificate x509c
        40: .line 354
      StackMap locals:
      StackMap stack:
            aload 2 /* c */
            ifnonnull 8
        41: .line 426
            aload 3 /* cs */
            invokevirtual java.util.Vector.size:()I
            anewarray java.security.cert.Certificate
            astore 4 /* certChain */
        start local 4 // java.security.cert.Certificate[] certChain
        42: .line 428
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        43: goto 46
        44: .line 430
      StackMap locals: java.security.cert.Certificate[] int
      StackMap stack:
            aload 4 /* certChain */
            iload 5 /* i */
            aload 3 /* cs */
            iload 5 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast java.security.cert.Certificate
            aastore
        45: .line 428
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        46: iload 5 /* i */
            aload 4 /* certChain */
            arraylength
            if_icmpne 44
        end local 5 // int i
        47: .line 433
            aload 4 /* certChain */
            areturn
        end local 4 // java.security.cert.Certificate[] certChain
        end local 3 // java.util.Vector cs
        48: .line 436
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.security.cert.Certificate c
        end local 1 // java.lang.String alias
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   49     0       this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0   49     1      alias  Ljava/lang/String;
            5   49     2          c  Ljava/security/cert/Certificate;
            7   48     3         cs  Ljava/util/Vector;
            9   40     4      x509c  Ljava/security/cert/X509Certificate;
           10   40     5      nextC  Ljava/security/cert/Certificate;
           11   40     6      bytes  [B
           13   18     7        aIn  Lorg/bouncycastle/asn1/ASN1InputStream;
           14   18     8  authBytes  [B
           16   18     9         id  Lorg/bouncycastle/asn1/x509/AuthorityKeyIdentifier;
           20   21     7          e  Ljava/io/IOException;
           23   35     7          i  Ljava/security/Principal;
           24   35     8          s  Ljava/security/Principal;
           26   35     9          e  Ljava/util/Enumeration;
           28   34    10        crt  Ljava/security/cert/X509Certificate;
           29   34    11        sub  Ljava/security/Principal;
           42   48     4  certChain  [Ljava/security/cert/Certificate;
           43   47     5          i  I
      Exception table:
        from    to  target  type
          12    18      19  Class java.io.IOException
          30    32      33  Class java.lang.Exception
    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=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 441
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            areturn
        end local 1 // java.lang.String alias
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0    1     1  alias  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      alias  

  public java.security.Key engineGetKey(java.lang.String, char[]);
    descriptor: (Ljava/lang/String;[C)Ljava/security/Key;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.lang.String alias
        start local 2 // char[] password
         0: .line 449
            aload 1 /* alias */
            ifnonnull 2
         1: .line 451
            new java.lang.IllegalArgumentException
            dup
            ldc "null alias passed to getKey."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.security.Key
            areturn
        end local 2 // char[] password
        end local 1 // java.lang.String alias
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0    3     1     alias  Ljava/lang/String;
            0    3     2  password  [C
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
    MethodParameters:
          Name  Flags
      alias     
      password  

  public boolean engineIsCertificateEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 460
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 1
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnonnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.String alias
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0    2     1  alias  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      alias  

  public boolean engineIsKeyEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.lang.String alias
         0: .line 466
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.String alias
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0    2     1  alias  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      alias  

  public void engineSetCertificateEntry(java.lang.String, java.security.cert.Certificate);
    descriptor: (Ljava/lang/String;Ljava/security/cert/Certificate;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.lang.String alias
        start local 2 // java.security.cert.Certificate cert
         0: .line 474
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 2
         1: .line 476
            new java.security.KeyStoreException
            dup
            new java.lang.StringBuilder
            dup
            ldc "There is a key entry with the name "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* alias */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            aload 2 /* cert */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.put:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 480
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.chainCerts:Ljava/util/Hashtable;
            new org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId
            dup
            aload 0 /* this */
            aload 2 /* cert */
            invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokespecial org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId.<init>:(Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;Ljava/security/PublicKey;)V
            aload 2 /* cert */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 481
            return
        end local 2 // java.security.cert.Certificate cert
        end local 1 // java.lang.String alias
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0    5     1  alias  Ljava/lang/String;
            0    5     2   cert  Ljava/security/cert/Certificate;
    Exceptions:
      throws java.security.KeyStoreException
    MethodParameters:
       Name  Flags
      alias  
      cert   

  public void engineSetKeyEntry(java.lang.String, byte[], java.security.cert.Certificate[]);
    descriptor: (Ljava/lang/String;[B[Ljava/security/cert/Certificate;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.lang.String alias
        start local 2 // byte[] key
        start local 3 // java.security.cert.Certificate[] chain
         0: .line 489
            new java.lang.RuntimeException
            dup
            ldc "operation not supported"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.security.cert.Certificate[] chain
        end local 2 // byte[] key
        end local 1 // java.lang.String alias
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0    1     1  alias  Ljava/lang/String;
            0    1     2    key  [B
            0    1     3  chain  [Ljava/security/cert/Certificate;
    Exceptions:
      throws java.security.KeyStoreException
    MethodParameters:
       Name  Flags
      alias  
      key    
      chain  

  public 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: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore 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 499
            aload 2 /* key */
            instanceof java.security.PrivateKey
            ifeq 2
            aload 4 /* chain */
            ifnonnull 2
         1: .line 501
            new java.security.KeyStoreException
            dup
            ldc "no certificate chain for private key"
            invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 504
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 4
         3: .line 506
            aload 0 /* this */
            aload 1 /* alias */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineDeleteEntry:(Ljava/lang/String;)V
         4: .line 509
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            aload 2 /* key */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.put:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 510
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 1 /* alias */
            aload 4 /* chain */
            iconst_0
            aaload
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.put:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 512
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 10
         8: .line 514
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.chainCerts:Ljava/util/Hashtable;
            new org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId
            dup
            aload 0 /* this */
            aload 4 /* chain */
            iload 5 /* i */
            aaload
            invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokespecial org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId.<init>:(Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;Ljava/security/PublicKey;)V
            aload 4 /* chain */
            iload 5 /* i */
            aaload
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 512
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            aload 4 /* chain */
            arraylength
            if_icmpne 8
        end local 5 // int i
        11: .line 516
            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 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0   12     1     alias  Ljava/lang/String;
            0   12     2       key  Ljava/security/Key;
            0   12     3  password  [C
            0   12     4     chain  [Ljava/security/cert/Certificate;
            7   11     5         i  I
    Exceptions:
      throws java.security.KeyStoreException
    MethodParameters:
          Name  Flags
      alias     
      key       
      password  
      chain     

  public int engineSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
         0: .line 520
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            astore 1 /* tab */
        start local 1 // java.util.Hashtable tab
         1: .line 522
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.keys:()Ljava/util/Enumeration;
            astore 2 /* e */
        start local 2 // java.util.Enumeration e
         2: .line 523
            goto 4
         3: .line 525
      StackMap locals: java.util.Hashtable java.util.Enumeration
      StackMap stack:
            aload 1 /* tab */
            aload 2 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            ldc "cert"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 523
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
         5: .line 528
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.keys:()Ljava/util/Enumeration;
            astore 2 /* e */
         6: .line 529
            goto 10
         7: .line 531
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* a */
        start local 3 // java.lang.String a
         8: .line 532
            aload 1 /* tab */
            aload 3 /* a */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 10
         9: .line 534
            aload 1 /* tab */
            aload 3 /* a */
            ldc "key"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.lang.String a
        10: .line 529
      StackMap locals:
      StackMap stack:
            aload 2 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 7
        11: .line 538
            aload 1 /* tab */
            invokevirtual java.util.Hashtable.size:()I
            ireturn
        end local 2 // java.util.Enumeration e
        end local 1 // java.util.Hashtable tab
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            1   12     1   tab  Ljava/util/Hashtable;
            2   12     2     e  Ljava/util/Enumeration;
            8   10     3     a  Ljava/lang/String;

  protected java.security.PrivateKey unwrapKey(org.bouncycastle.asn1.x509.AlgorithmIdentifier, byte[], char[], boolean);
    descriptor: (Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B[CZ)Ljava/security/PrivateKey;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=13, args_size=5
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
        start local 2 // byte[] data
        start local 3 // char[] password
        start local 4 // boolean wrongPKCS12Zero
         0: .line 548
            aload 1 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
            astore 5 /* algorithm */
        start local 5 // java.lang.String algorithm
         1: .line 549
            new org.bouncycastle.asn1.pkcs.PKCS12PBEParams
            dup
            aload 1 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            invokespecial org.bouncycastle.asn1.pkcs.PKCS12PBEParams.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 6 /* pbeParams */
        start local 6 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams pbeParams
         2: .line 551
            new javax.crypto.spec.PBEKeySpec
            dup
            aload 3 /* password */
            invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
            astore 7 /* pbeSpec */
        start local 7 // javax.crypto.spec.PBEKeySpec pbeSpec
         3: .line 557
            aload 5 /* algorithm */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.bcProvider:Ljava/security/Provider;
         4: .line 556
            invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/SecretKeyFactory;
            astore 9 /* keyFact */
        start local 9 // javax.crypto.SecretKeyFactory keyFact
         5: .line 558
            new javax.crypto.spec.PBEParameterSpec
            dup
         6: .line 559
            aload 6 /* pbeParams */
            invokevirtual org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getIV:()[B
         7: .line 560
            aload 6 /* pbeParams */
            invokevirtual org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getIterations:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
         8: .line 558
            invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
            astore 10 /* defParams */
        start local 10 // javax.crypto.spec.PBEParameterSpec defParams
         9: .line 562
            aload 9 /* keyFact */
            aload 7 /* pbeSpec */
            invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
            astore 11 /* k */
        start local 11 // javax.crypto.SecretKey k
        10: .line 564
            aload 11 /* k */
            checkcast org.bouncycastle.jce.provider.JCEPBEKey
            iload 4 /* wrongPKCS12Zero */
            invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.setTryWrongPKCS12Zero:(Z)V
        11: .line 566
            aload 5 /* algorithm */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.bcProvider:Ljava/security/Provider;
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher;
            astore 12 /* cipher */
        start local 12 // javax.crypto.Cipher cipher
        12: .line 568
            aload 12 /* cipher */
            iconst_4
            aload 11 /* k */
            aload 10 /* defParams */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
        13: .line 571
            aload 12 /* cipher */
            aload 2 /* data */
            ldc ""
            iconst_2
            invokevirtual javax.crypto.Cipher.unwrap:([BLjava/lang/String;I)Ljava/security/Key;
            checkcast java.security.PrivateKey
            astore 8 /* out */
        end local 12 // javax.crypto.Cipher cipher
        end local 11 // javax.crypto.SecretKey k
        end local 10 // javax.crypto.spec.PBEParameterSpec defParams
        end local 9 // javax.crypto.SecretKeyFactory keyFact
        start local 8 // java.security.PrivateKey out
        14: .line 572
            goto 17
        end local 8 // java.security.PrivateKey out
        15: .line 573
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore org.bouncycastle.asn1.x509.AlgorithmIdentifier byte[] char[] int java.lang.String org.bouncycastle.asn1.pkcs.PKCS12PBEParams javax.crypto.spec.PBEKeySpec
      StackMap stack: java.lang.Exception
            astore 9 /* e */
        start local 9 // java.lang.Exception e
        16: .line 575
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "exception unwrapping private key - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.Exception e
        start local 8 // java.security.PrivateKey out
        17: .line 578
      StackMap locals: java.security.PrivateKey
      StackMap stack:
            aload 8 /* out */
            areturn
        end local 8 // java.security.PrivateKey out
        end local 7 // javax.crypto.spec.PBEKeySpec pbeSpec
        end local 6 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams pbeParams
        end local 5 // java.lang.String algorithm
        end local 4 // boolean wrongPKCS12Zero
        end local 3 // char[] password
        end local 2 // byte[] data
        end local 1 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0   18     1            algId  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            0   18     2             data  [B
            0   18     3         password  [C
            0   18     4  wrongPKCS12Zero  Z
            1   18     5        algorithm  Ljava/lang/String;
            2   18     6        pbeParams  Lorg/bouncycastle/asn1/pkcs/PKCS12PBEParams;
            3   18     7          pbeSpec  Ljavax/crypto/spec/PBEKeySpec;
           14   15     8              out  Ljava/security/PrivateKey;
           17   18     8              out  Ljava/security/PrivateKey;
            5   14     9          keyFact  Ljavax/crypto/SecretKeyFactory;
            9   14    10        defParams  Ljavax/crypto/spec/PBEParameterSpec;
           10   14    11                k  Ljavax/crypto/SecretKey;
           12   14    12           cipher  Ljavax/crypto/Cipher;
           16   17     9                e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3    14      15  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      algId            
      data             
      password         
      wrongPKCS12Zero  

  protected byte[] wrapKey(java.lang.String, java.security.Key, org.bouncycastle.asn1.pkcs.PKCS12PBEParams, char[]);
    descriptor: (Ljava/lang/String;Ljava/security/Key;Lorg/bouncycastle/asn1/pkcs/PKCS12PBEParams;[C)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.lang.String algorithm
        start local 2 // java.security.Key key
        start local 3 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams pbeParams
        start local 4 // char[] password
         0: .line 588
            new javax.crypto.spec.PBEKeySpec
            dup
            aload 4 /* password */
            invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
            astore 5 /* pbeSpec */
        start local 5 // javax.crypto.spec.PBEKeySpec pbeSpec
         1: .line 594
            aload 1 /* algorithm */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.bcProvider:Ljava/security/Provider;
         2: .line 593
            invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/SecretKeyFactory;
            astore 7 /* keyFact */
        start local 7 // javax.crypto.SecretKeyFactory keyFact
         3: .line 595
            new javax.crypto.spec.PBEParameterSpec
            dup
         4: .line 596
            aload 3 /* pbeParams */
            invokevirtual org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getIV:()[B
         5: .line 597
            aload 3 /* pbeParams */
            invokevirtual org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getIterations:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
         6: .line 595
            invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
            astore 8 /* defParams */
        start local 8 // javax.crypto.spec.PBEParameterSpec defParams
         7: .line 599
            aload 1 /* algorithm */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.bcProvider:Ljava/security/Provider;
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher;
            astore 9 /* cipher */
        start local 9 // javax.crypto.Cipher cipher
         8: .line 601
            aload 9 /* cipher */
            iconst_3
            aload 7 /* keyFact */
            aload 5 /* pbeSpec */
            invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
            aload 8 /* defParams */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
         9: .line 603
            aload 9 /* cipher */
            aload 2 /* key */
            invokevirtual javax.crypto.Cipher.wrap:(Ljava/security/Key;)[B
            astore 6 /* out */
        end local 9 // javax.crypto.Cipher cipher
        end local 8 // javax.crypto.spec.PBEParameterSpec defParams
        end local 7 // javax.crypto.SecretKeyFactory keyFact
        start local 6 // byte[] out
        10: .line 604
            goto 13
        end local 6 // byte[] out
        11: .line 605
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.lang.String java.security.Key org.bouncycastle.asn1.pkcs.PKCS12PBEParams char[] javax.crypto.spec.PBEKeySpec
      StackMap stack: java.lang.Exception
            astore 7 /* e */
        start local 7 // java.lang.Exception e
        12: .line 607
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "exception encrypting data - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.Exception e
        start local 6 // byte[] out
        13: .line 610
      StackMap locals: byte[]
      StackMap stack:
            aload 6 /* out */
            areturn
        end local 6 // byte[] out
        end local 5 // javax.crypto.spec.PBEKeySpec pbeSpec
        end local 4 // char[] password
        end local 3 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams pbeParams
        end local 2 // java.security.Key key
        end local 1 // java.lang.String algorithm
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0   14     1  algorithm  Ljava/lang/String;
            0   14     2        key  Ljava/security/Key;
            0   14     3  pbeParams  Lorg/bouncycastle/asn1/pkcs/PKCS12PBEParams;
            0   14     4   password  [C
            1   14     5    pbeSpec  Ljavax/crypto/spec/PBEKeySpec;
           10   11     6        out  [B
           13   14     6        out  [B
            3   10     7    keyFact  Ljavax/crypto/SecretKeyFactory;
            7   10     8  defParams  Ljavax/crypto/spec/PBEParameterSpec;
            8   10     9     cipher  Ljavax/crypto/Cipher;
           12   13     7          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
      algorithm  
      key        
      pbeParams  
      password   

  protected byte[] cryptData(boolean, org.bouncycastle.asn1.x509.AlgorithmIdentifier, char[], boolean, byte[]);
    descriptor: (ZLorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[CZ[B)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=14, args_size=6
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // boolean forEncryption
        start local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
        start local 3 // char[] password
        start local 4 // boolean wrongPKCS12Zero
        start local 5 // byte[] data
         0: .line 621
            aload 2 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
            astore 6 /* algorithm */
        start local 6 // java.lang.String algorithm
         1: .line 622
            new org.bouncycastle.asn1.pkcs.PKCS12PBEParams
            dup
            aload 2 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            invokespecial org.bouncycastle.asn1.pkcs.PKCS12PBEParams.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 7 /* pbeParams */
        start local 7 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams pbeParams
         2: .line 623
            new javax.crypto.spec.PBEKeySpec
            dup
            aload 3 /* password */
            invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
            astore 8 /* pbeSpec */
        start local 8 // javax.crypto.spec.PBEKeySpec pbeSpec
         3: .line 627
            aload 6 /* algorithm */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.bcProvider:Ljava/security/Provider;
            invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/SecretKeyFactory;
            astore 9 /* keyFact */
        start local 9 // javax.crypto.SecretKeyFactory keyFact
         4: .line 628
            new javax.crypto.spec.PBEParameterSpec
            dup
         5: .line 629
            aload 7 /* pbeParams */
            invokevirtual org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getIV:()[B
         6: .line 630
            aload 7 /* pbeParams */
            invokevirtual org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getIterations:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
         7: .line 628
            invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
            astore 10 /* defParams */
        start local 10 // javax.crypto.spec.PBEParameterSpec defParams
         8: .line 631
            aload 9 /* keyFact */
            aload 8 /* pbeSpec */
            invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
            checkcast org.bouncycastle.jce.provider.JCEPBEKey
            astore 11 /* key */
        start local 11 // org.bouncycastle.jce.provider.JCEPBEKey key
         9: .line 633
            aload 11 /* key */
            iload 4 /* wrongPKCS12Zero */
            invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.setTryWrongPKCS12Zero:(Z)V
        10: .line 635
            aload 6 /* algorithm */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.bcProvider:Ljava/security/Provider;
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher;
            astore 12 /* cipher */
        start local 12 // javax.crypto.Cipher cipher
        11: .line 636
            iload 1 /* forEncryption */
            ifeq 12
            iconst_1
            goto 13
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore int org.bouncycastle.asn1.x509.AlgorithmIdentifier char[] int byte[] java.lang.String org.bouncycastle.asn1.pkcs.PKCS12PBEParams javax.crypto.spec.PBEKeySpec javax.crypto.SecretKeyFactory javax.crypto.spec.PBEParameterSpec org.bouncycastle.jce.provider.JCEPBEKey javax.crypto.Cipher
      StackMap stack:
        12: iconst_2
      StackMap locals:
      StackMap stack: int
        13: istore 13 /* mode */
        start local 13 // int mode
        14: .line 637
            aload 12 /* cipher */
            iload 13 /* mode */
            aload 11 /* key */
            aload 10 /* defParams */
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
        15: .line 638
            aload 12 /* cipher */
            aload 5 /* data */
            invokevirtual javax.crypto.Cipher.doFinal:([B)[B
        16: areturn
        end local 13 // int mode
        end local 12 // javax.crypto.Cipher cipher
        end local 11 // org.bouncycastle.jce.provider.JCEPBEKey key
        end local 10 // javax.crypto.spec.PBEParameterSpec defParams
        end local 9 // javax.crypto.SecretKeyFactory keyFact
        17: .line 640
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore int org.bouncycastle.asn1.x509.AlgorithmIdentifier char[] int byte[] java.lang.String org.bouncycastle.asn1.pkcs.PKCS12PBEParams javax.crypto.spec.PBEKeySpec
      StackMap stack: java.lang.Exception
            astore 9 /* e */
        start local 9 // java.lang.Exception e
        18: .line 642
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "exception decrypting data - "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.Exception e
        end local 8 // javax.crypto.spec.PBEKeySpec pbeSpec
        end local 7 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams pbeParams
        end local 6 // java.lang.String algorithm
        end local 5 // byte[] data
        end local 4 // boolean wrongPKCS12Zero
        end local 3 // char[] password
        end local 2 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
        end local 1 // boolean forEncryption
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0             this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0   19     1    forEncryption  Z
            0   19     2            algId  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            0   19     3         password  [C
            0   19     4  wrongPKCS12Zero  Z
            0   19     5             data  [B
            1   19     6        algorithm  Ljava/lang/String;
            2   19     7        pbeParams  Lorg/bouncycastle/asn1/pkcs/PKCS12PBEParams;
            3   19     8          pbeSpec  Ljavax/crypto/spec/PBEKeySpec;
            4   17     9          keyFact  Ljavax/crypto/SecretKeyFactory;
            8   17    10        defParams  Ljavax/crypto/spec/PBEParameterSpec;
            9   17    11              key  Lorg/bouncycastle/jce/provider/JCEPBEKey;
           11   17    12           cipher  Ljavax/crypto/Cipher;
           14   17    13             mode  I
           18   19     9                e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3    16      17  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      forEncryption    
      algId            
      password         
      wrongPKCS12Zero  
      data             

  public void engineLoad(java.io.InputStream, char[]);
    descriptor: (Ljava/io/InputStream;[C)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=31, args_size=3
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.io.InputStream stream
        start local 2 // char[] password
         0: .line 651
            aload 1 /* stream */
            ifnonnull 2
         1: .line 653
            return
         2: .line 656
      StackMap locals:
      StackMap stack:
            aload 2 /* password */
            ifnonnull 4
         3: .line 658
            new java.lang.NullPointerException
            dup
            ldc "No password supplied for PKCS#12 KeyStore."
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 661
      StackMap locals:
      StackMap stack:
            new java.io.BufferedInputStream
            dup
            aload 1 /* stream */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 3 /* bufIn */
        start local 3 // java.io.BufferedInputStream bufIn
         5: .line 663
            aload 3 /* bufIn */
            bipush 10
            invokevirtual java.io.BufferedInputStream.mark:(I)V
         6: .line 665
            aload 3 /* bufIn */
            invokevirtual java.io.BufferedInputStream.read:()I
            istore 4 /* head */
        start local 4 // int head
         7: .line 667
            iload 4 /* head */
            bipush 48
            if_icmpeq 9
         8: .line 669
            new java.io.IOException
            dup
            ldc "stream does not represent a PKCS12 key store"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 672
      StackMap locals: java.io.BufferedInputStream int
      StackMap stack:
            aload 3 /* bufIn */
            invokevirtual java.io.BufferedInputStream.reset:()V
        10: .line 674
            new org.bouncycastle.asn1.ASN1InputStream
            dup
            aload 3 /* bufIn */
            invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:(Ljava/io/InputStream;)V
            astore 5 /* bIn */
        start local 5 // org.bouncycastle.asn1.ASN1InputStream bIn
        11: .line 675
            aload 5 /* bIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            astore 6 /* obj */
        start local 6 // org.bouncycastle.asn1.ASN1Sequence obj
        12: .line 676
            new org.bouncycastle.asn1.pkcs.Pfx
            dup
            aload 6 /* obj */
            invokespecial org.bouncycastle.asn1.pkcs.Pfx.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 7 /* bag */
        start local 7 // org.bouncycastle.asn1.pkcs.Pfx bag
        13: .line 677
            aload 7 /* bag */
            invokevirtual org.bouncycastle.asn1.pkcs.Pfx.getAuthSafe:()Lorg/bouncycastle/asn1/pkcs/ContentInfo;
            astore 8 /* info */
        start local 8 // org.bouncycastle.asn1.pkcs.ContentInfo info
        14: .line 678
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 9 /* chain */
        start local 9 // java.util.Vector chain
        15: .line 679
            iconst_0
            istore 10 /* unmarkedKey */
        start local 10 // boolean unmarkedKey
        16: .line 680
            iconst_0
            istore 11 /* wrongPKCS12Zero */
        start local 11 // boolean wrongPKCS12Zero
        17: .line 682
            aload 7 /* bag */
            invokevirtual org.bouncycastle.asn1.pkcs.Pfx.getMacData:()Lorg/bouncycastle/asn1/pkcs/MacData;
            ifnull 38
        18: .line 684
            aload 7 /* bag */
            invokevirtual org.bouncycastle.asn1.pkcs.Pfx.getMacData:()Lorg/bouncycastle/asn1/pkcs/MacData;
            astore 12 /* mData */
        start local 12 // org.bouncycastle.asn1.pkcs.MacData mData
        19: .line 685
            aload 12 /* mData */
            invokevirtual org.bouncycastle.asn1.pkcs.MacData.getMac:()Lorg/bouncycastle/asn1/x509/DigestInfo;
            astore 13 /* dInfo */
        start local 13 // org.bouncycastle.asn1.x509.DigestInfo dInfo
        20: .line 686
            aload 13 /* dInfo */
            invokevirtual org.bouncycastle.asn1.x509.DigestInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            astore 14 /* algId */
        start local 14 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
        21: .line 687
            aload 12 /* mData */
            invokevirtual org.bouncycastle.asn1.pkcs.MacData.getSalt:()[B
            astore 15 /* salt */
        start local 15 // byte[] salt
        22: .line 688
            aload 12 /* mData */
            invokevirtual org.bouncycastle.asn1.pkcs.MacData.getIterationCount:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            istore 16 /* itCount */
        start local 16 // int itCount
        23: .line 690
            aload 8 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.ContentInfo.getContent:()Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1OctetString
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            astore 17 /* data */
        start local 17 // byte[] data
        24: .line 694
            aload 14 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            aload 15 /* salt */
            iload 16 /* itCount */
            aload 2 /* password */
            iconst_0
            aload 17 /* data */
            invokestatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.calculatePbeMac:(Lorg/bouncycastle/asn1/DERObjectIdentifier;[BI[CZ[B)[B
            astore 18 /* res */
        start local 18 // byte[] res
        25: .line 695
            aload 13 /* dInfo */
            invokevirtual org.bouncycastle.asn1.x509.DigestInfo.getDigest:()[B
            astore 19 /* dig */
        start local 19 // byte[] dig
        26: .line 697
            aload 18 /* res */
            aload 19 /* dig */
            invokestatic org.bouncycastle.util.Arrays.constantTimeAreEqual:([B[B)Z
            ifne 38
        27: .line 699
            aload 2 /* password */
            arraylength
            ifle 29
        28: .line 701
            new java.io.IOException
            dup
            ldc "PKCS12 key store mac invalid - wrong password or corrupted file."
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 705
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.MacData org.bouncycastle.asn1.x509.DigestInfo org.bouncycastle.asn1.x509.AlgorithmIdentifier byte[] int byte[] byte[] byte[]
      StackMap stack:
            aload 14 /* algId */
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            aload 15 /* salt */
            iload 16 /* itCount */
            aload 2 /* password */
            iconst_1
            aload 17 /* data */
            invokestatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.calculatePbeMac:(Lorg/bouncycastle/asn1/DERObjectIdentifier;[BI[CZ[B)[B
            astore 18 /* res */
        30: .line 707
            aload 18 /* res */
            aload 19 /* dig */
            invokestatic org.bouncycastle.util.Arrays.constantTimeAreEqual:([B[B)Z
            ifne 32
        31: .line 709
            new java.io.IOException
            dup
            ldc "PKCS12 key store mac invalid - wrong password or corrupted file."
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 712
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 11 /* wrongPKCS12Zero */
        end local 19 // byte[] dig
        end local 18 // byte[] res
        33: .line 714
            goto 38
        34: .line 715
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.MacData org.bouncycastle.asn1.x509.DigestInfo org.bouncycastle.asn1.x509.AlgorithmIdentifier byte[] int byte[]
      StackMap stack: java.io.IOException
            astore 18 /* e */
        start local 18 // java.io.IOException e
        35: .line 717
            aload 18 /* e */
            athrow
        end local 18 // java.io.IOException e
        36: .line 719
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 18 /* e */
        start local 18 // java.lang.Exception e
        37: .line 721
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "error constructing MAC: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 18 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 18 // java.lang.Exception e
        end local 17 // byte[] data
        end local 16 // int itCount
        end local 15 // byte[] salt
        end local 14 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
        end local 13 // org.bouncycastle.asn1.x509.DigestInfo dInfo
        end local 12 // org.bouncycastle.asn1.pkcs.MacData mData
        38: .line 725
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int
      StackMap stack:
            aload 0 /* this */
            new org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable
            dup
            invokespecial org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.<init>:()V
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
        39: .line 726
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.localIds:Ljava/util/Hashtable;
        40: .line 728
            aload 8 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.ContentInfo.getContentType:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.data:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 188
        41: .line 730
            new org.bouncycastle.asn1.ASN1InputStream
            dup
            aload 8 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.ContentInfo.getContent:()Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1OctetString
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:([B)V
            astore 5 /* bIn */
        42: .line 732
            new org.bouncycastle.asn1.pkcs.AuthenticatedSafe
            dup
            aload 5 /* bIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            invokespecial org.bouncycastle.asn1.pkcs.AuthenticatedSafe.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 12 /* authSafe */
        start local 12 // org.bouncycastle.asn1.pkcs.AuthenticatedSafe authSafe
        43: .line 733
            aload 12 /* authSafe */
            invokevirtual org.bouncycastle.asn1.pkcs.AuthenticatedSafe.getContentInfo:()[Lorg/bouncycastle/asn1/pkcs/ContentInfo;
            astore 13 /* c */
        start local 13 // org.bouncycastle.asn1.pkcs.ContentInfo[] c
        44: .line 735
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        45: goto 187
        46: .line 737
      StackMap locals: org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int
      StackMap stack:
            aload 13 /* c */
            iload 14 /* i */
            aaload
            invokevirtual org.bouncycastle.asn1.pkcs.ContentInfo.getContentType:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.data:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 99
        47: .line 739
            new org.bouncycastle.asn1.ASN1InputStream
            dup
            aload 13 /* c */
            iload 14 /* i */
            aaload
            invokevirtual org.bouncycastle.asn1.pkcs.ContentInfo.getContent:()Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1OctetString
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            invokespecial org.bouncycastle.asn1.ASN1InputStream.<init>:([B)V
            astore 15 /* dIn */
        start local 15 // org.bouncycastle.asn1.ASN1InputStream dIn
        48: .line 740
            aload 15 /* dIn */
            invokevirtual org.bouncycastle.asn1.ASN1InputStream.readObject:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            astore 16 /* seq */
        start local 16 // org.bouncycastle.asn1.ASN1Sequence seq
        49: .line 742
            iconst_0
            istore 17 /* j */
        start local 17 // int j
        50: goto 97
        51: .line 744
      StackMap locals: org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence int
      StackMap stack:
            new org.bouncycastle.asn1.pkcs.SafeBag
            dup
            aload 16 /* seq */
            iload 17 /* j */
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            invokespecial org.bouncycastle.asn1.pkcs.SafeBag.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 18 /* b */
        start local 18 // org.bouncycastle.asn1.pkcs.SafeBag b
        52: .line 745
            aload 18 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs8ShroudedKeyBag:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 91
        53: .line 747
            new org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo
            dup
            aload 18 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagValue:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            invokespecial org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 19 /* eIn */
        start local 19 // org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo eIn
        54: .line 748
            aload 0 /* this */
            aload 19 /* eIn */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            aload 19 /* eIn */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getEncryptedData:()[B
            aload 2 /* password */
            iload 11 /* wrongPKCS12Zero */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.unwrapKey:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B[CZ)Ljava/security/PrivateKey;
            astore 20 /* privKey */
        start local 20 // java.security.PrivateKey privKey
        55: .line 753
            aload 20 /* privKey */
            checkcast org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            astore 21 /* bagAttr */
        start local 21 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
        56: .line 754
            aconst_null
            astore 22 /* alias */
        start local 22 // java.lang.String alias
        57: .line 755
            aconst_null
            astore 23 /* localId */
        start local 23 // org.bouncycastle.asn1.ASN1OctetString localId
        58: .line 757
            aload 18 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
            ifnull 81
        59: .line 759
            aload 18 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
            invokevirtual org.bouncycastle.asn1.ASN1Set.getObjects:()Ljava/util/Enumeration;
            astore 24 /* e */
        start local 24 // java.util.Enumeration e
        60: .line 760
            goto 80
        61: .line 762
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence int org.bouncycastle.asn1.pkcs.SafeBag org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo java.security.PrivateKey org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier java.lang.String org.bouncycastle.asn1.ASN1OctetString java.util.Enumeration
      StackMap stack:
            aload 24 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            astore 25 /* sq */
        start local 25 // org.bouncycastle.asn1.ASN1Sequence sq
        62: .line 763
            aload 25 /* sq */
            iconst_0
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 26 /* aOid */
        start local 26 // org.bouncycastle.asn1.DERObjectIdentifier aOid
        63: .line 764
            aload 25 /* sq */
            iconst_1
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1Set
            astore 27 /* attrSet */
        start local 27 // org.bouncycastle.asn1.ASN1Set attrSet
        64: .line 765
            aconst_null
            astore 28 /* attr */
        start local 28 // org.bouncycastle.asn1.DERObject attr
        65: .line 767
            aload 27 /* attrSet */
            invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
            ifle 74
        66: .line 769
            aload 27 /* attrSet */
            iconst_0
            invokevirtual org.bouncycastle.asn1.ASN1Set.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERObject
            astore 28 /* attr */
        67: .line 771
            aload 21 /* bagAttr */
            aload 26 /* aOid */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            astore 29 /* existing */
        start local 29 // org.bouncycastle.asn1.DEREncodable existing
        68: .line 772
            aload 29 /* existing */
            ifnull 73
        69: .line 775
            aload 29 /* existing */
            invokeinterface org.bouncycastle.asn1.DEREncodable.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            aload 28 /* attr */
            invokevirtual org.bouncycastle.asn1.DERObject.equals:(Ljava/lang/Object;)Z
            ifne 74
        70: .line 777
            new java.io.IOException
            dup
        71: .line 778
            ldc "attempt to add existing attribute with different value"
        72: .line 777
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        73: .line 783
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence int org.bouncycastle.asn1.pkcs.SafeBag org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo java.security.PrivateKey org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier java.lang.String org.bouncycastle.asn1.ASN1OctetString java.util.Enumeration org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.DERObjectIdentifier org.bouncycastle.asn1.ASN1Set org.bouncycastle.asn1.DERObject org.bouncycastle.asn1.DEREncodable
      StackMap stack:
            aload 21 /* bagAttr */
            aload 26 /* aOid */
            aload 28 /* attr */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        end local 29 // org.bouncycastle.asn1.DEREncodable existing
        74: .line 787
      StackMap locals:
      StackMap stack:
            aload 26 /* aOid */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 78
        75: .line 789
            aload 28 /* attr */
            checkcast org.bouncycastle.asn1.DERBMPString
            invokevirtual org.bouncycastle.asn1.DERBMPString.getString:()Ljava/lang/String;
            astore 22 /* alias */
        76: .line 790
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 22 /* alias */
            aload 20 /* privKey */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.put:(Ljava/lang/String;Ljava/lang/Object;)V
        77: .line 791
            goto 80
        78: .line 792
      StackMap locals:
      StackMap stack:
            aload 26 /* aOid */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 80
        79: .line 794
            aload 28 /* attr */
            checkcast org.bouncycastle.asn1.ASN1OctetString
            astore 23 /* localId */
        end local 28 // org.bouncycastle.asn1.DERObject attr
        end local 27 // org.bouncycastle.asn1.ASN1Set attrSet
        end local 26 // org.bouncycastle.asn1.DERObjectIdentifier aOid
        end local 25 // org.bouncycastle.asn1.ASN1Sequence sq
        80: .line 760
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence int org.bouncycastle.asn1.pkcs.SafeBag org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo java.security.PrivateKey org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier java.lang.String org.bouncycastle.asn1.ASN1OctetString java.util.Enumeration
      StackMap stack:
            aload 24 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 61
        end local 24 // java.util.Enumeration e
        81: .line 799
      StackMap locals:
      StackMap stack:
            aload 23 /* localId */
            ifnull 88
        82: .line 801
            new java.lang.String
            dup
            aload 23 /* localId */
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            invokestatic org.bouncycastle.util.encoders.Hex.encode:([B)[B
            invokespecial java.lang.String.<init>:([B)V
            astore 24 /* name */
        start local 24 // java.lang.String name
        83: .line 803
            aload 22 /* alias */
            ifnonnull 86
        84: .line 805
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 24 /* name */
            aload 20 /* privKey */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.put:(Ljava/lang/String;Ljava/lang/Object;)V
        85: .line 806
            goto 96
        86: .line 809
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.localIds:Ljava/util/Hashtable;
            aload 22 /* alias */
            aload 24 /* name */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 24 // java.lang.String name
        87: .line 811
            goto 96
        88: .line 814
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 10 /* unmarkedKey */
        89: .line 815
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            ldc "unmarked"
            aload 20 /* privKey */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.put:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 23 // org.bouncycastle.asn1.ASN1OctetString localId
        end local 22 // java.lang.String alias
        end local 21 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
        end local 20 // java.security.PrivateKey privKey
        end local 19 // org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo eIn
        90: .line 817
            goto 96
        91: .line 818
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence int org.bouncycastle.asn1.pkcs.SafeBag
      StackMap stack:
            aload 18 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certBag:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 94
        92: .line 820
            aload 9 /* chain */
            aload 18 /* b */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        93: .line 821
            goto 96
        94: .line 824
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "extra in data "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 18 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        95: .line 825
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 18 /* b */
            invokestatic org.bouncycastle.asn1.util.ASN1Dump.dumpAsString:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 18 // org.bouncycastle.asn1.pkcs.SafeBag b
        96: .line 742
      StackMap locals:
      StackMap stack:
            iinc 17 /* j */ 1
      StackMap locals:
      StackMap stack:
        97: iload 17 /* j */
            aload 16 /* seq */
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.size:()I
            if_icmpne 51
        end local 17 // int j
        end local 16 // org.bouncycastle.asn1.ASN1Sequence seq
        end local 15 // org.bouncycastle.asn1.ASN1InputStream dIn
        98: .line 828
            goto 186
        99: .line 829
      StackMap locals:
      StackMap stack:
            aload 13 /* c */
            iload 14 /* i */
            aaload
            invokevirtual org.bouncycastle.asn1.pkcs.ContentInfo.getContentType:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.encryptedData:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 184
       100: .line 831
            new org.bouncycastle.asn1.pkcs.EncryptedData
            dup
            aload 13 /* c */
            iload 14 /* i */
            aaload
            invokevirtual org.bouncycastle.asn1.pkcs.ContentInfo.getContent:()Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            invokespecial org.bouncycastle.asn1.pkcs.EncryptedData.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 15 /* d */
        start local 15 // org.bouncycastle.asn1.pkcs.EncryptedData d
       101: .line 832
            aload 0 /* this */
            iconst_0
            aload 15 /* d */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptedData.getEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
       102: .line 833
            aload 2 /* password */
            iload 11 /* wrongPKCS12Zero */
            aload 15 /* d */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptedData.getContent:()Lorg/bouncycastle/asn1/ASN1OctetString;
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
       103: .line 832
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.cryptData:(ZLorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[CZ[B)[B
            astore 16 /* octets */
        start local 16 // byte[] octets
       104: .line 834
            aload 16 /* octets */
            invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            astore 17 /* seq */
        start local 17 // org.bouncycastle.asn1.ASN1Sequence seq
       105: .line 836
            iconst_0
            istore 18 /* j */
        start local 18 // int j
       106: goto 182
       107: .line 838
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int org.bouncycastle.asn1.pkcs.EncryptedData byte[] org.bouncycastle.asn1.ASN1Sequence int
      StackMap stack:
            new org.bouncycastle.asn1.pkcs.SafeBag
            dup
            aload 17 /* seq */
            iload 18 /* j */
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            invokespecial org.bouncycastle.asn1.pkcs.SafeBag.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 19 /* b */
        start local 19 // org.bouncycastle.asn1.pkcs.SafeBag b
       108: .line 840
            aload 19 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certBag:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 111
       109: .line 842
            aload 9 /* chain */
            aload 19 /* b */
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
       110: .line 843
            goto 181
       111: .line 844
      StackMap locals: org.bouncycastle.asn1.pkcs.SafeBag
      StackMap stack:
            aload 19 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs8ShroudedKeyBag:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 145
       112: .line 846
            new org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo
            dup
            aload 19 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagValue:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            invokespecial org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 20 /* eIn */
        start local 20 // org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo eIn
       113: .line 847
            aload 0 /* this */
            aload 20 /* eIn */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            aload 20 /* eIn */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getEncryptedData:()[B
            aload 2 /* password */
            iload 11 /* wrongPKCS12Zero */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.unwrapKey:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B[CZ)Ljava/security/PrivateKey;
            astore 21 /* privKey */
        start local 21 // java.security.PrivateKey privKey
       114: .line 852
            aload 21 /* privKey */
            checkcast org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            astore 22 /* bagAttr */
        start local 22 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
       115: .line 853
            aconst_null
            astore 23 /* alias */
        start local 23 // java.lang.String alias
       116: .line 854
            aconst_null
            astore 24 /* localId */
        start local 24 // org.bouncycastle.asn1.ASN1OctetString localId
       117: .line 856
            aload 19 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
            invokevirtual org.bouncycastle.asn1.ASN1Set.getObjects:()Ljava/util/Enumeration;
            astore 25 /* e */
        start local 25 // java.util.Enumeration e
       118: .line 857
            goto 138
       119: .line 859
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int org.bouncycastle.asn1.pkcs.EncryptedData byte[] org.bouncycastle.asn1.ASN1Sequence int org.bouncycastle.asn1.pkcs.SafeBag org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo java.security.PrivateKey org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier java.lang.String org.bouncycastle.asn1.ASN1OctetString java.util.Enumeration
      StackMap stack:
            aload 25 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            astore 26 /* sq */
        start local 26 // org.bouncycastle.asn1.ASN1Sequence sq
       120: .line 860
            aload 26 /* sq */
            iconst_0
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 27 /* aOid */
        start local 27 // org.bouncycastle.asn1.DERObjectIdentifier aOid
       121: .line 861
            aload 26 /* sq */
            iconst_1
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1Set
            astore 28 /* attrSet */
        start local 28 // org.bouncycastle.asn1.ASN1Set attrSet
       122: .line 862
            aconst_null
            astore 29 /* attr */
        start local 29 // org.bouncycastle.asn1.DERObject attr
       123: .line 864
            aload 28 /* attrSet */
            invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
            ifle 132
       124: .line 866
            aload 28 /* attrSet */
            iconst_0
            invokevirtual org.bouncycastle.asn1.ASN1Set.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERObject
            astore 29 /* attr */
       125: .line 868
            aload 22 /* bagAttr */
            aload 27 /* aOid */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            astore 30 /* existing */
        start local 30 // org.bouncycastle.asn1.DEREncodable existing
       126: .line 869
            aload 30 /* existing */
            ifnull 131
       127: .line 872
            aload 30 /* existing */
            invokeinterface org.bouncycastle.asn1.DEREncodable.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            aload 29 /* attr */
            invokevirtual org.bouncycastle.asn1.DERObject.equals:(Ljava/lang/Object;)Z
            ifne 132
       128: .line 874
            new java.io.IOException
            dup
       129: .line 875
            ldc "attempt to add existing attribute with different value"
       130: .line 874
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
       131: .line 880
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int org.bouncycastle.asn1.pkcs.EncryptedData byte[] org.bouncycastle.asn1.ASN1Sequence int org.bouncycastle.asn1.pkcs.SafeBag org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo java.security.PrivateKey org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier java.lang.String org.bouncycastle.asn1.ASN1OctetString java.util.Enumeration org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.DERObjectIdentifier org.bouncycastle.asn1.ASN1Set org.bouncycastle.asn1.DERObject org.bouncycastle.asn1.DEREncodable
      StackMap stack:
            aload 22 /* bagAttr */
            aload 27 /* aOid */
            aload 29 /* attr */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        end local 30 // org.bouncycastle.asn1.DEREncodable existing
       132: .line 884
      StackMap locals:
      StackMap stack:
            aload 27 /* aOid */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 136
       133: .line 886
            aload 29 /* attr */
            checkcast org.bouncycastle.asn1.DERBMPString
            invokevirtual org.bouncycastle.asn1.DERBMPString.getString:()Ljava/lang/String;
            astore 23 /* alias */
       134: .line 887
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 23 /* alias */
            aload 21 /* privKey */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.put:(Ljava/lang/String;Ljava/lang/Object;)V
       135: .line 888
            goto 138
       136: .line 889
      StackMap locals:
      StackMap stack:
            aload 27 /* aOid */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 138
       137: .line 891
            aload 29 /* attr */
            checkcast org.bouncycastle.asn1.ASN1OctetString
            astore 24 /* localId */
        end local 29 // org.bouncycastle.asn1.DERObject attr
        end local 28 // org.bouncycastle.asn1.ASN1Set attrSet
        end local 27 // org.bouncycastle.asn1.DERObjectIdentifier aOid
        end local 26 // org.bouncycastle.asn1.ASN1Sequence sq
       138: .line 857
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int org.bouncycastle.asn1.pkcs.EncryptedData byte[] org.bouncycastle.asn1.ASN1Sequence int org.bouncycastle.asn1.pkcs.SafeBag org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo java.security.PrivateKey org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier java.lang.String org.bouncycastle.asn1.ASN1OctetString java.util.Enumeration
      StackMap stack:
            aload 25 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 119
       139: .line 895
            new java.lang.String
            dup
            aload 24 /* localId */
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            invokestatic org.bouncycastle.util.encoders.Hex.encode:([B)[B
            invokespecial java.lang.String.<init>:([B)V
            astore 26 /* name */
        start local 26 // java.lang.String name
       140: .line 897
            aload 23 /* alias */
            ifnonnull 143
       141: .line 899
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 26 /* name */
            aload 21 /* privKey */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.put:(Ljava/lang/String;Ljava/lang/Object;)V
       142: .line 900
            goto 181
       143: .line 903
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.localIds:Ljava/util/Hashtable;
            aload 23 /* alias */
            aload 26 /* name */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 26 // java.lang.String name
        end local 25 // java.util.Enumeration e
        end local 24 // org.bouncycastle.asn1.ASN1OctetString localId
        end local 23 // java.lang.String alias
        end local 22 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
        end local 21 // java.security.PrivateKey privKey
        end local 20 // org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo eIn
       144: .line 905
            goto 181
       145: .line 906
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int org.bouncycastle.asn1.pkcs.EncryptedData byte[] org.bouncycastle.asn1.ASN1Sequence int org.bouncycastle.asn1.pkcs.SafeBag
      StackMap stack:
            aload 19 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyBag:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 179
       146: .line 908
            new org.bouncycastle.asn1.pkcs.PrivateKeyInfo
            dup
            aload 19 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagValue:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            invokespecial org.bouncycastle.asn1.pkcs.PrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 20 /* pIn */
        start local 20 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pIn
       147: .line 909
            aload 20 /* pIn */
            invokestatic org.bouncycastle.jce.provider.JDKKeyFactory.createPrivateKeyFromPrivateKeyInfo:(Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;)Ljava/security/PrivateKey;
            astore 21 /* privKey */
        start local 21 // java.security.PrivateKey privKey
       148: .line 914
            aload 21 /* privKey */
            checkcast org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            astore 22 /* bagAttr */
        start local 22 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
       149: .line 915
            aconst_null
            astore 23 /* alias */
        start local 23 // java.lang.String alias
       150: .line 916
            aconst_null
            astore 24 /* localId */
        start local 24 // org.bouncycastle.asn1.ASN1OctetString localId
       151: .line 918
            aload 19 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
            invokevirtual org.bouncycastle.asn1.ASN1Set.getObjects:()Ljava/util/Enumeration;
            astore 25 /* e */
        start local 25 // java.util.Enumeration e
       152: .line 919
            goto 172
       153: .line 921
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int org.bouncycastle.asn1.pkcs.EncryptedData byte[] org.bouncycastle.asn1.ASN1Sequence int org.bouncycastle.asn1.pkcs.SafeBag org.bouncycastle.asn1.pkcs.PrivateKeyInfo java.security.PrivateKey org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier java.lang.String org.bouncycastle.asn1.ASN1OctetString java.util.Enumeration
      StackMap stack:
            aload 25 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            astore 26 /* sq */
        start local 26 // org.bouncycastle.asn1.ASN1Sequence sq
       154: .line 922
            aload 26 /* sq */
            iconst_0
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 27 /* aOid */
        start local 27 // org.bouncycastle.asn1.DERObjectIdentifier aOid
       155: .line 923
            aload 26 /* sq */
            iconst_1
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1Set
            astore 28 /* attrSet */
        start local 28 // org.bouncycastle.asn1.ASN1Set attrSet
       156: .line 924
            aconst_null
            astore 29 /* attr */
        start local 29 // org.bouncycastle.asn1.DERObject attr
       157: .line 926
            aload 28 /* attrSet */
            invokevirtual org.bouncycastle.asn1.ASN1Set.size:()I
            ifle 166
       158: .line 928
            aload 28 /* attrSet */
            iconst_0
            invokevirtual org.bouncycastle.asn1.ASN1Set.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERObject
            astore 29 /* attr */
       159: .line 930
            aload 22 /* bagAttr */
            aload 27 /* aOid */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            astore 30 /* existing */
        start local 30 // org.bouncycastle.asn1.DEREncodable existing
       160: .line 931
            aload 30 /* existing */
            ifnull 165
       161: .line 934
            aload 30 /* existing */
            invokeinterface org.bouncycastle.asn1.DEREncodable.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            aload 29 /* attr */
            invokevirtual org.bouncycastle.asn1.DERObject.equals:(Ljava/lang/Object;)Z
            ifne 166
       162: .line 936
            new java.io.IOException
            dup
       163: .line 937
            ldc "attempt to add existing attribute with different value"
       164: .line 936
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
       165: .line 942
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int org.bouncycastle.asn1.pkcs.EncryptedData byte[] org.bouncycastle.asn1.ASN1Sequence int org.bouncycastle.asn1.pkcs.SafeBag org.bouncycastle.asn1.pkcs.PrivateKeyInfo java.security.PrivateKey org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier java.lang.String org.bouncycastle.asn1.ASN1OctetString java.util.Enumeration org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.DERObjectIdentifier org.bouncycastle.asn1.ASN1Set org.bouncycastle.asn1.DERObject org.bouncycastle.asn1.DEREncodable
      StackMap stack:
            aload 22 /* bagAttr */
            aload 27 /* aOid */
            aload 29 /* attr */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        end local 30 // org.bouncycastle.asn1.DEREncodable existing
       166: .line 946
      StackMap locals:
      StackMap stack:
            aload 27 /* aOid */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 170
       167: .line 948
            aload 29 /* attr */
            checkcast org.bouncycastle.asn1.DERBMPString
            invokevirtual org.bouncycastle.asn1.DERBMPString.getString:()Ljava/lang/String;
            astore 23 /* alias */
       168: .line 949
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 23 /* alias */
            aload 21 /* privKey */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.put:(Ljava/lang/String;Ljava/lang/Object;)V
       169: .line 950
            goto 172
       170: .line 951
      StackMap locals:
      StackMap stack:
            aload 27 /* aOid */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 172
       171: .line 953
            aload 29 /* attr */
            checkcast org.bouncycastle.asn1.ASN1OctetString
            astore 24 /* localId */
        end local 29 // org.bouncycastle.asn1.DERObject attr
        end local 28 // org.bouncycastle.asn1.ASN1Set attrSet
        end local 27 // org.bouncycastle.asn1.DERObjectIdentifier aOid
        end local 26 // org.bouncycastle.asn1.ASN1Sequence sq
       172: .line 919
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int org.bouncycastle.asn1.pkcs.EncryptedData byte[] org.bouncycastle.asn1.ASN1Sequence int org.bouncycastle.asn1.pkcs.SafeBag org.bouncycastle.asn1.pkcs.PrivateKeyInfo java.security.PrivateKey org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier java.lang.String org.bouncycastle.asn1.ASN1OctetString java.util.Enumeration
      StackMap stack:
            aload 25 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 153
       173: .line 957
            new java.lang.String
            dup
            aload 24 /* localId */
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            invokestatic org.bouncycastle.util.encoders.Hex.encode:([B)[B
            invokespecial java.lang.String.<init>:([B)V
            astore 26 /* name */
        start local 26 // java.lang.String name
       174: .line 959
            aload 23 /* alias */
            ifnonnull 177
       175: .line 961
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 26 /* name */
            aload 21 /* privKey */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.put:(Ljava/lang/String;Ljava/lang/Object;)V
       176: .line 962
            goto 181
       177: .line 965
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.localIds:Ljava/util/Hashtable;
            aload 23 /* alias */
            aload 26 /* name */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 26 // java.lang.String name
        end local 25 // java.util.Enumeration e
        end local 24 // org.bouncycastle.asn1.ASN1OctetString localId
        end local 23 // java.lang.String alias
        end local 22 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
        end local 21 // java.security.PrivateKey privKey
        end local 20 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pIn
       178: .line 967
            goto 181
       179: .line 970
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int org.bouncycastle.asn1.pkcs.EncryptedData byte[] org.bouncycastle.asn1.ASN1Sequence int org.bouncycastle.asn1.pkcs.SafeBag
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "extra in encryptedData "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 19 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       180: .line 971
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            aload 19 /* b */
            invokestatic org.bouncycastle.asn1.util.ASN1Dump.dumpAsString:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 19 // org.bouncycastle.asn1.pkcs.SafeBag b
       181: .line 836
      StackMap locals:
      StackMap stack:
            iinc 18 /* j */ 1
      StackMap locals:
      StackMap stack:
       182: iload 18 /* j */
            aload 17 /* seq */
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.size:()I
            if_icmpne 107
        end local 18 // int j
        end local 17 // org.bouncycastle.asn1.ASN1Sequence seq
        end local 16 // byte[] octets
        end local 15 // org.bouncycastle.asn1.pkcs.EncryptedData d
       183: .line 974
            goto 186
       184: .line 977
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int org.bouncycastle.asn1.pkcs.AuthenticatedSafe org.bouncycastle.asn1.pkcs.ContentInfo[] int
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "extra "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* c */
            iload 14 /* i */
            aaload
            invokevirtual org.bouncycastle.asn1.pkcs.ContentInfo.getContentType:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       185: .line 978
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "extra "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* c */
            iload 14 /* i */
            aaload
            invokevirtual org.bouncycastle.asn1.pkcs.ContentInfo.getContent:()Lorg/bouncycastle/asn1/DEREncodable;
            invokestatic org.bouncycastle.asn1.util.ASN1Dump.dumpAsString:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       186: .line 735
      StackMap locals:
      StackMap stack:
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
       187: iload 14 /* i */
            aload 13 /* c */
            arraylength
            if_icmpne 46
        end local 14 // int i
        end local 13 // org.bouncycastle.asn1.pkcs.ContentInfo[] c
        end local 12 // org.bouncycastle.asn1.pkcs.AuthenticatedSafe authSafe
       188: .line 983
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable
            dup
            invokespecial org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.<init>:()V
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
       189: .line 984
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.chainCerts:Ljava/util/Hashtable;
       190: .line 985
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyCerts:Ljava/util/Hashtable;
       191: .line 987
            iconst_0
            istore 12 /* i */
        start local 12 // int i
       192: goto 241
       193: .line 989
      StackMap locals: int
      StackMap stack:
            aload 9 /* chain */
            iload 12 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.pkcs.SafeBag
            astore 13 /* b */
        start local 13 // org.bouncycastle.asn1.pkcs.SafeBag b
       194: .line 990
            new org.bouncycastle.asn1.pkcs.CertBag
            dup
            aload 13 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagValue:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            invokespecial org.bouncycastle.asn1.pkcs.CertBag.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            astore 14 /* cb */
        start local 14 // org.bouncycastle.asn1.pkcs.CertBag cb
       195: .line 992
            aload 14 /* cb */
            invokevirtual org.bouncycastle.asn1.pkcs.CertBag.getCertId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.x509Certificate:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 197
       196: .line 994
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported certificate type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* cb */
            invokevirtual org.bouncycastle.asn1.pkcs.CertBag.getCertId:()Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
       197: .line 1001
      StackMap locals: org.bouncycastle.asn1.pkcs.SafeBag org.bouncycastle.asn1.pkcs.CertBag
      StackMap stack:
            new java.io.ByteArrayInputStream
            dup
       198: .line 1002
            aload 14 /* cb */
            invokevirtual org.bouncycastle.asn1.pkcs.CertBag.getCertValue:()Lorg/bouncycastle/asn1/DERObject;
            checkcast org.bouncycastle.asn1.ASN1OctetString
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
       199: .line 1001
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 16 /* cIn */
        start local 16 // java.io.ByteArrayInputStream cIn
       200: .line 1003
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certFact:Ljava/security/cert/CertificateFactory;
            aload 16 /* cIn */
            invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
            astore 15 /* cert */
        end local 16 // java.io.ByteArrayInputStream cIn
        start local 15 // java.security.cert.Certificate cert
       201: .line 1004
            goto 204
        end local 15 // java.security.cert.Certificate cert
       202: .line 1005
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 16 /* e */
        start local 16 // java.lang.Exception e
       203: .line 1007
            new java.lang.RuntimeException
            dup
            aload 16 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 16 // java.lang.Exception e
        start local 15 // java.security.cert.Certificate cert
       204: .line 1013
      StackMap locals: java.security.cert.Certificate
      StackMap stack:
            aconst_null
            astore 16 /* localId */
        start local 16 // org.bouncycastle.asn1.ASN1OctetString localId
       205: .line 1014
            aconst_null
            astore 17 /* alias */
        start local 17 // java.lang.String alias
       206: .line 1016
            aload 13 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
            ifnull 228
       207: .line 1018
            aload 13 /* b */
            invokevirtual org.bouncycastle.asn1.pkcs.SafeBag.getBagAttributes:()Lorg/bouncycastle/asn1/ASN1Set;
            invokevirtual org.bouncycastle.asn1.ASN1Set.getObjects:()Ljava/util/Enumeration;
            astore 18 /* e */
        start local 18 // java.util.Enumeration e
       208: .line 1019
            goto 227
       209: .line 1021
      StackMap locals: org.bouncycastle.asn1.ASN1OctetString java.lang.String java.util.Enumeration
      StackMap stack:
            aload 18 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.ASN1Sequence
            astore 19 /* sq */
        start local 19 // org.bouncycastle.asn1.ASN1Sequence sq
       210: .line 1022
            aload 19 /* sq */
            iconst_0
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 20 /* oid */
        start local 20 // org.bouncycastle.asn1.DERObjectIdentifier oid
       211: .line 1023
            aload 19 /* sq */
            iconst_1
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1Set
            iconst_0
            invokevirtual org.bouncycastle.asn1.ASN1Set.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERObject
            astore 21 /* attr */
        start local 21 // org.bouncycastle.asn1.DERObject attr
       212: .line 1024
            aconst_null
            astore 22 /* bagAttr */
        start local 22 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
       213: .line 1026
            aload 15 /* cert */
            instanceof org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            ifeq 222
       214: .line 1028
            aload 15 /* cert */
            checkcast org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            astore 22 /* bagAttr */
       215: .line 1030
            aload 22 /* bagAttr */
            aload 20 /* oid */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            astore 23 /* existing */
        start local 23 // org.bouncycastle.asn1.DEREncodable existing
       216: .line 1031
            aload 23 /* existing */
            ifnull 221
       217: .line 1034
            aload 23 /* existing */
            invokeinterface org.bouncycastle.asn1.DEREncodable.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            aload 21 /* attr */
            invokevirtual org.bouncycastle.asn1.DERObject.equals:(Ljava/lang/Object;)Z
            ifne 222
       218: .line 1036
            new java.io.IOException
            dup
       219: .line 1037
            ldc "attempt to add existing attribute with different value"
       220: .line 1036
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
       221: .line 1042
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int int org.bouncycastle.asn1.pkcs.SafeBag org.bouncycastle.asn1.pkcs.CertBag java.security.cert.Certificate org.bouncycastle.asn1.ASN1OctetString java.lang.String java.util.Enumeration org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.DERObjectIdentifier org.bouncycastle.asn1.DERObject org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier org.bouncycastle.asn1.DEREncodable
      StackMap stack:
            aload 22 /* bagAttr */
            aload 20 /* oid */
            aload 21 /* attr */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        end local 23 // org.bouncycastle.asn1.DEREncodable existing
       222: .line 1046
      StackMap locals:
      StackMap stack:
            aload 20 /* oid */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 225
       223: .line 1048
            aload 21 /* attr */
            checkcast org.bouncycastle.asn1.DERBMPString
            invokevirtual org.bouncycastle.asn1.DERBMPString.getString:()Ljava/lang/String;
            astore 17 /* alias */
       224: .line 1049
            goto 227
       225: .line 1050
      StackMap locals:
      StackMap stack:
            aload 20 /* oid */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 227
       226: .line 1052
            aload 21 /* attr */
            checkcast org.bouncycastle.asn1.ASN1OctetString
            astore 16 /* localId */
        end local 22 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
        end local 21 // org.bouncycastle.asn1.DERObject attr
        end local 20 // org.bouncycastle.asn1.DERObjectIdentifier oid
        end local 19 // org.bouncycastle.asn1.ASN1Sequence sq
       227: .line 1019
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int int org.bouncycastle.asn1.pkcs.SafeBag org.bouncycastle.asn1.pkcs.CertBag java.security.cert.Certificate org.bouncycastle.asn1.ASN1OctetString java.lang.String java.util.Enumeration
      StackMap stack:
            aload 18 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 209
        end local 18 // java.util.Enumeration e
       228: .line 1057
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.chainCerts:Ljava/util/Hashtable;
            new org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId
            dup
            aload 0 /* this */
            aload 15 /* cert */
            invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokespecial org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId.<init>:(Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;Ljava/security/PublicKey;)V
            aload 15 /* cert */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       229: .line 1059
            iload 10 /* unmarkedKey */
            ifeq 235
       230: .line 1061
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyCerts:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.isEmpty:()Z
            ifeq 240
       231: .line 1063
            new java.lang.String
            dup
            aload 0 /* this */
            aload 15 /* cert */
            invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.createSubjectKeyId:(Ljava/security/PublicKey;)Lorg/bouncycastle/asn1/x509/SubjectKeyIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.SubjectKeyIdentifier.getKeyIdentifier:()[B
            invokestatic org.bouncycastle.util.encoders.Hex.encode:([B)[B
            invokespecial java.lang.String.<init>:([B)V
            astore 18 /* name */
        start local 18 // java.lang.String name
       232: .line 1065
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyCerts:Ljava/util/Hashtable;
            aload 18 /* name */
            aload 15 /* cert */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
       233: .line 1066
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 18 /* name */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            ldc "unmarked"
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.remove:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.put:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 18 // java.lang.String name
       234: .line 1068
            goto 240
       235: .line 1074
      StackMap locals:
      StackMap stack:
            aload 16 /* localId */
            ifnull 238
       236: .line 1076
            new java.lang.String
            dup
            aload 16 /* localId */
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            invokestatic org.bouncycastle.util.encoders.Hex.encode:([B)[B
            invokespecial java.lang.String.<init>:([B)V
            astore 18 /* name */
        start local 18 // java.lang.String name
       237: .line 1078
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyCerts:Ljava/util/Hashtable;
            aload 18 /* name */
            aload 15 /* cert */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 18 // java.lang.String name
       238: .line 1080
      StackMap locals:
      StackMap stack:
            aload 17 /* alias */
            ifnull 240
       239: .line 1082
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 17 /* alias */
            aload 15 /* cert */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.put:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 17 // java.lang.String alias
        end local 16 // org.bouncycastle.asn1.ASN1OctetString localId
        end local 15 // java.security.cert.Certificate cert
        end local 14 // org.bouncycastle.asn1.pkcs.CertBag cb
        end local 13 // org.bouncycastle.asn1.pkcs.SafeBag b
       240: .line 987
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.InputStream char[] java.io.BufferedInputStream int org.bouncycastle.asn1.ASN1InputStream org.bouncycastle.asn1.ASN1Sequence org.bouncycastle.asn1.pkcs.Pfx org.bouncycastle.asn1.pkcs.ContentInfo java.util.Vector int int int
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
       241: iload 12 /* i */
            aload 9 /* chain */
            invokevirtual java.util.Vector.size:()I
            if_icmpne 193
        end local 12 // int i
       242: .line 1086
            return
        end local 11 // boolean wrongPKCS12Zero
        end local 10 // boolean unmarkedKey
        end local 9 // java.util.Vector chain
        end local 8 // org.bouncycastle.asn1.pkcs.ContentInfo info
        end local 7 // org.bouncycastle.asn1.pkcs.Pfx bag
        end local 6 // org.bouncycastle.asn1.ASN1Sequence obj
        end local 5 // org.bouncycastle.asn1.ASN1InputStream bIn
        end local 4 // int head
        end local 3 // java.io.BufferedInputStream bufIn
        end local 2 // char[] password
        end local 1 // java.io.InputStream stream
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0  243     0             this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0  243     1           stream  Ljava/io/InputStream;
            0  243     2         password  [C
            5  243     3            bufIn  Ljava/io/BufferedInputStream;
            7  243     4             head  I
           11  243     5              bIn  Lorg/bouncycastle/asn1/ASN1InputStream;
           12  243     6              obj  Lorg/bouncycastle/asn1/ASN1Sequence;
           13  243     7              bag  Lorg/bouncycastle/asn1/pkcs/Pfx;
           14  243     8             info  Lorg/bouncycastle/asn1/pkcs/ContentInfo;
           15  243     9            chain  Ljava/util/Vector;
           16  243    10      unmarkedKey  Z
           17  243    11  wrongPKCS12Zero  Z
           19   38    12            mData  Lorg/bouncycastle/asn1/pkcs/MacData;
           20   38    13            dInfo  Lorg/bouncycastle/asn1/x509/DigestInfo;
           21   38    14            algId  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
           22   38    15             salt  [B
           23   38    16          itCount  I
           24   38    17             data  [B
           25   33    18              res  [B
           26   33    19              dig  [B
           35   36    18                e  Ljava/io/IOException;
           37   38    18                e  Ljava/lang/Exception;
           43  188    12         authSafe  Lorg/bouncycastle/asn1/pkcs/AuthenticatedSafe;
           44  188    13                c  [Lorg/bouncycastle/asn1/pkcs/ContentInfo;
           45  188    14                i  I
           48   98    15              dIn  Lorg/bouncycastle/asn1/ASN1InputStream;
           49   98    16              seq  Lorg/bouncycastle/asn1/ASN1Sequence;
           50   98    17                j  I
           52   96    18                b  Lorg/bouncycastle/asn1/pkcs/SafeBag;
           54   90    19              eIn  Lorg/bouncycastle/asn1/pkcs/EncryptedPrivateKeyInfo;
           55   90    20          privKey  Ljava/security/PrivateKey;
           56   90    21          bagAttr  Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
           57   90    22            alias  Ljava/lang/String;
           58   90    23          localId  Lorg/bouncycastle/asn1/ASN1OctetString;
           60   81    24                e  Ljava/util/Enumeration;
           62   80    25               sq  Lorg/bouncycastle/asn1/ASN1Sequence;
           63   80    26             aOid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
           64   80    27          attrSet  Lorg/bouncycastle/asn1/ASN1Set;
           65   80    28             attr  Lorg/bouncycastle/asn1/DERObject;
           68   74    29         existing  Lorg/bouncycastle/asn1/DEREncodable;
           83   87    24             name  Ljava/lang/String;
          101  183    15                d  Lorg/bouncycastle/asn1/pkcs/EncryptedData;
          104  183    16           octets  [B
          105  183    17              seq  Lorg/bouncycastle/asn1/ASN1Sequence;
          106  183    18                j  I
          108  181    19                b  Lorg/bouncycastle/asn1/pkcs/SafeBag;
          113  144    20              eIn  Lorg/bouncycastle/asn1/pkcs/EncryptedPrivateKeyInfo;
          114  144    21          privKey  Ljava/security/PrivateKey;
          115  144    22          bagAttr  Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
          116  144    23            alias  Ljava/lang/String;
          117  144    24          localId  Lorg/bouncycastle/asn1/ASN1OctetString;
          118  144    25                e  Ljava/util/Enumeration;
          120  138    26               sq  Lorg/bouncycastle/asn1/ASN1Sequence;
          121  138    27             aOid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
          122  138    28          attrSet  Lorg/bouncycastle/asn1/ASN1Set;
          123  138    29             attr  Lorg/bouncycastle/asn1/DERObject;
          126  132    30         existing  Lorg/bouncycastle/asn1/DEREncodable;
          140  144    26             name  Ljava/lang/String;
          147  178    20              pIn  Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
          148  178    21          privKey  Ljava/security/PrivateKey;
          149  178    22          bagAttr  Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
          150  178    23            alias  Ljava/lang/String;
          151  178    24          localId  Lorg/bouncycastle/asn1/ASN1OctetString;
          152  178    25                e  Ljava/util/Enumeration;
          154  172    26               sq  Lorg/bouncycastle/asn1/ASN1Sequence;
          155  172    27             aOid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
          156  172    28          attrSet  Lorg/bouncycastle/asn1/ASN1Set;
          157  172    29             attr  Lorg/bouncycastle/asn1/DERObject;
          160  166    30         existing  Lorg/bouncycastle/asn1/DEREncodable;
          174  178    26             name  Ljava/lang/String;
          192  242    12                i  I
          194  240    13                b  Lorg/bouncycastle/asn1/pkcs/SafeBag;
          195  240    14               cb  Lorg/bouncycastle/asn1/pkcs/CertBag;
          201  202    15             cert  Ljava/security/cert/Certificate;
          204  240    15             cert  Ljava/security/cert/Certificate;
          200  201    16              cIn  Ljava/io/ByteArrayInputStream;
          203  204    16                e  Ljava/lang/Exception;
          205  240    16          localId  Lorg/bouncycastle/asn1/ASN1OctetString;
          206  240    17            alias  Ljava/lang/String;
          208  228    18                e  Ljava/util/Enumeration;
          210  227    19               sq  Lorg/bouncycastle/asn1/ASN1Sequence;
          211  227    20              oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
          212  227    21             attr  Lorg/bouncycastle/asn1/DERObject;
          213  227    22          bagAttr  Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
          216  222    23         existing  Lorg/bouncycastle/asn1/DEREncodable;
          232  234    18             name  Ljava/lang/String;
          237  238    18             name  Ljava/lang/String;
      Exception table:
        from    to  target  type
          24    33      34  Class java.io.IOException
          24    33      36  Class java.lang.Exception
         197   201     202  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      stream    
      password  

  public void engineStore(java.security.KeyStore$LoadStoreParameter);
    descriptor: (Ljava/security/KeyStore$LoadStoreParameter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.security.KeyStore$LoadStoreParameter param
         0: .line 1091
            aload 1 /* param */
            ifnonnull 2
         1: .line 1093
            new java.lang.IllegalArgumentException
            dup
            ldc "'param' arg cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1096
      StackMap locals:
      StackMap stack:
            aload 1 /* param */
            instanceof org.bouncycastle.jce.provider.JDKPKCS12StoreParameter
            ifne 6
         3: .line 1098
            new java.lang.IllegalArgumentException
            dup
         4: .line 1099
            new java.lang.StringBuilder
            dup
            ldc "No support for 'param' of type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* param */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 1098
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1102
      StackMap locals:
      StackMap stack:
            aload 1 /* param */
            checkcast org.bouncycastle.jce.provider.JDKPKCS12StoreParameter
            astore 2 /* bcParam */
        start local 2 // org.bouncycastle.jce.provider.JDKPKCS12StoreParameter bcParam
         7: .line 1105
            aload 1 /* param */
            invokeinterface java.security.KeyStore$LoadStoreParameter.getProtectionParameter:()Ljava/security/KeyStore$ProtectionParameter;
            astore 4 /* protParam */
        start local 4 // java.security.KeyStore$ProtectionParameter protParam
         8: .line 1106
            aload 4 /* protParam */
            ifnonnull 11
         9: .line 1108
            aconst_null
            astore 3 /* password */
        start local 3 // char[] password
        10: .line 1109
            goto 17
        end local 3 // char[] password
        11: .line 1110
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.security.KeyStore$LoadStoreParameter org.bouncycastle.jce.provider.JDKPKCS12StoreParameter top java.security.KeyStore$ProtectionParameter
      StackMap stack:
            aload 4 /* protParam */
            instanceof java.security.KeyStore$PasswordProtection
            ifeq 14
        12: .line 1112
            aload 4 /* protParam */
            checkcast java.security.KeyStore$PasswordProtection
            invokevirtual java.security.KeyStore$PasswordProtection.getPassword:()[C
            astore 3 /* password */
        start local 3 // char[] password
        13: .line 1113
            goto 17
        end local 3 // char[] password
        14: .line 1116
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        15: .line 1117
            new java.lang.StringBuilder
            dup
            ldc "No support for protection parameter of type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* protParam */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 1116
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 3 // char[] password
        17: .line 1120
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.security.KeyStore$LoadStoreParameter org.bouncycastle.jce.provider.JDKPKCS12StoreParameter char[] java.security.KeyStore$ProtectionParameter
      StackMap stack:
            aload 0 /* this */
            aload 2 /* bcParam */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12StoreParameter.getOutputStream:()Ljava/io/OutputStream;
            aload 3 /* password */
            aload 2 /* bcParam */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12StoreParameter.isUseDEREncoding:()Z
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.doStore:(Ljava/io/OutputStream;[CZ)V
        18: .line 1121
            return
        end local 4 // java.security.KeyStore$ProtectionParameter protParam
        end local 3 // char[] password
        end local 2 // org.bouncycastle.jce.provider.JDKPKCS12StoreParameter bcParam
        end local 1 // java.security.KeyStore$LoadStoreParameter param
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0       this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0   19     1      param  Ljava/security/KeyStore$LoadStoreParameter;
            7   19     2    bcParam  Lorg/bouncycastle/jce/provider/JDKPKCS12StoreParameter;
           10   11     3   password  [C
           13   14     3   password  [C
           17   19     3   password  [C
            8   19     4  protParam  Ljava/security/KeyStore$ProtectionParameter;
    Exceptions:
      throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
    MethodParameters:
       Name  Flags
      param  

  public void engineStore(java.io.OutputStream, char[]);
    descriptor: (Ljava/io/OutputStream;[C)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.io.OutputStream stream
        start local 2 // char[] password
         0: .line 1126
            aload 0 /* this */
            aload 1 /* stream */
            aload 2 /* password */
            iconst_0
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.doStore:(Ljava/io/OutputStream;[CZ)V
         1: .line 1127
            return
        end local 2 // char[] password
        end local 1 // java.io.OutputStream stream
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0    2     1    stream  Ljava/io/OutputStream;
            0    2     2  password  [C
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      stream    
      password  

  private void doStore(java.io.OutputStream, char[], boolean);
    descriptor: (Ljava/io/OutputStream;[CZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=30, args_size=4
        start local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
        start local 1 // java.io.OutputStream stream
        start local 2 // char[] password
        start local 3 // boolean useDEREncoding
         0: .line 1132
            aload 2 /* password */
            ifnonnull 2
         1: .line 1134
            new java.lang.NullPointerException
            dup
            ldc "No password supplied for PKCS#12 KeyStore."
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1140
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 4 /* keyS */
        start local 4 // org.bouncycastle.asn1.ASN1EncodableVector keyS
         3: .line 1143
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.keys:()Ljava/util/Enumeration;
            astore 5 /* ks */
        start local 5 // java.util.Enumeration ks
         4: .line 1145
            goto 44
         5: .line 1147
      StackMap locals: org.bouncycastle.asn1.ASN1EncodableVector java.util.Enumeration
      StackMap stack:
            bipush 20
            newarray 8
            astore 6 /* kSalt */
        start local 6 // byte[] kSalt
         6: .line 1149
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.random:Ljava/security/SecureRandom;
            aload 6 /* kSalt */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
         7: .line 1151
            aload 5 /* ks */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* name */
        start local 7 // java.lang.String name
         8: .line 1152
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 7 /* name */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.security.PrivateKey
            astore 8 /* privKey */
        start local 8 // java.security.PrivateKey privKey
         9: .line 1153
            new org.bouncycastle.asn1.pkcs.PKCS12PBEParams
            dup
            aload 6 /* kSalt */
            sipush 1024
            invokespecial org.bouncycastle.asn1.pkcs.PKCS12PBEParams.<init>:([BI)V
            astore 9 /* kParams */
        start local 9 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams kParams
        10: .line 1154
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyAlgorithm:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
            aload 8 /* privKey */
            aload 9 /* kParams */
            aload 2 /* password */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.wrapKey:(Ljava/lang/String;Ljava/security/Key;Lorg/bouncycastle/asn1/pkcs/PKCS12PBEParams;[C)[B
            astore 10 /* kBytes */
        start local 10 // byte[] kBytes
        11: .line 1155
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keyAlgorithm:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            aload 9 /* kParams */
            invokevirtual org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
            astore 11 /* kAlgId */
        start local 11 // org.bouncycastle.asn1.x509.AlgorithmIdentifier kAlgId
        12: .line 1156
            new org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo
            dup
            aload 11 /* kAlgId */
            aload 10 /* kBytes */
            invokespecial org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)V
            astore 12 /* kInfo */
        start local 12 // org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo kInfo
        13: .line 1157
            iconst_0
            istore 13 /* attrSet */
        start local 13 // boolean attrSet
        14: .line 1158
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 14 /* kName */
        start local 14 // org.bouncycastle.asn1.ASN1EncodableVector kName
        15: .line 1160
            aload 8 /* privKey */
            instanceof org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            ifeq 32
        16: .line 1162
            aload 8 /* privKey */
            checkcast org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            astore 15 /* bagAttrs */
        start local 15 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttrs
        17: .line 1166
            aload 15 /* bagAttrs */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERBMPString
            astore 16 /* nm */
        start local 16 // org.bouncycastle.asn1.DERBMPString nm
        18: .line 1167
            aload 16 /* nm */
            ifnull 19
            aload 16 /* nm */
            invokevirtual org.bouncycastle.asn1.DERBMPString.getString:()Ljava/lang/String;
            aload 7 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 20
        19: .line 1169
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.OutputStream char[] int org.bouncycastle.asn1.ASN1EncodableVector java.util.Enumeration byte[] java.lang.String java.security.PrivateKey org.bouncycastle.asn1.pkcs.PKCS12PBEParams byte[] org.bouncycastle.asn1.x509.AlgorithmIdentifier org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo int org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier org.bouncycastle.asn1.DERBMPString
      StackMap stack:
            aload 15 /* bagAttrs */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.asn1.DERBMPString
            dup
            aload 7 /* name */
            invokespecial org.bouncycastle.asn1.DERBMPString.<init>:(Ljava/lang/String;)V
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        20: .line 1175
      StackMap locals:
      StackMap stack:
            aload 15 /* bagAttrs */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            ifnonnull 23
        21: .line 1177
            aload 0 /* this */
            aload 7 /* name */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineGetCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
            astore 17 /* ct */
        start local 17 // java.security.cert.Certificate ct
        22: .line 1179
            aload 15 /* bagAttrs */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 0 /* this */
            aload 17 /* ct */
            invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.createSubjectKeyId:(Ljava/security/PublicKey;)Lorg/bouncycastle/asn1/x509/SubjectKeyIdentifier;
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        end local 17 // java.security.cert.Certificate ct
        23: .line 1182
      StackMap locals:
      StackMap stack:
            aload 15 /* bagAttrs */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttributeKeys:()Ljava/util/Enumeration;
            astore 17 /* e */
        start local 17 // java.util.Enumeration e
        24: .line 1184
            goto 31
        25: .line 1186
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 17 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 18 /* oid */
        start local 18 // org.bouncycastle.asn1.DERObjectIdentifier oid
        26: .line 1187
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 19 /* kSeq */
        start local 19 // org.bouncycastle.asn1.ASN1EncodableVector kSeq
        27: .line 1189
            aload 19 /* kSeq */
            aload 18 /* oid */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        28: .line 1190
            aload 19 /* kSeq */
            new org.bouncycastle.asn1.DERSet
            dup
            aload 15 /* bagAttrs */
            aload 18 /* oid */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/DEREncodable;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        29: .line 1192
            iconst_1
            istore 13 /* attrSet */
        30: .line 1194
            aload 14 /* kName */
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 19 /* kSeq */
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        end local 19 // org.bouncycastle.asn1.ASN1EncodableVector kSeq
        end local 18 // org.bouncycastle.asn1.DERObjectIdentifier oid
        31: .line 1184
      StackMap locals:
      StackMap stack:
            aload 17 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 25
        end local 17 // java.util.Enumeration e
        end local 16 // org.bouncycastle.asn1.DERBMPString nm
        end local 15 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttrs
        32: .line 1198
      StackMap locals:
      StackMap stack:
            iload 13 /* attrSet */
            ifne 42
        33: .line 1203
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 15 /* kSeq */
        start local 15 // org.bouncycastle.asn1.ASN1EncodableVector kSeq
        34: .line 1204
            aload 0 /* this */
            aload 7 /* name */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineGetCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
            astore 16 /* ct */
        start local 16 // java.security.cert.Certificate ct
        35: .line 1206
            aload 15 /* kSeq */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        36: .line 1207
            aload 15 /* kSeq */
            new org.bouncycastle.asn1.DERSet
            dup
            aload 0 /* this */
            aload 16 /* ct */
            invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.createSubjectKeyId:(Ljava/security/PublicKey;)Lorg/bouncycastle/asn1/x509/SubjectKeyIdentifier;
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/DEREncodable;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        37: .line 1209
            aload 14 /* kName */
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 15 /* kSeq */
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        38: .line 1211
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 15 /* kSeq */
        39: .line 1213
            aload 15 /* kSeq */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        40: .line 1214
            aload 15 /* kSeq */
            new org.bouncycastle.asn1.DERSet
            dup
            new org.bouncycastle.asn1.DERBMPString
            dup
            aload 7 /* name */
            invokespecial org.bouncycastle.asn1.DERBMPString.<init>:(Ljava/lang/String;)V
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/DEREncodable;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        41: .line 1216
            aload 14 /* kName */
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 15 /* kSeq */
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        end local 16 // java.security.cert.Certificate ct
        end local 15 // org.bouncycastle.asn1.ASN1EncodableVector kSeq
        42: .line 1219
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.asn1.pkcs.SafeBag
            dup
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs8ShroudedKeyBag:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 12 /* kInfo */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            new org.bouncycastle.asn1.DERSet
            dup
            aload 14 /* kName */
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokespecial org.bouncycastle.asn1.pkcs.SafeBag.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DERObject;Lorg/bouncycastle/asn1/ASN1Set;)V
            astore 15 /* kBag */
        start local 15 // org.bouncycastle.asn1.pkcs.SafeBag kBag
        43: .line 1220
            aload 4 /* keyS */
            aload 15 /* kBag */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        end local 15 // org.bouncycastle.asn1.pkcs.SafeBag kBag
        end local 14 // org.bouncycastle.asn1.ASN1EncodableVector kName
        end local 13 // boolean attrSet
        end local 12 // org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo kInfo
        end local 11 // org.bouncycastle.asn1.x509.AlgorithmIdentifier kAlgId
        end local 10 // byte[] kBytes
        end local 9 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams kParams
        end local 8 // java.security.PrivateKey privKey
        end local 7 // java.lang.String name
        end local 6 // byte[] kSalt
        44: .line 1145
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.OutputStream char[] int org.bouncycastle.asn1.ASN1EncodableVector java.util.Enumeration
      StackMap stack:
            aload 5 /* ks */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 5
        45: .line 1223
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 4 /* keyS */
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.DERSequence.getDEREncoded:()[B
            astore 6 /* keySEncoded */
        start local 6 // byte[] keySEncoded
        46: .line 1224
            new org.bouncycastle.asn1.BERConstructedOctetString
            dup
            aload 6 /* keySEncoded */
            invokespecial org.bouncycastle.asn1.BERConstructedOctetString.<init>:([B)V
            astore 7 /* keyString */
        start local 7 // org.bouncycastle.asn1.BERConstructedOctetString keyString
        47: .line 1229
            bipush 20
            newarray 8
            astore 8 /* cSalt */
        start local 8 // byte[] cSalt
        48: .line 1231
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.random:Ljava/security/SecureRandom;
            aload 8 /* cSalt */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
        49: .line 1233
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 9 /* certSeq */
        start local 9 // org.bouncycastle.asn1.ASN1EncodableVector certSeq
        50: .line 1234
            new org.bouncycastle.asn1.pkcs.PKCS12PBEParams
            dup
            aload 8 /* cSalt */
            sipush 1024
            invokespecial org.bouncycastle.asn1.pkcs.PKCS12PBEParams.<init>:([BI)V
            astore 10 /* cParams */
        start local 10 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams cParams
        51: .line 1235
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certAlgorithm:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            aload 10 /* cParams */
            invokevirtual org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
            astore 11 /* cAlgId */
        start local 11 // org.bouncycastle.asn1.x509.AlgorithmIdentifier cAlgId
        52: .line 1236
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            astore 12 /* doneCerts */
        start local 12 // java.util.Hashtable doneCerts
        53: .line 1238
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.keys:()Ljava/util/Enumeration;
            astore 13 /* cs */
        start local 13 // java.util.Enumeration cs
        54: .line 1239
            goto 94
        55: .line 1243
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.OutputStream char[] int org.bouncycastle.asn1.ASN1EncodableVector java.util.Enumeration byte[] org.bouncycastle.asn1.BERConstructedOctetString byte[] org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.pkcs.PKCS12PBEParams org.bouncycastle.asn1.x509.AlgorithmIdentifier java.util.Hashtable java.util.Enumeration
      StackMap stack:
            aload 13 /* cs */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 14 /* name */
        start local 14 // java.lang.String name
        56: .line 1244
            aload 0 /* this */
            aload 14 /* name */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineGetCertificate:(Ljava/lang/String;)Ljava/security/cert/Certificate;
            astore 15 /* cert */
        start local 15 // java.security.cert.Certificate cert
        57: .line 1245
            iconst_0
            istore 16 /* cAttrSet */
        start local 16 // boolean cAttrSet
        58: .line 1246
            new org.bouncycastle.asn1.pkcs.CertBag
            dup
        59: .line 1247
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.x509Certificate:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        60: .line 1248
            new org.bouncycastle.asn1.DEROctetString
            dup
            aload 15 /* cert */
            invokevirtual java.security.cert.Certificate.getEncoded:()[B
            invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
        61: .line 1246
            invokespecial org.bouncycastle.asn1.pkcs.CertBag.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DERObject;)V
            astore 17 /* cBag */
        start local 17 // org.bouncycastle.asn1.pkcs.CertBag cBag
        62: .line 1249
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 18 /* fName */
        start local 18 // org.bouncycastle.asn1.ASN1EncodableVector fName
        63: .line 1251
            aload 15 /* cert */
            instanceof org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            ifeq 79
        64: .line 1253
            aload 15 /* cert */
            checkcast org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            astore 19 /* bagAttrs */
        start local 19 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttrs
        65: .line 1257
            aload 19 /* bagAttrs */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERBMPString
            astore 20 /* nm */
        start local 20 // org.bouncycastle.asn1.DERBMPString nm
        66: .line 1258
            aload 20 /* nm */
            ifnull 67
            aload 20 /* nm */
            invokevirtual org.bouncycastle.asn1.DERBMPString.getString:()Ljava/lang/String;
            aload 14 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 68
        67: .line 1260
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.OutputStream char[] int org.bouncycastle.asn1.ASN1EncodableVector java.util.Enumeration byte[] org.bouncycastle.asn1.BERConstructedOctetString byte[] org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.pkcs.PKCS12PBEParams org.bouncycastle.asn1.x509.AlgorithmIdentifier java.util.Hashtable java.util.Enumeration java.lang.String java.security.cert.Certificate int org.bouncycastle.asn1.pkcs.CertBag org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier org.bouncycastle.asn1.DERBMPString
      StackMap stack:
            aload 19 /* bagAttrs */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.asn1.DERBMPString
            dup
            aload 14 /* name */
            invokespecial org.bouncycastle.asn1.DERBMPString.<init>:(Ljava/lang/String;)V
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        68: .line 1266
      StackMap locals:
      StackMap stack:
            aload 19 /* bagAttrs */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            ifnonnull 70
        69: .line 1268
            aload 19 /* bagAttrs */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 0 /* this */
            aload 15 /* cert */
            invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.createSubjectKeyId:(Ljava/security/PublicKey;)Lorg/bouncycastle/asn1/x509/SubjectKeyIdentifier;
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        70: .line 1271
      StackMap locals:
      StackMap stack:
            aload 19 /* bagAttrs */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttributeKeys:()Ljava/util/Enumeration;
            astore 21 /* e */
        start local 21 // java.util.Enumeration e
        71: .line 1273
            goto 78
        72: .line 1275
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 21 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 22 /* oid */
        start local 22 // org.bouncycastle.asn1.DERObjectIdentifier oid
        73: .line 1276
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 23 /* fSeq */
        start local 23 // org.bouncycastle.asn1.ASN1EncodableVector fSeq
        74: .line 1278
            aload 23 /* fSeq */
            aload 22 /* oid */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        75: .line 1279
            aload 23 /* fSeq */
            new org.bouncycastle.asn1.DERSet
            dup
            aload 19 /* bagAttrs */
            aload 22 /* oid */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/DEREncodable;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        76: .line 1280
            aload 18 /* fName */
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 23 /* fSeq */
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        77: .line 1282
            iconst_1
            istore 16 /* cAttrSet */
        end local 23 // org.bouncycastle.asn1.ASN1EncodableVector fSeq
        end local 22 // org.bouncycastle.asn1.DERObjectIdentifier oid
        78: .line 1273
      StackMap locals:
      StackMap stack:
            aload 21 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 72
        end local 21 // java.util.Enumeration e
        end local 20 // org.bouncycastle.asn1.DERBMPString nm
        end local 19 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttrs
        79: .line 1286
      StackMap locals:
      StackMap stack:
            iload 16 /* cAttrSet */
            ifne 88
        80: .line 1288
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 19 /* fSeq */
        start local 19 // org.bouncycastle.asn1.ASN1EncodableVector fSeq
        81: .line 1290
            aload 19 /* fSeq */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        82: .line 1291
            aload 19 /* fSeq */
            new org.bouncycastle.asn1.DERSet
            dup
            aload 0 /* this */
            aload 15 /* cert */
            invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.createSubjectKeyId:(Ljava/security/PublicKey;)Lorg/bouncycastle/asn1/x509/SubjectKeyIdentifier;
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/DEREncodable;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        83: .line 1292
            aload 18 /* fName */
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 19 /* fSeq */
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        84: .line 1294
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 19 /* fSeq */
        85: .line 1296
            aload 19 /* fSeq */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        86: .line 1297
            aload 19 /* fSeq */
            new org.bouncycastle.asn1.DERSet
            dup
            new org.bouncycastle.asn1.DERBMPString
            dup
            aload 14 /* name */
            invokespecial org.bouncycastle.asn1.DERBMPString.<init>:(Ljava/lang/String;)V
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/DEREncodable;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        87: .line 1299
            aload 18 /* fName */
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 19 /* fSeq */
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        end local 19 // org.bouncycastle.asn1.ASN1EncodableVector fSeq
        88: .line 1302
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.asn1.pkcs.SafeBag
            dup
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certBag:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 17 /* cBag */
            invokevirtual org.bouncycastle.asn1.pkcs.CertBag.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            new org.bouncycastle.asn1.DERSet
            dup
            aload 18 /* fName */
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokespecial org.bouncycastle.asn1.pkcs.SafeBag.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DERObject;Lorg/bouncycastle/asn1/ASN1Set;)V
            astore 19 /* sBag */
        start local 19 // org.bouncycastle.asn1.pkcs.SafeBag sBag
        89: .line 1304
            aload 9 /* certSeq */
            aload 19 /* sBag */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        90: .line 1306
            aload 12 /* doneCerts */
            aload 15 /* cert */
            aload 15 /* cert */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 19 // org.bouncycastle.asn1.pkcs.SafeBag sBag
        end local 18 // org.bouncycastle.asn1.ASN1EncodableVector fName
        end local 17 // org.bouncycastle.asn1.pkcs.CertBag cBag
        end local 16 // boolean cAttrSet
        end local 15 // java.security.cert.Certificate cert
        end local 14 // java.lang.String name
        91: .line 1307
            goto 94
        92: .line 1308
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.OutputStream char[] int org.bouncycastle.asn1.ASN1EncodableVector java.util.Enumeration byte[] org.bouncycastle.asn1.BERConstructedOctetString byte[] org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.pkcs.PKCS12PBEParams org.bouncycastle.asn1.x509.AlgorithmIdentifier java.util.Hashtable java.util.Enumeration
      StackMap stack: java.security.cert.CertificateEncodingException
            astore 14 /* e */
        start local 14 // java.security.cert.CertificateEncodingException e
        93: .line 1310
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Error encoding certificate: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* e */
            invokevirtual java.security.cert.CertificateEncodingException.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // java.security.cert.CertificateEncodingException e
        94: .line 1239
      StackMap locals:
      StackMap stack:
            aload 13 /* cs */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 55
        95: .line 1314
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.keys:()Ljava/util/Enumeration;
            astore 13 /* cs */
        96: .line 1315
            goto 134
        97: .line 1319
      StackMap locals:
      StackMap stack:
            aload 13 /* cs */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 14 /* certId */
        start local 14 // java.lang.String certId
        98: .line 1320
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certs:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 14 /* certId */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.get:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.security.cert.Certificate
            astore 15 /* cert */
        start local 15 // java.security.cert.Certificate cert
        99: .line 1321
            iconst_0
            istore 16 /* cAttrSet */
        start local 16 // boolean cAttrSet
       100: .line 1323
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.keys:Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$IgnoresCaseHashtable;
            aload 14 /* certId */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable.get:(Ljava/lang/String;)Ljava/lang/Object;
            ifnull 102
       101: .line 1325
            goto 134
       102: .line 1328
      StackMap locals: java.lang.String java.security.cert.Certificate int
      StackMap stack:
            new org.bouncycastle.asn1.pkcs.CertBag
            dup
       103: .line 1329
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.x509Certificate:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
       104: .line 1330
            new org.bouncycastle.asn1.DEROctetString
            dup
            aload 15 /* cert */
            invokevirtual java.security.cert.Certificate.getEncoded:()[B
            invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
       105: .line 1328
            invokespecial org.bouncycastle.asn1.pkcs.CertBag.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DERObject;)V
            astore 17 /* cBag */
        start local 17 // org.bouncycastle.asn1.pkcs.CertBag cBag
       106: .line 1331
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 18 /* fName */
        start local 18 // org.bouncycastle.asn1.ASN1EncodableVector fName
       107: .line 1333
            aload 15 /* cert */
            instanceof org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            ifeq 123
       108: .line 1335
            aload 15 /* cert */
            checkcast org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            astore 19 /* bagAttrs */
        start local 19 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttrs
       109: .line 1339
            aload 19 /* bagAttrs */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.DERBMPString
            astore 20 /* nm */
        start local 20 // org.bouncycastle.asn1.DERBMPString nm
       110: .line 1340
            aload 20 /* nm */
            ifnull 111
            aload 20 /* nm */
            invokevirtual org.bouncycastle.asn1.DERBMPString.getString:()Ljava/lang/String;
            aload 14 /* certId */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 112
       111: .line 1342
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.OutputStream char[] int org.bouncycastle.asn1.ASN1EncodableVector java.util.Enumeration byte[] org.bouncycastle.asn1.BERConstructedOctetString byte[] org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.pkcs.PKCS12PBEParams org.bouncycastle.asn1.x509.AlgorithmIdentifier java.util.Hashtable java.util.Enumeration java.lang.String java.security.cert.Certificate int org.bouncycastle.asn1.pkcs.CertBag org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier org.bouncycastle.asn1.DERBMPString
      StackMap stack:
            aload 19 /* bagAttrs */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.asn1.DERBMPString
            dup
            aload 14 /* certId */
            invokespecial org.bouncycastle.asn1.DERBMPString.<init>:(Ljava/lang/String;)V
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
       112: .line 1345
      StackMap locals:
      StackMap stack:
            aload 19 /* bagAttrs */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttributeKeys:()Ljava/util/Enumeration;
            astore 21 /* e */
        start local 21 // java.util.Enumeration e
       113: .line 1347
            goto 122
       114: .line 1349
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 21 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 22 /* oid */
        start local 22 // org.bouncycastle.asn1.DERObjectIdentifier oid
       115: .line 1355
            aload 22 /* oid */
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 117
       116: .line 1357
            goto 122
       117: .line 1360
      StackMap locals: org.bouncycastle.asn1.DERObjectIdentifier
      StackMap stack:
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 23 /* fSeq */
        start local 23 // org.bouncycastle.asn1.ASN1EncodableVector fSeq
       118: .line 1362
            aload 23 /* fSeq */
            aload 22 /* oid */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
       119: .line 1363
            aload 23 /* fSeq */
            new org.bouncycastle.asn1.DERSet
            dup
            aload 19 /* bagAttrs */
            aload 22 /* oid */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/DEREncodable;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
       120: .line 1364
            aload 18 /* fName */
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 23 /* fSeq */
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
       121: .line 1366
            iconst_1
            istore 16 /* cAttrSet */
        end local 23 // org.bouncycastle.asn1.ASN1EncodableVector fSeq
        end local 22 // org.bouncycastle.asn1.DERObjectIdentifier oid
       122: .line 1347
      StackMap locals:
      StackMap stack:
            aload 21 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 114
        end local 21 // java.util.Enumeration e
        end local 20 // org.bouncycastle.asn1.DERBMPString nm
        end local 19 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttrs
       123: .line 1370
      StackMap locals:
      StackMap stack:
            iload 16 /* cAttrSet */
            ifne 128
       124: .line 1372
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 19 /* fSeq */
        start local 19 // org.bouncycastle.asn1.ASN1EncodableVector fSeq
       125: .line 1374
            aload 19 /* fSeq */
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
       126: .line 1375
            aload 19 /* fSeq */
            new org.bouncycastle.asn1.DERSet
            dup
            new org.bouncycastle.asn1.DERBMPString
            dup
            aload 14 /* certId */
            invokespecial org.bouncycastle.asn1.DERBMPString.<init>:(Ljava/lang/String;)V
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/DEREncodable;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
       127: .line 1377
            aload 18 /* fName */
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 19 /* fSeq */
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        end local 19 // org.bouncycastle.asn1.ASN1EncodableVector fSeq
       128: .line 1380
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.asn1.pkcs.SafeBag
            dup
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certBag:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 17 /* cBag */
            invokevirtual org.bouncycastle.asn1.pkcs.CertBag.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            new org.bouncycastle.asn1.DERSet
            dup
            aload 18 /* fName */
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokespecial org.bouncycastle.asn1.pkcs.SafeBag.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DERObject;Lorg/bouncycastle/asn1/ASN1Set;)V
            astore 19 /* sBag */
        start local 19 // org.bouncycastle.asn1.pkcs.SafeBag sBag
       129: .line 1382
            aload 9 /* certSeq */
            aload 19 /* sBag */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
       130: .line 1384
            aload 12 /* doneCerts */
            aload 15 /* cert */
            aload 15 /* cert */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 19 // org.bouncycastle.asn1.pkcs.SafeBag sBag
        end local 18 // org.bouncycastle.asn1.ASN1EncodableVector fName
        end local 17 // org.bouncycastle.asn1.pkcs.CertBag cBag
        end local 16 // boolean cAttrSet
        end local 15 // java.security.cert.Certificate cert
        end local 14 // java.lang.String certId
       131: .line 1385
            goto 134
       132: .line 1386
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.OutputStream char[] int org.bouncycastle.asn1.ASN1EncodableVector java.util.Enumeration byte[] org.bouncycastle.asn1.BERConstructedOctetString byte[] org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.pkcs.PKCS12PBEParams org.bouncycastle.asn1.x509.AlgorithmIdentifier java.util.Hashtable java.util.Enumeration
      StackMap stack: java.security.cert.CertificateEncodingException
            astore 14 /* e */
        start local 14 // java.security.cert.CertificateEncodingException e
       133: .line 1388
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Error encoding certificate: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* e */
            invokevirtual java.security.cert.CertificateEncodingException.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // java.security.cert.CertificateEncodingException e
       134: .line 1315
      StackMap locals:
      StackMap stack:
            aload 13 /* cs */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 97
       135: .line 1392
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.chainCerts:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
            astore 13 /* cs */
       136: .line 1393
            goto 163
       137: .line 1397
      StackMap locals:
      StackMap stack:
            aload 13 /* cs */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId
            astore 14 /* certId */
        start local 14 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId certId
       138: .line 1398
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.chainCerts:Ljava/util/Hashtable;
            aload 14 /* certId */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.cert.Certificate
            astore 15 /* cert */
        start local 15 // java.security.cert.Certificate cert
       139: .line 1400
            aload 12 /* doneCerts */
            aload 15 /* cert */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 141
       140: .line 1402
            goto 163
       141: .line 1405
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId java.security.cert.Certificate
      StackMap stack:
            new org.bouncycastle.asn1.pkcs.CertBag
            dup
       142: .line 1406
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.x509Certificate:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
       143: .line 1407
            new org.bouncycastle.asn1.DEROctetString
            dup
            aload 15 /* cert */
            invokevirtual java.security.cert.Certificate.getEncoded:()[B
            invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
       144: .line 1405
            invokespecial org.bouncycastle.asn1.pkcs.CertBag.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DERObject;)V
            astore 16 /* cBag */
        start local 16 // org.bouncycastle.asn1.pkcs.CertBag cBag
       145: .line 1408
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 17 /* fName */
        start local 17 // org.bouncycastle.asn1.ASN1EncodableVector fName
       146: .line 1410
            aload 15 /* cert */
            instanceof org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            ifeq 158
       147: .line 1412
            aload 15 /* cert */
            checkcast org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            astore 18 /* bagAttrs */
        start local 18 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttrs
       148: .line 1413
            aload 18 /* bagAttrs */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttributeKeys:()Ljava/util/Enumeration;
            astore 19 /* e */
        start local 19 // java.util.Enumeration e
       149: .line 1415
            goto 157
       150: .line 1417
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.OutputStream char[] int org.bouncycastle.asn1.ASN1EncodableVector java.util.Enumeration byte[] org.bouncycastle.asn1.BERConstructedOctetString byte[] org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.pkcs.PKCS12PBEParams org.bouncycastle.asn1.x509.AlgorithmIdentifier java.util.Hashtable java.util.Enumeration org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId java.security.cert.Certificate org.bouncycastle.asn1.pkcs.CertBag org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier java.util.Enumeration
      StackMap stack:
            aload 19 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast org.bouncycastle.asn1.DERObjectIdentifier
            astore 20 /* oid */
        start local 20 // org.bouncycastle.asn1.DERObjectIdentifier oid
       151: .line 1423
            aload 20 /* oid */
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 153
       152: .line 1425
            goto 157
       153: .line 1428
      StackMap locals: org.bouncycastle.asn1.DERObjectIdentifier
      StackMap stack:
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 21 /* fSeq */
        start local 21 // org.bouncycastle.asn1.ASN1EncodableVector fSeq
       154: .line 1430
            aload 21 /* fSeq */
            aload 20 /* oid */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
       155: .line 1431
            aload 21 /* fSeq */
            new org.bouncycastle.asn1.DERSet
            dup
            aload 18 /* bagAttrs */
            aload 20 /* oid */
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.getBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Lorg/bouncycastle/asn1/DEREncodable;
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/DEREncodable;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
       156: .line 1432
            aload 17 /* fName */
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 21 /* fSeq */
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        end local 21 // org.bouncycastle.asn1.ASN1EncodableVector fSeq
        end local 20 // org.bouncycastle.asn1.DERObjectIdentifier oid
       157: .line 1415
      StackMap locals:
      StackMap stack:
            aload 19 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 150
        end local 19 // java.util.Enumeration e
        end local 18 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttrs
       158: .line 1436
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.asn1.pkcs.SafeBag
            dup
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.certBag:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 16 /* cBag */
            invokevirtual org.bouncycastle.asn1.pkcs.CertBag.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            new org.bouncycastle.asn1.DERSet
            dup
            aload 17 /* fName */
            invokespecial org.bouncycastle.asn1.DERSet.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokespecial org.bouncycastle.asn1.pkcs.SafeBag.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DERObject;Lorg/bouncycastle/asn1/ASN1Set;)V
            astore 18 /* sBag */
        start local 18 // org.bouncycastle.asn1.pkcs.SafeBag sBag
       159: .line 1438
            aload 9 /* certSeq */
            aload 18 /* sBag */
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/DEREncodable;)V
        end local 18 // org.bouncycastle.asn1.pkcs.SafeBag sBag
        end local 17 // org.bouncycastle.asn1.ASN1EncodableVector fName
        end local 16 // org.bouncycastle.asn1.pkcs.CertBag cBag
        end local 15 // java.security.cert.Certificate cert
        end local 14 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId certId
       160: .line 1439
            goto 163
       161: .line 1440
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.OutputStream char[] int org.bouncycastle.asn1.ASN1EncodableVector java.util.Enumeration byte[] org.bouncycastle.asn1.BERConstructedOctetString byte[] org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.pkcs.PKCS12PBEParams org.bouncycastle.asn1.x509.AlgorithmIdentifier java.util.Hashtable java.util.Enumeration
      StackMap stack: java.security.cert.CertificateEncodingException
            astore 14 /* e */
        start local 14 // java.security.cert.CertificateEncodingException e
       162: .line 1442
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Error encoding certificate: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* e */
            invokevirtual java.security.cert.CertificateEncodingException.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 14 // java.security.cert.CertificateEncodingException e
       163: .line 1393
      StackMap locals:
      StackMap stack:
            aload 13 /* cs */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 137
       164: .line 1446
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 9 /* certSeq */
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.DERSequence.getDEREncoded:()[B
            astore 14 /* certSeqEncoded */
        start local 14 // byte[] certSeqEncoded
       165: .line 1447
            aload 0 /* this */
            iconst_1
            aload 11 /* cAlgId */
            aload 2 /* password */
            iconst_0
            aload 14 /* certSeqEncoded */
            invokevirtual org.bouncycastle.jce.provider.JDKPKCS12KeyStore.cryptData:(ZLorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[CZ[B)[B
            astore 15 /* certBytes */
        start local 15 // byte[] certBytes
       166: .line 1448
            new org.bouncycastle.asn1.pkcs.EncryptedData
            dup
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.data:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 11 /* cAlgId */
            new org.bouncycastle.asn1.BERConstructedOctetString
            dup
            aload 15 /* certBytes */
            invokespecial org.bouncycastle.asn1.BERConstructedOctetString.<init>:([B)V
            invokespecial org.bouncycastle.asn1.pkcs.EncryptedData.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
            astore 16 /* cInfo */
        start local 16 // org.bouncycastle.asn1.pkcs.EncryptedData cInfo
       167: .line 1451
            iconst_2
            anewarray org.bouncycastle.asn1.pkcs.ContentInfo
            dup
            iconst_0
       168: .line 1452
            new org.bouncycastle.asn1.pkcs.ContentInfo
            dup
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.data:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 7 /* keyString */
            invokespecial org.bouncycastle.asn1.pkcs.ContentInfo.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
            aastore
            dup
            iconst_1
       169: .line 1453
            new org.bouncycastle.asn1.pkcs.ContentInfo
            dup
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.encryptedData:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 16 /* cInfo */
            invokevirtual org.bouncycastle.asn1.pkcs.EncryptedData.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
            invokespecial org.bouncycastle.asn1.pkcs.ContentInfo.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
            aastore
       170: .line 1450
            astore 17 /* info */
        start local 17 // org.bouncycastle.asn1.pkcs.ContentInfo[] info
       171: .line 1456
            new org.bouncycastle.asn1.pkcs.AuthenticatedSafe
            dup
            aload 17 /* info */
            invokespecial org.bouncycastle.asn1.pkcs.AuthenticatedSafe.<init>:([Lorg/bouncycastle/asn1/pkcs/ContentInfo;)V
            astore 18 /* auth */
        start local 18 // org.bouncycastle.asn1.pkcs.AuthenticatedSafe auth
       172: .line 1458
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 19 /* bOut */
        start local 19 // java.io.ByteArrayOutputStream bOut
       173: .line 1460
            iload 3 /* useDEREncoding */
            ifeq 176
       174: .line 1462
            new org.bouncycastle.asn1.DEROutputStream
            dup
            aload 19 /* bOut */
            invokespecial org.bouncycastle.asn1.DEROutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 20 /* asn1Out */
        start local 20 // org.bouncycastle.asn1.DEROutputStream asn1Out
       175: .line 1463
            goto 177
        end local 20 // org.bouncycastle.asn1.DEROutputStream asn1Out
       176: .line 1466
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.OutputStream char[] int org.bouncycastle.asn1.ASN1EncodableVector java.util.Enumeration byte[] org.bouncycastle.asn1.BERConstructedOctetString byte[] org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.pkcs.PKCS12PBEParams org.bouncycastle.asn1.x509.AlgorithmIdentifier java.util.Hashtable java.util.Enumeration byte[] byte[] org.bouncycastle.asn1.pkcs.EncryptedData org.bouncycastle.asn1.pkcs.ContentInfo[] org.bouncycastle.asn1.pkcs.AuthenticatedSafe java.io.ByteArrayOutputStream
      StackMap stack:
            new org.bouncycastle.asn1.BEROutputStream
            dup
            aload 19 /* bOut */
            invokespecial org.bouncycastle.asn1.BEROutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 20 /* asn1Out */
        start local 20 // org.bouncycastle.asn1.DEROutputStream asn1Out
       177: .line 1469
      StackMap locals: org.bouncycastle.asn1.DEROutputStream
      StackMap stack:
            aload 20 /* asn1Out */
            aload 18 /* auth */
            invokevirtual org.bouncycastle.asn1.DEROutputStream.writeObject:(Ljava/lang/Object;)V
       178: .line 1471
            aload 19 /* bOut */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            astore 21 /* pkg */
        start local 21 // byte[] pkg
       179: .line 1473
            new org.bouncycastle.asn1.pkcs.ContentInfo
            dup
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.data:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.asn1.BERConstructedOctetString
            dup
            aload 21 /* pkg */
            invokespecial org.bouncycastle.asn1.BERConstructedOctetString.<init>:([B)V
            invokespecial org.bouncycastle.asn1.pkcs.ContentInfo.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
            astore 22 /* mainInfo */
        start local 22 // org.bouncycastle.asn1.pkcs.ContentInfo mainInfo
       180: .line 1478
            bipush 20
            newarray 8
            astore 23 /* mSalt */
        start local 23 // byte[] mSalt
       181: .line 1479
            sipush 1024
            istore 24 /* itCount */
        start local 24 // int itCount
       182: .line 1481
            aload 0 /* this */
            getfield org.bouncycastle.jce.provider.JDKPKCS12KeyStore.random:Ljava/security/SecureRandom;
            aload 23 /* mSalt */
            invokevirtual java.security.SecureRandom.nextBytes:([B)V
       183: .line 1483
            aload 22 /* mainInfo */
            invokevirtual org.bouncycastle.asn1.pkcs.ContentInfo.getContent:()Lorg/bouncycastle/asn1/DEREncodable;
            checkcast org.bouncycastle.asn1.ASN1OctetString
            invokevirtual org.bouncycastle.asn1.ASN1OctetString.getOctets:()[B
            astore 25 /* data */
        start local 25 // byte[] data
       184: .line 1489
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.id_SHA1:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 23 /* mSalt */
            iload 24 /* itCount */
            aload 2 /* password */
            iconst_0
            aload 25 /* data */
            invokestatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.calculatePbeMac:(Lorg/bouncycastle/asn1/DERObjectIdentifier;[BI[CZ[B)[B
            astore 27 /* res */
        start local 27 // byte[] res
       185: .line 1491
            new org.bouncycastle.asn1.x509.AlgorithmIdentifier
            dup
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.id_SHA1:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            new org.bouncycastle.asn1.DERNull
            dup
            invokespecial org.bouncycastle.asn1.DERNull.<init>:()V
            invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
            astore 28 /* algId */
        start local 28 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
       186: .line 1492
            new org.bouncycastle.asn1.x509.DigestInfo
            dup
            aload 28 /* algId */
            aload 27 /* res */
            invokespecial org.bouncycastle.asn1.x509.DigestInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[B)V
            astore 29 /* dInfo */
        start local 29 // org.bouncycastle.asn1.x509.DigestInfo dInfo
       187: .line 1494
            new org.bouncycastle.asn1.pkcs.MacData
            dup
            aload 29 /* dInfo */
            aload 23 /* mSalt */
            iload 24 /* itCount */
            invokespecial org.bouncycastle.asn1.pkcs.MacData.<init>:(Lorg/bouncycastle/asn1/x509/DigestInfo;[BI)V
            astore 26 /* mData */
        end local 29 // org.bouncycastle.asn1.x509.DigestInfo dInfo
        end local 28 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
        end local 27 // byte[] res
        start local 26 // org.bouncycastle.asn1.pkcs.MacData mData
       188: .line 1495
            goto 191
        end local 26 // org.bouncycastle.asn1.pkcs.MacData mData
       189: .line 1496
      StackMap locals: org.bouncycastle.jce.provider.JDKPKCS12KeyStore java.io.OutputStream char[] int org.bouncycastle.asn1.ASN1EncodableVector java.util.Enumeration byte[] org.bouncycastle.asn1.BERConstructedOctetString byte[] org.bouncycastle.asn1.ASN1EncodableVector org.bouncycastle.asn1.pkcs.PKCS12PBEParams org.bouncycastle.asn1.x509.AlgorithmIdentifier java.util.Hashtable java.util.Enumeration byte[] byte[] org.bouncycastle.asn1.pkcs.EncryptedData org.bouncycastle.asn1.pkcs.ContentInfo[] org.bouncycastle.asn1.pkcs.AuthenticatedSafe java.io.ByteArrayOutputStream org.bouncycastle.asn1.DEROutputStream byte[] org.bouncycastle.asn1.pkcs.ContentInfo byte[] int byte[]
      StackMap stack: java.lang.Exception
            astore 27 /* e */
        start local 27 // java.lang.Exception e
       190: .line 1498
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "error constructing MAC: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 27 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 27 // java.lang.Exception e
        start local 26 // org.bouncycastle.asn1.pkcs.MacData mData
       191: .line 1504
      StackMap locals: org.bouncycastle.asn1.pkcs.MacData
      StackMap stack:
            new org.bouncycastle.asn1.pkcs.Pfx
            dup
            aload 22 /* mainInfo */
            aload 26 /* mData */
            invokespecial org.bouncycastle.asn1.pkcs.Pfx.<init>:(Lorg/bouncycastle/asn1/pkcs/ContentInfo;Lorg/bouncycastle/asn1/pkcs/MacData;)V
            astore 27 /* pfx */
        start local 27 // org.bouncycastle.asn1.pkcs.Pfx pfx
       192: .line 1506
            iload 3 /* useDEREncoding */
            ifeq 195
       193: .line 1508
            new org.bouncycastle.asn1.DEROutputStream
            dup
            aload 1 /* stream */
            invokespecial org.bouncycastle.asn1.DEROutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 20 /* asn1Out */
       194: .line 1509
            goto 196
       195: .line 1512
      StackMap locals: org.bouncycastle.asn1.pkcs.Pfx
      StackMap stack:
            new org.bouncycastle.asn1.BEROutputStream
            dup
            aload 1 /* stream */
            invokespecial org.bouncycastle.asn1.BEROutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 20 /* asn1Out */
       196: .line 1515
      StackMap locals:
      StackMap stack:
            aload 20 /* asn1Out */
            aload 27 /* pfx */
            invokevirtual org.bouncycastle.asn1.DEROutputStream.writeObject:(Ljava/lang/Object;)V
       197: .line 1516
            return
        end local 27 // org.bouncycastle.asn1.pkcs.Pfx pfx
        end local 26 // org.bouncycastle.asn1.pkcs.MacData mData
        end local 25 // byte[] data
        end local 24 // int itCount
        end local 23 // byte[] mSalt
        end local 22 // org.bouncycastle.asn1.pkcs.ContentInfo mainInfo
        end local 21 // byte[] pkg
        end local 20 // org.bouncycastle.asn1.DEROutputStream asn1Out
        end local 19 // java.io.ByteArrayOutputStream bOut
        end local 18 // org.bouncycastle.asn1.pkcs.AuthenticatedSafe auth
        end local 17 // org.bouncycastle.asn1.pkcs.ContentInfo[] info
        end local 16 // org.bouncycastle.asn1.pkcs.EncryptedData cInfo
        end local 15 // byte[] certBytes
        end local 14 // byte[] certSeqEncoded
        end local 13 // java.util.Enumeration cs
        end local 12 // java.util.Hashtable doneCerts
        end local 11 // org.bouncycastle.asn1.x509.AlgorithmIdentifier cAlgId
        end local 10 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams cParams
        end local 9 // org.bouncycastle.asn1.ASN1EncodableVector certSeq
        end local 8 // byte[] cSalt
        end local 7 // org.bouncycastle.asn1.BERConstructedOctetString keyString
        end local 6 // byte[] keySEncoded
        end local 5 // java.util.Enumeration ks
        end local 4 // org.bouncycastle.asn1.ASN1EncodableVector keyS
        end local 3 // boolean useDEREncoding
        end local 2 // char[] password
        end local 1 // java.io.OutputStream stream
        end local 0 // org.bouncycastle.jce.provider.JDKPKCS12KeyStore this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0  198     0            this  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore;
            0  198     1          stream  Ljava/io/OutputStream;
            0  198     2        password  [C
            0  198     3  useDEREncoding  Z
            3  198     4            keyS  Lorg/bouncycastle/asn1/ASN1EncodableVector;
            4  198     5              ks  Ljava/util/Enumeration;
            6   44     6           kSalt  [B
            8   44     7            name  Ljava/lang/String;
            9   44     8         privKey  Ljava/security/PrivateKey;
           10   44     9         kParams  Lorg/bouncycastle/asn1/pkcs/PKCS12PBEParams;
           11   44    10          kBytes  [B
           12   44    11          kAlgId  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
           13   44    12           kInfo  Lorg/bouncycastle/asn1/pkcs/EncryptedPrivateKeyInfo;
           14   44    13         attrSet  Z
           15   44    14           kName  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           17   32    15        bagAttrs  Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
           18   32    16              nm  Lorg/bouncycastle/asn1/DERBMPString;
           22   23    17              ct  Ljava/security/cert/Certificate;
           24   32    17               e  Ljava/util/Enumeration;
           26   31    18             oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
           27   31    19            kSeq  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           34   42    15            kSeq  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           35   42    16              ct  Ljava/security/cert/Certificate;
           43   44    15            kBag  Lorg/bouncycastle/asn1/pkcs/SafeBag;
           46  198     6     keySEncoded  [B
           47  198     7       keyString  Lorg/bouncycastle/asn1/BERConstructedOctetString;
           48  198     8           cSalt  [B
           50  198     9         certSeq  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           51  198    10         cParams  Lorg/bouncycastle/asn1/pkcs/PKCS12PBEParams;
           52  198    11          cAlgId  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
           53  198    12       doneCerts  Ljava/util/Hashtable;
           54  198    13              cs  Ljava/util/Enumeration;
           56   91    14            name  Ljava/lang/String;
           57   91    15            cert  Ljava/security/cert/Certificate;
           58   91    16        cAttrSet  Z
           62   91    17            cBag  Lorg/bouncycastle/asn1/pkcs/CertBag;
           63   91    18           fName  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           65   79    19        bagAttrs  Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
           66   79    20              nm  Lorg/bouncycastle/asn1/DERBMPString;
           71   79    21               e  Ljava/util/Enumeration;
           73   78    22             oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
           74   78    23            fSeq  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           81   88    19            fSeq  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           89   91    19            sBag  Lorg/bouncycastle/asn1/pkcs/SafeBag;
           93   94    14               e  Ljava/security/cert/CertificateEncodingException;
           98  131    14          certId  Ljava/lang/String;
           99  131    15            cert  Ljava/security/cert/Certificate;
          100  131    16        cAttrSet  Z
          106  131    17            cBag  Lorg/bouncycastle/asn1/pkcs/CertBag;
          107  131    18           fName  Lorg/bouncycastle/asn1/ASN1EncodableVector;
          109  123    19        bagAttrs  Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
          110  123    20              nm  Lorg/bouncycastle/asn1/DERBMPString;
          113  123    21               e  Ljava/util/Enumeration;
          115  122    22             oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
          118  122    23            fSeq  Lorg/bouncycastle/asn1/ASN1EncodableVector;
          125  128    19            fSeq  Lorg/bouncycastle/asn1/ASN1EncodableVector;
          129  131    19            sBag  Lorg/bouncycastle/asn1/pkcs/SafeBag;
          133  134    14               e  Ljava/security/cert/CertificateEncodingException;
          138  160    14          certId  Lorg/bouncycastle/jce/provider/JDKPKCS12KeyStore$CertId;
          139  160    15            cert  Ljava/security/cert/Certificate;
          145  160    16            cBag  Lorg/bouncycastle/asn1/pkcs/CertBag;
          146  160    17           fName  Lorg/bouncycastle/asn1/ASN1EncodableVector;
          148  158    18        bagAttrs  Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
          149  158    19               e  Ljava/util/Enumeration;
          151  157    20             oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
          154  157    21            fSeq  Lorg/bouncycastle/asn1/ASN1EncodableVector;
          159  160    18            sBag  Lorg/bouncycastle/asn1/pkcs/SafeBag;
          162  163    14               e  Ljava/security/cert/CertificateEncodingException;
          165  198    14  certSeqEncoded  [B
          166  198    15       certBytes  [B
          167  198    16           cInfo  Lorg/bouncycastle/asn1/pkcs/EncryptedData;
          171  198    17            info  [Lorg/bouncycastle/asn1/pkcs/ContentInfo;
          172  198    18            auth  Lorg/bouncycastle/asn1/pkcs/AuthenticatedSafe;
          173  198    19            bOut  Ljava/io/ByteArrayOutputStream;
          175  176    20         asn1Out  Lorg/bouncycastle/asn1/DEROutputStream;
          177  198    20         asn1Out  Lorg/bouncycastle/asn1/DEROutputStream;
          179  198    21             pkg  [B
          180  198    22        mainInfo  Lorg/bouncycastle/asn1/pkcs/ContentInfo;
          181  198    23           mSalt  [B
          182  198    24         itCount  I
          184  198    25            data  [B
          188  189    26           mData  Lorg/bouncycastle/asn1/pkcs/MacData;
          191  198    26           mData  Lorg/bouncycastle/asn1/pkcs/MacData;
          185  188    27             res  [B
          186  188    28           algId  Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
          187  188    29           dInfo  Lorg/bouncycastle/asn1/x509/DigestInfo;
          190  191    27               e  Ljava/lang/Exception;
          192  198    27             pfx  Lorg/bouncycastle/asn1/pkcs/Pfx;
      Exception table:
        from    to  target  type
          55    91      92  Class java.security.cert.CertificateEncodingException
          97   101     132  Class java.security.cert.CertificateEncodingException
         102   131     132  Class java.security.cert.CertificateEncodingException
         137   140     161  Class java.security.cert.CertificateEncodingException
         141   160     161  Class java.security.cert.CertificateEncodingException
         184   188     189  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      stream          
      password        
      useDEREncoding  

  private static byte[] calculatePbeMac(org.bouncycastle.asn1.DERObjectIdentifier, byte[], int, char[], boolean, byte[]);
    descriptor: (Lorg/bouncycastle/asn1/DERObjectIdentifier;[BI[CZ[B)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=11, args_size=6
        start local 0 // org.bouncycastle.asn1.DERObjectIdentifier oid
        start local 1 // byte[] salt
        start local 2 // int itCount
        start local 3 // char[] password
        start local 4 // boolean wrongPkcs12Zero
        start local 5 // byte[] data
         0: .line 1527
            aload 0 /* oid */
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.bcProvider:Ljava/security/Provider;
            invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/SecretKeyFactory;
            astore 6 /* keyFact */
        start local 6 // javax.crypto.SecretKeyFactory keyFact
         1: .line 1528
            new javax.crypto.spec.PBEParameterSpec
            dup
            aload 1 /* salt */
            iload 2 /* itCount */
            invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
            astore 7 /* defParams */
        start local 7 // javax.crypto.spec.PBEParameterSpec defParams
         2: .line 1529
            new javax.crypto.spec.PBEKeySpec
            dup
            aload 3 /* password */
            invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
            astore 8 /* pbeSpec */
        start local 8 // javax.crypto.spec.PBEKeySpec pbeSpec
         3: .line 1530
            aload 6 /* keyFact */
            aload 8 /* pbeSpec */
            invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
            checkcast org.bouncycastle.jce.provider.JCEPBEKey
            astore 9 /* key */
        start local 9 // org.bouncycastle.jce.provider.JCEPBEKey key
         4: .line 1531
            aload 9 /* key */
            iload 4 /* wrongPkcs12Zero */
            invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.setTryWrongPKCS12Zero:(Z)V
         5: .line 1533
            aload 0 /* oid */
            invokevirtual org.bouncycastle.asn1.DERObjectIdentifier.getId:()Ljava/lang/String;
            getstatic org.bouncycastle.jce.provider.JDKPKCS12KeyStore.bcProvider:Ljava/security/Provider;
            invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Mac;
            astore 10 /* mac */
        start local 10 // javax.crypto.Mac mac
         6: .line 1534
            aload 10 /* mac */
            aload 9 /* key */
            aload 7 /* defParams */
            invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
         7: .line 1535
            aload 10 /* mac */
            aload 5 /* data */
            invokevirtual javax.crypto.Mac.update:([B)V
         8: .line 1536
            aload 10 /* mac */
            invokevirtual javax.crypto.Mac.doFinal:()[B
            areturn
        end local 10 // javax.crypto.Mac mac
        end local 9 // org.bouncycastle.jce.provider.JCEPBEKey key
        end local 8 // javax.crypto.spec.PBEKeySpec pbeSpec
        end local 7 // javax.crypto.spec.PBEParameterSpec defParams
        end local 6 // javax.crypto.SecretKeyFactory keyFact
        end local 5 // byte[] data
        end local 4 // boolean wrongPkcs12Zero
        end local 3 // char[] password
        end local 2 // int itCount
        end local 1 // byte[] salt
        end local 0 // org.bouncycastle.asn1.DERObjectIdentifier oid
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0              oid  Lorg/bouncycastle/asn1/DERObjectIdentifier;
            0    9     1             salt  [B
            0    9     2          itCount  I
            0    9     3         password  [C
            0    9     4  wrongPkcs12Zero  Z
            0    9     5             data  [B
            1    9     6          keyFact  Ljavax/crypto/SecretKeyFactory;
            2    9     7        defParams  Ljavax/crypto/spec/PBEParameterSpec;
            3    9     8          pbeSpec  Ljavax/crypto/spec/PBEKeySpec;
            4    9     9              key  Lorg/bouncycastle/jce/provider/JCEPBEKey;
            6    9    10              mac  Ljavax/crypto/Mac;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
                 Name  Flags
      oid              
      salt             
      itCount          
      password         
      wrongPkcs12Zero  
      data             
}
SourceFile: "JDKPKCS12KeyStore.java"
NestMembers:
  org.bouncycastle.jce.provider.JDKPKCS12KeyStore$BCPKCS12KeyStore  org.bouncycastle.jce.provider.JDKPKCS12KeyStore$BCPKCS12KeyStore3DES  org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId  org.bouncycastle.jce.provider.JDKPKCS12KeyStore$DefPKCS12KeyStore  org.bouncycastle.jce.provider.JDKPKCS12KeyStore$DefPKCS12KeyStore3DES  org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable
InnerClasses:
  public abstract LoadStoreParameter = java.security.KeyStore$LoadStoreParameter of java.security.KeyStore
  public PasswordProtection = java.security.KeyStore$PasswordProtection of java.security.KeyStore
  public abstract ProtectionParameter = java.security.KeyStore$ProtectionParameter of java.security.KeyStore
  public BCPKCS12KeyStore = org.bouncycastle.jce.provider.JDKPKCS12KeyStore$BCPKCS12KeyStore of org.bouncycastle.jce.provider.JDKPKCS12KeyStore
  public BCPKCS12KeyStore3DES = org.bouncycastle.jce.provider.JDKPKCS12KeyStore$BCPKCS12KeyStore3DES of org.bouncycastle.jce.provider.JDKPKCS12KeyStore
  private CertId = org.bouncycastle.jce.provider.JDKPKCS12KeyStore$CertId of org.bouncycastle.jce.provider.JDKPKCS12KeyStore
  public DefPKCS12KeyStore = org.bouncycastle.jce.provider.JDKPKCS12KeyStore$DefPKCS12KeyStore of org.bouncycastle.jce.provider.JDKPKCS12KeyStore
  public DefPKCS12KeyStore3DES = org.bouncycastle.jce.provider.JDKPKCS12KeyStore$DefPKCS12KeyStore3DES of org.bouncycastle.jce.provider.JDKPKCS12KeyStore
  private IgnoresCaseHashtable = org.bouncycastle.jce.provider.JDKPKCS12KeyStore$IgnoresCaseHashtable of org.bouncycastle.jce.provider.JDKPKCS12KeyStore