class org.bouncycastle.openssl.PEMReader$RSAKeyPairParser extends org.bouncycastle.openssl.PEMReader$KeyPairParser
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.bouncycastle.openssl.PEMReader$RSAKeyPairParser
super_class: org.bouncycastle.openssl.PEMReader$KeyPairParser
{
final org.bouncycastle.openssl.PEMReader this$0;
descriptor: Lorg/bouncycastle/openssl/PEMReader;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(org.bouncycastle.openssl.PEMReader, java.lang.String);
descriptor: (Lorg/bouncycastle/openssl/PEMReader;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 // org.bouncycastle.openssl.PEMReader$RSAKeyPairParser this
start local 2 // java.lang.String provider
0: .line 363
aload 0 /* this */
aload 1
putfield org.bouncycastle.openssl.PEMReader$RSAKeyPairParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
1: .line 364
aload 0 /* this */
aload 1
aload 2 /* provider */
invokespecial org.bouncycastle.openssl.PEMReader$KeyPairParser.<init>:(Lorg/bouncycastle/openssl/PEMReader;Ljava/lang/String;)V
2: .line 365
return
end local 2 // java.lang.String provider
end local 0 // org.bouncycastle.openssl.PEMReader$RSAKeyPairParser this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/openssl/PEMReader$RSAKeyPairParser;
0 3 2 provider Ljava/lang/String;
MethodParameters:
Name Flags
this$0 final
provider
public java.lang.Object parseObject(org.bouncycastle.util.io.pem.PemObject);
descriptor: (Lorg/bouncycastle/util/io/pem/PemObject;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=14, args_size=2
start local 0 // org.bouncycastle.openssl.PEMReader$RSAKeyPairParser this
start local 1 // org.bouncycastle.util.io.pem.PemObject obj
0: .line 372
aload 0 /* this */
aload 1 /* obj */
invokevirtual org.bouncycastle.openssl.PEMReader$RSAKeyPairParser.readKeyPair:(Lorg/bouncycastle/util/io/pem/PemObject;)Lorg/bouncycastle/asn1/ASN1Sequence;
astore 2 /* seq */
start local 2 // org.bouncycastle.asn1.ASN1Sequence seq
1: .line 374
aload 2 /* seq */
invokevirtual org.bouncycastle.asn1.ASN1Sequence.size:()I
bipush 9
if_icmpeq 3
2: .line 376
new org.bouncycastle.openssl.PEMException
dup
ldc "malformed sequence in RSA private key"
invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;)V
athrow
3: .line 380
StackMap locals: org.bouncycastle.asn1.ASN1Sequence
StackMap stack:
aload 2 /* seq */
iconst_1
invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.DERInteger
astore 3 /* mod */
start local 3 // org.bouncycastle.asn1.DERInteger mod
4: .line 381
aload 2 /* seq */
iconst_2
invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.DERInteger
astore 4 /* pubExp */
start local 4 // org.bouncycastle.asn1.DERInteger pubExp
5: .line 382
aload 2 /* seq */
iconst_3
invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.DERInteger
astore 5 /* privExp */
start local 5 // org.bouncycastle.asn1.DERInteger privExp
6: .line 383
aload 2 /* seq */
iconst_4
invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.DERInteger
astore 6 /* p1 */
start local 6 // org.bouncycastle.asn1.DERInteger p1
7: .line 384
aload 2 /* seq */
iconst_5
invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.DERInteger
astore 7 /* p2 */
start local 7 // org.bouncycastle.asn1.DERInteger p2
8: .line 385
aload 2 /* seq */
bipush 6
invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.DERInteger
astore 8 /* exp1 */
start local 8 // org.bouncycastle.asn1.DERInteger exp1
9: .line 386
aload 2 /* seq */
bipush 7
invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.DERInteger
astore 9 /* exp2 */
start local 9 // org.bouncycastle.asn1.DERInteger exp2
10: .line 387
aload 2 /* seq */
bipush 8
invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.DERInteger
astore 10 /* crtCoef */
start local 10 // org.bouncycastle.asn1.DERInteger crtCoef
11: .line 389
new java.security.spec.RSAPublicKeySpec
dup
12: .line 390
aload 3 /* mod */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
aload 4 /* pubExp */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
13: .line 389
invokespecial java.security.spec.RSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 11 /* pubSpec */
start local 11 // java.security.spec.RSAPublicKeySpec pubSpec
14: .line 391
new java.security.spec.RSAPrivateCrtKeySpec
dup
15: .line 392
aload 3 /* mod */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
aload 4 /* pubExp */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
aload 5 /* privExp */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
16: .line 393
aload 6 /* p1 */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
aload 7 /* p2 */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
17: .line 394
aload 8 /* exp1 */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
aload 9 /* exp2 */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
18: .line 395
aload 10 /* crtCoef */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
19: .line 391
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 12 /* privSpec */
start local 12 // java.security.spec.RSAPrivateCrtKeySpec privSpec
20: .line 398
ldc "RSA"
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$RSAKeyPairParser.provider:Ljava/lang/String;
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
astore 13 /* fact */
start local 13 // java.security.KeyFactory fact
21: .line 401
new java.security.KeyPair
dup
22: .line 402
aload 13 /* fact */
aload 11 /* pubSpec */
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
23: .line 403
aload 13 /* fact */
aload 12 /* privSpec */
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
24: .line 401
invokespecial java.security.KeyPair.<init>:(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V
25: areturn
end local 13 // java.security.KeyFactory fact
end local 12 // java.security.spec.RSAPrivateCrtKeySpec privSpec
end local 11 // java.security.spec.RSAPublicKeySpec pubSpec
end local 10 // org.bouncycastle.asn1.DERInteger crtCoef
end local 9 // org.bouncycastle.asn1.DERInteger exp2
end local 8 // org.bouncycastle.asn1.DERInteger exp1
end local 7 // org.bouncycastle.asn1.DERInteger p2
end local 6 // org.bouncycastle.asn1.DERInteger p1
end local 5 // org.bouncycastle.asn1.DERInteger privExp
end local 4 // org.bouncycastle.asn1.DERInteger pubExp
end local 3 // org.bouncycastle.asn1.DERInteger mod
end local 2 // org.bouncycastle.asn1.ASN1Sequence seq
26: .line 405
StackMap locals: org.bouncycastle.openssl.PEMReader$RSAKeyPairParser org.bouncycastle.util.io.pem.PemObject
StackMap stack: java.io.IOException
astore 2 /* e */
start local 2 // java.io.IOException e
27: .line 407
aload 2 /* e */
athrow
end local 2 // java.io.IOException e
28: .line 409
StackMap locals:
StackMap stack: java.lang.Exception
astore 2 /* e */
start local 2 // java.lang.Exception e
29: .line 411
new org.bouncycastle.openssl.PEMException
dup
30: .line 412
new java.lang.StringBuilder
dup
ldc "problem creating RSA private key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2 /* e */
invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2 /* e */
31: .line 411
invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 2 // java.lang.Exception e
end local 1 // org.bouncycastle.util.io.pem.PemObject obj
end local 0 // org.bouncycastle.openssl.PEMReader$RSAKeyPairParser this
LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/bouncycastle/openssl/PEMReader$RSAKeyPairParser;
0 32 1 obj Lorg/bouncycastle/util/io/pem/PemObject;
1 26 2 seq Lorg/bouncycastle/asn1/ASN1Sequence;
4 26 3 mod Lorg/bouncycastle/asn1/DERInteger;
5 26 4 pubExp Lorg/bouncycastle/asn1/DERInteger;
6 26 5 privExp Lorg/bouncycastle/asn1/DERInteger;
7 26 6 p1 Lorg/bouncycastle/asn1/DERInteger;
8 26 7 p2 Lorg/bouncycastle/asn1/DERInteger;
9 26 8 exp1 Lorg/bouncycastle/asn1/DERInteger;
10 26 9 exp2 Lorg/bouncycastle/asn1/DERInteger;
11 26 10 crtCoef Lorg/bouncycastle/asn1/DERInteger;
14 26 11 pubSpec Ljava/security/spec/RSAPublicKeySpec;
20 26 12 privSpec Ljava/security/spec/RSAPrivateCrtKeySpec;
21 26 13 fact Ljava/security/KeyFactory;
27 28 2 e Ljava/io/IOException;
29 32 2 e Ljava/lang/Exception;
Exception table:
from to target type
0 25 26 Class java.io.IOException
0 25 28 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
obj
}
SourceFile: "PEMReader.java"
NestHost: org.bouncycastle.openssl.PEMReader
InnerClasses:
private abstract KeyPairParser = org.bouncycastle.openssl.PEMReader$KeyPairParser of org.bouncycastle.openssl.PEMReader
private RSAKeyPairParser = org.bouncycastle.openssl.PEMReader$RSAKeyPairParser of org.bouncycastle.openssl.PEMReader