abstract class org.bouncycastle.openssl.PEMReader$KeyPairParser implements org.bouncycastle.util.io.pem.PemObjectParser
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: org.bouncycastle.openssl.PEMReader$KeyPairParser
super_class: java.lang.Object
{
protected java.lang.String provider;
descriptor: Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
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=2, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield org.bouncycastle.openssl.PEMReader$KeyPairParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
1: aload 0
invokespecial java.lang.Object.<init>:()V
2: aload 0
aload 2
putfield org.bouncycastle.openssl.PEMReader$KeyPairParser.provider:Ljava/lang/String;
3: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/openssl/PEMReader$KeyPairParser;
0 4 2 provider Ljava/lang/String;
MethodParameters:
Name Flags
this$0 final
provider
protected org.bouncycastle.asn1.ASN1Sequence readKeyPair(org.bouncycastle.util.io.pem.PemObject);
descriptor: (Lorg/bouncycastle/util/io/pem/PemObject;)Lorg/bouncycastle/asn1/ASN1Sequence;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=10, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aload 1
invokevirtual org.bouncycastle.util.io.pem.PemObject.getHeaders:()Ljava/util/List;
astore 4
start local 4 3: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
start local 5 4: goto 11
5: StackMap locals: org.bouncycastle.openssl.PEMReader$KeyPairParser org.bouncycastle.util.io.pem.PemObject int java.lang.String java.util.List java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bouncycastle.util.io.pem.PemHeader
astore 6
start local 6 6: aload 6
invokevirtual org.bouncycastle.util.io.pem.PemHeader.getName:()Ljava/lang/String;
ldc "Proc-Type"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
aload 6
invokevirtual org.bouncycastle.util.io.pem.PemHeader.getValue:()Ljava/lang/String;
ldc "4,ENCRYPTED"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
7: iconst_1
istore 2
8: goto 11
9: StackMap locals: org.bouncycastle.util.io.pem.PemHeader
StackMap stack:
aload 6
invokevirtual org.bouncycastle.util.io.pem.PemHeader.getName:()Ljava/lang/String;
ldc "DEK-Info"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
10: aload 6
invokevirtual org.bouncycastle.util.io.pem.PemHeader.getValue:()Ljava/lang/String;
astore 3
end local 6 11: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 5 12: aload 1
invokevirtual org.bouncycastle.util.io.pem.PemObject.getContent:()[B
astore 5
start local 5 13: iload 2
ifeq 23
14: aload 0
getfield org.bouncycastle.openssl.PEMReader$KeyPairParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
getfield org.bouncycastle.openssl.PEMReader.pFinder:Lorg/bouncycastle/openssl/PasswordFinder;
ifnonnull 16
15: new org.bouncycastle.openssl.PasswordException
dup
ldc "No password finder specified, but a password is required"
invokespecial org.bouncycastle.openssl.PasswordException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals: org.bouncycastle.openssl.PEMReader$KeyPairParser org.bouncycastle.util.io.pem.PemObject int java.lang.String java.util.List byte[]
StackMap stack:
aload 0
getfield org.bouncycastle.openssl.PEMReader$KeyPairParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
getfield org.bouncycastle.openssl.PEMReader.pFinder:Lorg/bouncycastle/openssl/PasswordFinder;
invokeinterface org.bouncycastle.openssl.PasswordFinder.getPassword:()[C
astore 6
start local 6 17: aload 6
ifnonnull 19
18: new org.bouncycastle.openssl.PasswordException
dup
ldc "Password is null, but a password is required"
invokespecial org.bouncycastle.openssl.PasswordException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals: char[]
StackMap stack:
new java.util.StringTokenizer
dup
aload 3
ldc ","
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 7
start local 7 20: aload 7
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 8
start local 8 21: aload 7
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
invokestatic org.bouncycastle.util.encoders.Hex.decode:(Ljava/lang/String;)[B
astore 9
start local 9 22: iconst_0
aload 0
getfield org.bouncycastle.openssl.PEMReader$KeyPairParser.provider:Ljava/lang/String;
aload 5
aload 6
aload 8
aload 9
invokestatic org.bouncycastle.openssl.PEMUtilities.crypt:(ZLjava/lang/String;[B[CLjava/lang/String;[B)[B
astore 5
end local 9 end local 8 end local 7 end local 6 23: StackMap locals:
StackMap stack:
aload 5
invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
checkcast org.bouncycastle.asn1.ASN1Sequence
24: areturn
25: StackMap locals:
StackMap stack: java.io.IOException
astore 6
start local 6 26: iload 2
ifeq 28
27: new org.bouncycastle.openssl.PEMException
dup
ldc "exception decoding - please check password and data."
aload 6
invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
28: StackMap locals: java.io.IOException
StackMap stack:
new org.bouncycastle.openssl.PEMException
dup
aload 6
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
aload 6
invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 6 29: StackMap locals: org.bouncycastle.openssl.PEMReader$KeyPairParser org.bouncycastle.util.io.pem.PemObject int java.lang.String java.util.List byte[]
StackMap stack: java.lang.ClassCastException
astore 6
start local 6 30: iload 2
ifeq 32
31: new org.bouncycastle.openssl.PEMException
dup
ldc "exception decoding - please check password and data."
aload 6
invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
32: StackMap locals: java.lang.ClassCastException
StackMap stack:
new org.bouncycastle.openssl.PEMException
dup
aload 6
invokevirtual java.lang.ClassCastException.getMessage:()Ljava/lang/String;
aload 6
invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 6 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 33 0 this Lorg/bouncycastle/openssl/PEMReader$KeyPairParser;
0 33 1 obj Lorg/bouncycastle/util/io/pem/PemObject;
1 33 2 isEncrypted Z
2 33 3 dekInfo Ljava/lang/String;
3 33 4 headers Ljava/util/List;
4 12 5 it Ljava/util/Iterator;
6 11 6 hdr Lorg/bouncycastle/util/io/pem/PemHeader;
13 33 5 keyBytes [B
17 23 6 password [C
20 23 7 tknz Ljava/util/StringTokenizer;
21 23 8 dekAlgName Ljava/lang/String;
22 23 9 iv [B
26 29 6 e Ljava/io/IOException;
30 33 6 e Ljava/lang/ClassCastException;
Exception table:
from to target type
23 24 25 Class java.io.IOException
23 24 29 Class java.lang.ClassCastException
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