class org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser implements org.bouncycastle.util.io.pem.PemObjectParser
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser
super_class: java.lang.Object
{
private java.lang.String symProvider;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String asymProvider;
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, java.lang.String);
descriptor: (Lorg/bouncycastle/openssl/PEMReader;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 // org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser this
start local 2 // java.lang.String symProvider
start local 3 // java.lang.String asymProvider
0: .line 668
aload 0 /* this */
aload 1
putfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
1: .line 667
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
2: .line 669
aload 0 /* this */
aload 2 /* symProvider */
putfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
3: .line 670
aload 0 /* this */
aload 3 /* asymProvider */
putfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.asymProvider:Ljava/lang/String;
4: .line 671
return
end local 3 // java.lang.String asymProvider
end local 2 // java.lang.String symProvider
end local 0 // org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/openssl/PEMReader$EncryptedPrivateKeyParser;
0 5 2 symProvider Ljava/lang/String;
0 5 3 asymProvider Ljava/lang/String;
MethodParameters:
Name Flags
this$0 final
symProvider
asymProvider
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=17, args_size=2
start local 0 // org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser this
start local 1 // org.bouncycastle.util.io.pem.PemObject obj
0: .line 684
aload 1 /* obj */
invokevirtual org.bouncycastle.util.io.pem.PemObject.getContent:()[B
invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
invokestatic org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/EncryptedPrivateKeyInfo;
astore 2 /* info */
start local 2 // org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo info
1: .line 685
aload 2 /* info */
invokevirtual org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getEncryptionAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
astore 3 /* algId */
start local 3 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
2: .line 687
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
getfield org.bouncycastle.openssl.PEMReader.pFinder:Lorg/bouncycastle/openssl/PasswordFinder;
ifnonnull 4
3: .line 689
new org.bouncycastle.openssl.PEMException
dup
ldc "no PasswordFinder specified"
invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;)V
athrow
4: .line 692
StackMap locals: org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo org.bouncycastle.asn1.x509.AlgorithmIdentifier
StackMap stack:
aload 3 /* algId */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokestatic org.bouncycastle.openssl.PEMUtilities.isPKCS5Scheme2:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Z
ifeq 22
5: .line 694
aload 3 /* algId */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
invokestatic org.bouncycastle.asn1.pkcs.PBES2Parameters.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PBES2Parameters;
astore 4 /* params */
start local 4 // org.bouncycastle.asn1.pkcs.PBES2Parameters params
6: .line 695
aload 4 /* params */
invokevirtual org.bouncycastle.asn1.pkcs.PBES2Parameters.getKeyDerivationFunc:()Lorg/bouncycastle/asn1/pkcs/KeyDerivationFunc;
astore 5 /* func */
start local 5 // org.bouncycastle.asn1.pkcs.KeyDerivationFunc func
7: .line 696
aload 4 /* params */
invokevirtual org.bouncycastle.asn1.pkcs.PBES2Parameters.getEncryptionScheme:()Lorg/bouncycastle/asn1/pkcs/EncryptionScheme;
astore 6 /* scheme */
start local 6 // org.bouncycastle.asn1.pkcs.EncryptionScheme scheme
8: .line 697
aload 5 /* func */
invokevirtual org.bouncycastle.asn1.pkcs.KeyDerivationFunc.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
checkcast org.bouncycastle.asn1.pkcs.PBKDF2Params
astore 7 /* defParams */
start local 7 // org.bouncycastle.asn1.pkcs.PBKDF2Params defParams
9: .line 699
aload 7 /* defParams */
invokevirtual org.bouncycastle.asn1.pkcs.PBKDF2Params.getIterationCount:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.intValue:()I
istore 8 /* iterationCount */
start local 8 // int iterationCount
10: .line 700
aload 7 /* defParams */
invokevirtual org.bouncycastle.asn1.pkcs.PBKDF2Params.getSalt:()[B
astore 9 /* salt */
start local 9 // byte[] salt
11: .line 702
aload 6 /* scheme */
invokevirtual org.bouncycastle.asn1.pkcs.EncryptionScheme.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
astore 10 /* algorithm */
start local 10 // java.lang.String algorithm
12: .line 704
aload 10 /* algorithm */
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
getfield org.bouncycastle.openssl.PEMReader.pFinder:Lorg/bouncycastle/openssl/PasswordFinder;
invokeinterface org.bouncycastle.openssl.PasswordFinder.getPassword:()[C
aload 9 /* salt */
iload 8 /* iterationCount */
invokestatic org.bouncycastle.openssl.PEMUtilities.generateSecretKeyForPKCS5Scheme2:(Ljava/lang/String;[C[BI)Ljavax/crypto/SecretKey;
astore 11 /* key */
start local 11 // javax.crypto.SecretKey key
13: .line 706
aload 10 /* algorithm */
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 12 /* cipher */
start local 12 // javax.crypto.Cipher cipher
14: .line 707
aload 10 /* algorithm */
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/AlgorithmParameters;
astore 13 /* algParams */
start local 13 // java.security.AlgorithmParameters algParams
15: .line 709
aload 13 /* algParams */
aload 6 /* scheme */
invokevirtual org.bouncycastle.asn1.pkcs.EncryptionScheme.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
invokeinterface org.bouncycastle.asn1.DEREncodable.getDERObject:()Lorg/bouncycastle/asn1/DERObject;
invokevirtual org.bouncycastle.asn1.DERObject.getEncoded:()[B
invokevirtual java.security.AlgorithmParameters.init:([B)V
16: .line 711
aload 12 /* cipher */
iconst_2
aload 11 /* key */
aload 13 /* algParams */
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
17: .line 713
aload 12 /* cipher */
aload 2 /* info */
invokevirtual org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getEncryptedData:()[B
invokevirtual javax.crypto.Cipher.doFinal:([B)[B
invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
invokestatic org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
astore 14 /* pInfo */
start local 14 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pInfo
18: .line 714
new java.security.spec.PKCS8EncodedKeySpec
dup
aload 14 /* pInfo */
invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getEncoded:()[B
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
astore 15 /* keySpec */
start local 15 // java.security.spec.PKCS8EncodedKeySpec keySpec
19: .line 716
aload 14 /* pInfo */
invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.asymProvider:Ljava/lang/String;
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
astore 16 /* keyFact */
start local 16 // java.security.KeyFactory keyFact
20: .line 718
aload 16 /* keyFact */
aload 15 /* keySpec */
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
21: areturn
end local 16 // java.security.KeyFactory keyFact
end local 15 // java.security.spec.PKCS8EncodedKeySpec keySpec
end local 14 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pInfo
end local 13 // java.security.AlgorithmParameters algParams
end local 12 // javax.crypto.Cipher cipher
end local 11 // javax.crypto.SecretKey key
end local 10 // java.lang.String algorithm
end local 9 // byte[] salt
end local 8 // int iterationCount
end local 7 // org.bouncycastle.asn1.pkcs.PBKDF2Params defParams
end local 6 // org.bouncycastle.asn1.pkcs.EncryptionScheme scheme
end local 5 // org.bouncycastle.asn1.pkcs.KeyDerivationFunc func
end local 4 // org.bouncycastle.asn1.pkcs.PBES2Parameters params
22: .line 720
StackMap locals:
StackMap stack:
aload 3 /* algId */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokestatic org.bouncycastle.openssl.PEMUtilities.isPKCS12:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Z
ifeq 35
23: .line 722
aload 3 /* algId */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
invokestatic org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PKCS12PBEParams;
astore 4 /* params */
start local 4 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams params
24: .line 723
aload 3 /* algId */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
astore 5 /* algorithm */
start local 5 // java.lang.String algorithm
25: .line 724
new javax.crypto.spec.PBEKeySpec
dup
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
getfield org.bouncycastle.openssl.PEMReader.pFinder:Lorg/bouncycastle/openssl/PasswordFinder;
invokeinterface org.bouncycastle.openssl.PasswordFinder.getPassword:()[C
invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
astore 6 /* pbeSpec */
start local 6 // javax.crypto.spec.PBEKeySpec pbeSpec
26: .line 726
aload 5 /* algorithm */
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
astore 7 /* secKeyFact */
start local 7 // javax.crypto.SecretKeyFactory secKeyFact
27: .line 727
new javax.crypto.spec.PBEParameterSpec
dup
aload 4 /* params */
invokevirtual org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getIV:()[B
aload 4 /* params */
invokevirtual org.bouncycastle.asn1.pkcs.PKCS12PBEParams.getIterations:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.intValue:()I
invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
astore 8 /* defParams */
start local 8 // javax.crypto.spec.PBEParameterSpec defParams
28: .line 729
aload 5 /* algorithm */
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 9 /* cipher */
start local 9 // javax.crypto.Cipher cipher
29: .line 731
aload 9 /* cipher */
iconst_2
aload 7 /* secKeyFact */
aload 6 /* pbeSpec */
invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
aload 8 /* defParams */
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
30: .line 733
aload 9 /* cipher */
aload 2 /* info */
invokevirtual org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getEncryptedData:()[B
invokevirtual javax.crypto.Cipher.doFinal:([B)[B
invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
invokestatic org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
astore 10 /* pInfo */
start local 10 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pInfo
31: .line 734
new java.security.spec.PKCS8EncodedKeySpec
dup
aload 10 /* pInfo */
invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getEncoded:()[B
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
astore 11 /* keySpec */
start local 11 // java.security.spec.PKCS8EncodedKeySpec keySpec
32: .line 736
aload 10 /* pInfo */
invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.asymProvider:Ljava/lang/String;
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
astore 12 /* keyFact */
start local 12 // java.security.KeyFactory keyFact
33: .line 738
aload 12 /* keyFact */
aload 11 /* keySpec */
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
34: areturn
end local 12 // java.security.KeyFactory keyFact
end local 11 // java.security.spec.PKCS8EncodedKeySpec keySpec
end local 10 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pInfo
end local 9 // javax.crypto.Cipher cipher
end local 8 // javax.crypto.spec.PBEParameterSpec defParams
end local 7 // javax.crypto.SecretKeyFactory secKeyFact
end local 6 // javax.crypto.spec.PBEKeySpec pbeSpec
end local 5 // java.lang.String algorithm
end local 4 // org.bouncycastle.asn1.pkcs.PKCS12PBEParams params
35: .line 740
StackMap locals:
StackMap stack:
aload 3 /* algId */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokestatic org.bouncycastle.openssl.PEMUtilities.isPKCS5Scheme1:(Lorg/bouncycastle/asn1/DERObjectIdentifier;)Z
ifeq 48
36: .line 742
aload 3 /* algId */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/DEREncodable;
invokestatic org.bouncycastle.asn1.pkcs.PBEParameter.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PBEParameter;
astore 4 /* params */
start local 4 // org.bouncycastle.asn1.pkcs.PBEParameter params
37: .line 743
aload 3 /* algId */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
astore 5 /* algorithm */
start local 5 // java.lang.String algorithm
38: .line 744
new javax.crypto.spec.PBEKeySpec
dup
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.this$0:Lorg/bouncycastle/openssl/PEMReader;
getfield org.bouncycastle.openssl.PEMReader.pFinder:Lorg/bouncycastle/openssl/PasswordFinder;
invokeinterface org.bouncycastle.openssl.PasswordFinder.getPassword:()[C
invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
astore 6 /* pbeSpec */
start local 6 // javax.crypto.spec.PBEKeySpec pbeSpec
39: .line 746
aload 5 /* algorithm */
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
astore 7 /* secKeyFact */
start local 7 // javax.crypto.SecretKeyFactory secKeyFact
40: .line 747
new javax.crypto.spec.PBEParameterSpec
dup
aload 4 /* params */
invokevirtual org.bouncycastle.asn1.pkcs.PBEParameter.getSalt:()[B
aload 4 /* params */
invokevirtual org.bouncycastle.asn1.pkcs.PBEParameter.getIterationCount:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.intValue:()I
invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
astore 8 /* defParams */
start local 8 // javax.crypto.spec.PBEParameterSpec defParams
41: .line 749
aload 5 /* algorithm */
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.symProvider:Ljava/lang/String;
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 9 /* cipher */
start local 9 // javax.crypto.Cipher cipher
42: .line 751
aload 9 /* cipher */
iconst_2
aload 7 /* secKeyFact */
aload 6 /* pbeSpec */
invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
aload 8 /* defParams */
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
43: .line 753
aload 9 /* cipher */
aload 2 /* info */
invokevirtual org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo.getEncryptedData:()[B
invokevirtual javax.crypto.Cipher.doFinal:([B)[B
invokestatic org.bouncycastle.asn1.ASN1Object.fromByteArray:([B)Lorg/bouncycastle/asn1/ASN1Object;
invokestatic org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
astore 10 /* pInfo */
start local 10 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pInfo
44: .line 754
new java.security.spec.PKCS8EncodedKeySpec
dup
aload 10 /* pInfo */
invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getEncoded:()[B
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
astore 11 /* keySpec */
start local 11 // java.security.spec.PKCS8EncodedKeySpec keySpec
45: .line 756
aload 10 /* pInfo */
invokevirtual org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getAlgorithmId:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.getId:()Ljava/lang/String;
aload 0 /* this */
getfield org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser.asymProvider:Ljava/lang/String;
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
astore 12 /* keyFact */
start local 12 // java.security.KeyFactory keyFact
46: .line 758
aload 12 /* keyFact */
aload 11 /* keySpec */
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
47: areturn
end local 12 // java.security.KeyFactory keyFact
end local 11 // java.security.spec.PKCS8EncodedKeySpec keySpec
end local 10 // org.bouncycastle.asn1.pkcs.PrivateKeyInfo pInfo
end local 9 // javax.crypto.Cipher cipher
end local 8 // javax.crypto.spec.PBEParameterSpec defParams
end local 7 // javax.crypto.SecretKeyFactory secKeyFact
end local 6 // javax.crypto.spec.PBEKeySpec pbeSpec
end local 5 // java.lang.String algorithm
end local 4 // org.bouncycastle.asn1.pkcs.PBEParameter params
48: .line 762
StackMap locals:
StackMap stack:
new org.bouncycastle.openssl.PEMException
dup
new java.lang.StringBuilder
dup
ldc "Unknown algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3 /* algId */
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.bouncycastle.openssl.PEMException.<init>:(Ljava/lang/String;)V
athrow
end local 3 // org.bouncycastle.asn1.x509.AlgorithmIdentifier algId
end local 2 // org.bouncycastle.asn1.pkcs.EncryptedPrivateKeyInfo info
49: .line 765
StackMap locals: org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser org.bouncycastle.util.io.pem.PemObject
StackMap stack: java.io.IOException
astore 2 /* e */
start local 2 // java.io.IOException e
50: .line 767
aload 2 /* e */
athrow
end local 2 // java.io.IOException e
51: .line 769
StackMap locals:
StackMap stack: java.lang.Exception
astore 2 /* e */
start local 2 // java.lang.Exception e
52: .line 771
new org.bouncycastle.openssl.PEMException
dup
new java.lang.StringBuilder
dup
ldc "problem parsing ENCRYPTED 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 */
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$EncryptedPrivateKeyParser this
LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lorg/bouncycastle/openssl/PEMReader$EncryptedPrivateKeyParser;
0 53 1 obj Lorg/bouncycastle/util/io/pem/PemObject;
1 49 2 info Lorg/bouncycastle/asn1/pkcs/EncryptedPrivateKeyInfo;
2 49 3 algId Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
6 22 4 params Lorg/bouncycastle/asn1/pkcs/PBES2Parameters;
7 22 5 func Lorg/bouncycastle/asn1/pkcs/KeyDerivationFunc;
8 22 6 scheme Lorg/bouncycastle/asn1/pkcs/EncryptionScheme;
9 22 7 defParams Lorg/bouncycastle/asn1/pkcs/PBKDF2Params;
10 22 8 iterationCount I
11 22 9 salt [B
12 22 10 algorithm Ljava/lang/String;
13 22 11 key Ljavax/crypto/SecretKey;
14 22 12 cipher Ljavax/crypto/Cipher;
15 22 13 algParams Ljava/security/AlgorithmParameters;
18 22 14 pInfo Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
19 22 15 keySpec Ljava/security/spec/PKCS8EncodedKeySpec;
20 22 16 keyFact Ljava/security/KeyFactory;
24 35 4 params Lorg/bouncycastle/asn1/pkcs/PKCS12PBEParams;
25 35 5 algorithm Ljava/lang/String;
26 35 6 pbeSpec Ljavax/crypto/spec/PBEKeySpec;
27 35 7 secKeyFact Ljavax/crypto/SecretKeyFactory;
28 35 8 defParams Ljavax/crypto/spec/PBEParameterSpec;
29 35 9 cipher Ljavax/crypto/Cipher;
31 35 10 pInfo Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
32 35 11 keySpec Ljava/security/spec/PKCS8EncodedKeySpec;
33 35 12 keyFact Ljava/security/KeyFactory;
37 48 4 params Lorg/bouncycastle/asn1/pkcs/PBEParameter;
38 48 5 algorithm Ljava/lang/String;
39 48 6 pbeSpec Ljavax/crypto/spec/PBEKeySpec;
40 48 7 secKeyFact Ljavax/crypto/SecretKeyFactory;
41 48 8 defParams Ljavax/crypto/spec/PBEParameterSpec;
42 48 9 cipher Ljavax/crypto/Cipher;
44 48 10 pInfo Lorg/bouncycastle/asn1/pkcs/PrivateKeyInfo;
45 48 11 keySpec Ljava/security/spec/PKCS8EncodedKeySpec;
46 48 12 keyFact Ljava/security/KeyFactory;
50 51 2 e Ljava/io/IOException;
52 53 2 e Ljava/lang/Exception;
Exception table:
from to target type
0 21 49 Class java.io.IOException
22 34 49 Class java.io.IOException
35 47 49 Class java.io.IOException
48 49 49 Class java.io.IOException
0 21 51 Class java.lang.Exception
22 34 51 Class java.lang.Exception
35 47 51 Class java.lang.Exception
48 49 51 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
obj
}
SourceFile: "PEMReader.java"
NestHost: org.bouncycastle.openssl.PEMReader
InnerClasses:
private EncryptedPrivateKeyParser = org.bouncycastle.openssl.PEMReader$EncryptedPrivateKeyParser of org.bouncycastle.openssl.PEMReader