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 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 0: aload 0
aload 1
putfield org.apache.tomcat.util.net.jsse.PEMFile$Part.this$0:Lorg/apache/tomcat/util/net/jsse/PEMFile;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc ""
putfield org.apache.tomcat.util.net.jsse.PEMFile$Part.content:Ljava/lang/String;
2: return
end local 0 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 0: aload 0
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 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 0: ldc "X.509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 1
start local 1 1: aload 1
new java.io.ByteArrayInputStream
dup
aload 0
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 end local 0 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 start local 1 start local 2 start local 3 0: aconst_null
astore 4
start local 4 1: aload 1
ifnonnull 7
2: invokestatic org.apache.tomcat.util.net.jsse.PEMFile$Part.$SWITCH_TABLE$org$apache$tomcat$util$net$jsse$PEMFile$Format:()[I
aload 3
invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Format.ordinal:()I
iaload
tableswitch { // 1 - 2
1: 3
2: 5
default: 6
}
3: StackMap locals: java.security.spec.KeySpec
StackMap stack:
aload 0
aload 0
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
4: goto 13
5: StackMap locals:
StackMap stack:
new java.security.spec.PKCS8EncodedKeySpec
dup
aload 0
invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Part.decode:()[B
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
astore 4
6: StackMap locals:
StackMap stack:
goto 13
7: StackMap locals:
StackMap stack:
new javax.crypto.EncryptedPrivateKeyInfo
dup
aload 0
invokevirtual org.apache.tomcat.util.net.jsse.PEMFile$Part.decode:()[B
invokespecial javax.crypto.EncryptedPrivateKeyInfo.<init>:([B)V
astore 5
start local 5 8: aload 5
invokevirtual javax.crypto.EncryptedPrivateKeyInfo.getAlgName:()Ljava/lang/String;
invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
astore 6
start local 6 9: aload 6
new javax.crypto.spec.PBEKeySpec
dup
aload 1
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
start local 7 10: aload 5
invokevirtual javax.crypto.EncryptedPrivateKeyInfo.getAlgName:()Ljava/lang/String;
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 8
start local 8 11: aload 8
iconst_2
aload 7
aload 5
invokevirtual javax.crypto.EncryptedPrivateKeyInfo.getAlgParameters:()Ljava/security/AlgorithmParameters;
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
12: aload 5
aload 8
invokevirtual javax.crypto.EncryptedPrivateKeyInfo.getKeySpec:(Ljavax/crypto/Cipher;)Ljava/security/spec/PKCS8EncodedKeySpec;
astore 4
end local 8 end local 7 end local 6 end local 5 13: 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 "jsse.pemParseError"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
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
start local 5 14: aload 2
ifnonnull 24
15: 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 22
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:
16: aload 9
iload 7
aaload
astore 6
start local 6 17: aload 6
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
aload 4
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
18: areturn
19: 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
start local 10 20: aload 5
aload 10
invokevirtual java.security.InvalidKeyException.addSuppressed:(Ljava/lang/Throwable;)V
end local 10 end local 6 21: 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:
22: iload 7
iload 8
if_icmplt 16
23: goto 28
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
StackMap stack:
aload 2
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
aload 4
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
25: areturn
26: StackMap locals:
StackMap stack: java.security.spec.InvalidKeySpecException
astore 6
start local 6 27: aload 5
aload 6
invokevirtual java.security.InvalidKeyException.addSuppressed:(Ljava/lang/Throwable;)V
end local 6 28: StackMap locals:
StackMap stack:
aload 5
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/apache/tomcat/util/net/jsse/PEMFile$Part;
0 29 1 password Ljava/lang/String;
0 29 2 keyAlgorithm Ljava/lang/String;
0 29 3 format Lorg/apache/tomcat/util/net/jsse/PEMFile$Format;
1 29 4 keySpec Ljava/security/spec/KeySpec;
8 13 5 privateKeyInfo Ljavax/crypto/EncryptedPrivateKeyInfo;
9 13 6 secretKeyFactory Ljavax/crypto/SecretKeyFactory;
10 13 7 secretKey Ljavax/crypto/SecretKey;
11 13 8 cipher Ljavax/crypto/Cipher;
14 29 5 exception Ljava/security/InvalidKeyException;
17 21 6 algorithm Ljava/lang/String;
20 21 10 e Ljava/security/spec/InvalidKeySpecException;
27 28 6 e Ljava/security/spec/InvalidKeySpecException;
Exception table:
from to target type
17 18 19 Class java.security.spec.InvalidKeySpecException
24 25 26 Class java.security.spec.InvalidKeySpecException
Exceptions:
throws java.security.GeneralSecurityException, java.io.IOException
MethodParameters:
Name Flags
password
keyAlgorithm
format
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 start local 1 0: new org.apache.tomcat.util.buf.Asn1Parser
dup
aload 1
invokespecial org.apache.tomcat.util.buf.Asn1Parser.<init>:([B)V
astore 2
start local 2 1: aload 2
bipush 48
invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseTag:(I)V
2: aload 2
invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseFullLength:()V
3: aload 2
invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
astore 3
start local 3 4: aload 3
invokevirtual java.math.BigInteger.intValue:()I
iconst_1
if_icmpne 6
5: 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: StackMap locals: org.apache.tomcat.util.buf.Asn1Parser java.math.BigInteger
StackMap stack:
new java.security.spec.RSAPrivateCrtKeySpec
dup
aload 2
invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
aload 2
invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
aload 2
invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
aload 2
invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
7: aload 2
invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
aload 2
invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
aload 2
invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
aload 2
invokevirtual org.apache.tomcat.util.buf.Asn1Parser.parseInt:()Ljava/math/BigInteger;
8: 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 end local 2 end local 1 end local 0 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: 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
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
}
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