class org.bouncycastle.openssl.PEMReader$DSAKeyPairParser extends org.bouncycastle.openssl.PEMReader$KeyPairParser
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.bouncycastle.openssl.PEMReader$DSAKeyPairParser
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$DSAKeyPairParser this
start local 2 // java.lang.String provider
0: .line 268
aload 0 /* this */
aload 1
putfield org.bouncycastle.openssl.PEMReader$DSAKeyPairParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
1: .line 269
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 270
return
end local 2 // java.lang.String provider
end local 0 // org.bouncycastle.openssl.PEMReader$DSAKeyPairParser this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/openssl/PEMReader$DSAKeyPairParser;
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=6, locals=11, args_size=2
start local 0 // org.bouncycastle.openssl.PEMReader$DSAKeyPairParser this
start local 1 // org.bouncycastle.util.io.pem.PemObject obj
0: .line 277
aload 0 /* this */
aload 1 /* obj */
invokevirtual org.bouncycastle.openssl.PEMReader$DSAKeyPairParser.readKeyPair:(Lorg/bouncycastle/util/io/pem/PemObject;)Lorg/bouncycastle/asn1/ASN1Sequence;
astore 2 /* seq */
start local 2 // org.bouncycastle.asn1.ASN1Sequence seq
1: .line 279
aload 2 /* seq */
invokevirtual org.bouncycastle.asn1.ASN1Sequence.size:()I
bipush 6
if_icmpeq 3
2: .line 281
new org.bouncycastle.openssl.PEMException
dup
ldc "malformed sequence in DSA private key"
invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;)V
athrow
3: .line 285
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 /* p */
start local 3 // org.bouncycastle.asn1.DERInteger p
4: .line 286
aload 2 /* seq */
iconst_2
invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.DERInteger
astore 4 /* q */
start local 4 // org.bouncycastle.asn1.DERInteger q
5: .line 287
aload 2 /* seq */
iconst_3
invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.DERInteger
astore 5 /* g */
start local 5 // org.bouncycastle.asn1.DERInteger g
6: .line 288
aload 2 /* seq */
iconst_4
invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.DERInteger
astore 6 /* y */
start local 6 // org.bouncycastle.asn1.DERInteger y
7: .line 289
aload 2 /* seq */
iconst_5
invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjectAt:(I)Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.DERInteger
astore 7 /* x */
start local 7 // org.bouncycastle.asn1.DERInteger x
8: .line 291
new java.security.spec.DSAPrivateKeySpec
dup
9: .line 292
aload 7 /* x */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
aload 3 /* p */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
10: .line 293
aload 4 /* q */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
aload 5 /* g */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
11: .line 291
invokespecial java.security.spec.DSAPrivateKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 8 /* privSpec */
start local 8 // java.security.spec.DSAPrivateKeySpec privSpec
12: .line 294
new java.security.spec.DSAPublicKeySpec
dup
13: .line 295
aload 6 /* y */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
aload 3 /* p */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
14: .line 296
aload 4 /* q */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
aload 5 /* g */
invokevirtual org.bouncycastle.asn1.DERInteger.getValue:()Ljava/math/BigInteger;
15: .line 294
invokespecial java.security.spec.DSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 9 /* pubSpec */
start local 9 // java.security.spec.DSAPublicKeySpec pubSpec
16: .line 298
ldc "DSA"
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$DSAKeyPairParser.provider:Ljava/lang/String;
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
astore 10 /* fact */
start local 10 // java.security.KeyFactory fact
17: .line 300
new java.security.KeyPair
dup
18: .line 301
aload 10 /* fact */
aload 9 /* pubSpec */
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
19: .line 302
aload 10 /* fact */
aload 8 /* privSpec */
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
20: .line 300
invokespecial java.security.KeyPair.<init>:(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V
21: areturn
end local 10 // java.security.KeyFactory fact
end local 9 // java.security.spec.DSAPublicKeySpec pubSpec
end local 8 // java.security.spec.DSAPrivateKeySpec privSpec
end local 7 // org.bouncycastle.asn1.DERInteger x
end local 6 // org.bouncycastle.asn1.DERInteger y
end local 5 // org.bouncycastle.asn1.DERInteger g
end local 4 // org.bouncycastle.asn1.DERInteger q
end local 3 // org.bouncycastle.asn1.DERInteger p
end local 2 // org.bouncycastle.asn1.ASN1Sequence seq
22: .line 304
StackMap locals: org.bouncycastle.openssl.PEMReader$DSAKeyPairParser org.bouncycastle.util.io.pem.PemObject
StackMap stack: java.io.IOException
astore 2 /* e */
start local 2 // java.io.IOException e
23: .line 306
aload 2 /* e */
athrow
end local 2 // java.io.IOException e
24: .line 308
StackMap locals:
StackMap stack: java.lang.Exception
astore 2 /* e */
start local 2 // java.lang.Exception e
25: .line 310
new org.bouncycastle.openssl.PEMException
dup
26: .line 311
new java.lang.StringBuilder
dup
ldc "problem creating DSA 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 */
27: .line 310
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$DSAKeyPairParser this
LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/bouncycastle/openssl/PEMReader$DSAKeyPairParser;
0 28 1 obj Lorg/bouncycastle/util/io/pem/PemObject;
1 22 2 seq Lorg/bouncycastle/asn1/ASN1Sequence;
4 22 3 p Lorg/bouncycastle/asn1/DERInteger;
5 22 4 q Lorg/bouncycastle/asn1/DERInteger;
6 22 5 g Lorg/bouncycastle/asn1/DERInteger;
7 22 6 y Lorg/bouncycastle/asn1/DERInteger;
8 22 7 x Lorg/bouncycastle/asn1/DERInteger;
12 22 8 privSpec Ljava/security/spec/DSAPrivateKeySpec;
16 22 9 pubSpec Ljava/security/spec/DSAPublicKeySpec;
17 22 10 fact Ljava/security/KeyFactory;
23 24 2 e Ljava/io/IOException;
25 28 2 e Ljava/lang/Exception;
Exception table:
from to target type
0 21 22 Class java.io.IOException
0 21 24 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
obj
}
SourceFile: "PEMReader.java"
NestHost: org.bouncycastle.openssl.PEMReader
InnerClasses:
private DSAKeyPairParser = org.bouncycastle.openssl.PEMReader$DSAKeyPairParser of org.bouncycastle.openssl.PEMReader
private abstract KeyPairParser = org.bouncycastle.openssl.PEMReader$KeyPairParser of org.bouncycastle.openssl.PEMReader