public final class sun.security.pkcs12.PKCS12KeyStore extends java.security.KeyStoreSpi
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.security.pkcs12.PKCS12KeyStore
super_class: java.security.KeyStoreSpi
{
public static final int VERSION_3;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int MAX_ITERATION_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5000000
private static final int PBE_ITERATION_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 50000
private static final int MAC_ITERATION_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 100000
private static final int SALT_LEN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
private static final sun.security.util.Debug debug;
descriptor: Lsun/security/util/Debug;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] keyBag;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] certBag;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] pkcs9Name;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] pkcs9KeyId;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] pkcs9certType;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] pbeWithSHAAnd40BitRC2CBC;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int[] pbeWithSHAAnd3KeyTripleDESCBC;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static sun.security.util.ObjectIdentifier PKCS8ShroudedKeyBag_OID;
descriptor: Lsun/security/util/ObjectIdentifier;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.security.util.ObjectIdentifier CertBag_OID;
descriptor: Lsun/security/util/ObjectIdentifier;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.security.util.ObjectIdentifier PKCS9FriendlyName_OID;
descriptor: Lsun/security/util/ObjectIdentifier;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.security.util.ObjectIdentifier PKCS9LocalKeyId_OID;
descriptor: Lsun/security/util/ObjectIdentifier;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.security.util.ObjectIdentifier PKCS9CertType_OID;
descriptor: Lsun/security/util/ObjectIdentifier;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.security.util.ObjectIdentifier pbeWithSHAAnd40BitRC2CBC_OID;
descriptor: Lsun/security/util/ObjectIdentifier;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static sun.security.util.ObjectIdentifier pbeWithSHAAnd3KeyTripleDESCBC_OID;
descriptor: Lsun/security/util/ObjectIdentifier;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private int counter;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int privateKeyCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.security.SecureRandom random;
descriptor: Ljava/security/SecureRandom;
flags: (0x0002) ACC_PRIVATE
private java.util.Hashtable<java.lang.String, sun.security.pkcs12.PKCS12KeyStore$KeyEntry> entries;
descriptor: Ljava/util/Hashtable;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Hashtable<Ljava/lang/String;Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;>;
private java.util.ArrayList<sun.security.pkcs12.PKCS12KeyStore$KeyEntry> keyList;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;>;
private java.util.LinkedHashMap<javax.security.auth.x500.X500Principal, java.security.cert.X509Certificate> certsMap;
descriptor: Ljava/util/LinkedHashMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/LinkedHashMap<Ljavax/security/auth/x500/X500Principal;Ljava/security/cert/X509Certificate;>;
private java.util.ArrayList<sun.security.pkcs12.PKCS12KeyStore$CertEntry> certEntries;
descriptor: Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/ArrayList<Lsun/security/pkcs12/PKCS12KeyStore$CertEntry;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc "pkcs12"
invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
putstatic sun.security.pkcs12.PKCS12KeyStore.debug:Lsun/security/util/Debug;
1: bipush 9
newarray 10
dup
iconst_0
iconst_1
iastore
dup
iconst_1
iconst_2
iastore
dup
iconst_2
sipush 840
iastore
dup
iconst_3
ldc 113549
iastore
dup
iconst_4
iconst_1
iastore
dup
iconst_5
bipush 12
iastore
dup
bipush 6
bipush 10
iastore
dup
bipush 7
iconst_1
iastore
dup
bipush 8
iconst_2
iastore
putstatic sun.security.pkcs12.PKCS12KeyStore.keyBag:[I
2: bipush 9
newarray 10
dup
iconst_0
iconst_1
iastore
dup
iconst_1
iconst_2
iastore
dup
iconst_2
sipush 840
iastore
dup
iconst_3
ldc 113549
iastore
dup
iconst_4
iconst_1
iastore
dup
iconst_5
bipush 12
iastore
dup
bipush 6
bipush 10
iastore
dup
bipush 7
iconst_1
iastore
dup
bipush 8
iconst_3
iastore
putstatic sun.security.pkcs12.PKCS12KeyStore.certBag:[I
3: bipush 7
newarray 10
dup
iconst_0
iconst_1
iastore
dup
iconst_1
iconst_2
iastore
dup
iconst_2
sipush 840
iastore
dup
iconst_3
ldc 113549
iastore
dup
iconst_4
iconst_1
iastore
dup
iconst_5
bipush 9
iastore
dup
bipush 6
bipush 20
iastore
putstatic sun.security.pkcs12.PKCS12KeyStore.pkcs9Name:[I
4: bipush 7
newarray 10
dup
iconst_0
iconst_1
iastore
dup
iconst_1
iconst_2
iastore
dup
iconst_2
sipush 840
iastore
dup
iconst_3
ldc 113549
iastore
dup
iconst_4
iconst_1
iastore
dup
iconst_5
bipush 9
iastore
dup
bipush 6
bipush 21
iastore
putstatic sun.security.pkcs12.PKCS12KeyStore.pkcs9KeyId:[I
5: bipush 8
newarray 10
dup
iconst_0
iconst_1
iastore
dup
iconst_1
iconst_2
iastore
dup
iconst_2
sipush 840
iastore
dup
iconst_3
ldc 113549
iastore
dup
iconst_4
iconst_1
iastore
dup
iconst_5
bipush 9
iastore
dup
bipush 6
bipush 22
iastore
dup
bipush 7
iconst_1
iastore
putstatic sun.security.pkcs12.PKCS12KeyStore.pkcs9certType:[I
6: bipush 8
newarray 10
dup
iconst_0
iconst_1
iastore
dup
iconst_1
iconst_2
iastore
dup
iconst_2
sipush 840
iastore
dup
iconst_3
ldc 113549
iastore
dup
iconst_4
iconst_1
iastore
dup
iconst_5
bipush 12
iastore
dup
bipush 6
iconst_1
iastore
dup
bipush 7
bipush 6
iastore
7: putstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd40BitRC2CBC:[I
8: bipush 8
newarray 10
dup
iconst_0
iconst_1
iastore
dup
iconst_1
iconst_2
iastore
dup
iconst_2
sipush 840
iastore
dup
iconst_3
ldc 113549
iastore
dup
iconst_4
iconst_1
iastore
dup
iconst_5
bipush 12
iastore
dup
bipush 6
iconst_1
iastore
dup
bipush 7
iconst_3
iastore
9: putstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd3KeyTripleDESCBC:[I
10: new sun.security.util.ObjectIdentifier
dup
getstatic sun.security.pkcs12.PKCS12KeyStore.keyBag:[I
invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
putstatic sun.security.pkcs12.PKCS12KeyStore.PKCS8ShroudedKeyBag_OID:Lsun/security/util/ObjectIdentifier;
11: new sun.security.util.ObjectIdentifier
dup
getstatic sun.security.pkcs12.PKCS12KeyStore.certBag:[I
invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
putstatic sun.security.pkcs12.PKCS12KeyStore.CertBag_OID:Lsun/security/util/ObjectIdentifier;
12: new sun.security.util.ObjectIdentifier
dup
getstatic sun.security.pkcs12.PKCS12KeyStore.pkcs9Name:[I
invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
putstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9FriendlyName_OID:Lsun/security/util/ObjectIdentifier;
13: new sun.security.util.ObjectIdentifier
dup
getstatic sun.security.pkcs12.PKCS12KeyStore.pkcs9KeyId:[I
invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
putstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9LocalKeyId_OID:Lsun/security/util/ObjectIdentifier;
14: new sun.security.util.ObjectIdentifier
dup
getstatic sun.security.pkcs12.PKCS12KeyStore.pkcs9certType:[I
invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
putstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9CertType_OID:Lsun/security/util/ObjectIdentifier;
15: new sun.security.util.ObjectIdentifier
dup
getstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd40BitRC2CBC:[I
invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
16: putstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd40BitRC2CBC_OID:Lsun/security/util/ObjectIdentifier;
17: new sun.security.util.ObjectIdentifier
dup
getstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd3KeyTripleDESCBC:[I
invokespecial sun.security.util.ObjectIdentifier.<init>:([I)V
18: putstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd3KeyTripleDESCBC_OID:Lsun/security/util/ObjectIdentifier;
19: goto 21
StackMap locals:
StackMap stack: java.io.IOException
20: pop
21: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
10 19 20 Class java.io.IOException
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.security.KeyStoreSpi.<init>:()V
1: aload 0
iconst_0
putfield sun.security.pkcs12.PKCS12KeyStore.counter:I
2: aload 0
iconst_0
putfield sun.security.pkcs12.PKCS12KeyStore.privateKeyCount:I
3: aload 0
4: new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
5: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield sun.security.pkcs12.PKCS12KeyStore.keyList:Ljava/util/ArrayList;
6: aload 0
7: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
putfield sun.security.pkcs12.PKCS12KeyStore.certsMap:Ljava/util/LinkedHashMap;
8: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield sun.security.pkcs12.PKCS12KeyStore.certEntries:Ljava/util/ArrayList;
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/pkcs12/PKCS12KeyStore;
public java.security.Key engineGetKey(java.lang.String, char[]);
descriptor: (Ljava/lang/String;[C)Ljava/security/Key;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=21, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
astore 3
start local 3 1: aconst_null
astore 4
start local 4 2: aload 3
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.security.Key
StackMap stack:
aload 3
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.protectedPrivKey:[B
astore 5
start local 5 5: new sun.security.pkcs.EncryptedPrivateKeyInfo
dup
aload 5
invokespecial sun.security.pkcs.EncryptedPrivateKeyInfo.<init>:([B)V
6: astore 9
start local 9 7: aload 9
invokevirtual sun.security.pkcs.EncryptedPrivateKeyInfo.getEncryptedData:()[B
astore 6
start local 6 8: new sun.security.util.DerValue
dup
aload 9
invokevirtual sun.security.pkcs.EncryptedPrivateKeyInfo.getAlgorithm:()Lsun/security/x509/AlgorithmId;
invokevirtual sun.security.x509.AlgorithmId.encode:()[B
invokespecial sun.security.util.DerValue.<init>:([B)V
astore 10
start local 10 9: aload 10
invokevirtual sun.security.util.DerValue.toDerInputStream:()Lsun/security/util/DerInputStream;
astore 11
start local 11 10: aload 11
invokevirtual sun.security.util.DerInputStream.getOID:()Lsun/security/util/ObjectIdentifier;
astore 8
start local 8 11: aload 0
aload 11
invokevirtual sun.security.pkcs12.PKCS12KeyStore.parseAlgParameters:(Lsun/security/util/DerInputStream;)Ljava/security/AlgorithmParameters;
astore 7
end local 11 end local 10 end local 9 start local 7 12: goto 20
end local 8 end local 7 end local 6 StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String char[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.security.Key byte[]
StackMap stack: java.io.IOException
13: astore 9
start local 9 14: new java.security.UnrecoverableKeyException
dup
new java.lang.StringBuilder
dup
ldc "Private key not stored as PKCS#8 EncryptedPrivateKeyInfo: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
15: aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
17: astore 10
start local 10 18: aload 10
aload 9
invokevirtual java.security.UnrecoverableKeyException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
19: aload 10
athrow
end local 10 end local 9 start local 6 start local 7 start local 8 20: StackMap locals: byte[] java.security.AlgorithmParameters sun.security.util.ObjectIdentifier
StackMap stack:
iconst_0
istore 10
start local 10 21: aload 7
ifnull 30
22: aload 7
ldc Ljavax/crypto/spec/PBEParameterSpec;
invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
checkcast javax.crypto.spec.PBEParameterSpec
23: astore 9
start local 9 24: goto 27
end local 9 StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String char[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.security.Key byte[] byte[] java.security.AlgorithmParameters sun.security.util.ObjectIdentifier top int
StackMap stack: java.security.spec.InvalidParameterSpecException
25: pop
26: new java.io.IOException
dup
ldc "Invalid PBE algorithm parameters"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
start local 9 27: StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String char[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.security.Key byte[] byte[] java.security.AlgorithmParameters sun.security.util.ObjectIdentifier javax.crypto.spec.PBEParameterSpec int
StackMap stack:
aload 9
invokevirtual javax.crypto.spec.PBEParameterSpec.getIterationCount:()I
istore 10
28: iload 10
ldc 5000000
if_icmple 30
29: new java.io.IOException
dup
ldc "PBE iteration count too large"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 9 30: StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String char[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.security.Key byte[] byte[] java.security.AlgorithmParameters sun.security.util.ObjectIdentifier top int
StackMap stack:
aload 0
aload 2
invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEKey:([C)Ljavax/crypto/SecretKey;
astore 11
start local 11 31: aload 8
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 12
start local 12 32: aload 12
iconst_2
aload 11
aload 7
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
33: aload 12
aload 6
invokevirtual javax.crypto.Cipher.doFinal:([B)[B
astore 13
start local 13 34: new java.security.spec.PKCS8EncodedKeySpec
dup
aload 13
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
astore 14
start local 14 35: new sun.security.util.DerValue
dup
aload 13
invokespecial sun.security.util.DerValue.<init>:([B)V
astore 15
start local 15 36: aload 15
invokevirtual sun.security.util.DerValue.toDerInputStream:()Lsun/security/util/DerInputStream;
astore 16
start local 16 37: aload 16
invokevirtual sun.security.util.DerInputStream.getInteger:()I
pop
38: aload 16
iconst_2
invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
astore 17
start local 17 39: new sun.security.x509.AlgorithmId
dup
aload 17
iconst_0
aaload
invokevirtual sun.security.util.DerValue.getOID:()Lsun/security/util/ObjectIdentifier;
invokespecial sun.security.x509.AlgorithmId.<init>:(Lsun/security/util/ObjectIdentifier;)V
astore 18
start local 18 40: aload 18
invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
astore 19
start local 19 41: aload 19
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
astore 20
start local 20 42: aload 20
aload 14
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
astore 4
end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 43: goto 51
StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String char[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.security.Key byte[] byte[] java.security.AlgorithmParameters sun.security.util.ObjectIdentifier
StackMap stack: java.lang.Exception
44: astore 9
start local 9 45: new java.security.UnrecoverableKeyException
dup
new java.lang.StringBuilder
dup
ldc "Get Key failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
46: aload 9
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
47: invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
48: astore 10
start local 10 49: aload 10
aload 9
invokevirtual java.security.UnrecoverableKeyException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
50: aload 10
athrow
end local 10 end local 9 51: StackMap locals:
StackMap stack:
aload 4
areturn
end local 8 end local 7 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 52 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 52 1 alias Ljava/lang/String;
0 52 2 password [C
1 52 3 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
2 52 4 key Ljava/security/Key;
5 52 5 encrBytes [B
8 13 6 encryptedKey [B
20 52 6 encryptedKey [B
12 13 7 algParams Ljava/security/AlgorithmParameters;
20 52 7 algParams Ljava/security/AlgorithmParameters;
11 13 8 algOid Lsun/security/util/ObjectIdentifier;
20 52 8 algOid Lsun/security/util/ObjectIdentifier;
7 12 9 encrInfo Lsun/security/pkcs/EncryptedPrivateKeyInfo;
9 12 10 val Lsun/security/util/DerValue;
10 12 11 in Lsun/security/util/DerInputStream;
14 20 9 ioe Ljava/io/IOException;
18 20 10 uke Ljava/security/UnrecoverableKeyException;
24 25 9 pbeSpec Ljavax/crypto/spec/PBEParameterSpec;
27 30 9 pbeSpec Ljavax/crypto/spec/PBEParameterSpec;
21 43 10 ic I
31 43 11 skey Ljavax/crypto/SecretKey;
32 43 12 cipher Ljavax/crypto/Cipher;
34 43 13 privateKeyInfo [B
35 43 14 kspec Ljava/security/spec/PKCS8EncodedKeySpec;
36 43 15 val Lsun/security/util/DerValue;
37 43 16 in Lsun/security/util/DerInputStream;
39 43 17 value [Lsun/security/util/DerValue;
40 43 18 algId Lsun/security/x509/AlgorithmId;
41 43 19 algName Ljava/lang/String;
42 43 20 kfac Ljava/security/KeyFactory;
45 51 9 e Ljava/lang/Exception;
49 51 10 uke Ljava/security/UnrecoverableKeyException;
Exception table:
from to target type
5 12 13 Class java.io.IOException
22 24 25 Class java.security.spec.InvalidParameterSpecException
20 43 44 Class java.lang.Exception
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
MethodParameters:
Name Flags
alias
password
public java.security.cert.Certificate[] engineGetCertificateChain(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/security/cert/Certificate;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
astore 2
start local 2 1: aload 2
ifnull 5
2: aload 2
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
StackMap stack:
aload 2
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.Certificate[]
areturn
5: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 6 1 alias Ljava/lang/String;
1 6 2 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
MethodParameters:
Name Flags
alias
public java.security.cert.Certificate engineGetCertificate(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/cert/Certificate;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
astore 2
start local 2 1: aload 2
ifnull 5
2: aload 2
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
StackMap stack:
aload 2
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
iconst_0
aaload
areturn
5: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 6 1 alias Ljava/lang/String;
1 6 2 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
MethodParameters:
Name Flags
alias
public java.util.Date engineGetCreationDate(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Date;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
astore 2
start local 2 1: aload 2
ifnull 3
2: new java.util.Date
dup
aload 2
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.date:Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokespecial java.util.Date.<init>:(J)V
areturn
3: StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 4 1 alias Ljava/lang/String;
1 4 2 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
MethodParameters:
Name Flags
alias
public synchronized void engineSetKeyEntry(java.lang.String, java.security.Key, char[], java.security.cert.Certificate[]);
descriptor: (Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new sun.security.pkcs12.PKCS12KeyStore$KeyEntry
dup
invokespecial sun.security.pkcs12.PKCS12KeyStore$KeyEntry.<init>:()V
astore 5
start local 5 1: aload 5
new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.date:Ljava/util/Date;
2: aload 2
instanceof java.security.PrivateKey
ifeq 10
3: aload 2
invokeinterface java.security.Key.getFormat:()Ljava/lang/String;
ldc "PKCS#8"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
4: aload 2
invokeinterface java.security.Key.getFormat:()Ljava/lang/String;
ldc "PKCS8"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
5: StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
StackMap stack:
aload 5
6: aload 0
aload 2
invokeinterface java.security.Key.getEncoded:()[B
aload 3
invokevirtual sun.security.pkcs12.PKCS12KeyStore.encryptPrivateKey:([B[C)[B
7: putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.protectedPrivKey:[B
8: goto 11
9: StackMap locals:
StackMap stack:
new java.security.KeyStoreException
dup
ldc "Private key is not encodedas PKCS#8"
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
new java.security.KeyStoreException
dup
ldc "Key is not a PrivateKey"
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 4
ifnull 15
12: aload 4
arraylength
iconst_1
if_icmple 14
aload 0
aload 4
invokevirtual sun.security.pkcs12.PKCS12KeyStore.validateChain:([Ljava/security/cert/Certificate;)Z
ifne 14
13: new java.security.KeyStoreException
dup
ldc "Certificate chain is not validate"
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack:
aload 5
aload 4
invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.Certificate[]
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
15: StackMap locals:
StackMap stack:
aload 5
new java.lang.StringBuilder
dup
ldc "Time "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.date:Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc "UTF8"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
16: aload 5
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.alias:Ljava/lang/String;
17: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
aload 5
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 18: goto 23
StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String java.security.Key char[] java.security.cert.Certificate[]
StackMap stack: java.lang.Exception
19: astore 5
start local 5 20: new java.security.KeyStoreException
dup
new java.lang.StringBuilder
dup
ldc "Key protection algorithm not found: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
21: aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
22: invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 23: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 24 1 alias Ljava/lang/String;
0 24 2 key Ljava/security/Key;
0 24 3 password [C
0 24 4 chain [Ljava/security/cert/Certificate;
1 18 5 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
20 23 5 nsae Ljava/lang/Exception;
Exception table:
from to target type
0 18 19 Class java.lang.Exception
Exceptions:
throws java.security.KeyStoreException
MethodParameters:
Name Flags
alias
key
password
chain
public synchronized void engineSetKeyEntry(java.lang.String, byte[], java.security.cert.Certificate[]);
descriptor: (Ljava/lang/String;[B[Ljava/security/cert/Certificate;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new sun.security.pkcs.EncryptedPrivateKeyInfo
aload 2
invokespecial sun.security.pkcs.EncryptedPrivateKeyInfo.<init>:([B)V
1: goto 6
StackMap locals:
StackMap stack: java.io.IOException
2: astore 4
start local 4 3: new java.security.KeyStoreException
dup
new java.lang.StringBuilder
dup
ldc "Private key is not stored as PKCS#8 EncryptedPrivateKeyInfo: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
5: invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 6: StackMap locals:
StackMap stack:
new sun.security.pkcs12.PKCS12KeyStore$KeyEntry
dup
invokespecial sun.security.pkcs12.PKCS12KeyStore$KeyEntry.<init>:()V
astore 4
start local 4 7: aload 4
new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.date:Ljava/util/Date;
8: aload 4
new java.lang.StringBuilder
dup
ldc "Time "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.date:Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc "UTF8"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
9: goto 11
StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String byte[] java.security.cert.Certificate[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry
StackMap stack: java.io.UnsupportedEncodingException
10: pop
11: StackMap locals:
StackMap stack:
aload 4
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.alias:Ljava/lang/String;
12: aload 4
aload 2
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.protectedPrivKey:[B
13: aload 3
ifnull 17
14: aload 3
arraylength
iconst_1
if_icmple 16
aload 0
aload 3
invokevirtual sun.security.pkcs12.PKCS12KeyStore.validateChain:([Ljava/security/cert/Certificate;)Z
ifne 16
15: new java.security.KeyStoreException
dup
ldc "Certificate chain is not valid"
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
16: StackMap locals:
StackMap stack:
aload 4
aload 3
invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.Certificate[]
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
aload 4
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 19 1 alias Ljava/lang/String;
0 19 2 key [B
0 19 3 chain [Ljava/security/cert/Certificate;
3 6 4 ioe Ljava/io/IOException;
7 19 4 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
Exception table:
from to target type
0 1 2 Class java.io.IOException
8 9 10 Class java.io.UnsupportedEncodingException
Exceptions:
throws java.security.KeyStoreException
MethodParameters:
Name Flags
alias
key
chain
private byte[] getSalt();
descriptor: ()[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: bipush 20
newarray 8
astore 1
start local 1 1: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.random:Ljava/security/SecureRandom;
ifnonnull 3
2: aload 0
new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
putfield sun.security.pkcs12.PKCS12KeyStore.random:Ljava/security/SecureRandom;
3: StackMap locals: byte[]
StackMap stack:
aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.random:Ljava/security/SecureRandom;
aload 1
invokevirtual java.security.SecureRandom.nextBytes:([B)V
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/pkcs12/PKCS12KeyStore;
1 5 1 salt [B
private java.security.AlgorithmParameters getPBEAlgorithmParameters(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/AlgorithmParameters;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: new javax.crypto.spec.PBEParameterSpec
dup
aload 0
invokevirtual sun.security.pkcs12.PKCS12KeyStore.getSalt:()[B
ldc 50000
invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
2: astore 3
start local 3 3: aload 1
invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
astore 2
4: aload 2
aload 3
invokevirtual java.security.AlgorithmParameters.init:(Ljava/security/spec/AlgorithmParameterSpec;)V
5: goto 10
StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.lang.String java.security.AlgorithmParameters javax.crypto.spec.PBEParameterSpec
StackMap stack: java.lang.Exception
6: astore 4
start local 4 7: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "getPBEAlgorithmParameters failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: aload 4
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
9: invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 10: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 11 1 algorithm Ljava/lang/String;
1 11 2 algParams Ljava/security/AlgorithmParameters;
3 11 3 paramSpec Ljavax/crypto/spec/PBEParameterSpec;
7 10 4 e Ljava/lang/Exception;
Exception table:
from to target type
3 5 6 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
algorithm
private java.security.AlgorithmParameters parseAlgParameters(sun.security.util.DerInputStream);
descriptor: (Lsun/security/util/DerInputStream;)Ljava/security/AlgorithmParameters;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 1
invokevirtual sun.security.util.DerInputStream.available:()I
ifne 4
2: aconst_null
astore 3
start local 3 3: goto 7
end local 3 4: StackMap locals: java.security.AlgorithmParameters
StackMap stack:
aload 1
invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
astore 3
start local 3 5: aload 3
getfield sun.security.util.DerValue.tag:B
iconst_5
if_icmpne 7
6: aconst_null
astore 3
7: StackMap locals: sun.security.util.DerValue
StackMap stack:
aload 3
ifnull 15
8: ldc "PBE"
invokestatic java.security.AlgorithmParameters.getInstance:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
astore 2
9: aload 2
aload 3
invokevirtual sun.security.util.DerValue.toByteArray:()[B
invokevirtual java.security.AlgorithmParameters.init:([B)V
end local 3 10: goto 15
StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerInputStream java.security.AlgorithmParameters
StackMap stack: java.lang.Exception
11: astore 3
start local 3 12: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "parseAlgParameters failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
13: aload 3
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
14: invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 15: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 16 1 in Lsun/security/util/DerInputStream;
1 16 2 algParams Ljava/security/AlgorithmParameters;
3 4 3 params Lsun/security/util/DerValue;
5 10 3 params Lsun/security/util/DerValue;
12 15 3 e Ljava/lang/Exception;
Exception table:
from to target type
1 10 11 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
private javax.crypto.SecretKey getPBEKey(char[]);
descriptor: ([C)Ljavax/crypto/SecretKey;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: new javax.crypto.spec.PBEKeySpec
dup
aload 1
invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
astore 3
start local 3 2: ldc "PBE"
invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
astore 4
start local 4 3: aload 4
aload 3
invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
astore 2
end local 4 end local 3 4: goto 9
StackMap locals: sun.security.pkcs12.PKCS12KeyStore char[] javax.crypto.SecretKey
StackMap stack: java.lang.Exception
5: astore 3
start local 3 6: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "getSecretKey failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: aload 3
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
8: invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 9: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 10 1 password [C
1 10 2 skey Ljavax/crypto/SecretKey;
2 4 3 keySpec Ljavax/crypto/spec/PBEKeySpec;
3 4 4 skFac Ljavax/crypto/SecretKeyFactory;
6 9 3 e Ljava/lang/Exception;
Exception table:
from to target type
1 4 5 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
password
private byte[] encryptPrivateKey(byte[], char[]);
descriptor: ([B[C)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 0
ldc "PBEWithSHA1AndDESede"
invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEAlgorithmParameters:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
2: astore 4
start local 4 3: aload 0
aload 2
invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEKey:([C)Ljavax/crypto/SecretKey;
astore 5
start local 5 4: ldc "PBEWithSHA1AndDESede"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 6
start local 6 5: aload 6
iconst_1
aload 5
aload 4
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
6: aload 6
aload 1
invokevirtual javax.crypto.Cipher.doFinal:([B)[B
astore 7
start local 7 7: new sun.security.x509.AlgorithmId
dup
getstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd3KeyTripleDESCBC_OID:Lsun/security/util/ObjectIdentifier;
aload 4
invokespecial sun.security.x509.AlgorithmId.<init>:(Lsun/security/util/ObjectIdentifier;Ljava/security/AlgorithmParameters;)V
8: astore 8
start local 8 9: new sun.security.pkcs.EncryptedPrivateKeyInfo
dup
aload 8
aload 7
invokespecial sun.security.pkcs.EncryptedPrivateKeyInfo.<init>:(Lsun/security/x509/AlgorithmId;[B)V
10: astore 9
start local 9 11: aload 9
invokevirtual sun.security.pkcs.EncryptedPrivateKeyInfo.getEncoded:()[B
astore 3
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 12: goto 20
StackMap locals: sun.security.pkcs12.PKCS12KeyStore byte[] char[] byte[]
StackMap stack: java.lang.Exception
13: astore 4
start local 4 14: new java.security.UnrecoverableKeyException
dup
new java.lang.StringBuilder
dup
ldc "Encrypt Private Key failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
15: aload 4
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
17: astore 5
start local 5 18: aload 5
aload 4
invokevirtual java.security.UnrecoverableKeyException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
19: aload 5
athrow
end local 5 end local 4 20: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 21 1 data [B
0 21 2 password [C
1 21 3 key [B
3 12 4 algParams Ljava/security/AlgorithmParameters;
4 12 5 skey Ljavax/crypto/SecretKey;
5 12 6 cipher Ljavax/crypto/Cipher;
7 12 7 encryptedKey [B
9 12 8 algid Lsun/security/x509/AlgorithmId;
11 12 9 encrInfo Lsun/security/pkcs/EncryptedPrivateKeyInfo;
14 20 4 e Ljava/lang/Exception;
18 20 5 uke Ljava/security/UnrecoverableKeyException;
Exception table:
from to target type
1 12 13 Class java.lang.Exception
Exceptions:
throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
MethodParameters:
Name Flags
data
password
public synchronized void engineSetCertificateEntry(java.lang.String, java.security.cert.Certificate);
descriptor: (Ljava/lang/String;Ljava/security/cert/Certificate;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
astore 3
start local 3 1: aload 3
ifnull 3
2: new java.security.KeyStoreException
dup
ldc "Cannot overwrite own certificate"
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
StackMap stack:
new java.security.KeyStoreException
dup
ldc "TrustedCertEntry not supported"
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 4 1 alias Ljava/lang/String;
0 4 2 cert Ljava/security/cert/Certificate;
1 4 3 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
Exceptions:
throws java.security.KeyStoreException
MethodParameters:
Name Flags
alias
cert
public synchronized void engineDeleteEntry(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 2 1 alias Ljava/lang/String;
Exceptions:
throws java.security.KeyStoreException
MethodParameters:
Name Flags
alias
public java.util.Enumeration<java.lang.String> engineAliases();
descriptor: ()Ljava/util/Enumeration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs12/PKCS12KeyStore;
Signature: ()Ljava/util/Enumeration<Ljava/lang/String;>;
public boolean engineContainsAlias(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 1 1 alias Ljava/lang/String;
MethodParameters:
Name Flags
alias
public int engineSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs12/PKCS12KeyStore;
public boolean engineIsKeyEntry(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
astore 2
start local 2 1: aload 2
ifnull 3
2: iconst_1
ireturn
3: StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 4 1 alias Ljava/lang/String;
1 4 2 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
MethodParameters:
Name Flags
alias
public boolean engineIsCertificateEntry(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 1 1 alias Ljava/lang/String;
MethodParameters:
Name Flags
alias
public java.lang.String engineGetCertificateAlias(java.security.cert.Certificate);
descriptor: (Ljava/security/cert/Certificate;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
astore 3
start local 3 2: goto 9
3: StackMap locals: java.security.cert.Certificate java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 4: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 4
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
astore 5
start local 5 5: aload 5
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
ifnull 7
6: aload 5
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
iconst_0
aaload
astore 2
7: StackMap locals: java.lang.String sun.security.pkcs12.PKCS12KeyStore$KeyEntry
StackMap stack:
aload 2
aload 1
invokevirtual java.security.cert.Certificate.equals:(Ljava/lang/Object;)Z
ifeq 9
8: aload 4
areturn
end local 5 end local 4 9: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 3
end local 3 10: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 11 1 cert Ljava/security/cert/Certificate;
1 11 2 certElem Ljava/security/cert/Certificate;
2 10 3 e Ljava/util/Enumeration<Ljava/lang/String;>;
4 9 4 alias Ljava/lang/String;
5 9 5 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
MethodParameters:
Name Flags
cert
public synchronized void engineStore(java.io.OutputStream, char[]);
descriptor: (Ljava/io/OutputStream;[C)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=19, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "password can't be null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 3
start local 3 3: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 4
start local 4 4: aload 4
iconst_3
invokevirtual sun.security.util.DerOutputStream.putInteger:(I)V
5: aload 4
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
astore 5
start local 5 6: aload 3
aload 5
invokevirtual sun.security.util.DerOutputStream.write:([B)V
7: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 6
start local 6 8: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 7
start local 7 9: aload 0
invokevirtual sun.security.pkcs12.PKCS12KeyStore.createSafeContent:()[B
astore 8
start local 8 10: new sun.security.pkcs.ContentInfo
dup
aload 8
invokespecial sun.security.pkcs.ContentInfo.<init>:([B)V
astore 9
start local 9 11: aload 9
aload 7
invokevirtual sun.security.pkcs.ContentInfo.encode:(Lsun/security/util/DerOutputStream;)V
12: aload 0
aload 2
invokevirtual sun.security.pkcs12.PKCS12KeyStore.createEncryptedData:([C)[B
astore 10
start local 10 13: new sun.security.pkcs.ContentInfo
dup
getstatic sun.security.pkcs.ContentInfo.ENCRYPTED_DATA_OID:Lsun/security/util/ObjectIdentifier;
14: new sun.security.util.DerValue
dup
aload 10
invokespecial sun.security.util.DerValue.<init>:([B)V
15: invokespecial sun.security.pkcs.ContentInfo.<init>:(Lsun/security/util/ObjectIdentifier;Lsun/security/util/DerValue;)V
16: astore 11
start local 11 17: aload 11
aload 7
invokevirtual sun.security.pkcs.ContentInfo.encode:(Lsun/security/util/DerOutputStream;)V
18: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 12
start local 12 19: aload 12
bipush 48
aload 7
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
20: aload 12
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
astore 13
start local 13 21: new sun.security.pkcs.ContentInfo
dup
aload 13
invokespecial sun.security.pkcs.ContentInfo.<init>:([B)V
astore 14
start local 14 22: aload 14
aload 6
invokevirtual sun.security.pkcs.ContentInfo.encode:(Lsun/security/util/DerOutputStream;)V
23: aload 6
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
astore 15
start local 15 24: aload 3
aload 15
invokevirtual sun.security.util.DerOutputStream.write:([B)V
25: aload 0
aload 2
aload 13
invokevirtual sun.security.pkcs12.PKCS12KeyStore.calculateMac:([C[B)[B
astore 16
start local 16 26: aload 3
aload 16
invokevirtual sun.security.util.DerOutputStream.write:([B)V
27: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 17
start local 17 28: aload 17
bipush 48
aload 3
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
29: aload 17
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
astore 18
start local 18 30: aload 1
aload 18
invokevirtual java.io.OutputStream.write:([B)V
31: aload 1
invokevirtual java.io.OutputStream.flush:()V
32: return
end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 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 Lsun/security/pkcs12/PKCS12KeyStore;
0 33 1 stream Ljava/io/OutputStream;
0 33 2 password [C
3 33 3 pfx Lsun/security/util/DerOutputStream;
4 33 4 version Lsun/security/util/DerOutputStream;
6 33 5 pfxVersion [B
8 33 6 authSafe Lsun/security/util/DerOutputStream;
9 33 7 authSafeContentInfo Lsun/security/util/DerOutputStream;
10 33 8 safeContentData [B
11 33 9 dataContentInfo Lsun/security/pkcs/ContentInfo;
13 33 10 encrData [B
17 33 11 encrContentInfo Lsun/security/pkcs/ContentInfo;
19 33 12 cInfo Lsun/security/util/DerOutputStream;
21 33 13 authenticatedSafe [B
22 33 14 contentInfo Lsun/security/pkcs/ContentInfo;
24 33 15 authSafeData [B
26 33 16 macData [B
28 33 17 pfxout Lsun/security/util/DerOutputStream;
30 33 18 pfxData [B
Exceptions:
throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
MethodParameters:
Name Flags
stream
password
private byte[] generateHash(byte[]);
descriptor: ([B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: ldc "SHA1"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 3
start local 3 2: aload 3
aload 1
invokevirtual java.security.MessageDigest.update:([B)V
3: aload 3
invokevirtual java.security.MessageDigest.digest:()[B
astore 2
end local 3 4: goto 7
StackMap locals: sun.security.pkcs12.PKCS12KeyStore byte[] byte[]
StackMap stack: java.lang.Exception
5: astore 3
start local 3 6: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "generateHash failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 7: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 8 1 data [B
1 8 2 digest [B
2 4 3 md Ljava/security/MessageDigest;
6 7 3 e Ljava/lang/Exception;
Exception table:
from to target type
1 4 5 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
data
private byte[] calculateMac(char[], byte[]);
descriptor: ([C[B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: ldc "SHA1"
astore 4
start local 4 2: aload 0
invokevirtual sun.security.pkcs12.PKCS12KeyStore.getSalt:()[B
astore 5
start local 5 3: ldc "HmacPBESHA1"
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
astore 6
start local 6 4: new javax.crypto.spec.PBEParameterSpec
dup
aload 5
ldc 100000
invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
5: astore 7
start local 7 6: aload 0
aload 1
invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEKey:([C)Ljavax/crypto/SecretKey;
astore 8
start local 8 7: aload 6
aload 8
aload 7
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
8: aload 6
aload 2
invokevirtual javax.crypto.Mac.update:([B)V
9: aload 6
invokevirtual javax.crypto.Mac.doFinal:()[B
astore 9
start local 9 10: new sun.security.pkcs12.MacData
dup
aload 4
aload 9
aload 5
11: ldc 100000
12: invokespecial sun.security.pkcs12.MacData.<init>:(Ljava/lang/String;[B[BI)V
astore 10
start local 10 13: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 11
start local 11 14: aload 11
aload 10
invokevirtual sun.security.pkcs12.MacData.getEncoded:()[B
invokevirtual sun.security.util.DerOutputStream.write:([B)V
15: aload 11
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
astore 3
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 16: goto 19
StackMap locals: sun.security.pkcs12.PKCS12KeyStore char[] byte[] byte[] java.lang.String
StackMap stack: java.lang.Exception
17: astore 5
start local 5 18: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "calculateMac failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 5
invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 19: StackMap locals:
StackMap stack:
aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 20 1 passwd [C
0 20 2 data [B
1 20 3 mData [B
2 20 4 algName Ljava/lang/String;
3 16 5 salt [B
4 16 6 m Ljavax/crypto/Mac;
6 16 7 params Ljavax/crypto/spec/PBEParameterSpec;
7 16 8 key Ljavax/crypto/SecretKey;
10 16 9 macResult [B
13 16 10 macData Lsun/security/pkcs12/MacData;
14 16 11 bytes Lsun/security/util/DerOutputStream;
18 19 5 e Ljava/lang/Exception;
Exception table:
from to target type
2 16 17 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
passwd
data
private boolean validateChain(java.security.cert.Certificate[]);
descriptor: ([Ljava/security/cert/Certificate;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 9
2: StackMap locals: int
StackMap stack:
aload 1
iload 2
aaload
checkcast java.security.cert.X509Certificate
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
3: astore 3
start local 3 4: aload 1
iload 2
iconst_1
iadd
aaload
checkcast java.security.cert.X509Certificate
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
5: astore 4
start local 4 6: aload 3
aload 4
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifne 8
7: iconst_0
ireturn
end local 4 end local 3 8: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
aload 1
arraylength
iconst_1
isub
if_icmplt 2
end local 2 10: new java.util.HashSet
dup
aload 1
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 2
start local 2 11: aload 2
invokeinterface java.util.Set.size:()I
aload 1
arraylength
if_icmpne 12
iconst_1
ireturn
StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.security.cert.Certificate[] java.util.Set
StackMap stack:
12: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 13 1 certChain [Ljava/security/cert/Certificate;
1 10 2 i I
4 8 3 issuerDN Ljavax/security/auth/x500/X500Principal;
6 8 4 subjectDN Ljavax/security/auth/x500/X500Principal;
11 13 2 set Ljava/util/Set<Ljava/security/cert/Certificate;>;
MethodParameters:
Name Flags
certChain
private byte[] getBagAttributes(java.lang.String, byte[]);
descriptor: (Ljava/lang/String;[B)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aconst_null
astore 4
start local 4 2: aload 1
ifnonnull 4
aload 2
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: byte[] byte[]
StackMap stack:
new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 5
start local 5 5: aload 1
ifnull 14
6: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 6
start local 6 7: aload 6
getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9FriendlyName_OID:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
8: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 7
start local 7 9: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 8
start local 8 10: aload 7
aload 1
invokevirtual sun.security.util.DerOutputStream.putBMPString:(Ljava/lang/String;)V
11: aload 6
bipush 49
aload 7
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
12: aload 8
bipush 48
aload 6
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
13: aload 8
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
astore 4
end local 8 end local 7 end local 6 14: StackMap locals: sun.security.util.DerOutputStream
StackMap stack:
aload 2
ifnull 23
15: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 6
start local 6 16: aload 6
getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9LocalKeyId_OID:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
17: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 7
start local 7 18: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 8
start local 8 19: aload 7
aload 2
invokevirtual sun.security.util.DerOutputStream.putOctetString:([B)V
20: aload 6
bipush 49
aload 7
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
21: aload 8
bipush 48
aload 6
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
22: aload 8
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
astore 3
end local 8 end local 7 end local 6 23: StackMap locals:
StackMap stack:
new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 6
start local 6 24: aload 4
ifnull 26
25: aload 6
aload 4
invokevirtual sun.security.util.DerOutputStream.write:([B)V
26: StackMap locals: sun.security.util.DerOutputStream
StackMap stack:
aload 3
ifnull 28
27: aload 6
aload 3
invokevirtual sun.security.util.DerOutputStream.write:([B)V
28: StackMap locals:
StackMap stack:
aload 5
bipush 49
aload 6
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
29: aload 5
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
areturn
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 30 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 30 1 alias Ljava/lang/String;
0 30 2 keyId [B
1 30 3 localKeyID [B
2 30 4 friendlyName [B
5 30 5 bagAttrs Lsun/security/util/DerOutputStream;
7 14 6 bagAttr1 Lsun/security/util/DerOutputStream;
9 14 7 bagAttrContent1 Lsun/security/util/DerOutputStream;
10 14 8 bagAttrValue1 Lsun/security/util/DerOutputStream;
16 23 6 bagAttr2 Lsun/security/util/DerOutputStream;
18 23 7 bagAttrContent2 Lsun/security/util/DerOutputStream;
19 23 8 bagAttrValue2 Lsun/security/util/DerOutputStream;
24 30 6 attrs Lsun/security/util/DerOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
alias
keyId
private byte[] createEncryptedData(char[]);
descriptor: ([C)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=16, args_size=2
start local 0 start local 1 0: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 2
start local 2 1: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
astore 3
start local 3 2: goto 45
3: StackMap locals: sun.security.util.DerOutputStream java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 4: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 4
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
astore 5
start local 5 5: aload 5
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
ifnonnull 8
6: iconst_0
istore 6
start local 6 7: goto 9
end local 6 8: StackMap locals: java.lang.String sun.security.pkcs12.PKCS12KeyStore$KeyEntry
StackMap stack:
aload 5
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
arraylength
istore 6
start local 6 9: StackMap locals: int
StackMap stack:
iconst_0
istore 7
start local 7 10: goto 44
11: StackMap locals: int
StackMap stack:
new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 8
start local 8 12: aload 8
getstatic sun.security.pkcs12.PKCS12KeyStore.CertBag_OID:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
13: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 9
start local 9 14: aload 9
getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9CertType_OID:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
15: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 10
start local 10 16: aload 5
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
iload 7
aaload
checkcast java.security.cert.X509Certificate
astore 11
start local 11 17: aload 10
aload 11
invokevirtual java.security.cert.X509Certificate.getEncoded:()[B
invokevirtual sun.security.util.DerOutputStream.putOctetString:([B)V
18: aload 9
bipush -128
19: iconst_1
iconst_0
20: invokestatic sun.security.util.DerValue.createTag:(BZB)B
21: aload 10
22: invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
23: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 12
start local 12 24: aload 12
bipush 48
aload 9
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
25: aload 12
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
astore 13
start local 13 26: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 14
start local 14 27: aload 14
aload 13
invokevirtual sun.security.util.DerOutputStream.write:([B)V
28: aload 8
bipush -128
29: iconst_1
iconst_0
30: invokestatic sun.security.util.DerValue.createTag:(BZB)B
31: aload 14
32: invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
33: aconst_null
astore 15
start local 15 34: iload 7
ifne 37
35: aload 0
aload 5
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.alias:Ljava/lang/String;
aload 5
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
invokevirtual sun.security.pkcs12.PKCS12KeyStore.getBagAttributes:(Ljava/lang/String;[B)[B
astore 15
36: goto 40
37: StackMap locals: sun.security.pkcs12.PKCS12KeyStore char[] sun.security.util.DerOutputStream java.util.Enumeration java.lang.String sun.security.pkcs12.PKCS12KeyStore$KeyEntry int int sun.security.util.DerOutputStream sun.security.util.DerOutputStream sun.security.util.DerOutputStream java.security.cert.X509Certificate sun.security.util.DerOutputStream byte[] sun.security.util.DerOutputStream byte[]
StackMap stack:
aload 0
38: aload 11
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual javax.security.auth.x500.X500Principal.getName:()Ljava/lang/String;
aconst_null
39: invokevirtual sun.security.pkcs12.PKCS12KeyStore.getBagAttributes:(Ljava/lang/String;[B)[B
astore 15
40: StackMap locals:
StackMap stack:
aload 15
ifnull 42
41: aload 8
aload 15
invokevirtual sun.security.util.DerOutputStream.write:([B)V
42: StackMap locals:
StackMap stack:
aload 2
bipush 48
aload 8
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 43: iinc 7 1
StackMap locals: sun.security.pkcs12.PKCS12KeyStore char[] sun.security.util.DerOutputStream java.util.Enumeration java.lang.String sun.security.pkcs12.PKCS12KeyStore$KeyEntry int int
StackMap stack:
44: iload 7
iload 6
if_icmplt 11
end local 7 end local 6 end local 5 end local 4 45: StackMap locals: sun.security.pkcs12.PKCS12KeyStore char[] sun.security.util.DerOutputStream java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 3
end local 3 46: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 3
start local 3 47: aload 3
bipush 48
aload 2
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
48: aload 3
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
astore 4
start local 4 49: aload 0
aload 4
aload 1
invokevirtual sun.security.pkcs12.PKCS12KeyStore.encryptContent:([B[C)[B
astore 5
start local 5 50: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 6
start local 6 51: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 7
start local 7 52: aload 6
iconst_0
invokevirtual sun.security.util.DerOutputStream.putInteger:(I)V
53: aload 6
aload 5
invokevirtual sun.security.util.DerOutputStream.write:([B)V
54: aload 7
bipush 48
aload 6
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
55: aload 7
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
areturn
end local 7 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 56 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 56 1 password [C
1 56 2 out Lsun/security/util/DerOutputStream;
2 46 3 e Ljava/util/Enumeration<Ljava/lang/String;>;
4 45 4 alias Ljava/lang/String;
5 45 5 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
7 8 6 chainLen I
9 45 6 chainLen I
10 45 7 i I
12 43 8 safeBag Lsun/security/util/DerOutputStream;
14 43 9 certBag Lsun/security/util/DerOutputStream;
16 43 10 certValue Lsun/security/util/DerOutputStream;
17 43 11 cert Ljava/security/cert/X509Certificate;
24 43 12 certout Lsun/security/util/DerOutputStream;
26 43 13 certBagValue [B
27 43 14 bagValue Lsun/security/util/DerOutputStream;
34 43 15 bagAttrs [B
47 56 3 safeBagValue Lsun/security/util/DerOutputStream;
49 56 4 safeBagData [B
50 56 5 encrContentInfo [B
51 56 6 encrData Lsun/security/util/DerOutputStream;
52 56 7 encrDataContent Lsun/security/util/DerOutputStream;
Exceptions:
throws java.security.cert.CertificateException, java.io.IOException
MethodParameters:
Name Flags
password
private byte[] createSafeContent();
descriptor: ()[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=1
start local 0 0: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 1
start local 1 1: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
astore 2
start local 2 2: goto 25
3: StackMap locals: sun.security.util.DerOutputStream java.util.Enumeration
StackMap stack:
aload 2
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 4: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 3
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
astore 4
start local 4 5: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 5
start local 5 6: aload 5
getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS8ShroudedKeyBag_OID:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
7: aload 4
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.protectedPrivKey:[B
astore 6
start local 6 8: aconst_null
astore 7
start local 7 9: new sun.security.pkcs.EncryptedPrivateKeyInfo
dup
aload 6
invokespecial sun.security.pkcs.EncryptedPrivateKeyInfo.<init>:([B)V
astore 7
10: goto 15
StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerOutputStream java.util.Enumeration java.lang.String sun.security.pkcs12.PKCS12KeyStore$KeyEntry sun.security.util.DerOutputStream byte[] sun.security.pkcs.EncryptedPrivateKeyInfo
StackMap stack: java.io.IOException
11: astore 8
start local 8 12: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Private key not stored as PKCS#8 EncryptedPrivateKeyInfo"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
13: aload 8
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
14: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 8 15: StackMap locals:
StackMap stack:
new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 8
start local 8 16: aload 8
aload 7
invokevirtual sun.security.pkcs.EncryptedPrivateKeyInfo.getEncoded:()[B
invokevirtual sun.security.util.DerOutputStream.write:([B)V
17: aload 5
bipush -128
18: iconst_1
iconst_0
19: invokestatic sun.security.util.DerValue.createTag:(BZB)B
20: aload 8
21: invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
22: aload 0
aload 3
aload 4
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
invokevirtual sun.security.pkcs12.PKCS12KeyStore.getBagAttributes:(Ljava/lang/String;[B)[B
astore 9
start local 9 23: aload 5
aload 9
invokevirtual sun.security.util.DerOutputStream.write:([B)V
24: aload 1
bipush 48
aload 5
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 25: StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerOutputStream java.util.Enumeration
StackMap stack:
aload 2
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 3
end local 2 26: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 2
start local 2 27: aload 2
bipush 48
aload 1
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
28: aload 2
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lsun/security/pkcs12/PKCS12KeyStore;
1 29 1 out Lsun/security/util/DerOutputStream;
2 26 2 e Ljava/util/Enumeration<Ljava/lang/String;>;
4 25 3 alias Ljava/lang/String;
5 25 4 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
6 25 5 safeBag Lsun/security/util/DerOutputStream;
8 25 6 encrBytes [B
9 25 7 encrInfo Lsun/security/pkcs/EncryptedPrivateKeyInfo;
12 15 8 ioe Ljava/io/IOException;
16 25 8 bagValue Lsun/security/util/DerOutputStream;
23 25 9 bagAttrs [B
27 29 2 safeBagValue Lsun/security/util/DerOutputStream;
Exception table:
from to target type
9 10 11 Class java.io.IOException
Exceptions:
throws java.security.cert.CertificateException, java.io.IOException
private byte[] encryptContent(byte[], char[]);
descriptor: ([B[C)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 0
ldc "PBEWithSHA1AndRC2_40"
invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEAlgorithmParameters:(Ljava/lang/String;)Ljava/security/AlgorithmParameters;
2: astore 4
start local 4 3: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 5
start local 5 4: new sun.security.x509.AlgorithmId
dup
getstatic sun.security.pkcs12.PKCS12KeyStore.pbeWithSHAAnd40BitRC2CBC_OID:Lsun/security/util/ObjectIdentifier;
aload 4
invokespecial sun.security.x509.AlgorithmId.<init>:(Lsun/security/util/ObjectIdentifier;Ljava/security/AlgorithmParameters;)V
5: astore 6
start local 6 6: aload 6
aload 5
invokevirtual sun.security.x509.AlgorithmId.encode:(Lsun/security/util/DerOutputStream;)V
7: aload 5
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
astore 7
start local 7 8: aload 0
aload 2
invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEKey:([C)Ljavax/crypto/SecretKey;
astore 8
start local 8 9: ldc "PBEWithSHA1AndRC2_40"
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 9
start local 9 10: aload 9
iconst_1
aload 8
aload 4
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
11: aload 9
aload 1
invokevirtual javax.crypto.Cipher.doFinal:([B)[B
astore 3
end local 9 end local 8 12: goto 17
StackMap locals: sun.security.pkcs12.PKCS12KeyStore byte[] char[] byte[] java.security.AlgorithmParameters sun.security.util.DerOutputStream sun.security.x509.AlgorithmId byte[]
StackMap stack: java.lang.Exception
13: astore 8
start local 8 14: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Failed to encrypt safe contents entry: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
15: aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 8
16: invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 8 17: StackMap locals:
StackMap stack:
new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 8
start local 8 18: aload 8
getstatic sun.security.pkcs.ContentInfo.DATA_OID:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.DerOutputStream.putOID:(Lsun/security/util/ObjectIdentifier;)V
19: aload 8
aload 7
invokevirtual sun.security.util.DerOutputStream.write:([B)V
20: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 9
start local 9 21: aload 9
aload 3
invokevirtual sun.security.util.DerOutputStream.putOctetString:([B)V
22: aload 8
bipush -128
23: iconst_0
iconst_0
24: invokestatic sun.security.util.DerValue.createTag:(BZB)B
25: aload 9
26: invokevirtual sun.security.util.DerOutputStream.writeImplicit:(BLsun/security/util/DerOutputStream;)V
27: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 10
start local 10 28: aload 10
bipush 48
aload 8
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
29: aload 10
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
areturn
end local 10 end local 9 end local 8 end local 7 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 30 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 30 1 data [B
0 30 2 password [C
1 30 3 encryptedData [B
3 30 4 algParams Ljava/security/AlgorithmParameters;
4 30 5 bytes Lsun/security/util/DerOutputStream;
6 30 6 algId Lsun/security/x509/AlgorithmId;
8 30 7 encodedAlgId [B
9 12 8 skey Ljavax/crypto/SecretKey;
10 12 9 cipher Ljavax/crypto/Cipher;
14 17 8 e Ljava/lang/Exception;
18 30 8 bytes2 Lsun/security/util/DerOutputStream;
21 30 9 tmpout2 Lsun/security/util/DerOutputStream;
28 30 10 out Lsun/security/util/DerOutputStream;
Exception table:
from to target type
8 12 13 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
data
password
public synchronized void engineLoad(java.io.InputStream, char[]);
descriptor: (Ljava/io/InputStream;[C)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=26, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield sun.security.pkcs12.PKCS12KeyStore.counter:I
3: new sun.security.util.DerValue
dup
aload 1
invokespecial sun.security.util.DerValue.<init>:(Ljava/io/InputStream;)V
astore 3
start local 3 4: aload 3
invokevirtual sun.security.util.DerValue.toDerInputStream:()Lsun/security/util/DerInputStream;
astore 4
start local 4 5: aload 4
invokevirtual sun.security.util.DerInputStream.getInteger:()I
istore 5
start local 5 6: iload 5
iconst_3
if_icmpeq 8
7: new java.io.IOException
dup
ldc "PKCS12 keystore not in version 3 format"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: sun.security.util.DerValue sun.security.util.DerInputStream int
StackMap stack:
aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.clear:()V
9: new sun.security.pkcs.ContentInfo
dup
aload 4
invokespecial sun.security.pkcs.ContentInfo.<init>:(Lsun/security/util/DerInputStream;)V
astore 7
start local 7 10: aload 7
invokevirtual sun.security.pkcs.ContentInfo.getContentType:()Lsun/security/util/ObjectIdentifier;
astore 8
start local 8 11: aload 8
getstatic sun.security.pkcs.ContentInfo.DATA_OID:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 14
12: aload 7
invokevirtual sun.security.pkcs.ContentInfo.getData:()[B
astore 6
start local 6 13: goto 15
end local 6 14: StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int top sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier
StackMap stack:
new java.io.IOException
dup
ldc "public key protected PKCS12 not supported"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
start local 6 15: StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier
StackMap stack:
new sun.security.util.DerInputStream
dup
aload 6
invokespecial sun.security.util.DerInputStream.<init>:([B)V
astore 9
start local 9 16: aload 9
iconst_2
invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
astore 10
start local 10 17: aload 10
arraylength
istore 11
start local 11 18: aload 0
iconst_0
putfield sun.security.pkcs12.PKCS12KeyStore.privateKeyCount:I
19: iconst_0
istore 12
start local 12 20: goto 79
21: StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int int
StackMap stack:
new sun.security.util.DerInputStream
dup
aload 10
iload 12
aaload
invokevirtual sun.security.util.DerValue.toByteArray:()[B
invokespecial sun.security.util.DerInputStream.<init>:([B)V
astore 15
start local 15 22: new sun.security.pkcs.ContentInfo
dup
aload 15
invokespecial sun.security.pkcs.ContentInfo.<init>:(Lsun/security/util/DerInputStream;)V
astore 14
start local 14 23: aload 14
invokevirtual sun.security.pkcs.ContentInfo.getContentType:()Lsun/security/util/ObjectIdentifier;
astore 8
24: aconst_null
astore 13
start local 13 25: aload 8
getstatic sun.security.pkcs.ContentInfo.DATA_OID:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 28
26: aload 14
invokevirtual sun.security.pkcs.ContentInfo.getData:()[B
astore 13
27: goto 76
StackMap locals: byte[] sun.security.pkcs.ContentInfo sun.security.util.DerInputStream
StackMap stack:
28: aload 8
getstatic sun.security.pkcs.ContentInfo.ENCRYPTED_DATA_OID:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.equals:(Lsun/security/util/ObjectIdentifier;)Z
ifeq 75
29: aload 2
ifnonnull 31
30: goto 78
31: StackMap locals:
StackMap stack:
aload 14
invokevirtual sun.security.pkcs.ContentInfo.getContent:()Lsun/security/util/DerValue;
invokevirtual sun.security.util.DerValue.toDerInputStream:()Lsun/security/util/DerInputStream;
32: astore 16
start local 16 33: aload 16
invokevirtual sun.security.util.DerInputStream.getInteger:()I
pop
34: aload 16
iconst_2
invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
astore 17
start local 17 35: aload 17
iconst_0
aaload
invokevirtual sun.security.util.DerValue.getOID:()Lsun/security/util/ObjectIdentifier;
pop
36: aload 17
iconst_1
aaload
invokevirtual sun.security.util.DerValue.toByteArray:()[B
pop
37: aload 17
iconst_2
aaload
iconst_0
invokevirtual sun.security.util.DerValue.isContextSpecific:(B)Z
ifne 39
38: new java.io.IOException
dup
ldc "encrypted content not present!"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
39: StackMap locals: sun.security.util.DerInputStream sun.security.util.DerValue[]
StackMap stack:
iconst_4
istore 18
start local 18 40: aload 17
iconst_2
aaload
invokevirtual sun.security.util.DerValue.isConstructed:()Z
ifeq 42
41: iload 18
bipush 32
ior
i2b
istore 18
42: StackMap locals: int
StackMap stack:
aload 17
iconst_2
aaload
iload 18
invokevirtual sun.security.util.DerValue.resetTag:(B)V
43: aload 17
iconst_2
aaload
invokevirtual sun.security.util.DerValue.getOctetString:()[B
astore 13
44: aload 17
iconst_1
aaload
invokevirtual sun.security.util.DerValue.toDerInputStream:()Lsun/security/util/DerInputStream;
astore 19
start local 19 45: aload 19
invokevirtual sun.security.util.DerInputStream.getOID:()Lsun/security/util/ObjectIdentifier;
astore 20
start local 20 46: aload 0
aload 19
invokevirtual sun.security.pkcs12.PKCS12KeyStore.parseAlgParameters:(Lsun/security/util/DerInputStream;)Ljava/security/AlgorithmParameters;
astore 21
start local 21 47: iconst_0
istore 23
start local 23 48: aload 21
ifnull 59
49: aload 21
ldc Ljavax/crypto/spec/PBEParameterSpec;
invokevirtual java.security.AlgorithmParameters.getParameterSpec:(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;
checkcast javax.crypto.spec.PBEParameterSpec
50: astore 22
start local 22 51: goto 56
end local 22 StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int int byte[] sun.security.pkcs.ContentInfo sun.security.util.DerInputStream sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.util.DerInputStream sun.security.util.ObjectIdentifier java.security.AlgorithmParameters top int
StackMap stack: java.security.spec.InvalidParameterSpecException
52: pop
53: new java.io.IOException
dup
54: ldc "Invalid PBE algorithm parameters"
55: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
start local 22 56: StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int int byte[] sun.security.pkcs.ContentInfo sun.security.util.DerInputStream sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.util.DerInputStream sun.security.util.ObjectIdentifier java.security.AlgorithmParameters javax.crypto.spec.PBEParameterSpec int
StackMap stack:
aload 22
invokevirtual javax.crypto.spec.PBEParameterSpec.getIterationCount:()I
istore 23
57: iload 23
ldc 5000000
if_icmple 59
58: new java.io.IOException
dup
ldc "PBE iteration count too large"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 22 59: StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int int byte[] sun.security.pkcs.ContentInfo sun.security.util.DerInputStream sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.util.DerInputStream sun.security.util.ObjectIdentifier java.security.AlgorithmParameters top int
StackMap stack:
getstatic sun.security.pkcs12.PKCS12KeyStore.debug:Lsun/security/util/Debug;
ifnull 64
60: getstatic sun.security.pkcs12.PKCS12KeyStore.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Loading PKCS#7 encryptedData ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
61: new sun.security.x509.AlgorithmId
dup
aload 20
invokespecial sun.security.x509.AlgorithmId.<init>:(Lsun/security/util/ObjectIdentifier;)V
invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
62: ldc " iterations: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 23
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
63: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
64: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEKey:([C)Ljavax/crypto/SecretKey;
astore 24
start local 24 65: aload 20
invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 25
start local 25 66: aload 25
iconst_2
aload 24
aload 21
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V
67: aload 25
aload 13
invokevirtual javax.crypto.Cipher.doFinal:([B)[B
astore 13
end local 25 end local 24 68: goto 76
StackMap locals:
StackMap stack: java.lang.Exception
69: astore 24
start local 24 70: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "failed to decrypt safe contents entry: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
71: aload 24
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
72: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
astore 25
start local 25 73: aload 25
aload 24
invokevirtual java.io.IOException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
74: aload 25
athrow
end local 25 end local 24 end local 23 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 75: StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int int byte[] sun.security.pkcs.ContentInfo sun.security.util.DerInputStream
StackMap stack:
new java.io.IOException
dup
ldc "public key protected PKCS12 not supported"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
76: StackMap locals:
StackMap stack:
new sun.security.util.DerInputStream
dup
aload 13
invokespecial sun.security.util.DerInputStream.<init>:([B)V
astore 16
start local 16 77: aload 0
aload 16
aload 2
invokevirtual sun.security.pkcs12.PKCS12KeyStore.loadSafeContents:(Lsun/security/util/DerInputStream;[C)V
end local 16 end local 15 end local 14 end local 13 78: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
79: iload 12
iload 11
if_icmplt 21
end local 12 80: aload 2
ifnull 103
aload 4
invokevirtual sun.security.util.DerInputStream.available:()I
ifle 103
81: new sun.security.pkcs12.MacData
dup
aload 4
invokespecial sun.security.pkcs12.MacData.<init>:(Lsun/security/util/DerInputStream;)V
astore 12
start local 12 82: aload 12
invokevirtual sun.security.pkcs12.MacData.getIterations:()I
istore 13
start local 13 83: iload 13
ldc 5000000
if_icmple 87
84: new java.security.InvalidAlgorithmParameterException
dup
85: new java.lang.StringBuilder
dup
ldc "MAC iteration count too large: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 13
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
86: invokespecial java.security.InvalidAlgorithmParameterException.<init>:(Ljava/lang/String;)V
athrow
87: StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.pkcs12.MacData int
StackMap stack:
aload 12
invokevirtual sun.security.pkcs12.MacData.getDigestAlgName:()Ljava/lang/String;
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
astore 14
start local 14 88: aload 14
ldc "SHA"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 91
89: aload 14
ldc "SHA1"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 91
90: aload 14
ldc "SHA-1"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 92
91: StackMap locals: java.lang.String
StackMap stack:
ldc "SHA1"
astore 14
92: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "HmacPBE"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 14
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic javax.crypto.Mac.getInstance:(Ljava/lang/String;)Ljavax/crypto/Mac;
astore 15
start local 15 93: new javax.crypto.spec.PBEParameterSpec
dup
aload 12
invokevirtual sun.security.pkcs12.MacData.getSalt:()[B
iload 13
invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
94: astore 16
start local 16 95: aload 0
aload 2
invokevirtual sun.security.pkcs12.PKCS12KeyStore.getPBEKey:([C)Ljavax/crypto/SecretKey;
astore 17
start local 17 96: aload 15
aload 17
aload 16
invokevirtual javax.crypto.Mac.init:(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
97: aload 15
aload 6
invokevirtual javax.crypto.Mac.update:([B)V
98: aload 15
invokevirtual javax.crypto.Mac.doFinal:()[B
astore 18
start local 18 99: aload 12
invokevirtual sun.security.pkcs12.MacData.getDigest:()[B
aload 18
invokestatic java.security.MessageDigest.isEqual:([B[B)Z
ifne 103
100: new java.lang.SecurityException
dup
ldc "Failed PKCS12 integrity checking"
invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
end local 18 end local 17 end local 16 end local 15 end local 14 101: StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.pkcs12.MacData int
StackMap stack: java.lang.Exception
astore 14
start local 14 102: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Integrity check failed: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 14
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 14
invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 14 end local 13 end local 12 103: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.keyList:Ljava/util/ArrayList;
aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.keyList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
anewarray sun.security.pkcs12.PKCS12KeyStore$KeyEntry
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry[]
astore 12
start local 12 104: iconst_0
istore 13
start local 13 105: goto 133
106: StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry[] int
StackMap stack:
aload 12
iload 13
aaload
astore 14
start local 14 107: aload 14
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
ifnull 132
108: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
109: astore 15
start local 15 110: aload 0
aload 14
invokevirtual sun.security.pkcs12.PKCS12KeyStore.findMatchedCertificate:(Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;)Ljava/security/cert/X509Certificate;
astore 16
start local 16 111: goto 129
112: StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.util.ArrayList java.security.cert.X509Certificate
StackMap stack:
aload 15
invokevirtual java.util.ArrayList.isEmpty:()Z
ifne 124
113: aload 15
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 18
goto 123
StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.pkcs12.PKCS12KeyStore$KeyEntry[] int sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.util.ArrayList java.security.cert.X509Certificate top java.util.Iterator
StackMap stack:
114: aload 18
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 17
start local 17 115: aload 16
aload 17
invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
ifeq 123
116: getstatic sun.security.pkcs12.PKCS12KeyStore.debug:Lsun/security/util/Debug;
ifnull 130
117: getstatic sun.security.pkcs12.PKCS12KeyStore.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "Loop detected in certificate chain. Skip adding repeated cert to chain. Subject: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
118: aload 16
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
119: invokevirtual javax.security.auth.x500.X500Principal.toString:()Ljava/lang/String;
120: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
121: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
122: goto 130
end local 17 123: StackMap locals:
StackMap stack:
aload 18
invokeinterface java.util.Iterator.hasNext:()Z
ifne 114
124: StackMap locals: sun.security.pkcs12.PKCS12KeyStore java.io.InputStream char[] sun.security.util.DerValue sun.security.util.DerInputStream int byte[] sun.security.pkcs.ContentInfo sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue[] int sun.security.pkcs12.PKCS12KeyStore$KeyEntry[] int sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.util.ArrayList java.security.cert.X509Certificate
StackMap stack:
aload 15
aload 16
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
125: aload 16
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 17
start local 17 126: aload 17
aload 16
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifeq 128
127: goto 130
128: StackMap locals: javax.security.auth.x500.X500Principal
StackMap stack:
aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.certsMap:Ljava/util/LinkedHashMap;
aload 17
invokevirtual java.util.LinkedHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.X509Certificate
astore 16
end local 17 129: StackMap locals:
StackMap stack:
aload 16
ifnonnull 112
130: StackMap locals:
StackMap stack:
aload 15
invokevirtual java.util.ArrayList.size:()I
ifle 132
131: aload 14
aload 15
aload 15
invokevirtual java.util.ArrayList.size:()I
anewarray java.security.cert.Certificate
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.security.cert.Certificate[]
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
end local 16 end local 15 end local 14 132: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
133: iload 13
aload 12
arraylength
if_icmplt 106
end local 13 134: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.certEntries:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.clear:()V
135: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.certsMap:Ljava/util/LinkedHashMap;
invokevirtual java.util.LinkedHashMap.clear:()V
136: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.keyList:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.clear:()V
137: return
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 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 138 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 138 1 stream Ljava/io/InputStream;
0 138 2 password [C
4 138 3 val Lsun/security/util/DerValue;
5 138 4 s Lsun/security/util/DerInputStream;
6 138 5 version I
13 14 6 authSafeData [B
15 138 6 authSafeData [B
10 138 7 authSafe Lsun/security/pkcs/ContentInfo;
11 138 8 contentType Lsun/security/util/ObjectIdentifier;
16 138 9 as Lsun/security/util/DerInputStream;
17 138 10 safeContentsArray [Lsun/security/util/DerValue;
18 138 11 count I
20 80 12 i I
25 78 13 safeContentsData [B
23 78 14 safeContents Lsun/security/pkcs/ContentInfo;
22 78 15 sci Lsun/security/util/DerInputStream;
33 75 16 edi Lsun/security/util/DerInputStream;
35 75 17 seq [Lsun/security/util/DerValue;
40 75 18 newTag B
45 75 19 in Lsun/security/util/DerInputStream;
46 75 20 algOid Lsun/security/util/ObjectIdentifier;
47 75 21 algParams Ljava/security/AlgorithmParameters;
51 52 22 pbeSpec Ljavax/crypto/spec/PBEParameterSpec;
56 59 22 pbeSpec Ljavax/crypto/spec/PBEParameterSpec;
48 75 23 ic I
65 68 24 skey Ljavax/crypto/SecretKey;
66 68 25 cipher Ljavax/crypto/Cipher;
70 75 24 e Ljava/lang/Exception;
73 75 25 ioe Ljava/io/IOException;
77 78 16 sc Lsun/security/util/DerInputStream;
82 103 12 macData Lsun/security/pkcs12/MacData;
83 103 13 ic I
88 101 14 algName Ljava/lang/String;
93 101 15 m Ljavax/crypto/Mac;
95 101 16 params Ljavax/crypto/spec/PBEParameterSpec;
96 101 17 key Ljavax/crypto/SecretKey;
99 101 18 macResult [B
102 103 14 e Ljava/lang/Exception;
104 138 12 list [Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
105 134 13 m I
107 132 14 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
110 132 15 chain Ljava/util/ArrayList<Ljava/security/cert/X509Certificate;>;
111 132 16 cert Ljava/security/cert/X509Certificate;
115 123 17 chainCert Ljava/security/cert/X509Certificate;
126 129 17 issuerDN Ljavax/security/auth/x500/X500Principal;
Exception table:
from to target type
49 51 52 Class java.security.spec.InvalidParameterSpecException
64 68 69 Class java.lang.Exception
83 101 101 Class java.lang.Exception
Exceptions:
throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
MethodParameters:
Name Flags
stream
password
private java.security.cert.X509Certificate findMatchedCertificate(sun.security.pkcs12.PKCS12KeyStore$KeyEntry);
descriptor: (Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;)Ljava/security/cert/X509Certificate;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.certEntries:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 5
goto 10
StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.pkcs12.PKCS12KeyStore$KeyEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.pkcs12.PKCS12KeyStore$CertEntry
astore 4
start local 4 4: aload 1
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
aload 4
getfield sun.security.pkcs12.PKCS12KeyStore$CertEntry.keyId:[B
invokestatic java.util.Arrays.equals:([B[B)Z
ifeq 8
5: aload 4
astore 2
6: aload 1
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.alias:Ljava/lang/String;
aload 4
getfield sun.security.pkcs12.PKCS12KeyStore$CertEntry.alias:Ljava/lang/String;
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 10
7: aload 4
getfield sun.security.pkcs12.PKCS12KeyStore$CertEntry.cert:Ljava/security/cert/X509Certificate;
areturn
8: StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.pkcs12.PKCS12KeyStore$KeyEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry java.util.Iterator
StackMap stack:
aload 1
getfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.alias:Ljava/lang/String;
aload 4
getfield sun.security.pkcs12.PKCS12KeyStore$CertEntry.alias:Ljava/lang/String;
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 10
9: aload 4
astore 3
end local 4 10: StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.pkcs12.PKCS12KeyStore$KeyEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
11: aload 2
ifnull 12
aload 2
getfield sun.security.pkcs12.PKCS12KeyStore$CertEntry.cert:Ljava/security/cert/X509Certificate;
areturn
12: StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.pkcs12.PKCS12KeyStore$KeyEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry sun.security.pkcs12.PKCS12KeyStore$CertEntry
StackMap stack:
aload 3
ifnull 13
aload 3
getfield sun.security.pkcs12.PKCS12KeyStore$CertEntry.cert:Ljava/security/cert/X509Certificate;
areturn
13: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 14 1 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
1 14 2 keyIdMatch Lsun/security/pkcs12/PKCS12KeyStore$CertEntry;
2 14 3 aliasMatch Lsun/security/pkcs12/PKCS12KeyStore$CertEntry;
4 10 4 ce Lsun/security/pkcs12/PKCS12KeyStore$CertEntry;
MethodParameters:
Name Flags
entry
private void loadSafeContents(sun.security.util.DerInputStream, char[]);
descriptor: (Lsun/security/util/DerInputStream;[C)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=20, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iconst_2
invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
astore 3
start local 3 1: aload 3
arraylength
istore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 96
4: StackMap locals: sun.security.util.DerValue[] int int
StackMap stack:
aconst_null
astore 9
start local 9 5: aload 3
iload 5
aaload
invokevirtual sun.security.util.DerValue.toDerInputStream:()Lsun/security/util/DerInputStream;
astore 7
start local 7 6: aload 7
invokevirtual sun.security.util.DerInputStream.getOID:()Lsun/security/util/ObjectIdentifier;
astore 6
start local 6 7: aload 7
invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
astore 8
start local 8 8: aload 8
iconst_0
invokevirtual sun.security.util.DerValue.isContextSpecific:(B)Z
ifne 12
9: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "unsupported PKCS12 bag value type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
10: aload 8
getfield sun.security.util.DerValue.tag:B
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerInputStream char[] sun.security.util.DerValue[] int int sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue java.lang.Object
StackMap stack:
aload 8
getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
astore 8
13: aload 6
getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS8ShroudedKeyBag_OID:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 19
14: new sun.security.pkcs12.PKCS12KeyStore$KeyEntry
dup
invokespecial sun.security.pkcs12.PKCS12KeyStore$KeyEntry.<init>:()V
astore 10
start local 10 15: aload 10
aload 8
invokevirtual sun.security.util.DerValue.toByteArray:()[B
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.protectedPrivKey:[B
16: aload 10
astore 9
17: aload 0
dup
getfield sun.security.pkcs12.PKCS12KeyStore.privateKeyCount:I
iconst_1
iadd
putfield sun.security.pkcs12.PKCS12KeyStore.privateKeyCount:I
end local 10 18: goto 33
StackMap locals:
StackMap stack:
19: aload 6
getstatic sun.security.pkcs12.PKCS12KeyStore.CertBag_OID:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 33
20: new sun.security.util.DerInputStream
dup
aload 8
invokevirtual sun.security.util.DerValue.toByteArray:()[B
invokespecial sun.security.util.DerInputStream.<init>:([B)V
astore 10
start local 10 21: aload 10
iconst_2
invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
astore 11
start local 11 22: aload 11
iconst_0
aaload
invokevirtual sun.security.util.DerValue.getOID:()Lsun/security/util/ObjectIdentifier;
pop
23: aload 11
iconst_1
aaload
iconst_0
invokevirtual sun.security.util.DerValue.isContextSpecific:(B)Z
ifne 27
24: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "unsupported PKCS12 cert value type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
25: aload 11
iconst_1
aaload
getfield sun.security.util.DerValue.tag:B
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
26: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals: sun.security.util.DerInputStream sun.security.util.DerValue[]
StackMap stack:
aload 11
iconst_1
aaload
getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
astore 12
start local 12 28: ldc "X509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 13
start local 13 29: aload 13
30: new java.io.ByteArrayInputStream
dup
aload 12
invokevirtual sun.security.util.DerValue.getOctetString:()[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
31: invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
checkcast java.security.cert.X509Certificate
astore 14
start local 14 32: aload 14
astore 9
end local 14 end local 13 end local 12 end local 11 end local 10 33: StackMap locals:
StackMap stack:
aload 7
iconst_2
invokevirtual sun.security.util.DerInputStream.getSet:(I)[Lsun/security/util/DerValue;
astore 10
start local 10 34: goto 37
end local 10 StackMap locals:
StackMap stack: java.io.IOException
35: pop
36: aconst_null
astore 10
start local 10 37: StackMap locals: sun.security.util.DerValue[]
StackMap stack:
aconst_null
astore 11
start local 11 38: aconst_null
astore 12
start local 12 39: aload 10
ifnull 61
40: iconst_0
istore 13
start local 13 41: goto 60
42: StackMap locals: java.lang.String byte[] int
StackMap stack:
new sun.security.util.DerInputStream
dup
aload 10
iload 13
aaload
invokevirtual sun.security.util.DerValue.toByteArray:()[B
invokespecial sun.security.util.DerInputStream.<init>:([B)V
43: astore 14
start local 14 44: aload 14
iconst_2
invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
astore 15
start local 15 45: aload 15
iconst_0
aaload
invokevirtual sun.security.util.DerValue.getOID:()Lsun/security/util/ObjectIdentifier;
astore 16
start local 16 46: new sun.security.util.DerInputStream
dup
aload 15
iconst_1
aaload
invokevirtual sun.security.util.DerValue.toByteArray:()[B
invokespecial sun.security.util.DerInputStream.<init>:([B)V
47: astore 17
start local 17 48: aload 17
iconst_1
invokevirtual sun.security.util.DerInputStream.getSet:(I)[Lsun/security/util/DerValue;
astore 18
start local 18 49: goto 54
end local 18 StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerInputStream char[] sun.security.util.DerValue[] int int sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue java.lang.Object sun.security.util.DerValue[] java.lang.String byte[] int sun.security.util.DerInputStream sun.security.util.DerValue[] sun.security.util.ObjectIdentifier sun.security.util.DerInputStream
StackMap stack: java.io.IOException
50: astore 19
start local 19 51: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Attribute "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 16
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
52: ldc " should have a value "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 19
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
53: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 19 start local 18 54: StackMap locals: sun.security.util.DerValue[]
StackMap stack:
aload 16
getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9FriendlyName_OID:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 57
55: aload 18
iconst_0
aaload
invokevirtual sun.security.util.DerValue.getBMPString:()Ljava/lang/String;
astore 11
56: goto 59
StackMap locals:
StackMap stack:
57: aload 16
getstatic sun.security.pkcs12.PKCS12KeyStore.PKCS9LocalKeyId_OID:Lsun/security/util/ObjectIdentifier;
invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 59
58: aload 18
iconst_0
aaload
invokevirtual sun.security.util.DerValue.getOctetString:()[B
astore 12
end local 18 end local 17 end local 16 end local 15 end local 14 59: StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerInputStream char[] sun.security.util.DerValue[] int int sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue java.lang.Object sun.security.util.DerValue[] java.lang.String byte[] int
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
60: iload 13
aload 10
arraylength
if_icmplt 42
end local 13 61: StackMap locals:
StackMap stack:
aload 9
instanceof sun.security.pkcs12.PKCS12KeyStore$KeyEntry
ifeq 85
62: aload 9
checkcast sun.security.pkcs12.PKCS12KeyStore$KeyEntry
astore 13
start local 13 63: aload 12
ifnonnull 66
64: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.privateKeyCount:I
iconst_1
if_icmpne 95
65: ldc "01"
ldc "UTF8"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
astore 12
66: StackMap locals: sun.security.pkcs12.PKCS12KeyStore$KeyEntry
StackMap stack:
aload 13
aload 12
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.keyId:[B
67: new java.lang.String
dup
aload 12
ldc "UTF8"
invokespecial java.lang.String.<init>:([BLjava/lang/String;)V
astore 14
start local 14 68: aconst_null
astore 15
start local 15 69: aload 14
ldc "Time "
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 76
70: new java.util.Date
dup
71: aload 14
iconst_5
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
72: invokespecial java.util.Date.<init>:(J)V
astore 15
73: goto 76
StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerInputStream char[] sun.security.util.DerValue[] int int sun.security.util.ObjectIdentifier sun.security.util.DerInputStream sun.security.util.DerValue java.lang.Object sun.security.util.DerValue[] java.lang.String byte[] sun.security.pkcs12.PKCS12KeyStore$KeyEntry java.lang.String java.util.Date
StackMap stack: java.lang.Exception
74: pop
75: aconst_null
astore 15
76: StackMap locals:
StackMap stack:
aload 15
ifnonnull 78
77: new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
astore 15
78: StackMap locals:
StackMap stack:
aload 13
aload 15
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.date:Ljava/util/Date;
79: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.keyList:Ljava/util/ArrayList;
aload 13
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
80: aload 11
ifnonnull 82
81: aload 0
invokevirtual sun.security.pkcs12.PKCS12KeyStore.getUnfriendlyName:()Ljava/lang/String;
astore 11
82: StackMap locals:
StackMap stack:
aload 13
aload 11
putfield sun.security.pkcs12.PKCS12KeyStore$KeyEntry.alias:Ljava/lang/String;
83: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.entries:Ljava/util/Hashtable;
aload 11
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
aload 13
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 15 end local 14 end local 13 84: goto 95
StackMap locals:
StackMap stack:
85: aload 9
instanceof java.security.cert.X509Certificate
ifeq 95
86: aload 9
checkcast java.security.cert.X509Certificate
astore 13
start local 13 87: aload 12
ifnonnull 90
aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.privateKeyCount:I
iconst_1
if_icmpne 90
88: iload 5
ifne 90
89: ldc "01"
ldc "UTF8"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
astore 12
90: StackMap locals: java.security.cert.X509Certificate
StackMap stack:
aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.certEntries:Ljava/util/ArrayList;
new sun.security.pkcs12.PKCS12KeyStore$CertEntry
dup
aload 13
aload 12
aload 11
invokespecial sun.security.pkcs12.PKCS12KeyStore$CertEntry.<init>:(Ljava/security/cert/X509Certificate;[BLjava/lang/String;)V
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
91: aload 13
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 14
start local 14 92: aload 14
ifnull 95
93: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.certsMap:Ljava/util/LinkedHashMap;
aload 14
invokevirtual java.util.LinkedHashMap.containsKey:(Ljava/lang/Object;)Z
ifne 95
94: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.certsMap:Ljava/util/LinkedHashMap;
aload 14
aload 13
invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 95: StackMap locals: sun.security.pkcs12.PKCS12KeyStore sun.security.util.DerInputStream char[] sun.security.util.DerValue[] int int
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
96: iload 5
iload 4
if_icmplt 4
end local 5 97: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 98 0 this Lsun/security/pkcs12/PKCS12KeyStore;
0 98 1 stream Lsun/security/util/DerInputStream;
0 98 2 password [C
1 98 3 safeBags [Lsun/security/util/DerValue;
2 98 4 count I
3 97 5 i I
7 95 6 bagId Lsun/security/util/ObjectIdentifier;
6 95 7 sbi Lsun/security/util/DerInputStream;
8 95 8 bagValue Lsun/security/util/DerValue;
5 95 9 bagItem Ljava/lang/Object;
15 18 10 kEntry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
21 33 10 cs Lsun/security/util/DerInputStream;
22 33 11 certValues [Lsun/security/util/DerValue;
28 33 12 certValue Lsun/security/util/DerValue;
29 33 13 cf Ljava/security/cert/CertificateFactory;
32 33 14 cert Ljava/security/cert/X509Certificate;
34 35 10 attrSet [Lsun/security/util/DerValue;
37 95 10 attrSet [Lsun/security/util/DerValue;
38 95 11 alias Ljava/lang/String;
39 95 12 keyId [B
41 61 13 j I
44 59 14 as Lsun/security/util/DerInputStream;
45 59 15 attrSeq [Lsun/security/util/DerValue;
46 59 16 attrId Lsun/security/util/ObjectIdentifier;
48 59 17 vs Lsun/security/util/DerInputStream;
49 50 18 valSet [Lsun/security/util/DerValue;
54 59 18 valSet [Lsun/security/util/DerValue;
51 54 19 e Ljava/io/IOException;
63 84 13 entry Lsun/security/pkcs12/PKCS12KeyStore$KeyEntry;
68 84 14 keyIdStr Ljava/lang/String;
69 84 15 date Ljava/util/Date;
87 95 13 cert Ljava/security/cert/X509Certificate;
92 95 14 subjectDN Ljavax/security/auth/x500/X500Principal;
Exception table:
from to target type
33 34 35 Class java.io.IOException
48 49 50 Class java.io.IOException
70 73 74 Class java.lang.Exception
Exceptions:
throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
MethodParameters:
Name Flags
stream
password
private java.lang.String getUnfriendlyName();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield sun.security.pkcs12.PKCS12KeyStore.counter:I
iconst_1
iadd
putfield sun.security.pkcs12.PKCS12KeyStore.counter:I
1: aload 0
getfield sun.security.pkcs12.PKCS12KeyStore.counter:I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/pkcs12/PKCS12KeyStore;
}
SourceFile: "PKCS12KeyStore.java"
NestMembers:
sun.security.pkcs12.PKCS12KeyStore$CertEntry sun.security.pkcs12.PKCS12KeyStore$KeyEntry
InnerClasses:
private CertEntry = sun.security.pkcs12.PKCS12KeyStore$CertEntry of sun.security.pkcs12.PKCS12KeyStore
private KeyEntry = sun.security.pkcs12.PKCS12KeyStore$KeyEntry of sun.security.pkcs12.PKCS12KeyStore