class org.apache.tomcat.util.net.jsse.PEMFile$Part
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.tomcat.util.net.jsse.PEMFile$Part
  super_class: java.lang.Object
{
  public static final java.lang.String BEGIN_BOUNDARY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "-----BEGIN "

  public static final java.lang.String END_BOUNDARY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "-----END "

  public static final java.lang.String FINISH_BOUNDARY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "-----"

  public static final java.lang.String PRIVATE_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "PRIVATE KEY"

  public static final java.lang.String EC_PRIVATE_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "EC PRIVATE KEY"

  public static final java.lang.String ENCRYPTED_PRIVATE_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "ENCRYPTED PRIVATE KEY"

  public static final java.lang.String RSA_PRIVATE_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "RSA PRIVATE KEY"

  public static final java.lang.String CERTIFICATE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "CERTIFICATE"

  public static final java.lang.String X509_CERTIFICATE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "X509 CERTIFICATE"

  public java.lang.String type;
    descriptor: Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC

  public java.lang.String content;
    descriptor: Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC

  final org.apache.tomcat.util.net.jsse.PEMFile this$0;
    descriptor: Lorg/apache/tomcat/util/net/jsse/PEMFile;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$org$apache$tomcat$util$net$jsse$PEMFile$Format;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private void <init>(org.apache.tomcat.util.net.jsse.PEMFile);
    descriptor: (Lorg/apache/tomcat/util/net/jsse/PEMFile;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.net.jsse.PEMFile$Part this
         0: .line 139
            aload 0 /* this */
            aload 1
            putfield org.apache.tomcat.util.net.jsse.PEMFile$Part.this$0:Lorg/apache/tomcat/util/net/jsse/PEMFile;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 152
            aload 0 /* this */
            ldc ""
            putfield org.apache.tomcat.util.net.jsse.PEMFile$Part.content:Ljava/lang/String;
         2: .line 139
            return
        end local 0 // org.apache.tomcat.util.net.jsse.PEMFile$Part this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/tomcat/util/net/jsse/PEMFile$Part;
    MethodParameters:
        Name  Flags
      this$0  final

  private byte[] decode();
    descriptor: ()[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.net.jsse.PEMFile$Part this
         0: .line 155
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.jsse.PEMFile$Part.content:Ljava/lang/String;
            invokestatic org.apache.tomcat.util.codec.binary.Base64.decodeBase64:(Ljava/lang/String;)[B
            areturn
        end local 0 // org.apache.tomcat.util.net.jsse.PEMFile$Part this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/net/jsse/PEMFile$Part;

  public java.security.cert.X509Certificate toCertificate();
    descriptor: ()Ljava/security/cert/X509Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.tomcat.util.net.jsse.PEMFile$Part this
         0: .line 159
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 1 /* factory */
        start local 1 // java.security.cert.CertificateFactory factory
         1: .line 160
            aload 1 /* factory */
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Part.decode:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
            checkcast java.security.cert.X509Certificate
            areturn
        end local 1 // java.security.cert.CertificateFactory factory
        end local 0 // org.apache.tomcat.util.net.jsse.PEMFile$Part this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/apache/tomcat/util/net/jsse/PEMFile$Part;
            1    2     1  factory  Ljava/security/cert/CertificateFactory;
    Exceptions:
      throws java.security.cert.CertificateException

  public java.security.PrivateKey toPrivateKey(java.lang.String, java.lang.String, org.apache.tomcat.util.net.jsse.PEMFile$Format);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/apache/tomcat/util/net/jsse/PEMFile$Format;)Ljava/security/PrivateKey;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=11, args_size=4
        start local 0 // org.apache.tomcat.util.net.jsse.PEMFile$Part this
        start local 1 // java.lang.String password
        start local 2 // java.lang.String keyAlgorithm
        start local 3 // org.apache.tomcat.util.net.jsse.PEMFile$Format format
         0: .line 165
            aconst_null
            astore 4 /* keySpec */
        start local 4 // java.security.spec.KeySpec keySpec
         1: .line 167
            aload 1 /* password */
            ifnonnull 9
         2: .line 168
            invokestatic org.apache.tomcat.util.net.jsse.PEMFile$Part.$SWITCH_TABLE$org$apache$tomcat$util$net$jsse$PEMFile$Format:()[I
            aload 3 /* format */
            invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Format.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 3
                    2: 5
                    3: 7
              default: 8
          }
         3: .line 170
      StackMap locals: java.security.spec.KeySpec
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Part.decode:()[B
            invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Part.parsePKCS1:([B)Ljava/security/spec/RSAPrivateCrtKeySpec;
            astore 4 /* keySpec */
         4: .line 171
            goto 15
         5: .line 174
      StackMap locals:
      StackMap stack:
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Part.decode:()[B
            invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
            astore 4 /* keySpec */
         6: .line 175
            goto 15
         7: .line 178
      StackMap locals:
      StackMap stack:
            new java.security.spec.PKCS8EncodedKeySpec
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Part.decode:()[B
            invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Part.rfc5915ToPkcs8:([B)[B
            invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
            astore 4 /* keySpec */
         8: .line 182
      StackMap locals:
      StackMap stack:
            goto 15
         9: .line 183
      StackMap locals:
      StackMap stack:
            new javax.crypto.EncryptedPrivateKeyInfo
            dup
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Part.decode:()[B
            invokespecial javax.crypto.EncryptedPrivateKeyInfo.<init>:([B)V
            astore 5 /* privateKeyInfo */
        start local 5 // javax.crypto.EncryptedPrivateKeyInfo privateKeyInfo
        10: .line 184
            aload 5 /* privateKeyInfo */
            invokevirtual javax.crypto.EncryptedPrivateKeyInfo.getAlgName:()Ljava/lang/String;
            invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
            astore 6 /* secretKeyFactory */
        start local 6 // javax.crypto.SecretKeyFactory secretKeyFactory
        11: .line 185
            aload 6 /* secretKeyFactory */
            new javax.crypto.spec.PBEKeySpec
            dup
            aload 1 /* password */
            invokevirtual java.lang.String.toCharArray:()[C
            invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
            invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
            astore 7 /* secretKey */
        start local 7 // javax.crypto.SecretKey secretKey
        12: .line 187
            aload 5 /* privateKeyInfo */
            invokevirtual javax.crypto.EncryptedPrivateKeyInfo.getAlgName:()Ljava/lang/String;
            invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
            astore 8 /* cipher */
        start local 8 // javax.crypto.Cipher cipher
        13: .line 188
            aload 8 /* cipher */
            iconst_2
            aload 7 /* secretKey */
            aload 5 /* privateKeyInfo */
            invokevirtual javax.crypto.EncryptedPrivateKeyInfo.getAlgParameters:()Ljava/security/AlgorithmParameters;
            invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
        14: .line 190
            aload 5 /* privateKeyInfo */
            aload 8 /* cipher */
            invokevirtual javax.crypto.EncryptedPrivateKeyInfo.getKeySpec:(Ljavax/crypto/Cipher;)Ljava/security/spec/PKCS8EncodedKeySpec;
            astore 4 /* keySpec */
        end local 8 // javax.crypto.Cipher cipher
        end local 7 // javax.crypto.SecretKey secretKey
        end local 6 // javax.crypto.SecretKeyFactory secretKeyFactory
        end local 5 // javax.crypto.EncryptedPrivateKeyInfo privateKeyInfo
        15: .line 193
      StackMap locals:
      StackMap stack:
            new java.security.InvalidKeyException
            dup
            getstatic org.apache.tomcat.util.net.jsse.PEMFile.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "pemFile.parseError"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.jsse.PEMFile$Part.this$0:Lorg/apache/tomcat/util/net/jsse/PEMFile;
            getfield org.apache.tomcat.util.net.jsse.PEMFile.filename:Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
            astore 5 /* exception */
        start local 5 // java.security.InvalidKeyException exception
        16: .line 194
            aload 2 /* keyAlgorithm */
            ifnonnull 26
        17: .line 195
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "RSA"
            aastore
            dup
            iconst_1
            ldc "DSA"
            aastore
            dup
            iconst_2
            ldc "EC"
            aastore
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 24
      StackMap locals: org.apache.tomcat.util.net.jsse.PEMFile$Part java.lang.String java.lang.String org.apache.tomcat.util.net.jsse.PEMFile$Format java.security.spec.KeySpec java.security.InvalidKeyException top int int java.lang.String[]
      StackMap stack:
        18: aload 9
            iload 7
            aaload
            astore 6 /* algorithm */
        start local 6 // java.lang.String algorithm
        19: .line 197
            aload 6 /* algorithm */
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
            aload 4 /* keySpec */
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
        20: areturn
        21: .line 198
      StackMap locals: org.apache.tomcat.util.net.jsse.PEMFile$Part java.lang.String java.lang.String org.apache.tomcat.util.net.jsse.PEMFile$Format java.security.spec.KeySpec java.security.InvalidKeyException java.lang.String int int java.lang.String[]
      StackMap stack: java.security.spec.InvalidKeySpecException
            astore 10 /* e */
        start local 10 // java.security.spec.InvalidKeySpecException e
        22: .line 199
            aload 5 /* exception */
            aload 10 /* e */
            invokevirtual java.security.InvalidKeyException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 10 // java.security.spec.InvalidKeySpecException e
        end local 6 // java.lang.String algorithm
        23: .line 195
            iinc 7 1
      StackMap locals: org.apache.tomcat.util.net.jsse.PEMFile$Part java.lang.String java.lang.String org.apache.tomcat.util.net.jsse.PEMFile$Format java.security.spec.KeySpec java.security.InvalidKeyException top int int java.lang.String[]
      StackMap stack:
        24: iload 7
            iload 8
            if_icmplt 18
        25: .line 202
            goto 30
        26: .line 204
      StackMap locals: org.apache.tomcat.util.net.jsse.PEMFile$Part java.lang.String java.lang.String org.apache.tomcat.util.net.jsse.PEMFile$Format java.security.spec.KeySpec java.security.InvalidKeyException
      StackMap stack:
            aload 2 /* keyAlgorithm */
            invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
            aload 4 /* keySpec */
            invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
        27: areturn
        28: .line 205
      StackMap locals:
      StackMap stack: java.security.spec.InvalidKeySpecException
            astore 6 /* e */
        start local 6 // java.security.spec.InvalidKeySpecException e
        29: .line 206
            aload 5 /* exception */
            aload 6 /* e */
            invokevirtual java.security.InvalidKeyException.addSuppressed:(Ljava/lang/Throwable;)V
        end local 6 // java.security.spec.InvalidKeySpecException e
        30: .line 210
      StackMap locals:
      StackMap stack:
            aload 5 /* exception */
            athrow
        end local 5 // java.security.InvalidKeyException exception
        end local 4 // java.security.spec.KeySpec keySpec
        end local 3 // org.apache.tomcat.util.net.jsse.PEMFile$Format format
        end local 2 // java.lang.String keyAlgorithm
        end local 1 // java.lang.String password
        end local 0 // org.apache.tomcat.util.net.jsse.PEMFile$Part this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   31     0              this  Lorg/apache/tomcat/util/net/jsse/PEMFile$Part;
            0   31     1          password  Ljava/lang/String;
            0   31     2      keyAlgorithm  Ljava/lang/String;
            0   31     3            format  Lorg/apache/tomcat/util/net/jsse/PEMFile$Format;
            1   31     4           keySpec  Ljava/security/spec/KeySpec;
           10   15     5    privateKeyInfo  Ljavax/crypto/EncryptedPrivateKeyInfo;
           11   15     6  secretKeyFactory  Ljavax/crypto/SecretKeyFactory;
           12   15     7         secretKey  Ljavax/crypto/SecretKey;
           13   15     8            cipher  Ljavax/crypto/Cipher;
           16   31     5         exception  Ljava/security/InvalidKeyException;
           19   23     6         algorithm  Ljava/lang/String;
           22   23    10                 e  Ljava/security/spec/InvalidKeySpecException;
           29   30     6                 e  Ljava/security/spec/InvalidKeySpecException;
      Exception table:
        from    to  target  type
          19    20      21  Class java.security.spec.InvalidKeySpecException
          26    27      28  Class java.security.spec.InvalidKeySpecException
    Exceptions:
      throws java.security.GeneralSecurityException, java.io.IOException
    MethodParameters:
              Name  Flags
      password      
      keyAlgorithm  
      format        

  private byte[] rfc5915ToPkcs8(byte[]);
    descriptor: ([B)[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=10, args_size=2
        start local 0 // org.apache.tomcat.util.net.jsse.PEMFile$Part this
        start local 1 // byte[] source
         0: .line 238
            new org.apache.tomcat.util.buf.Asn1Parser
            dup
            aload 1 /* source */
            invokespecial org.apache.tomcat.util.buf.Asn1Parser.<init>:([B)V
            astore 2 /* p */
        start local 2 // org.apache.tomcat.util.buf.Asn1Parser p
         1: .line 241
            aload 2 /* p */
            bipush 48
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseTag:(I)V
         2: .line 243
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseFullLength:()V
         3: .line 246
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
            astore 3 /* version */
        start local 3 // java.math.BigInteger version
         4: .line 247
            aload 3 /* version */
            invokevirtual java.math.BigInteger.intValue:()I
            iconst_1
            if_icmpeq 6
         5: .line 248
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.tomcat.util.net.jsse.PEMFile.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "pemFile.notValidRFC5915"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 252
      StackMap locals: org.apache.tomcat.util.buf.Asn1Parser java.math.BigInteger
      StackMap stack:
            aload 2 /* p */
            iconst_4
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseTag:(I)V
         7: .line 253
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseLength:()I
            istore 4 /* privateKeyLen */
        start local 4 // int privateKeyLen
         8: .line 254
            iload 4 /* privateKeyLen */
            newarray 8
            astore 5 /* privateKey */
        start local 5 // byte[] privateKey
         9: .line 255
            aload 2 /* p */
            aload 5 /* privateKey */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseBytes:([B)V
        10: .line 258
            aload 2 /* p */
            sipush 160
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseTag:(I)V
        11: .line 259
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseLength:()I
            istore 6 /* oidLen */
        start local 6 // int oidLen
        12: .line 260
            iload 6 /* oidLen */
            newarray 8
            astore 7 /* oid */
        start local 7 // byte[] oid
        13: .line 261
            aload 2 /* p */
            aload 7 /* oid */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseBytes:([B)V
        14: .line 262
            aload 7 /* oid */
            iconst_0
            baload
            bipush 6
            if_icmpeq 16
        15: .line 263
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.tomcat.util.net.jsse.PEMFile.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "pemFile.notValidRFC5915"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 267
      StackMap locals: org.apache.tomcat.util.net.jsse.PEMFile$Part byte[] org.apache.tomcat.util.buf.Asn1Parser java.math.BigInteger int byte[] int byte[]
      StackMap stack:
            aload 2 /* p */
            sipush 161
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseTag:(I)V
        17: .line 268
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseLength:()I
            istore 8 /* publicKeyLen */
        start local 8 // int publicKeyLen
        18: .line 269
            iload 8 /* publicKeyLen */
            newarray 8
            astore 9 /* publicKey */
        start local 9 // byte[] publicKey
        19: .line 270
            aload 2 /* p */
            aload 9 /* publicKey */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseBytes:([B)V
        20: .line 271
            aload 9 /* publicKey */
            iconst_0
            baload
            iconst_3
            if_icmpeq 22
        21: .line 272
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.tomcat.util.net.jsse.PEMFile.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "pemFile.notValidRFC5915"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 277
      StackMap locals: int byte[]
      StackMap stack:
            iconst_3
            anewarray byte[]
            dup
            iconst_0
        23: .line 278
            iconst_0
            invokestatic org.apache.tomcat.util.buf.Asn1Writer.writeInteger:(I)[B
            aastore
            dup
            iconst_1
            iconst_2
            anewarray byte[]
            dup
            iconst_0
        24: .line 280
            getstatic org.apache.tomcat.util.net.jsse.PEMFile.OID_EC_PUBLIC_KEY:[B
            aastore
            dup
            iconst_1
        25: .line 281
            aload 7 /* oid */
            aastore
        26: .line 279
            invokestatic org.apache.tomcat.util.buf.Asn1Writer.writeSequence:([[B)[B
            aastore
            dup
            iconst_2
            iconst_3
            anewarray byte[]
            dup
            iconst_0
        27: .line 284
            iconst_1
            invokestatic org.apache.tomcat.util.buf.Asn1Writer.writeInteger:(I)[B
            aastore
            dup
            iconst_1
        28: .line 285
            aload 5 /* privateKey */
            invokestatic org.apache.tomcat.util.buf.Asn1Writer.writeOctetString:([B)[B
            aastore
            dup
            iconst_2
        29: .line 286
            bipush -95
            aload 9 /* publicKey */
            invokestatic org.apache.tomcat.util.buf.Asn1Writer.writeTag:(B[B)[B
            aastore
        30: .line 283
            invokestatic org.apache.tomcat.util.buf.Asn1Writer.writeSequence:([[B)[B
        31: .line 282
            invokestatic org.apache.tomcat.util.buf.Asn1Writer.writeOctetString:([B)[B
            aastore
        32: .line 277
            invokestatic org.apache.tomcat.util.buf.Asn1Writer.writeSequence:([[B)[B
            areturn
        end local 9 // byte[] publicKey
        end local 8 // int publicKeyLen
        end local 7 // byte[] oid
        end local 6 // int oidLen
        end local 5 // byte[] privateKey
        end local 4 // int privateKeyLen
        end local 3 // java.math.BigInteger version
        end local 2 // org.apache.tomcat.util.buf.Asn1Parser p
        end local 1 // byte[] source
        end local 0 // org.apache.tomcat.util.net.jsse.PEMFile$Part this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   33     0           this  Lorg/apache/tomcat/util/net/jsse/PEMFile$Part;
            0   33     1         source  [B
            1   33     2              p  Lorg/apache/tomcat/util/buf/Asn1Parser;
            4   33     3        version  Ljava/math/BigInteger;
            8   33     4  privateKeyLen  I
            9   33     5     privateKey  [B
           12   33     6         oidLen  I
           13   33     7            oid  [B
           18   33     8   publicKeyLen  I
           19   33     9      publicKey  [B
    MethodParameters:
        Name  Flags
      source  

  private java.security.spec.RSAPrivateCrtKeySpec parsePKCS1(byte[]);
    descriptor: ([B)Ljava/security/spec/RSAPrivateCrtKeySpec;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=4, args_size=2
        start local 0 // org.apache.tomcat.util.net.jsse.PEMFile$Part this
        start local 1 // byte[] source
         0: .line 293
            new org.apache.tomcat.util.buf.Asn1Parser
            dup
            aload 1 /* source */
            invokespecial org.apache.tomcat.util.buf.Asn1Parser.<init>:([B)V
            astore 2 /* p */
        start local 2 // org.apache.tomcat.util.buf.Asn1Parser p
         1: .line 299
            aload 2 /* p */
            bipush 48
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseTag:(I)V
         2: .line 301
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseFullLength:()V
         3: .line 303
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
            astore 3 /* version */
        start local 3 // java.math.BigInteger version
         4: .line 304
            aload 3 /* version */
            invokevirtual java.math.BigInteger.intValue:()I
            iconst_1
            if_icmpne 6
         5: .line 307
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.tomcat.util.net.jsse.PEMFile.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "pemFile.noMultiPrimes"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 309
      StackMap locals: org.apache.tomcat.util.buf.Asn1Parser java.math.BigInteger
      StackMap stack:
            new java.security.spec.RSAPrivateCrtKeySpec
            dup
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
         7: .line 310
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
            aload 2 /* p */
            invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
         8: .line 309
            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
            areturn
        end local 3 // java.math.BigInteger version
        end local 2 // org.apache.tomcat.util.buf.Asn1Parser p
        end local 1 // byte[] source
        end local 0 // org.apache.tomcat.util.net.jsse.PEMFile$Part this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/apache/tomcat/util/net/jsse/PEMFile$Part;
            0    9     1   source  [B
            1    9     2        p  Lorg/apache/tomcat/util/buf/Asn1Parser;
            4    9     3  version  Ljava/math/BigInteger;
    MethodParameters:
        Name  Flags
      source  

  static int[] $SWITCH_TABLE$org$apache$tomcat$util$net$jsse$PEMFile$Format();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 139
            getstatic org.apache.tomcat.util.net.jsse.PEMFile$Part.$SWITCH_TABLE$org$apache$tomcat$util$net$jsse$PEMFile$Format:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.apache.tomcat.util.net.jsse.PEMFile$Format.values:()[Lorg/apache/tomcat/util/net/jsse/PEMFile$Format;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.apache.tomcat.util.net.jsse.PEMFile$Format.PKCS1:Lorg/apache/tomcat/util/net/jsse/PEMFile$Format;
            invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Format.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.apache.tomcat.util.net.jsse.PEMFile$Format.PKCS8:Lorg/apache/tomcat/util/net/jsse/PEMFile$Format;
            invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Format.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.apache.tomcat.util.net.jsse.PEMFile$Format.RFC5915:Lorg/apache/tomcat/util/net/jsse/PEMFile$Format;
            invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Format.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic org.apache.tomcat.util.net.jsse.PEMFile$Part.$SWITCH_TABLE$org$apache$tomcat$util$net$jsse$PEMFile$Format:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
}
SourceFile: "PEMFile.java"
NestHost: org.apache.tomcat.util.net.jsse.PEMFile
InnerClasses:
  private final Format = org.apache.tomcat.util.net.jsse.PEMFile$Format of org.apache.tomcat.util.net.jsse.PEMFile
  private Part = org.apache.tomcat.util.net.jsse.PEMFile$Part of org.apache.tomcat.util.net.jsse.PEMFile