public class org.bouncycastle.jce.examples.PKCS12Example
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.jce.examples.PKCS12Example
  super_class: java.lang.Object
{
  static char[] passwd;
    descriptor: [C
    flags: (0x0008) ACC_STATIC

  static org.bouncycastle.x509.X509V1CertificateGenerator v1CertGen;
    descriptor: Lorg/bouncycastle/x509/X509V1CertificateGenerator;
    flags: (0x0008) ACC_STATIC

  static org.bouncycastle.x509.X509V3CertificateGenerator v3CertGen;
    descriptor: Lorg/bouncycastle/x509/X509V3CertificateGenerator;
    flags: (0x0008) ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 40
            bipush 11
            newarray 5
            dup
            iconst_0
            bipush 104
            castore
            dup
            iconst_1
            bipush 101
            castore
            dup
            iconst_2
            bipush 108
            castore
            dup
            iconst_3
            bipush 108
            castore
            dup
            iconst_4
            bipush 111
            castore
            dup
            iconst_5
            bipush 32
            castore
            dup
            bipush 6
            bipush 119
            castore
            dup
            bipush 7
            bipush 111
            castore
            dup
            bipush 8
            bipush 114
            castore
            dup
            bipush 9
            bipush 108
            castore
            dup
            bipush 10
            bipush 100
            castore
            putstatic org.bouncycastle.jce.examples.PKCS12Example.passwd:[C
         1: .line 42
            new org.bouncycastle.x509.X509V1CertificateGenerator
            dup
            invokespecial org.bouncycastle.x509.X509V1CertificateGenerator.<init>:()V
            putstatic org.bouncycastle.jce.examples.PKCS12Example.v1CertGen:Lorg/bouncycastle/x509/X509V1CertificateGenerator;
         2: .line 43
            new org.bouncycastle.x509.X509V3CertificateGenerator
            dup
            invokespecial org.bouncycastle.x509.X509V3CertificateGenerator.<init>:()V
            putstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bouncycastle.jce.examples.PKCS12Example this
         0: .line 38
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.bouncycastle.jce.examples.PKCS12Example this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/jce/examples/PKCS12Example;

  public static java.security.cert.Certificate createMasterCert(java.security.PublicKey, java.security.PrivateKey);
    descriptor: (Ljava/security/PublicKey;Ljava/security/PrivateKey;)Ljava/security/cert/Certificate;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // java.security.PublicKey pubKey
        start local 1 // java.security.PrivateKey privKey
         0: .line 56
            ldc "C=AU, O=The Legion of the Bouncy Castle, OU=Bouncy Primary Certificate"
            astore 2 /* issuer */
        start local 2 // java.lang.String issuer
         1: .line 61
            ldc "C=AU, O=The Legion of the Bouncy Castle, OU=Bouncy Primary Certificate"
            astore 3 /* subject */
        start local 3 // java.lang.String subject
         2: .line 67
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v1CertGen:Lorg/bouncycastle/x509/X509V1CertificateGenerator;
            lconst_1
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.x509.X509V1CertificateGenerator.setSerialNumber:(Ljava/math/BigInteger;)V
         3: .line 68
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v1CertGen:Lorg/bouncycastle/x509/X509V1CertificateGenerator;
            new org.bouncycastle.jce.X509Principal
            dup
            aload 2 /* issuer */
            invokespecial org.bouncycastle.jce.X509Principal.<init>:(Ljava/lang/String;)V
            invokevirtual org.bouncycastle.x509.X509V1CertificateGenerator.setIssuerDN:(Lorg/bouncycastle/asn1/x509/X509Name;)V
         4: .line 69
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v1CertGen:Lorg/bouncycastle/x509/X509V1CertificateGenerator;
            new java.util.Date
            dup
            invokestatic java.lang.System.currentTimeMillis:()J
            ldc 2592000000
            lsub
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual org.bouncycastle.x509.X509V1CertificateGenerator.setNotBefore:(Ljava/util/Date;)V
         5: .line 70
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v1CertGen:Lorg/bouncycastle/x509/X509V1CertificateGenerator;
            new java.util.Date
            dup
            invokestatic java.lang.System.currentTimeMillis:()J
            ldc 2592000000
            ladd
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual org.bouncycastle.x509.X509V1CertificateGenerator.setNotAfter:(Ljava/util/Date;)V
         6: .line 71
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v1CertGen:Lorg/bouncycastle/x509/X509V1CertificateGenerator;
            new org.bouncycastle.jce.X509Principal
            dup
            aload 3 /* subject */
            invokespecial org.bouncycastle.jce.X509Principal.<init>:(Ljava/lang/String;)V
            invokevirtual org.bouncycastle.x509.X509V1CertificateGenerator.setSubjectDN:(Lorg/bouncycastle/asn1/x509/X509Name;)V
         7: .line 72
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v1CertGen:Lorg/bouncycastle/x509/X509V1CertificateGenerator;
            aload 0 /* pubKey */
            invokevirtual org.bouncycastle.x509.X509V1CertificateGenerator.setPublicKey:(Ljava/security/PublicKey;)V
         8: .line 73
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v1CertGen:Lorg/bouncycastle/x509/X509V1CertificateGenerator;
            ldc "SHA1WithRSAEncryption"
            invokevirtual org.bouncycastle.x509.X509V1CertificateGenerator.setSignatureAlgorithm:(Ljava/lang/String;)V
         9: .line 75
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v1CertGen:Lorg/bouncycastle/x509/X509V1CertificateGenerator;
            aload 1 /* privKey */
            invokevirtual org.bouncycastle.x509.X509V1CertificateGenerator.generate:(Ljava/security/PrivateKey;)Ljava/security/cert/X509Certificate;
            astore 4 /* cert */
        start local 4 // java.security.cert.X509Certificate cert
        10: .line 77
            aload 4 /* cert */
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.security.cert.X509Certificate.checkValidity:(Ljava/util/Date;)V
        11: .line 79
            aload 4 /* cert */
            aload 0 /* pubKey */
            invokevirtual java.security.cert.X509Certificate.verify:(Ljava/security/PublicKey;)V
        12: .line 81
            aload 4 /* cert */
            checkcast org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            astore 5 /* bagAttr */
        start local 5 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
        13: .line 87
            aload 5 /* bagAttr */
        14: .line 88
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        15: .line 89
            new org.bouncycastle.asn1.DERBMPString
            dup
            ldc "Bouncy Primary Certificate"
            invokespecial org.bouncycastle.asn1.DERBMPString.<init>:(Ljava/lang/String;)V
        16: .line 87
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        17: .line 91
            aload 4 /* cert */
            areturn
        end local 5 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
        end local 4 // java.security.cert.X509Certificate cert
        end local 3 // java.lang.String subject
        end local 2 // java.lang.String issuer
        end local 1 // java.security.PrivateKey privKey
        end local 0 // java.security.PublicKey pubKey
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0   pubKey  Ljava/security/PublicKey;
            0   18     1  privKey  Ljava/security/PrivateKey;
            1   18     2   issuer  Ljava/lang/String;
            2   18     3  subject  Ljava/lang/String;
           10   18     4     cert  Ljava/security/cert/X509Certificate;
           13   18     5  bagAttr  Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      pubKey   
      privKey  

  public static java.security.cert.Certificate createIntermediateCert(java.security.PublicKey, java.security.PrivateKey, java.security.cert.X509Certificate);
    descriptor: (Ljava/security/PublicKey;Ljava/security/PrivateKey;Ljava/security/cert/X509Certificate;)Ljava/security/cert/Certificate;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // java.security.PublicKey pubKey
        start local 1 // java.security.PrivateKey caPrivKey
        start local 2 // java.security.cert.X509Certificate caCert
         0: .line 106
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            astore 3 /* attrs */
        start local 3 // java.util.Hashtable attrs
         1: .line 107
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 4 /* order */
        start local 4 // java.util.Vector order
         2: .line 109
            aload 3 /* attrs */
            getstatic org.bouncycastle.jce.X509Principal.C:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            ldc "AU"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 110
            aload 3 /* attrs */
            getstatic org.bouncycastle.jce.X509Principal.O:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            ldc "The Legion of the Bouncy Castle"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 111
            aload 3 /* attrs */
            getstatic org.bouncycastle.jce.X509Principal.OU:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            ldc "Bouncy Intermediate Certificate"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 112
            aload 3 /* attrs */
            getstatic org.bouncycastle.jce.X509Principal.EmailAddress:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            ldc "feedback-crypto@bouncycastle.org"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 114
            aload 4 /* order */
            getstatic org.bouncycastle.jce.X509Principal.C:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         7: .line 115
            aload 4 /* order */
            getstatic org.bouncycastle.jce.X509Principal.O:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         8: .line 116
            aload 4 /* order */
            getstatic org.bouncycastle.jce.X509Principal.OU:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         9: .line 117
            aload 4 /* order */
            getstatic org.bouncycastle.jce.X509Principal.EmailAddress:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        10: .line 122
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.reset:()V
        11: .line 124
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            ldc 2
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setSerialNumber:(Ljava/math/BigInteger;)V
        12: .line 125
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            aload 2 /* caCert */
            invokestatic org.bouncycastle.jce.PrincipalUtil.getSubjectX509Principal:(Ljava/security/cert/X509Certificate;)Lorg/bouncycastle/jce/X509Principal;
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setIssuerDN:(Lorg/bouncycastle/asn1/x509/X509Name;)V
        13: .line 126
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            new java.util.Date
            dup
            invokestatic java.lang.System.currentTimeMillis:()J
            ldc 2592000000
            lsub
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setNotBefore:(Ljava/util/Date;)V
        14: .line 127
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            new java.util.Date
            dup
            invokestatic java.lang.System.currentTimeMillis:()J
            ldc 2592000000
            ladd
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setNotAfter:(Ljava/util/Date;)V
        15: .line 128
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            new org.bouncycastle.jce.X509Principal
            dup
            aload 4 /* order */
            aload 3 /* attrs */
            invokespecial org.bouncycastle.jce.X509Principal.<init>:(Ljava/util/Vector;Ljava/util/Hashtable;)V
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setSubjectDN:(Lorg/bouncycastle/asn1/x509/X509Name;)V
        16: .line 129
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            aload 0 /* pubKey */
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setPublicKey:(Ljava/security/PublicKey;)V
        17: .line 130
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            ldc "SHA1WithRSAEncryption"
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setSignatureAlgorithm:(Ljava/lang/String;)V
        18: .line 135
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
        19: .line 136
            getstatic org.bouncycastle.asn1.x509.X509Extensions.SubjectKeyIdentifier:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        20: .line 137
            iconst_0
        21: .line 138
            new org.bouncycastle.x509.extension.SubjectKeyIdentifierStructure
            dup
            aload 0 /* pubKey */
            invokespecial org.bouncycastle.x509.extension.SubjectKeyIdentifierStructure.<init>:(Ljava/security/PublicKey;)V
        22: .line 135
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.addExtension:(Lorg/bouncycastle/asn1/DERObjectIdentifier;ZLorg/bouncycastle/asn1/DEREncodable;)V
        23: .line 140
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
        24: .line 141
            getstatic org.bouncycastle.asn1.x509.X509Extensions.AuthorityKeyIdentifier:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        25: .line 142
            iconst_0
        26: .line 143
            new org.bouncycastle.x509.extension.AuthorityKeyIdentifierStructure
            dup
            aload 2 /* caCert */
            invokespecial org.bouncycastle.x509.extension.AuthorityKeyIdentifierStructure.<init>:(Ljava/security/cert/X509Certificate;)V
        27: .line 140
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.addExtension:(Lorg/bouncycastle/asn1/DERObjectIdentifier;ZLorg/bouncycastle/asn1/DEREncodable;)V
        28: .line 145
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
        29: .line 146
            getstatic org.bouncycastle.asn1.x509.X509Extensions.BasicConstraints:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        30: .line 147
            iconst_1
        31: .line 148
            new org.bouncycastle.asn1.x509.BasicConstraints
            dup
            iconst_0
            invokespecial org.bouncycastle.asn1.x509.BasicConstraints.<init>:(I)V
        32: .line 145
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.addExtension:(Lorg/bouncycastle/asn1/DERObjectIdentifier;ZLorg/bouncycastle/asn1/DEREncodable;)V
        33: .line 150
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            aload 1 /* caPrivKey */
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.generate:(Ljava/security/PrivateKey;)Ljava/security/cert/X509Certificate;
            astore 5 /* cert */
        start local 5 // java.security.cert.X509Certificate cert
        34: .line 152
            aload 5 /* cert */
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.security.cert.X509Certificate.checkValidity:(Ljava/util/Date;)V
        35: .line 154
            aload 5 /* cert */
            aload 2 /* caCert */
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokevirtual java.security.cert.X509Certificate.verify:(Ljava/security/PublicKey;)V
        36: .line 156
            aload 5 /* cert */
            checkcast org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            astore 6 /* bagAttr */
        start local 6 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
        37: .line 162
            aload 6 /* bagAttr */
        38: .line 163
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        39: .line 164
            new org.bouncycastle.asn1.DERBMPString
            dup
            ldc "Bouncy Intermediate Certificate"
            invokespecial org.bouncycastle.asn1.DERBMPString.<init>:(Ljava/lang/String;)V
        40: .line 162
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        41: .line 166
            aload 5 /* cert */
            areturn
        end local 6 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
        end local 5 // java.security.cert.X509Certificate cert
        end local 4 // java.util.Vector order
        end local 3 // java.util.Hashtable attrs
        end local 2 // java.security.cert.X509Certificate caCert
        end local 1 // java.security.PrivateKey caPrivKey
        end local 0 // java.security.PublicKey pubKey
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   42     0     pubKey  Ljava/security/PublicKey;
            0   42     1  caPrivKey  Ljava/security/PrivateKey;
            0   42     2     caCert  Ljava/security/cert/X509Certificate;
            1   42     3      attrs  Ljava/util/Hashtable;
            2   42     4      order  Ljava/util/Vector;
           34   42     5       cert  Ljava/security/cert/X509Certificate;
           37   42     6    bagAttr  Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
           Name  Flags
      pubKey     
      caPrivKey  
      caCert     

  public static java.security.cert.Certificate createCert(java.security.PublicKey, java.security.PrivateKey, java.security.PublicKey);
    descriptor: (Ljava/security/PublicKey;Ljava/security/PrivateKey;Ljava/security/PublicKey;)Ljava/security/cert/Certificate;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // java.security.PublicKey pubKey
        start local 1 // java.security.PrivateKey caPrivKey
        start local 2 // java.security.PublicKey caPubKey
         0: .line 181
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            astore 3 /* sAttrs */
        start local 3 // java.util.Hashtable sAttrs
         1: .line 182
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 4 /* sOrder */
        start local 4 // java.util.Vector sOrder
         2: .line 184
            aload 3 /* sAttrs */
            getstatic org.bouncycastle.jce.X509Principal.C:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            ldc "AU"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 185
            aload 3 /* sAttrs */
            getstatic org.bouncycastle.jce.X509Principal.O:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            ldc "The Legion of the Bouncy Castle"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 186
            aload 3 /* sAttrs */
            getstatic org.bouncycastle.jce.X509Principal.OU:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            ldc "Bouncy Intermediate Certificate"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 187
            aload 3 /* sAttrs */
            getstatic org.bouncycastle.jce.X509Principal.EmailAddress:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            ldc "feedback-crypto@bouncycastle.org"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 189
            aload 4 /* sOrder */
            getstatic org.bouncycastle.jce.X509Principal.C:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         7: .line 190
            aload 4 /* sOrder */
            getstatic org.bouncycastle.jce.X509Principal.O:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         8: .line 191
            aload 4 /* sOrder */
            getstatic org.bouncycastle.jce.X509Principal.OU:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         9: .line 192
            aload 4 /* sOrder */
            getstatic org.bouncycastle.jce.X509Principal.EmailAddress:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        10: .line 197
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            astore 5 /* attrs */
        start local 5 // java.util.Hashtable attrs
        11: .line 198
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 6 /* order */
        start local 6 // java.util.Vector order
        12: .line 200
            aload 5 /* attrs */
            getstatic org.bouncycastle.jce.X509Principal.C:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            ldc "AU"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 201
            aload 5 /* attrs */
            getstatic org.bouncycastle.jce.X509Principal.O:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            ldc "The Legion of the Bouncy Castle"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 202
            aload 5 /* attrs */
            getstatic org.bouncycastle.jce.X509Principal.L:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            ldc "Melbourne"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 203
            aload 5 /* attrs */
            getstatic org.bouncycastle.jce.X509Principal.CN:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            ldc "Eric H. Echidna"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 204
            aload 5 /* attrs */
            getstatic org.bouncycastle.jce.X509Principal.EmailAddress:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            ldc "feedback-crypto@bouncycastle.org"
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 206
            aload 6 /* order */
            getstatic org.bouncycastle.jce.X509Principal.C:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        18: .line 207
            aload 6 /* order */
            getstatic org.bouncycastle.jce.X509Principal.O:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        19: .line 208
            aload 6 /* order */
            getstatic org.bouncycastle.jce.X509Principal.L:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        20: .line 209
            aload 6 /* order */
            getstatic org.bouncycastle.jce.X509Principal.CN:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        21: .line 210
            aload 6 /* order */
            getstatic org.bouncycastle.jce.X509Principal.EmailAddress:Lorg/bouncycastle/asn1/DERObjectIdentifier;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        22: .line 215
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.reset:()V
        23: .line 217
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            ldc 3
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setSerialNumber:(Ljava/math/BigInteger;)V
        24: .line 218
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            new org.bouncycastle.jce.X509Principal
            dup
            aload 4 /* sOrder */
            aload 3 /* sAttrs */
            invokespecial org.bouncycastle.jce.X509Principal.<init>:(Ljava/util/Vector;Ljava/util/Hashtable;)V
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setIssuerDN:(Lorg/bouncycastle/asn1/x509/X509Name;)V
        25: .line 219
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            new java.util.Date
            dup
            invokestatic java.lang.System.currentTimeMillis:()J
            ldc 2592000000
            lsub
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setNotBefore:(Ljava/util/Date;)V
        26: .line 220
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            new java.util.Date
            dup
            invokestatic java.lang.System.currentTimeMillis:()J
            ldc 2592000000
            ladd
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setNotAfter:(Ljava/util/Date;)V
        27: .line 221
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            new org.bouncycastle.jce.X509Principal
            dup
            aload 6 /* order */
            aload 5 /* attrs */
            invokespecial org.bouncycastle.jce.X509Principal.<init>:(Ljava/util/Vector;Ljava/util/Hashtable;)V
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setSubjectDN:(Lorg/bouncycastle/asn1/x509/X509Name;)V
        28: .line 222
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            aload 0 /* pubKey */
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setPublicKey:(Ljava/security/PublicKey;)V
        29: .line 223
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            ldc "SHA1WithRSAEncryption"
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.setSignatureAlgorithm:(Ljava/lang/String;)V
        30: .line 228
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
        31: .line 229
            getstatic org.bouncycastle.asn1.x509.X509Extensions.SubjectKeyIdentifier:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        32: .line 230
            iconst_0
        33: .line 231
            new org.bouncycastle.x509.extension.SubjectKeyIdentifierStructure
            dup
            aload 0 /* pubKey */
            invokespecial org.bouncycastle.x509.extension.SubjectKeyIdentifierStructure.<init>:(Ljava/security/PublicKey;)V
        34: .line 228
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.addExtension:(Lorg/bouncycastle/asn1/DERObjectIdentifier;ZLorg/bouncycastle/asn1/DEREncodable;)V
        35: .line 233
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
        36: .line 234
            getstatic org.bouncycastle.asn1.x509.X509Extensions.AuthorityKeyIdentifier:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        37: .line 235
            iconst_0
        38: .line 236
            new org.bouncycastle.x509.extension.AuthorityKeyIdentifierStructure
            dup
            aload 2 /* caPubKey */
            invokespecial org.bouncycastle.x509.extension.AuthorityKeyIdentifierStructure.<init>:(Ljava/security/PublicKey;)V
        39: .line 233
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.addExtension:(Lorg/bouncycastle/asn1/DERObjectIdentifier;ZLorg/bouncycastle/asn1/DEREncodable;)V
        40: .line 238
            getstatic org.bouncycastle.jce.examples.PKCS12Example.v3CertGen:Lorg/bouncycastle/x509/X509V3CertificateGenerator;
            aload 1 /* caPrivKey */
            invokevirtual org.bouncycastle.x509.X509V3CertificateGenerator.generate:(Ljava/security/PrivateKey;)Ljava/security/cert/X509Certificate;
            astore 7 /* cert */
        start local 7 // java.security.cert.X509Certificate cert
        41: .line 240
            aload 7 /* cert */
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.security.cert.X509Certificate.checkValidity:(Ljava/util/Date;)V
        42: .line 242
            aload 7 /* cert */
            aload 2 /* caPubKey */
            invokevirtual java.security.cert.X509Certificate.verify:(Ljava/security/PublicKey;)V
        43: .line 244
            aload 7 /* cert */
            checkcast org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            astore 8 /* bagAttr */
        start local 8 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
        44: .line 253
            aload 8 /* bagAttr */
        45: .line 254
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        46: .line 255
            new org.bouncycastle.asn1.DERBMPString
            dup
            ldc "Eric's Key"
            invokespecial org.bouncycastle.asn1.DERBMPString.<init>:(Ljava/lang/String;)V
        47: .line 253
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        48: .line 256
            aload 8 /* bagAttr */
        49: .line 257
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        50: .line 258
            new org.bouncycastle.x509.extension.SubjectKeyIdentifierStructure
            dup
            aload 0 /* pubKey */
            invokespecial org.bouncycastle.x509.extension.SubjectKeyIdentifierStructure.<init>:(Ljava/security/PublicKey;)V
        51: .line 256
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        52: .line 260
            aload 7 /* cert */
            areturn
        end local 8 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
        end local 7 // java.security.cert.X509Certificate cert
        end local 6 // java.util.Vector order
        end local 5 // java.util.Hashtable attrs
        end local 4 // java.util.Vector sOrder
        end local 3 // java.util.Hashtable sAttrs
        end local 2 // java.security.PublicKey caPubKey
        end local 1 // java.security.PrivateKey caPrivKey
        end local 0 // java.security.PublicKey pubKey
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   53     0     pubKey  Ljava/security/PublicKey;
            0   53     1  caPrivKey  Ljava/security/PrivateKey;
            0   53     2   caPubKey  Ljava/security/PublicKey;
            1   53     3     sAttrs  Ljava/util/Hashtable;
            2   53     4     sOrder  Ljava/util/Vector;
           11   53     5      attrs  Ljava/util/Hashtable;
           12   53     6      order  Ljava/util/Vector;
           41   53     7       cert  Ljava/security/cert/X509Certificate;
           44   53     8    bagAttr  Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
           Name  Flags
      pubKey     
      caPrivKey  
      caPubKey   

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=13, locals=18, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 267
            new org.bouncycastle.jce.provider.BouncyCastleProvider
            dup
            invokespecial org.bouncycastle.jce.provider.BouncyCastleProvider.<init>:()V
            invokestatic java.security.Security.addProvider:(Ljava/security/Provider;)I
            pop
         1: .line 272
            new java.security.spec.RSAPublicKeySpec
            dup
         2: .line 273
            new java.math.BigInteger
            dup
            ldc "b4a7e46170574f16a97082b22be58b6a2a629798419be12872a4bdba626cfae9900f76abfb12139dce5de56564fab2b6543165a040c606887420e33d91ed7ed7"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
         3: .line 274
            new java.math.BigInteger
            dup
            ldc "11"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
         4: .line 272
            invokespecial java.security.spec.RSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 1 /* pubKeySpec */
        start local 1 // java.security.spec.RSAPublicKeySpec pubKeySpec
         5: .line 276
            new java.security.spec.RSAPrivateCrtKeySpec
            dup
         6: .line 277
            new java.math.BigInteger
            dup
            ldc "b4a7e46170574f16a97082b22be58b6a2a629798419be12872a4bdba626cfae9900f76abfb12139dce5de56564fab2b6543165a040c606887420e33d91ed7ed7"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
         7: .line 278
            new java.math.BigInteger
            dup
            ldc "11"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
         8: .line 279
            new java.math.BigInteger
            dup
            ldc "9f66f6b05410cd503b2709e88115d55daced94d1a34d4e32bf824d0dde6028ae79c5f07b580f5dce240d7111f7ddb130a7945cd7d957d1920994da389f490c89"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
         9: .line 280
            new java.math.BigInteger
            dup
            ldc "c0a0758cdf14256f78d4708c86becdead1b50ad4ad6c5c703e2168fbf37884cb"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        10: .line 281
            new java.math.BigInteger
            dup
            ldc "f01734d7960ea60070f1b06f2bb81bfac48ff192ae18451d5e56c734a5aab8a5"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        11: .line 282
            new java.math.BigInteger
            dup
            ldc "b54bb9edff22051d9ee60f9351a48591b6500a319429c069a3e335a1d6171391"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        12: .line 283
            new java.math.BigInteger
            dup
            ldc "d3d83daf2a0cecd3367ae6f8ae1aeb82e9ac2f816c6fc483533d8297dd7884cd"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        13: .line 284
            new java.math.BigInteger
            dup
            ldc "b8f52fc6f38593dabb661d3f50f8897f8106eee68b1bce78a95b132b4e5b5d19"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        14: .line 276
            invokespecial java.security.spec.RSAPrivateCrtKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 2 /* privKeySpec */
        start local 2 // java.security.spec.RSAPrivateCrtKeySpec privKeySpec
        15: .line 289
            new java.security.spec.RSAPublicKeySpec
            dup
        16: .line 290
            new java.math.BigInteger
            dup
            ldc "8de0d113c5e736969c8d2b047a243f8fe18edad64cde9e842d3669230ca486f7cfdde1f8eec54d1905fff04acc85e61093e180cadc6cea407f193d44bb0e9449b8dbb49784cd9e36260c39e06a947299978c6ed8300724e887198cfede20f3fbde658fa2bd078be946a392bd349f2b49c486e20c405588e306706c9017308e69"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        17: .line 291
            new java.math.BigInteger
            dup
            ldc "ffff"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        18: .line 289
            invokespecial java.security.spec.RSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 3 /* intPubKeySpec */
        start local 3 // java.security.spec.RSAPublicKeySpec intPubKeySpec
        19: .line 294
            new java.security.spec.RSAPrivateCrtKeySpec
            dup
        20: .line 295
            new java.math.BigInteger
            dup
            ldc "8de0d113c5e736969c8d2b047a243f8fe18edad64cde9e842d3669230ca486f7cfdde1f8eec54d1905fff04acc85e61093e180cadc6cea407f193d44bb0e9449b8dbb49784cd9e36260c39e06a947299978c6ed8300724e887198cfede20f3fbde658fa2bd078be946a392bd349f2b49c486e20c405588e306706c9017308e69"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        21: .line 296
            new java.math.BigInteger
            dup
            ldc "ffff"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        22: .line 297
            new java.math.BigInteger
            dup
            ldc "7deb1b194a85bcfd29cf871411468adbc987650903e3bacc8338c449ca7b32efd39ffc33bc84412fcd7df18d23ce9d7c25ea910b1ae9985373e0273b4dca7f2e0db3b7314056ac67fd277f8f89cf2fd73c34c6ca69f9ba477143d2b0e2445548aa0b4a8473095182631da46844c356f5e5c7522eb54b5a33f11d730ead9c0cff"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        23: .line 298
            new java.math.BigInteger
            dup
            ldc "ef4cede573cea47f83699b814de4302edb60eefe426c52e17bd7870ec7c6b7a24fe55282ebb73775f369157726fcfb988def2b40350bdca9e5b418340288f649"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        24: .line 299
            new java.math.BigInteger
            dup
            ldc "97c7737d1b9a0088c3c7b528539247fd2a1593e7e01cef18848755be82f4a45aa093276cb0cbf118cb41117540a78f3fc471ba5d69f0042274defc9161265721"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        25: .line 300
            new java.math.BigInteger
            dup
            ldc "6c641094e24d172728b8da3c2777e69adfd0839085be7e38c7c4a2dd00b1ae969f2ec9d23e7e37090fcd449a40af0ed463fe1c612d6810d6b4f58b7bfa31eb5f"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        26: .line 301
            new java.math.BigInteger
            dup
            ldc "70b7123e8e69dfa76feb1236d0a686144b00e9232ed52b73847e74ef3af71fb45ccb24261f40d27f98101e230cf27b977a5d5f1f15f6cf48d5cb1da2a3a3b87f"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        27: .line 302
            new java.math.BigInteger
            dup
            ldc "e38f5750d97e270996a286df2e653fd26c242106436f5bab0f4c7a9e654ce02665d5a281f2c412456f2d1fa26586ef04a9adac9004ca7f913162cb28e13bf40d"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        28: .line 294
            invokespecial java.security.spec.RSAPrivateCrtKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 4 /* intPrivKeySpec */
        start local 4 // java.security.spec.RSAPrivateCrtKeySpec intPrivKeySpec
        29: .line 307
            new java.security.spec.RSAPublicKeySpec
            dup
        30: .line 308
            new java.math.BigInteger
            dup
            ldc "b259d2d6e627a768c94be36164c2d9fc79d97aab9253140e5bf17751197731d6f7540d2509e7b9ffee0a70a6e26d56e92d2edd7f85aba85600b69089f35f6bdbf3c298e05842535d9f064e6b0391cb7d306e0a2d20c4dfb4e7b49a9640bdea26c10ad69c3f05007ce2513cee44cfe01998e62b6c3637d3fc0391079b26ee36d5"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        31: .line 309
            new java.math.BigInteger
            dup
            ldc "11"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        32: .line 307
            invokespecial java.security.spec.RSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 5 /* caPubKeySpec */
        start local 5 // java.security.spec.RSAPublicKeySpec caPubKeySpec
        33: .line 311
            new java.security.spec.RSAPrivateCrtKeySpec
            dup
        34: .line 312
            new java.math.BigInteger
            dup
            ldc "b259d2d6e627a768c94be36164c2d9fc79d97aab9253140e5bf17751197731d6f7540d2509e7b9ffee0a70a6e26d56e92d2edd7f85aba85600b69089f35f6bdbf3c298e05842535d9f064e6b0391cb7d306e0a2d20c4dfb4e7b49a9640bdea26c10ad69c3f05007ce2513cee44cfe01998e62b6c3637d3fc0391079b26ee36d5"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        35: .line 313
            new java.math.BigInteger
            dup
            ldc "11"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        36: .line 314
            new java.math.BigInteger
            dup
            ldc "92e08f83cc9920746989ca5034dcb384a094fb9c5a6288fcc4304424ab8f56388f72652d8fafc65a4b9020896f2cde297080f2a540e7b7ce5af0b3446e1258d1dd7f245cf54124b4c6e17da21b90a0ebd22605e6f45c9f136d7a13eaac1c0f7487de8bd6d924972408ebb58af71e76fd7b012a8d0e165f3ae2e5077a8648e619"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        37: .line 315
            new java.math.BigInteger
            dup
            ldc "f75e80839b9b9379f1cf1128f321639757dba514642c206bbbd99f9a4846208b3e93fbbe5e0527cc59b1d4b929d9555853004c7c8b30ee6a213c3d1bb7415d03"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        38: .line 316
            new java.math.BigInteger
            dup
            ldc "b892d9ebdbfc37e397256dd8a5d3123534d1f03726284743ddc6be3a709edb696fc40c7d902ed804c6eee730eee3d5b20bf6bd8d87a296813c87d3b3cc9d7947"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        39: .line 317
            new java.math.BigInteger
            dup
            ldc "1d1a2d3ca8e52068b3094d501c9a842fec37f54db16e9a67070a8b3f53cc03d4257ad252a1a640eadd603724d7bf3737914b544ae332eedf4f34436cac25ceb5"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        40: .line 318
            new java.math.BigInteger
            dup
            ldc "6c929e4e81672fef49d9c825163fec97c4b7ba7acb26c0824638ac22605d7201c94625770984f78a56e6e25904fe7db407099cad9b14588841b94f5ab498dded"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        41: .line 319
            new java.math.BigInteger
            dup
            ldc "dae7651ee69ad1d081ec5e7188ae126f6004ff39556bde90e0b870962fa7b926d070686d8244fe5a9aa709a95686a104614834b0ada4b10f53197a5cb4c97339"
            bipush 16
            invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
        42: .line 311
            invokespecial java.security.spec.RSAPrivateCrtKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
            astore 6 /* caPrivKeySpec */
        start local 6 // java.security.spec.RSAPrivateCrtKeySpec caPrivKeySpec
        43: .line 326
            ldc "RSA"
            ldc "BC"
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
            astore 7 /* fact */
        start local 7 // java.security.KeyFactory fact
        44: .line 327
            aload 7 /* fact */
            aload 6 /* caPrivKeySpec */
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
            astore 8 /* caPrivKey */
        start local 8 // java.security.PrivateKey caPrivKey
        45: .line 328
            aload 7 /* fact */
            aload 5 /* caPubKeySpec */
            invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
            astore 9 /* caPubKey */
        start local 9 // java.security.PublicKey caPubKey
        46: .line 329
            aload 7 /* fact */
            aload 4 /* intPrivKeySpec */
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
            astore 10 /* intPrivKey */
        start local 10 // java.security.PrivateKey intPrivKey
        47: .line 330
            aload 7 /* fact */
            aload 3 /* intPubKeySpec */
            invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
            astore 11 /* intPubKey */
        start local 11 // java.security.PublicKey intPubKey
        48: .line 331
            aload 7 /* fact */
            aload 2 /* privKeySpec */
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
            astore 12 /* privKey */
        start local 12 // java.security.PrivateKey privKey
        49: .line 332
            aload 7 /* fact */
            aload 1 /* pubKeySpec */
            invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
            astore 13 /* pubKey */
        start local 13 // java.security.PublicKey pubKey
        50: .line 334
            iconst_3
            anewarray java.security.cert.Certificate
            astore 14 /* chain */
        start local 14 // java.security.cert.Certificate[] chain
        51: .line 336
            aload 14 /* chain */
            iconst_2
            aload 9 /* caPubKey */
            aload 8 /* caPrivKey */
            invokestatic org.bouncycastle.jce.examples.PKCS12Example.createMasterCert:(Ljava/security/PublicKey;Ljava/security/PrivateKey;)Ljava/security/cert/Certificate;
            aastore
        52: .line 337
            aload 14 /* chain */
            iconst_1
            aload 11 /* intPubKey */
            aload 8 /* caPrivKey */
            aload 14 /* chain */
            iconst_2
            aaload
            checkcast java.security.cert.X509Certificate
            invokestatic org.bouncycastle.jce.examples.PKCS12Example.createIntermediateCert:(Ljava/security/PublicKey;Ljava/security/PrivateKey;Ljava/security/cert/X509Certificate;)Ljava/security/cert/Certificate;
            aastore
        53: .line 338
            aload 14 /* chain */
            iconst_0
            aload 13 /* pubKey */
            aload 10 /* intPrivKey */
            aload 11 /* intPubKey */
            invokestatic org.bouncycastle.jce.examples.PKCS12Example.createCert:(Ljava/security/PublicKey;Ljava/security/PrivateKey;Ljava/security/PublicKey;)Ljava/security/cert/Certificate;
            aastore
        54: .line 343
            aload 12 /* privKey */
            checkcast org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier
            astore 15 /* bagAttr */
        start local 15 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
        55: .line 353
            aload 15 /* bagAttr */
        56: .line 354
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pkcs_9_at_friendlyName:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        57: .line 355
            new org.bouncycastle.asn1.DERBMPString
            dup
            ldc "Eric's Key"
            invokespecial org.bouncycastle.asn1.DERBMPString.<init>:(Ljava/lang/String;)V
        58: .line 353
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        59: .line 356
            aload 15 /* bagAttr */
        60: .line 357
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pkcs_9_at_localKeyId:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
        61: .line 358
            new org.bouncycastle.x509.extension.SubjectKeyIdentifierStructure
            dup
            aload 13 /* pubKey */
            invokespecial org.bouncycastle.x509.extension.SubjectKeyIdentifierStructure.<init>:(Ljava/security/PublicKey;)V
        62: .line 356
            invokeinterface org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier.setBagAttribute:(Lorg/bouncycastle/asn1/DERObjectIdentifier;Lorg/bouncycastle/asn1/DEREncodable;)V
        63: .line 363
            ldc "PKCS12"
            ldc "BC"
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;
            astore 16 /* store */
        start local 16 // java.security.KeyStore store
        64: .line 365
            aload 16 /* store */
            aconst_null
            aconst_null
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
        65: .line 371
            aload 16 /* store */
            ldc "Eric's Key"
            aload 12 /* privKey */
            aconst_null
            aload 14 /* chain */
            invokevirtual java.security.KeyStore.setKeyEntry:(Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V
        66: .line 373
            new java.io.FileOutputStream
            dup
            ldc "id.p12"
            invokespecial java.io.FileOutputStream.<init>:(Ljava/lang/String;)V
            astore 17 /* fOut */
        start local 17 // java.io.FileOutputStream fOut
        67: .line 375
            aload 16 /* store */
            aload 17 /* fOut */
            getstatic org.bouncycastle.jce.examples.PKCS12Example.passwd:[C
            invokevirtual java.security.KeyStore.store:(Ljava/io/OutputStream;[C)V
        68: .line 377
            aload 17 /* fOut */
            invokevirtual java.io.FileOutputStream.close:()V
        69: .line 378
            return
        end local 17 // java.io.FileOutputStream fOut
        end local 16 // java.security.KeyStore store
        end local 15 // org.bouncycastle.jce.interfaces.PKCS12BagAttributeCarrier bagAttr
        end local 14 // java.security.cert.Certificate[] chain
        end local 13 // java.security.PublicKey pubKey
        end local 12 // java.security.PrivateKey privKey
        end local 11 // java.security.PublicKey intPubKey
        end local 10 // java.security.PrivateKey intPrivKey
        end local 9 // java.security.PublicKey caPubKey
        end local 8 // java.security.PrivateKey caPrivKey
        end local 7 // java.security.KeyFactory fact
        end local 6 // java.security.spec.RSAPrivateCrtKeySpec caPrivKeySpec
        end local 5 // java.security.spec.RSAPublicKeySpec caPubKeySpec
        end local 4 // java.security.spec.RSAPrivateCrtKeySpec intPrivKeySpec
        end local 3 // java.security.spec.RSAPublicKeySpec intPubKeySpec
        end local 2 // java.security.spec.RSAPrivateCrtKeySpec privKeySpec
        end local 1 // java.security.spec.RSAPublicKeySpec pubKeySpec
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   70     0            args  [Ljava/lang/String;
            5   70     1      pubKeySpec  Ljava/security/spec/RSAPublicKeySpec;
           15   70     2     privKeySpec  Ljava/security/spec/RSAPrivateCrtKeySpec;
           19   70     3   intPubKeySpec  Ljava/security/spec/RSAPublicKeySpec;
           29   70     4  intPrivKeySpec  Ljava/security/spec/RSAPrivateCrtKeySpec;
           33   70     5    caPubKeySpec  Ljava/security/spec/RSAPublicKeySpec;
           43   70     6   caPrivKeySpec  Ljava/security/spec/RSAPrivateCrtKeySpec;
           44   70     7            fact  Ljava/security/KeyFactory;
           45   70     8       caPrivKey  Ljava/security/PrivateKey;
           46   70     9        caPubKey  Ljava/security/PublicKey;
           47   70    10      intPrivKey  Ljava/security/PrivateKey;
           48   70    11       intPubKey  Ljava/security/PublicKey;
           49   70    12         privKey  Ljava/security/PrivateKey;
           50   70    13          pubKey  Ljava/security/PublicKey;
           51   70    14           chain  [Ljava/security/cert/Certificate;
           55   70    15         bagAttr  Lorg/bouncycastle/jce/interfaces/PKCS12BagAttributeCarrier;
           64   70    16           store  Ljava/security/KeyStore;
           67   70    17            fOut  Ljava/io/FileOutputStream;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "PKCS12Example.java"