class org.bouncycastle.openssl.PEMParser$KeyPairParser implements org.bouncycastle.util.io.pem.PemObjectParser
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.bouncycastle.openssl.PEMParser$KeyPairParser
super_class: java.lang.Object
{
private final org.bouncycastle.openssl.PEMKeyPairParser pemKeyPairParser;
descriptor: Lorg/bouncycastle/openssl/PEMKeyPairParser;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final org.bouncycastle.openssl.PEMParser this$0;
descriptor: Lorg/bouncycastle/openssl/PEMParser;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(org.bouncycastle.openssl.PEMParser, org.bouncycastle.openssl.PEMKeyPairParser);
descriptor: (Lorg/bouncycastle/openssl/PEMParser;Lorg/bouncycastle/openssl/PEMKeyPairParser;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 // org.bouncycastle.openssl.PEMParser$KeyPairParser this
start local 2 // org.bouncycastle.openssl.PEMKeyPairParser pemKeyPairParser
0: .line 116
aload 0 /* this */
aload 1
putfield org.bouncycastle.openssl.PEMParser$KeyPairParser.this$0:Lorg/bouncycastle/openssl/PEMParser;
1: .line 115
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
2: .line 117
aload 0 /* this */
aload 2 /* pemKeyPairParser */
putfield org.bouncycastle.openssl.PEMParser$KeyPairParser.pemKeyPairParser:Lorg/bouncycastle/openssl/PEMKeyPairParser;
3: .line 118
return
end local 2 // org.bouncycastle.openssl.PEMKeyPairParser pemKeyPairParser
end local 0 // org.bouncycastle.openssl.PEMParser$KeyPairParser this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/openssl/PEMParser$KeyPairParser;
0 4 2 pemKeyPairParser Lorg/bouncycastle/openssl/PEMKeyPairParser;
MethodParameters:
Name Flags
this$0 final
pemKeyPairParser
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=9, args_size=2
start local 0 // org.bouncycastle.openssl.PEMParser$KeyPairParser this
start local 1 // org.bouncycastle.util.io.pem.PemObject obj
0: .line 127
iconst_0
istore 2 /* isEncrypted */
start local 2 // boolean isEncrypted
1: .line 128
aconst_null
astore 3 /* dekInfo */
start local 3 // java.lang.String dekInfo
2: .line 129
aload 1 /* obj */
invokevirtual org.bouncycastle.util.io.pem.PemObject.getHeaders:()Ljava/util/List;
astore 4 /* headers */
start local 4 // java.util.List headers
3: .line 131
aload 4 /* headers */
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5 /* it */
start local 5 // java.util.Iterator it
4: goto 11
5: .line 133
StackMap locals: org.bouncycastle.openssl.PEMParser$KeyPairParser org.bouncycastle.util.io.pem.PemObject int java.lang.String java.util.List java.util.Iterator
StackMap stack:
aload 5 /* it */
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bouncycastle.util.io.pem.PemHeader
astore 6 /* hdr */
start local 6 // org.bouncycastle.util.io.pem.PemHeader hdr
6: .line 135
aload 6 /* hdr */
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 /* hdr */
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: .line 137
iconst_1
istore 2 /* isEncrypted */
8: .line 138
goto 11
9: .line 139
StackMap locals: org.bouncycastle.util.io.pem.PemHeader
StackMap stack:
aload 6 /* hdr */
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: .line 141
aload 6 /* hdr */
invokevirtual org.bouncycastle.util.io.pem.PemHeader.getValue:()Ljava/lang/String;
astore 3 /* dekInfo */
end local 6 // org.bouncycastle.util.io.pem.PemHeader hdr
11: .line 131
StackMap locals:
StackMap stack:
aload 5 /* it */
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 5 // java.util.Iterator it
12: .line 148
aload 1 /* obj */
invokevirtual org.bouncycastle.util.io.pem.PemObject.getContent:()[B
astore 5 /* keyBytes */
start local 5 // byte[] keyBytes
13: .line 152
iload 2 /* isEncrypted */
ifeq 19
14: .line 154
new java.util.StringTokenizer
dup
aload 3 /* dekInfo */
ldc ","
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 6 /* tknz */
start local 6 // java.util.StringTokenizer tknz
15: .line 155
aload 6 /* tknz */
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 7 /* dekAlgName */
start local 7 // java.lang.String dekAlgName
16: .line 156
aload 6 /* tknz */
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
invokestatic org.bouncycastle.util.encoders.Hex.decode:(Ljava/lang/String;)[B
astore 8 /* iv */
start local 8 // byte[] iv
17: .line 158
new org.bouncycastle.openssl.PEMEncryptedKeyPair
dup
aload 7 /* dekAlgName */
aload 8 /* iv */
aload 5 /* keyBytes */
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMParser$KeyPairParser.pemKeyPairParser:Lorg/bouncycastle/openssl/PEMKeyPairParser;
invokespecial org.bouncycastle.openssl.PEMEncryptedKeyPair.<init>:(Ljava/lang/String;[B[BLorg/bouncycastle/openssl/PEMKeyPairParser;)V
18: areturn
end local 8 // byte[] iv
end local 7 // java.lang.String dekAlgName
end local 6 // java.util.StringTokenizer tknz
19: .line 161
StackMap locals: org.bouncycastle.openssl.PEMParser$KeyPairParser org.bouncycastle.util.io.pem.PemObject int java.lang.String java.util.List byte[]
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMParser$KeyPairParser.pemKeyPairParser:Lorg/bouncycastle/openssl/PEMKeyPairParser;
aload 5 /* keyBytes */
invokeinterface org.bouncycastle.openssl.PEMKeyPairParser.parse:([B)Lorg/bouncycastle/openssl/PEMKeyPair;
20: areturn
21: .line 163
StackMap locals:
StackMap stack: java.io.IOException
astore 6 /* e */
start local 6 // java.io.IOException e
22: .line 165
iload 2 /* isEncrypted */
ifeq 24
23: .line 167
new org.bouncycastle.openssl.PEMException
dup
ldc "exception decoding - please check password and data."
aload 6 /* e */
invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
24: .line 171
StackMap locals: java.io.IOException
StackMap stack:
new org.bouncycastle.openssl.PEMException
dup
aload 6 /* e */
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
aload 6 /* e */
invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 6 // java.io.IOException e
25: .line 174
StackMap locals: org.bouncycastle.openssl.PEMParser$KeyPairParser org.bouncycastle.util.io.pem.PemObject int java.lang.String java.util.List byte[]
StackMap stack: java.lang.IllegalArgumentException
astore 6 /* e */
start local 6 // java.lang.IllegalArgumentException e
26: .line 176
iload 2 /* isEncrypted */
ifeq 28
27: .line 178
new org.bouncycastle.openssl.PEMException
dup
ldc "exception decoding - please check password and data."
aload 6 /* e */
invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
28: .line 182
StackMap locals: java.lang.IllegalArgumentException
StackMap stack:
new org.bouncycastle.openssl.PEMException
dup
aload 6 /* e */
invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
aload 6 /* e */
invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 6 // java.lang.IllegalArgumentException e
end local 5 // byte[] keyBytes
end local 4 // java.util.List headers
end local 3 // java.lang.String dekInfo
end local 2 // boolean isEncrypted
end local 1 // org.bouncycastle.util.io.pem.PemObject obj
end local 0 // org.bouncycastle.openssl.PEMParser$KeyPairParser this
LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/bouncycastle/openssl/PEMParser$KeyPairParser;
0 29 1 obj Lorg/bouncycastle/util/io/pem/PemObject;
1 29 2 isEncrypted Z
2 29 3 dekInfo Ljava/lang/String;
3 29 4 headers Ljava/util/List;
4 12 5 it Ljava/util/Iterator;
6 11 6 hdr Lorg/bouncycastle/util/io/pem/PemHeader;
13 29 5 keyBytes [B
15 19 6 tknz Ljava/util/StringTokenizer;
16 19 7 dekAlgName Ljava/lang/String;
17 19 8 iv [B
22 25 6 e Ljava/io/IOException;
26 29 6 e Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
13 18 21 Class java.io.IOException
19 20 21 Class java.io.IOException
13 18 25 Class java.lang.IllegalArgumentException
19 20 25 Class java.lang.IllegalArgumentException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
obj
}
SourceFile: "PEMParser.java"
NestHost: org.bouncycastle.openssl.PEMParser
InnerClasses:
private KeyPairParser = org.bouncycastle.openssl.PEMParser$KeyPairParser of org.bouncycastle.openssl.PEMParser