class org.bouncycastle.openssl.PEMReader$PublicKeyParser implements org.bouncycastle.util.io.pem.PemObjectParser
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.bouncycastle.openssl.PEMReader$PublicKeyParser
super_class: java.lang.Object
{
private java.lang.String provider;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
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 // org.bouncycastle.openssl.PEMReader$PublicKeyParser this
start local 2 // java.lang.String provider
0: .line 423
aload 0 /* this */
aload 1
putfield org.bouncycastle.openssl.PEMReader$PublicKeyParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
1: .line 422
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
2: .line 424
aload 0 /* this */
aload 2 /* provider */
putfield org.bouncycastle.openssl.PEMReader$PublicKeyParser.provider:Ljava/lang/String;
3: .line 425
return
end local 2 // java.lang.String provider
end local 0 // org.bouncycastle.openssl.PEMReader$PublicKeyParser this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/openssl/PEMReader$PublicKeyParser;
0 4 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=5, locals=7, args_size=2
start local 0 // org.bouncycastle.openssl.PEMReader$PublicKeyParser this
start local 1 // org.bouncycastle.util.io.pem.PemObject obj
0: .line 430
new java.security.spec.X509EncodedKeySpec
dup
aload 1 /* obj */
invokevirtual org.bouncycastle.util.io.pem.PemObject.getContent:()[B
invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
astore 2 /* keySpec */
start local 2 // java.security.spec.KeySpec keySpec
1: .line 431
iconst_2
anewarray java.lang.String
dup
iconst_0
ldc "DSA"
aastore
dup
iconst_1
ldc "RSA"
aastore
astore 3 /* algorithms */
start local 3 // java.lang.String[] algorithms
2: .line 432
iconst_0
istore 4 /* i */
start local 4 // int i
3: goto 13
4: .line 436
StackMap locals: java.security.spec.KeySpec java.lang.String[] int
StackMap stack:
aload 3 /* algorithms */
iload 4 /* i */
aaload
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$PublicKeyParser.provider:Ljava/lang/String;
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
astore 5 /* keyFact */
start local 5 // java.security.KeyFactory keyFact
5: .line 437
aload 5 /* keyFact */
aload 2 /* keySpec */
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
astore 6 /* pubKey */
start local 6 // java.security.PublicKey pubKey
6: .line 439
aload 6 /* pubKey */
7: areturn
end local 6 // java.security.PublicKey pubKey
end local 5 // java.security.KeyFactory keyFact
8: .line 441
StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
pop
goto 12
9: .line 445
StackMap locals:
StackMap stack: java.security.spec.InvalidKeySpecException
pop
goto 12
10: .line 449
StackMap locals:
StackMap stack: java.security.NoSuchProviderException
pop
11: .line 451
new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "can't find provider "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$PublicKeyParser.provider:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
12: .line 432
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
13: iload 4 /* i */
aload 3 /* algorithms */
arraylength
if_icmplt 4
end local 4 // int i
14: .line 455
aconst_null
areturn
end local 3 // java.lang.String[] algorithms
end local 2 // java.security.spec.KeySpec keySpec
end local 1 // org.bouncycastle.util.io.pem.PemObject obj
end local 0 // org.bouncycastle.openssl.PEMReader$PublicKeyParser this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/bouncycastle/openssl/PEMReader$PublicKeyParser;
0 15 1 obj Lorg/bouncycastle/util/io/pem/PemObject;
1 15 2 keySpec Ljava/security/spec/KeySpec;
2 15 3 algorithms [Ljava/lang/String;
3 14 4 i I
5 8 5 keyFact Ljava/security/KeyFactory;
6 8 6 pubKey Ljava/security/PublicKey;
Exception table:
from to target type
4 7 8 Class java.security.NoSuchAlgorithmException
4 7 9 Class java.security.spec.InvalidKeySpecException
4 7 10 Class java.security.NoSuchProviderException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
obj
}
SourceFile: "PEMReader.java"
NestHost: org.bouncycastle.openssl.PEMReader
InnerClasses:
private PublicKeyParser = org.bouncycastle.openssl.PEMReader$PublicKeyParser of org.bouncycastle.openssl.PEMReader