public class org.bouncycastle.openssl.MiscPEMGenerator implements org.bouncycastle.util.io.pem.PemObjectGenerator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.openssl.MiscPEMGenerator
  super_class: java.lang.Object
{
  private static final org.bouncycastle.asn1.ASN1ObjectIdentifier[] dsaOids;
    descriptor: [Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final byte[] hexEncodingTable;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.Object obj;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.bouncycastle.openssl.PEMEncryptor encryptor;
    descriptor: Lorg/bouncycastle/openssl/PEMEncryptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 37
            iconst_2
            anewarray org.bouncycastle.asn1.ASN1ObjectIdentifier
            dup
            iconst_0
         1: .line 38
            getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_dsa:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aastore
            dup
            iconst_1
         2: .line 39
            getstatic org.bouncycastle.asn1.oiw.OIWObjectIdentifiers.dsaWithSHA1:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aastore
         3: .line 36
            putstatic org.bouncycastle.openssl.MiscPEMGenerator.dsaOids:[Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
         4: .line 43
            bipush 16
            newarray 8
            dup
            iconst_0
         5: .line 44
            bipush 48
            bastore
            dup
            iconst_1
            bipush 49
            bastore
            dup
            iconst_2
            bipush 50
            bastore
            dup
            iconst_3
            bipush 51
            bastore
            dup
            iconst_4
            bipush 52
            bastore
            dup
            iconst_5
            bipush 53
            bastore
            dup
            bipush 6
            bipush 54
            bastore
            dup
            bipush 7
            bipush 55
            bastore
            dup
            bipush 8
         6: .line 45
            bipush 56
            bastore
            dup
            bipush 9
            bipush 57
            bastore
            dup
            bipush 10
            bipush 65
            bastore
            dup
            bipush 11
            bipush 66
            bastore
            dup
            bipush 12
            bipush 67
            bastore
            dup
            bipush 13
            bipush 68
            bastore
            dup
            bipush 14
            bipush 69
            bastore
            dup
            bipush 15
            bipush 70
            bastore
         7: .line 42
            putstatic org.bouncycastle.openssl.MiscPEMGenerator.hexEncodingTable:[B
         8: .line 46
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.openssl.MiscPEMGenerator this
        start local 1 // java.lang.Object o
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 53
            aload 0 /* this */
            aload 1 /* o */
            putfield org.bouncycastle.openssl.MiscPEMGenerator.obj:Ljava/lang/Object;
         2: .line 54
            aload 0 /* this */
            aconst_null
            putfield org.bouncycastle.openssl.MiscPEMGenerator.encryptor:Lorg/bouncycastle/openssl/PEMEncryptor;
         3: .line 55
            return
        end local 1 // java.lang.Object o
        end local 0 // org.bouncycastle.openssl.MiscPEMGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/openssl/MiscPEMGenerator;
            0    4     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     

  public void <init>(java.lang.Object, org.bouncycastle.openssl.PEMEncryptor);
    descriptor: (Ljava/lang/Object;Lorg/bouncycastle/openssl/PEMEncryptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.bouncycastle.openssl.MiscPEMGenerator this
        start local 1 // java.lang.Object o
        start local 2 // org.bouncycastle.openssl.PEMEncryptor encryptor
         0: .line 57
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            aload 1 /* o */
            putfield org.bouncycastle.openssl.MiscPEMGenerator.obj:Ljava/lang/Object;
         2: .line 60
            aload 0 /* this */
            aload 2 /* encryptor */
            putfield org.bouncycastle.openssl.MiscPEMGenerator.encryptor:Lorg/bouncycastle/openssl/PEMEncryptor;
         3: .line 61
            return
        end local 2 // org.bouncycastle.openssl.PEMEncryptor encryptor
        end local 1 // java.lang.Object o
        end local 0 // org.bouncycastle.openssl.MiscPEMGenerator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/bouncycastle/openssl/MiscPEMGenerator;
            0    4     1          o  Ljava/lang/Object;
            0    4     2  encryptor  Lorg/bouncycastle/openssl/PEMEncryptor;
    MethodParameters:
           Name  Flags
      o          
      encryptor  

  private org.bouncycastle.util.io.pem.PemObject createPemObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/bouncycastle/util/io/pem/PemObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=2
        start local 0 // org.bouncycastle.openssl.MiscPEMGenerator this
        start local 1 // java.lang.Object o
         0: .line 69
            aload 1 /* o */
            instanceof org.bouncycastle.util.io.pem.PemObject
            ifeq 2
         1: .line 71
            aload 1 /* o */
            checkcast org.bouncycastle.util.io.pem.PemObject
            areturn
         2: .line 73
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.bouncycastle.util.io.pem.PemObjectGenerator
            ifeq 4
         3: .line 75
            aload 1 /* o */
            checkcast org.bouncycastle.util.io.pem.PemObjectGenerator
            invokeinterface org.bouncycastle.util.io.pem.PemObjectGenerator.generate:()Lorg/bouncycastle/util/io/pem/PemObject;
            areturn
         4: .line 77
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.bouncycastle.cert.X509CertificateHolder
            ifeq 8
         5: .line 79
            ldc "CERTIFICATE"
            astore 2 /* type */
        start local 2 // java.lang.String type
         6: .line 81
            aload 1 /* o */
            checkcast org.bouncycastle.cert.X509CertificateHolder
            invokevirtual org.bouncycastle.cert.X509CertificateHolder.getEncoded:()[B
            astore 3 /* encoding */
        start local 3 // byte[] encoding
         7: .line 82
            goto 63
        end local 3 // byte[] encoding
        end local 2 // java.lang.String type
         8: .line 83
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.bouncycastle.cert.X509CRLHolder
            ifeq 12
         9: .line 85
            ldc "X509 CRL"
            astore 2 /* type */
        start local 2 // java.lang.String type
        10: .line 87
            aload 1 /* o */
            checkcast org.bouncycastle.cert.X509CRLHolder
            invokevirtual org.bouncycastle.cert.X509CRLHolder.getEncoded:()[B
            astore 3 /* encoding */
        start local 3 // byte[] encoding
        11: .line 88
            goto 63
        end local 3 // byte[] encoding
        end local 2 // java.lang.String type
        12: .line 89
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.bouncycastle.openssl.X509TrustedCertificateBlock
            ifeq 16
        13: .line 91
            ldc "TRUSTED CERTIFICATE"
            astore 2 /* type */
        start local 2 // java.lang.String type
        14: .line 93
            aload 1 /* o */
            checkcast org.bouncycastle.openssl.X509TrustedCertificateBlock
            invokevirtual org.bouncycastle.openssl.X509TrustedCertificateBlock.getEncoded:()[B
            astore 3 /* encoding */
        start local 3 // byte[] encoding
        15: .line 94
            goto 63
        end local 3 // byte[] encoding
        end local 2 // java.lang.String type
        16: .line 95
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.bouncycastle.asn1.pkcs.PrivateKeyInfo
            ifeq 42
        17: .line 97
            aload 1 /* o */
            checkcast org.bouncycastle.asn1.pkcs.PrivateKeyInfo
            astore 4 /* info */
        start local 4 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo info
        18: .line 98
            aload 4 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getPrivateKeyAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            astore 5 /* algOID */
        start local 5 // org.bouncycastle.asn1.ASN1ObjectIdentifier algOID
        19: .line 100
            aload 5 /* algOID */
            getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.rsaEncryption:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 23
        20: .line 102
            ldc "RSA PRIVATE KEY"
            astore 2 /* type */
        start local 2 // java.lang.String type
        21: .line 104
            aload 4 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.parsePrivateKey:()Lorg/bouncycastle/asn1/ASN1Encodable;
            invokeinterface org.bouncycastle.asn1.ASN1Encodable.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            invokevirtual org.bouncycastle.asn1.ASN1Primitive.getEncoded:()[B
            astore 3 /* encoding */
        start local 3 // byte[] encoding
        22: .line 105
            goto 63
        end local 3 // byte[] encoding
        end local 2 // java.lang.String type
        23: .line 106
      StackMap locals: org.bouncycastle.openssl.MiscPEMGenerator java.lang.Object top top org.bouncycastle.asn1.pkcs.PrivateKeyInfo org.bouncycastle.asn1.ASN1ObjectIdentifier
      StackMap stack:
            aload 5 /* algOID */
            getstatic org.bouncycastle.openssl.MiscPEMGenerator.dsaOids:[Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            iconst_0
            aaload
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifne 24
            aload 5 /* algOID */
            getstatic org.bouncycastle.openssl.MiscPEMGenerator.dsaOids:[Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            iconst_1
            aaload
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 37
        24: .line 108
      StackMap locals:
      StackMap stack:
            ldc "DSA PRIVATE KEY"
            astore 2 /* type */
        start local 2 // java.lang.String type
        25: .line 110
            aload 4 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getPrivateKeyAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
            invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/ASN1Encodable;
            invokestatic org.bouncycastle.asn1.x509.DSAParameter.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x509/DSAParameter;
            astore 6 /* p */
        start local 6 // org.bouncycastle.asn1.x509.DSAParameter p
        26: .line 111
            new org.bouncycastle.asn1.ASN1EncodableVector
            dup
            invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
            astore 7 /* v */
        start local 7 // org.bouncycastle.asn1.ASN1EncodableVector v
        27: .line 113
            aload 7 /* v */
            new org.bouncycastle.asn1.ASN1Integer
            dup
            lconst_0
            invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(J)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        28: .line 114
            aload 7 /* v */
            new org.bouncycastle.asn1.ASN1Integer
            dup
            aload 6 /* p */
            invokevirtual org.bouncycastle.asn1.x509.DSAParameter.getP:()Ljava/math/BigInteger;
            invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(Ljava/math/BigInteger;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        29: .line 115
            aload 7 /* v */
            new org.bouncycastle.asn1.ASN1Integer
            dup
            aload 6 /* p */
            invokevirtual org.bouncycastle.asn1.x509.DSAParameter.getQ:()Ljava/math/BigInteger;
            invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(Ljava/math/BigInteger;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        30: .line 116
            aload 7 /* v */
            new org.bouncycastle.asn1.ASN1Integer
            dup
            aload 6 /* p */
            invokevirtual org.bouncycastle.asn1.x509.DSAParameter.getG:()Ljava/math/BigInteger;
            invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(Ljava/math/BigInteger;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        31: .line 118
            aload 4 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.parsePrivateKey:()Lorg/bouncycastle/asn1/ASN1Encodable;
            invokestatic org.bouncycastle.asn1.ASN1Integer.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ASN1Integer;
            invokevirtual org.bouncycastle.asn1.ASN1Integer.getValue:()Ljava/math/BigInteger;
            astore 8 /* x */
        start local 8 // java.math.BigInteger x
        32: .line 119
            aload 6 /* p */
            invokevirtual org.bouncycastle.asn1.x509.DSAParameter.getG:()Ljava/math/BigInteger;
            aload 8 /* x */
            aload 6 /* p */
            invokevirtual org.bouncycastle.asn1.x509.DSAParameter.getP:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.modPow:(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;
            astore 9 /* y */
        start local 9 // java.math.BigInteger y
        33: .line 121
            aload 7 /* v */
            new org.bouncycastle.asn1.ASN1Integer
            dup
            aload 9 /* y */
            invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(Ljava/math/BigInteger;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        34: .line 122
            aload 7 /* v */
            new org.bouncycastle.asn1.ASN1Integer
            dup
            aload 8 /* x */
            invokespecial org.bouncycastle.asn1.ASN1Integer.<init>:(Ljava/math/BigInteger;)V
            invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
        35: .line 124
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 7 /* v */
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
            invokevirtual org.bouncycastle.asn1.DERSequence.getEncoded:()[B
            astore 3 /* encoding */
        end local 9 // java.math.BigInteger y
        end local 8 // java.math.BigInteger x
        end local 7 // org.bouncycastle.asn1.ASN1EncodableVector v
        end local 6 // org.bouncycastle.asn1.x509.DSAParameter p
        start local 3 // byte[] encoding
        36: .line 125
            goto 63
        end local 3 // byte[] encoding
        end local 2 // java.lang.String type
        37: .line 126
      StackMap locals:
      StackMap stack:
            aload 5 /* algOID */
            getstatic org.bouncycastle.asn1.x9.X9ObjectIdentifiers.id_ecPublicKey:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 41
        38: .line 128
            ldc "EC PRIVATE KEY"
            astore 2 /* type */
        start local 2 // java.lang.String type
        39: .line 130
            aload 4 /* info */
            invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.parsePrivateKey:()Lorg/bouncycastle/asn1/ASN1Encodable;
            invokeinterface org.bouncycastle.asn1.ASN1Encodable.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            invokevirtual org.bouncycastle.asn1.ASN1Primitive.getEncoded:()[B
            astore 3 /* encoding */
        start local 3 // byte[] encoding
        40: .line 131
            goto 63
        end local 3 // byte[] encoding
        end local 2 // java.lang.String type
        41: .line 134
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            ldc "Cannot identify private key"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // org.bouncycastle.asn1.ASN1ObjectIdentifier algOID
        end local 4 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo info
        42: .line 137
      StackMap locals: org.bouncycastle.openssl.MiscPEMGenerator java.lang.Object
      StackMap stack:
            aload 1 /* o */
            instanceof org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
            ifeq 46
        43: .line 139
            ldc "PUBLIC KEY"
            astore 2 /* type */
        start local 2 // java.lang.String type
        44: .line 141
            aload 1 /* o */
            checkcast org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
            invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getEncoded:()[B
            astore 3 /* encoding */
        start local 3 // byte[] encoding
        45: .line 142
            goto 63
        end local 3 // byte[] encoding
        end local 2 // java.lang.String type
        46: .line 143
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.bouncycastle.cert.X509AttributeCertificateHolder
            ifeq 50
        47: .line 145
            ldc "ATTRIBUTE CERTIFICATE"
            astore 2 /* type */
        start local 2 // java.lang.String type
        48: .line 146
            aload 1 /* o */
            checkcast org.bouncycastle.cert.X509AttributeCertificateHolder
            invokevirtual org.bouncycastle.cert.X509AttributeCertificateHolder.getEncoded:()[B
            astore 3 /* encoding */
        start local 3 // byte[] encoding
        49: .line 147
            goto 63
        end local 3 // byte[] encoding
        end local 2 // java.lang.String type
        50: .line 148
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.bouncycastle.pkcs.PKCS10CertificationRequest
            ifeq 54
        51: .line 150
            ldc "CERTIFICATE REQUEST"
            astore 2 /* type */
        start local 2 // java.lang.String type
        52: .line 151
            aload 1 /* o */
            checkcast org.bouncycastle.pkcs.PKCS10CertificationRequest
            invokevirtual org.bouncycastle.pkcs.PKCS10CertificationRequest.getEncoded:()[B
            astore 3 /* encoding */
        start local 3 // byte[] encoding
        53: .line 152
            goto 63
        end local 3 // byte[] encoding
        end local 2 // java.lang.String type
        54: .line 153
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo
            ifeq 58
        55: .line 155
            ldc "ENCRYPTED PRIVATE KEY"
            astore 2 /* type */
        start local 2 // java.lang.String type
        56: .line 156
            aload 1 /* o */
            checkcast org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo
            invokevirtual org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo.getEncoded:()[B
            astore 3 /* encoding */
        start local 3 // byte[] encoding
        57: .line 157
            goto 63
        end local 3 // byte[] encoding
        end local 2 // java.lang.String type
        58: .line 158
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.bouncycastle.asn1.cms.ContentInfo
            ifeq 62
        59: .line 160
            ldc "PKCS7"
            astore 2 /* type */
        start local 2 // java.lang.String type
        60: .line 161
            aload 1 /* o */
            checkcast org.bouncycastle.asn1.cms.ContentInfo
            invokevirtual org.bouncycastle.asn1.cms.ContentInfo.getEncoded:()[B
            astore 3 /* encoding */
        start local 3 // byte[] encoding
        61: .line 162
            goto 63
        end local 3 // byte[] encoding
        end local 2 // java.lang.String type
        62: .line 165
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.util.io.pem.PemGenerationException
            dup
            ldc "unknown object passed - can't encode."
            invokespecial org.bouncycastle.util.io.pem.PemGenerationException.<init>:(Ljava/lang/String;)V
            athrow
        start local 2 // java.lang.String type
        start local 3 // byte[] encoding
        63: .line 168
      StackMap locals: java.lang.String byte[]
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.openssl.MiscPEMGenerator.encryptor:Lorg/bouncycastle/openssl/PEMEncryptor;
            ifnull 73
        64: .line 170
            aload 0 /* this */
            getfield org.bouncycastle.openssl.MiscPEMGenerator.encryptor:Lorg/bouncycastle/openssl/PEMEncryptor;
            invokeinterface org.bouncycastle.openssl.PEMEncryptor.getAlgorithm:()Ljava/lang/String;
            invokestatic org.bouncycastle.util.Strings.toUpperCase:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* dekAlgName */
        start local 4 // java.lang.String dekAlgName
        65: .line 173
            aload 4 /* dekAlgName */
            ldc "DESEDE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 67
        66: .line 175
            ldc "DES-EDE3-CBC"
            astore 4 /* dekAlgName */
        67: .line 179
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.openssl.MiscPEMGenerator.encryptor:Lorg/bouncycastle/openssl/PEMEncryptor;
            invokeinterface org.bouncycastle.openssl.PEMEncryptor.getIV:()[B
            astore 5 /* iv */
        start local 5 // byte[] iv
        68: .line 181
            aload 0 /* this */
            getfield org.bouncycastle.openssl.MiscPEMGenerator.encryptor:Lorg/bouncycastle/openssl/PEMEncryptor;
            aload 3 /* encoding */
            invokeinterface org.bouncycastle.openssl.PEMEncryptor.encrypt:([B)[B
            astore 6 /* encData */
        start local 6 // byte[] encData
        69: .line 183
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 7 /* headers */
        start local 7 // java.util.List headers
        70: .line 185
            aload 7 /* headers */
            new org.bouncycastle.util.io.pem.PemHeader
            dup
            ldc "Proc-Type"
            ldc "4,ENCRYPTED"
            invokespecial org.bouncycastle.util.io.pem.PemHeader.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        71: .line 186
            aload 7 /* headers */
            new org.bouncycastle.util.io.pem.PemHeader
            dup
            ldc "DEK-Info"
            new java.lang.StringBuilder
            dup
            aload 4 /* dekAlgName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 5 /* iv */
            invokevirtual org.bouncycastle.openssl.MiscPEMGenerator.getHexEncoded:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.bouncycastle.util.io.pem.PemHeader.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        72: .line 188
            new org.bouncycastle.util.io.pem.PemObject
            dup
            aload 2 /* type */
            aload 7 /* headers */
            aload 6 /* encData */
            invokespecial org.bouncycastle.util.io.pem.PemObject.<init>:(Ljava/lang/String;Ljava/util/List;[B)V
            areturn
        end local 7 // java.util.List headers
        end local 6 // byte[] encData
        end local 5 // byte[] iv
        end local 4 // java.lang.String dekAlgName
        73: .line 190
      StackMap locals:
      StackMap stack:
            new org.bouncycastle.util.io.pem.PemObject
            dup
            aload 2 /* type */
            aload 3 /* encoding */
            invokespecial org.bouncycastle.util.io.pem.PemObject.<init>:(Ljava/lang/String;[B)V
            areturn
        end local 3 // byte[] encoding
        end local 2 // java.lang.String type
        end local 1 // java.lang.Object o
        end local 0 // org.bouncycastle.openssl.MiscPEMGenerator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   74     0        this  Lorg/bouncycastle/openssl/MiscPEMGenerator;
            0   74     1           o  Ljava/lang/Object;
            6    8     2        type  Ljava/lang/String;
           10   12     2        type  Ljava/lang/String;
           14   16     2        type  Ljava/lang/String;
           21   23     2        type  Ljava/lang/String;
           25   37     2        type  Ljava/lang/String;
           39   41     2        type  Ljava/lang/String;
           44   46     2        type  Ljava/lang/String;
           48   50     2        type  Ljava/lang/String;
           52   54     2        type  Ljava/lang/String;
           56   58     2        type  Ljava/lang/String;
           60   62     2        type  Ljava/lang/String;
           63   74     2        type  Ljava/lang/String;
            7    8     3    encoding  [B
           11   12     3    encoding  [B
           15   16     3    encoding  [B
           22   23     3    encoding  [B
           36   37     3    encoding  [B
           40   41     3    encoding  [B
           45   46     3    encoding  [B
           49   50     3    encoding  [B
           53   54     3    encoding  [B
           57   58     3    encoding  [B
           61   62     3    encoding  [B
           63   74     3    encoding  [B
           18   42     4        info  Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
           19   42     5      algOID  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
           26   36     6           p  Lorg/bouncycastle/asn1/x509/DSAParameter;
           27   36     7           v  Lorg/bouncycastle/asn1/ASN1EncodableVector;
           32   36     8           x  Ljava/math/BigInteger;
           33   36     9           y  Ljava/math/BigInteger;
           65   73     4  dekAlgName  Ljava/lang/String;
           68   73     5          iv  [B
           69   73     6     encData  [B
           70   73     7     headers  Ljava/util/List;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      o     

  private java.lang.String getHexEncoded(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.bouncycastle.openssl.MiscPEMGenerator this
        start local 1 // byte[] bytes
         0: .line 196
            aload 1 /* bytes */
            arraylength
            iconst_2
            imul
            newarray 5
            astore 2 /* chars */
        start local 2 // char[] chars
         1: .line 198
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 200
      StackMap locals: char[] int
      StackMap stack:
            aload 1 /* bytes */
            iload 3 /* i */
            baload
            sipush 255
            iand
            istore 4 /* v */
        start local 4 // int v
         4: .line 202
            aload 2 /* chars */
            iconst_2
            iload 3 /* i */
            imul
            getstatic org.bouncycastle.openssl.MiscPEMGenerator.hexEncodingTable:[B
            iload 4 /* v */
            iconst_4
            iushr
            baload
            i2c
            castore
         5: .line 203
            aload 2 /* chars */
            iconst_2
            iload 3 /* i */
            imul
            iconst_1
            iadd
            getstatic org.bouncycastle.openssl.MiscPEMGenerator.hexEncodingTable:[B
            iload 4 /* v */
            bipush 15
            iand
            baload
            i2c
            castore
        end local 4 // int v
         6: .line 198
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 1 /* bytes */
            arraylength
            if_icmpne 3
        end local 3 // int i
         8: .line 206
            new java.lang.String
            dup
            aload 2 /* chars */
            invokespecial java.lang.String.<init>:([C)V
            areturn
        end local 2 // char[] chars
        end local 1 // byte[] bytes
        end local 0 // org.bouncycastle.openssl.MiscPEMGenerator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/bouncycastle/openssl/MiscPEMGenerator;
            0    9     1  bytes  [B
            1    9     2  chars  [C
            2    8     3      i  I
            4    6     4      v  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      bytes  

  public org.bouncycastle.util.io.pem.PemObject generate();
    descriptor: ()Lorg/bouncycastle/util/io/pem/PemObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.bouncycastle.openssl.MiscPEMGenerator this
         0: .line 214
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.openssl.MiscPEMGenerator.obj:Ljava/lang/Object;
            invokevirtual org.bouncycastle.openssl.MiscPEMGenerator.createPemObject:(Ljava/lang/Object;)Lorg/bouncycastle/util/io/pem/PemObject;
         1: areturn
         2: .line 216
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 218
            new org.bouncycastle.util.io.pem.PemGenerationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "encoding exception: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial org.bouncycastle.util.io.pem.PemGenerationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // org.bouncycastle.openssl.MiscPEMGenerator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bouncycastle/openssl/MiscPEMGenerator;
            3    4     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws org.bouncycastle.util.io.pem.PemGenerationException
}
SourceFile: "MiscPEMGenerator.java"