abstract class sun.security.provider.JavaKeyStore extends java.security.KeyStoreSpi
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: sun.security.provider.JavaKeyStore
super_class: java.security.KeyStoreSpi
{
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 MAGIC;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -17957139
private static final int VERSION_1;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int VERSION_2;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private final java.util.Hashtable<java.lang.String, java.lang.Object> entries;
descriptor: Ljava/util/Hashtable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Object;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "keystore"
invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
putstatic sun.security.provider.JavaKeyStore.debug:Lsun/security/util/Debug;
1: return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.security.KeyStoreSpi.<init>:()V
1: aload 0
new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/provider/JavaKeyStore;
abstract java.lang.String convertAlias(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
alias
public java.security.Key engineGetKey(java.lang.String, char[]);
descriptor: (Ljava/lang/String;[C)Ljava/security/Key;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual sun.security.provider.JavaKeyStore.convertAlias:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 1: aload 3
ifnull 2
aload 3
instanceof sun.security.provider.JavaKeyStore$KeyEntry
ifne 3
2: StackMap locals: java.lang.Object
StackMap stack:
aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 2
ifnonnull 5
4: new java.security.UnrecoverableKeyException
dup
ldc "Password must not be null"
invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual sun.security.provider.JavaKeyStore.convertToBytes:([C)[B
astore 4
start local 4 6: new sun.security.provider.KeyProtector
dup
aload 4
invokespecial sun.security.provider.KeyProtector.<init>:([B)V
astore 5
start local 5 7: aload 3
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.protectedPrivKey:[B
astore 6
start local 6 8: new sun.security.pkcs.EncryptedPrivateKeyInfo
dup
aload 6
invokespecial sun.security.pkcs.EncryptedPrivateKeyInfo.<init>:([B)V
astore 7
start local 7 9: aload 5
aload 7
invokevirtual sun.security.provider.KeyProtector.recover:(Lsun/security/pkcs/EncryptedPrivateKeyInfo;)Ljava/security/Key;
astore 9
10: aload 4
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
11: aload 9
areturn
end local 7 12: StackMap locals: sun.security.provider.JavaKeyStore java.lang.String char[] java.lang.Object byte[] sun.security.provider.KeyProtector byte[]
StackMap stack: java.io.IOException
pop
13: new java.security.UnrecoverableKeyException
dup
ldc "Private key not stored as PKCS #8 EncryptedPrivateKeyInfo"
invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
15: aload 4
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
16: aload 8
athrow
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/security/provider/JavaKeyStore;
0 17 1 alias Ljava/lang/String;
0 17 2 password [C
1 17 3 entry Ljava/lang/Object;
6 17 4 passwordBytes [B
7 17 5 keyProtector Lsun/security/provider/KeyProtector;
8 17 6 encrBytes [B
9 12 7 encrInfo Lsun/security/pkcs/EncryptedPrivateKeyInfo;
Exception table:
from to target type
8 10 12 Class java.io.IOException
8 10 14 any
12 14 14 any
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=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual sun.security.provider.JavaKeyStore.convertAlias:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnull 5
aload 2
instanceof sun.security.provider.JavaKeyStore$KeyEntry
ifeq 5
2: aload 2
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: java.lang.Object
StackMap stack:
aload 2
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$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/provider/JavaKeyStore;
0 6 1 alias Ljava/lang/String;
1 6 2 entry Ljava/lang/Object;
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=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual sun.security.provider.JavaKeyStore.convertAlias:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnull 7
2: aload 2
instanceof sun.security.provider.JavaKeyStore$TrustedCertEntry
ifeq 4
3: aload 2
checkcast sun.security.provider.JavaKeyStore$TrustedCertEntry
getfield sun.security.provider.JavaKeyStore$TrustedCertEntry.cert:Ljava/security/cert/Certificate;
areturn
4: StackMap locals: java.lang.Object
StackMap stack:
aload 2
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
ifnonnull 6
5: aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 2
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
iconst_0
aaload
areturn
7: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/provider/JavaKeyStore;
0 8 1 alias Ljava/lang/String;
1 8 2 entry Ljava/lang/Object;
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.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual sun.security.provider.JavaKeyStore.convertAlias:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnull 5
2: aload 2
instanceof sun.security.provider.JavaKeyStore$TrustedCertEntry
ifeq 4
3: new java.util.Date
dup
aload 2
checkcast sun.security.provider.JavaKeyStore$TrustedCertEntry
getfield sun.security.provider.JavaKeyStore$TrustedCertEntry.date:Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokespecial java.util.Date.<init>:(J)V
areturn
4: StackMap locals: java.lang.Object
StackMap stack:
new java.util.Date
dup
aload 2
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.date:Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokespecial java.util.Date.<init>:(J)V
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/provider/JavaKeyStore;
0 6 1 alias Ljava/lang/String;
1 6 2 entry Ljava/lang/Object;
MethodParameters:
Name Flags
alias
public 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: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 6
start local 6 1: aload 2
instanceof java.security.PrivateKey
ifne 3
2: new java.security.KeyStoreException
dup
ldc "Cannot store non-PrivateKeys"
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: sun.security.provider.JavaKeyStore java.lang.String java.security.Key char[] java.security.cert.Certificate[] top byte[]
StackMap stack:
aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
dup
astore 7
monitorenter
4: new sun.security.provider.JavaKeyStore$KeyEntry
dup
invokespecial sun.security.provider.JavaKeyStore$KeyEntry.<init>:()V
astore 8
start local 8 5: aload 8
new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
putfield sun.security.provider.JavaKeyStore$KeyEntry.date:Ljava/util/Date;
6: aload 0
aload 3
invokevirtual sun.security.provider.JavaKeyStore.convertToBytes:([C)[B
astore 6
7: new sun.security.provider.KeyProtector
dup
aload 6
invokespecial sun.security.provider.KeyProtector.<init>:([B)V
astore 5
start local 5 8: aload 8
aload 5
aload 2
invokevirtual sun.security.provider.KeyProtector.protect:(Ljava/security/Key;)[B
putfield sun.security.provider.JavaKeyStore$KeyEntry.protectedPrivKey:[B
9: aload 4
ifnull 13
10: aload 4
arraylength
ifeq 13
11: aload 8
aload 4
invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.Certificate[]
putfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
12: goto 14
13: StackMap locals: sun.security.provider.JavaKeyStore java.lang.String java.security.Key char[] java.security.cert.Certificate[] sun.security.provider.KeyProtector byte[] java.util.Hashtable sun.security.provider.JavaKeyStore$KeyEntry
StackMap stack:
aload 8
aconst_null
putfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
14: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual sun.security.provider.JavaKeyStore.convertAlias:(Ljava/lang/String;)Ljava/lang/String;
aload 8
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 15: aload 7
monitorexit
16: goto 25
end local 5 StackMap locals: sun.security.provider.JavaKeyStore java.lang.String java.security.Key char[] java.security.cert.Certificate[] top byte[] java.util.Hashtable
StackMap stack: java.lang.Throwable
17: aload 7
monitorexit
18: athrow
19: StackMap locals: sun.security.provider.JavaKeyStore java.lang.String java.security.Key char[] java.security.cert.Certificate[] top byte[]
StackMap stack: java.security.NoSuchAlgorithmException
pop
20: new java.security.KeyStoreException
dup
ldc "Key protection algorithm not found"
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack: java.lang.Throwable
astore 9
22: aload 6
ifnull 24
23: aload 6
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
24: StackMap locals: sun.security.provider.JavaKeyStore java.lang.String java.security.Key char[] java.security.cert.Certificate[] top byte[] top top java.lang.Throwable
StackMap stack:
aload 9
athrow
start local 5 25: StackMap locals: sun.security.provider.JavaKeyStore java.lang.String java.security.Key char[] java.security.cert.Certificate[] sun.security.provider.KeyProtector byte[]
StackMap stack:
aload 6
ifnull 27
26: aload 6
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
27: StackMap locals:
StackMap stack:
return
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 28 0 this Lsun/security/provider/JavaKeyStore;
0 28 1 alias Ljava/lang/String;
0 28 2 key Ljava/security/Key;
0 28 3 password [C
0 28 4 chain [Ljava/security/cert/Certificate;
8 17 5 keyProtector Lsun/security/provider/KeyProtector;
25 28 5 keyProtector Lsun/security/provider/KeyProtector;
1 28 6 passwordBytes [B
5 15 8 entry Lsun/security/provider/JavaKeyStore$KeyEntry;
Exception table:
from to target type
4 16 17 any
17 18 17 any
3 19 19 Class java.security.NoSuchAlgorithmException
3 21 21 any
Exceptions:
throws java.security.KeyStoreException
MethodParameters:
Name Flags
alias
key
password
chain
public void engineSetKeyEntry(java.lang.String, byte[], java.security.cert.Certificate[]);
descriptor: (Ljava/lang/String;[B[Ljava/security/cert/Certificate;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
dup
astore 4
monitorenter
1: new sun.security.pkcs.EncryptedPrivateKeyInfo
aload 2
invokespecial sun.security.pkcs.EncryptedPrivateKeyInfo.<init>:([B)V
2: goto 5
StackMap locals: sun.security.provider.JavaKeyStore java.lang.String byte[] java.security.cert.Certificate[] java.util.Hashtable
StackMap stack: java.io.IOException
3: pop
4: new java.security.KeyStoreException
dup
ldc "key is not encoded as EncryptedPrivateKeyInfo"
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
new sun.security.provider.JavaKeyStore$KeyEntry
dup
invokespecial sun.security.provider.JavaKeyStore$KeyEntry.<init>:()V
astore 5
start local 5 6: aload 5
new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
putfield sun.security.provider.JavaKeyStore$KeyEntry.date:Ljava/util/Date;
7: aload 5
aload 2
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
putfield sun.security.provider.JavaKeyStore$KeyEntry.protectedPrivKey:[B
8: aload 3
ifnull 12
9: aload 3
arraylength
ifeq 12
10: aload 5
aload 3
invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.Certificate[]
putfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
11: goto 13
12: StackMap locals: sun.security.provider.JavaKeyStore$KeyEntry
StackMap stack:
aload 5
aconst_null
putfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
13: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual sun.security.provider.JavaKeyStore.convertAlias:(Ljava/lang/String;)Ljava/lang/String;
aload 5
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 14: aload 4
monitorexit
15: goto 18
StackMap locals: sun.security.provider.JavaKeyStore java.lang.String byte[] java.security.cert.Certificate[] java.util.Hashtable
StackMap stack: java.lang.Throwable
16: aload 4
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/security/provider/JavaKeyStore;
0 19 1 alias Ljava/lang/String;
0 19 2 key [B
0 19 3 chain [Ljava/security/cert/Certificate;
6 14 5 entry Lsun/security/provider/JavaKeyStore$KeyEntry;
Exception table:
from to target type
1 2 3 Class java.io.IOException
1 15 16 any
16 17 16 any
Exceptions:
throws java.security.KeyStoreException
MethodParameters:
Name Flags
alias
key
chain
public void engineSetCertificateEntry(java.lang.String, java.security.cert.Certificate);
descriptor: (Ljava/lang/String;Ljava/security/cert/Certificate;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
dup
astore 3
monitorenter
1: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual sun.security.provider.JavaKeyStore.convertAlias:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 2: aload 4
ifnull 6
aload 4
instanceof sun.security.provider.JavaKeyStore$KeyEntry
ifeq 6
3: new java.security.KeyStoreException
dup
4: ldc "Cannot overwrite own certificate"
5: invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: java.util.Hashtable java.lang.Object
StackMap stack:
new sun.security.provider.JavaKeyStore$TrustedCertEntry
dup
invokespecial sun.security.provider.JavaKeyStore$TrustedCertEntry.<init>:()V
astore 5
start local 5 7: aload 5
aload 2
putfield sun.security.provider.JavaKeyStore$TrustedCertEntry.cert:Ljava/security/cert/Certificate;
8: aload 5
new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
putfield sun.security.provider.JavaKeyStore$TrustedCertEntry.date:Ljava/util/Date;
9: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual sun.security.provider.JavaKeyStore.convertAlias:(Ljava/lang/String;)Ljava/lang/String;
aload 5
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 4 10: aload 3
monitorexit
11: goto 14
StackMap locals: sun.security.provider.JavaKeyStore java.lang.String java.security.cert.Certificate java.util.Hashtable
StackMap stack: java.lang.Throwable
12: aload 3
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/security/provider/JavaKeyStore;
0 15 1 alias Ljava/lang/String;
0 15 2 cert Ljava/security/cert/Certificate;
2 10 4 entry Ljava/lang/Object;
7 10 5 trustedCertEntry Lsun/security/provider/JavaKeyStore$TrustedCertEntry;
Exception table:
from to target type
1 11 12 any
12 13 12 any
Exceptions:
throws java.security.KeyStoreException
MethodParameters:
Name Flags
alias
cert
public void engineDeleteEntry(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
dup
astore 2
monitorenter
1: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual sun.security.provider.JavaKeyStore.convertAlias:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 2
monitorexit
3: goto 6
StackMap locals: sun.security.provider.JavaKeyStore java.lang.String java.util.Hashtable
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/provider/JavaKeyStore;
0 7 1 alias Ljava/lang/String;
Exception table:
from to target type
1 3 4 any
4 5 4 any
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.provider.JavaKeyStore.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/provider/JavaKeyStore;
Signature: ()Ljava/util/Enumeration<Ljava/lang/String;>;
public boolean engineContainsAlias(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual sun.security.provider.JavaKeyStore.convertAlias:(Ljava/lang/String;)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/provider/JavaKeyStore;
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.provider.JavaKeyStore.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/provider/JavaKeyStore;
public boolean engineIsKeyEntry(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual sun.security.provider.JavaKeyStore.convertAlias:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnull 3
aload 2
instanceof sun.security.provider.JavaKeyStore$KeyEntry
ifeq 3
2: iconst_1
ireturn
3: StackMap locals: java.lang.Object
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/provider/JavaKeyStore;
0 4 1 alias Ljava/lang/String;
1 4 2 entry Ljava/lang/Object;
MethodParameters:
Name Flags
alias
public boolean engineIsCertificateEntry(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual sun.security.provider.JavaKeyStore.convertAlias:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnull 3
aload 2
instanceof sun.security.provider.JavaKeyStore$TrustedCertEntry
ifeq 3
2: iconst_1
ireturn
3: StackMap locals: java.lang.Object
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/provider/JavaKeyStore;
0 4 1 alias Ljava/lang/String;
1 4 2 entry Ljava/lang/Object;
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: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
astore 3
start local 3 1: goto 11
2: StackMap locals: sun.security.provider.JavaKeyStore java.security.cert.Certificate top java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 3: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 4
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 4: aload 5
instanceof sun.security.provider.JavaKeyStore$TrustedCertEntry
ifeq 7
5: aload 5
checkcast sun.security.provider.JavaKeyStore$TrustedCertEntry
getfield sun.security.provider.JavaKeyStore$TrustedCertEntry.cert:Ljava/security/cert/Certificate;
astore 2
start local 2 6: goto 9
end local 2 StackMap locals: java.lang.String java.lang.Object
StackMap stack:
7: aload 5
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
ifnull 11
8: aload 5
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
iconst_0
aaload
astore 2
start local 2 9: StackMap locals: sun.security.provider.JavaKeyStore java.security.cert.Certificate java.security.cert.Certificate java.util.Enumeration java.lang.String java.lang.Object
StackMap stack:
aload 2
aload 1
invokevirtual java.security.cert.Certificate.equals:(Ljava/lang/Object;)Z
ifeq 11
10: aload 4
areturn
end local 5 end local 4 end local 2 11: StackMap locals: sun.security.provider.JavaKeyStore java.security.cert.Certificate top java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 2
end local 3 12: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/provider/JavaKeyStore;
0 13 1 cert Ljava/security/cert/Certificate;
6 7 2 certElem Ljava/security/cert/Certificate;
9 11 2 certElem Ljava/security/cert/Certificate;
1 12 3 e Ljava/util/Enumeration<Ljava/lang/String;>;
3 11 4 alias Ljava/lang/String;
4 11 5 entry Ljava/lang/Object;
MethodParameters:
Name Flags
cert
public void engineStore(java.io.OutputStream, char[]);
descriptor: (Ljava/io/OutputStream;[C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
dup
astore 3
monitorenter
1: aload 2
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
ldc "password can't be null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.util.Hashtable
StackMap stack:
aload 0
aload 2
invokevirtual sun.security.provider.JavaKeyStore.getPreKeyedHash:([C)Ljava/security/MessageDigest;
astore 5
start local 5 4: new java.io.DataOutputStream
dup
new java.security.DigestOutputStream
dup
aload 1
aload 5
invokespecial java.security.DigestOutputStream.<init>:(Ljava/io/OutputStream;Ljava/security/MessageDigest;)V
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
5: astore 6
start local 6 6: aload 6
ldc -17957139
invokevirtual java.io.DataOutputStream.writeInt:(I)V
7: aload 6
iconst_2
invokevirtual java.io.DataOutputStream.writeInt:(I)V
8: aload 6
aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.size:()I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
9: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
astore 7
start local 7 10: goto 40
11: StackMap locals: sun.security.provider.JavaKeyStore java.io.OutputStream char[] java.util.Hashtable top java.security.MessageDigest java.io.DataOutputStream java.util.Enumeration
StackMap stack:
aload 7
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.lang.String
astore 8
start local 8 12: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 8
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 9
start local 9 13: aload 9
instanceof sun.security.provider.JavaKeyStore$KeyEntry
ifeq 33
14: aload 6
iconst_1
invokevirtual java.io.DataOutputStream.writeInt:(I)V
15: aload 6
aload 8
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
16: aload 6
aload 9
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.date:Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokevirtual java.io.DataOutputStream.writeLong:(J)V
17: aload 6
aload 9
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.protectedPrivKey:[B
arraylength
invokevirtual java.io.DataOutputStream.writeInt:(I)V
18: aload 6
aload 9
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.protectedPrivKey:[B
invokevirtual java.io.DataOutputStream.write:([B)V
19: aload 9
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
ifnonnull 22
20: iconst_0
istore 10
start local 10 21: goto 23
end local 10 22: StackMap locals: java.lang.String java.lang.Object
StackMap stack:
aload 9
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
arraylength
istore 10
start local 10 23: StackMap locals: int
StackMap stack:
aload 6
iload 10
invokevirtual java.io.DataOutputStream.writeInt:(I)V
24: iconst_0
istore 11
start local 11 25: goto 31
26: StackMap locals: int
StackMap stack:
aload 9
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
iload 11
aaload
invokevirtual java.security.cert.Certificate.getEncoded:()[B
astore 4
start local 4 27: aload 6
aload 9
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
iload 11
aaload
invokevirtual java.security.cert.Certificate.getType:()Ljava/lang/String;
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
28: aload 6
aload 4
arraylength
invokevirtual java.io.DataOutputStream.writeInt:(I)V
29: aload 6
aload 4
invokevirtual java.io.DataOutputStream.write:([B)V
30: iinc 11 1
end local 4 StackMap locals:
StackMap stack:
31: iload 11
iload 10
if_icmplt 26
end local 11 end local 10 32: goto 40
33: StackMap locals:
StackMap stack:
aload 6
iconst_2
invokevirtual java.io.DataOutputStream.writeInt:(I)V
34: aload 6
aload 8
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
35: aload 6
aload 9
checkcast sun.security.provider.JavaKeyStore$TrustedCertEntry
getfield sun.security.provider.JavaKeyStore$TrustedCertEntry.date:Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokevirtual java.io.DataOutputStream.writeLong:(J)V
36: aload 9
checkcast sun.security.provider.JavaKeyStore$TrustedCertEntry
getfield sun.security.provider.JavaKeyStore$TrustedCertEntry.cert:Ljava/security/cert/Certificate;
invokevirtual java.security.cert.Certificate.getEncoded:()[B
astore 4
start local 4 37: aload 6
aload 9
checkcast sun.security.provider.JavaKeyStore$TrustedCertEntry
getfield sun.security.provider.JavaKeyStore$TrustedCertEntry.cert:Ljava/security/cert/Certificate;
invokevirtual java.security.cert.Certificate.getType:()Ljava/lang/String;
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
38: aload 6
aload 4
arraylength
invokevirtual java.io.DataOutputStream.writeInt:(I)V
39: aload 6
aload 4
invokevirtual java.io.DataOutputStream.write:([B)V
end local 9 end local 8 end local 4 40: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 11
end local 7 41: aload 5
invokevirtual java.security.MessageDigest.digest:()[B
astore 7
start local 7 42: aload 6
aload 7
invokevirtual java.io.DataOutputStream.write:([B)V
43: aload 6
invokevirtual java.io.DataOutputStream.flush:()V
end local 7 end local 6 end local 5 44: aload 3
monitorexit
45: goto 48
StackMap locals: sun.security.provider.JavaKeyStore java.io.OutputStream char[] java.util.Hashtable
StackMap stack: java.lang.Throwable
46: aload 3
monitorexit
47: athrow
48: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lsun/security/provider/JavaKeyStore;
0 49 1 stream Ljava/io/OutputStream;
0 49 2 password [C
27 31 4 encoded [B
37 40 4 encoded [B
4 44 5 md Ljava/security/MessageDigest;
6 44 6 dos Ljava/io/DataOutputStream;
10 41 7 e Ljava/util/Enumeration<Ljava/lang/String;>;
12 40 8 alias Ljava/lang/String;
13 40 9 entry Ljava/lang/Object;
21 22 10 chainLen I
23 32 10 chainLen I
25 32 11 i I
42 44 7 digest [B
Exception table:
from to target type
1 45 46 any
46 47 46 any
Exceptions:
throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
MethodParameters:
Name Flags
stream
password
public void engineLoad(java.io.InputStream, char[]);
descriptor: (Ljava/io/InputStream;[C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=23, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
dup
astore 3
monitorenter
1: aconst_null
astore 5
start local 5 2: aconst_null
astore 6
start local 6 3: aconst_null
astore 7
start local 7 4: aconst_null
astore 8
start local 8 5: aconst_null
astore 9
start local 9 6: iconst_0
istore 10
start local 10 7: iconst_0
istore 11
start local 11 8: aload 1
ifnonnull 11
9: aload 3
monitorexit
10: return
11: StackMap locals: sun.security.provider.JavaKeyStore java.io.InputStream char[] java.util.Hashtable top java.security.MessageDigest java.security.cert.CertificateFactory java.util.Hashtable java.io.ByteArrayInputStream byte[] int int
StackMap stack:
aload 2
ifnull 15
12: aload 0
aload 2
invokevirtual sun.security.provider.JavaKeyStore.getPreKeyedHash:([C)Ljava/security/MessageDigest;
astore 5
13: new java.io.DataInputStream
dup
new java.security.DigestInputStream
dup
aload 1
aload 5
invokespecial java.security.DigestInputStream.<init>:(Ljava/io/InputStream;Ljava/security/MessageDigest;)V
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 4
start local 4 14: goto 16
end local 4 15: StackMap locals:
StackMap stack:
new java.io.DataInputStream
dup
aload 1
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 4
start local 4 16: StackMap locals: sun.security.provider.JavaKeyStore java.io.InputStream char[] java.util.Hashtable java.io.DataInputStream java.security.MessageDigest java.security.cert.CertificateFactory java.util.Hashtable java.io.ByteArrayInputStream byte[] int int
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 12
start local 12 17: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 13
start local 13 18: iload 12
ldc -17957139
if_icmpne 20
19: iload 13
iconst_1
if_icmpeq 21
iload 13
iconst_2
if_icmpeq 21
20: StackMap locals: int int
StackMap stack:
new java.io.IOException
dup
ldc "Invalid keystore format"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
iload 13
iconst_1
if_icmpne 24
22: ldc "X509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
23: goto 25
24: StackMap locals:
StackMap stack:
new java.util.Hashtable
dup
iconst_3
invokespecial java.util.Hashtable.<init>:(I)V
astore 7
25: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.clear:()V
26: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 14
start local 14 27: iconst_0
istore 15
start local 15 28: goto 84
29: StackMap locals: int int
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 16
start local 16 30: iload 16
iconst_1
if_icmpne 62
31: iinc 11 1
32: new sun.security.provider.JavaKeyStore$KeyEntry
dup
invokespecial sun.security.provider.JavaKeyStore$KeyEntry.<init>:()V
astore 18
start local 18 33: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 17
start local 17 34: aload 18
new java.util.Date
dup
aload 4
invokevirtual java.io.DataInputStream.readLong:()J
invokespecial java.util.Date.<init>:(J)V
putfield sun.security.provider.JavaKeyStore$KeyEntry.date:Ljava/util/Date;
35: aload 18
36: aload 4
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
invokestatic sun.misc.IOUtils.readExactlyNBytes:(Ljava/io/InputStream;I)[B
37: putfield sun.security.provider.JavaKeyStore$KeyEntry.protectedPrivKey:[B
38: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 19
start local 19 39: iload 19
ifle 60
40: new java.util.ArrayList
dup
41: iload 19
bipush 10
if_icmple 42
bipush 10
goto 43
StackMap locals: sun.security.provider.JavaKeyStore java.io.InputStream char[] java.util.Hashtable java.io.DataInputStream java.security.MessageDigest java.security.cert.CertificateFactory java.util.Hashtable java.io.ByteArrayInputStream byte[] int int int int int int int java.lang.String sun.security.provider.JavaKeyStore$KeyEntry int
StackMap stack: new 40 new 40
42: iload 19
43: StackMap locals: sun.security.provider.JavaKeyStore java.io.InputStream char[] java.util.Hashtable java.io.DataInputStream java.security.MessageDigest java.security.cert.CertificateFactory java.util.Hashtable java.io.ByteArrayInputStream byte[] int int int int int int int java.lang.String sun.security.provider.JavaKeyStore$KeyEntry int
StackMap stack: new 40 new 40 int
invokespecial java.util.ArrayList.<init>:(I)V
astore 20
start local 20 44: iconst_0
istore 21
start local 21 45: goto 58
46: StackMap locals: java.util.List int
StackMap stack:
iload 13
iconst_2
if_icmpne 53
47: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 22
start local 22 48: aload 7
aload 22
invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
ifeq 51
49: aload 7
aload 22
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.CertificateFactory
astore 6
50: goto 53
51: StackMap locals: java.lang.String
StackMap stack:
aload 22
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
52: aload 7
aload 22
aload 6
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 22 53: StackMap locals:
StackMap stack:
aload 4
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
invokestatic sun.misc.IOUtils.readExactlyNBytes:(Ljava/io/InputStream;I)[B
astore 9
54: new java.io.ByteArrayInputStream
dup
aload 9
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 8
55: aload 20
aload 6
aload 8
invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
56: aload 8
invokevirtual java.io.ByteArrayInputStream.close:()V
57: iinc 21 1
StackMap locals:
StackMap stack:
58: iload 21
iload 19
if_icmplt 46
end local 21 59: aload 18
aload 20
iload 19
anewarray java.security.cert.Certificate
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.security.cert.Certificate[]
putfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
end local 20 60: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 17
aload 18
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 19 end local 18 61: goto 83
end local 17 StackMap locals:
StackMap stack:
62: iload 16
iconst_2
if_icmpne 80
63: iinc 10 1
64: new sun.security.provider.JavaKeyStore$TrustedCertEntry
dup
invokespecial sun.security.provider.JavaKeyStore$TrustedCertEntry.<init>:()V
astore 18
start local 18 65: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 17
start local 17 66: aload 18
new java.util.Date
dup
aload 4
invokevirtual java.io.DataInputStream.readLong:()J
invokespecial java.util.Date.<init>:(J)V
putfield sun.security.provider.JavaKeyStore$TrustedCertEntry.date:Ljava/util/Date;
67: iload 13
iconst_2
if_icmpne 74
68: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 19
start local 19 69: aload 7
aload 19
invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
ifeq 72
70: aload 7
aload 19
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.CertificateFactory
astore 6
71: goto 74
72: StackMap locals: java.lang.String sun.security.provider.JavaKeyStore$TrustedCertEntry java.lang.String
StackMap stack:
aload 19
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
73: aload 7
aload 19
aload 6
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 19 74: StackMap locals:
StackMap stack:
aload 4
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
invokestatic sun.misc.IOUtils.readExactlyNBytes:(Ljava/io/InputStream;I)[B
astore 9
75: new java.io.ByteArrayInputStream
dup
aload 9
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 8
76: aload 18
aload 6
aload 8
invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
putfield sun.security.provider.JavaKeyStore$TrustedCertEntry.cert:Ljava/security/cert/Certificate;
77: aload 8
invokevirtual java.io.ByteArrayInputStream.close:()V
78: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 17
aload 18
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 18 79: goto 83
end local 17 80: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Unrecognized keystore entry: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
81: iload 16
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
82: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 16 83: StackMap locals:
StackMap stack:
iinc 15 1
StackMap locals:
StackMap stack:
84: iload 15
iload 14
if_icmplt 29
end local 15 85: getstatic sun.security.provider.JavaKeyStore.debug:Lsun/security/util/Debug;
ifnull 89
86: getstatic sun.security.provider.JavaKeyStore.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "JavaKeyStore load: private key count: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
87: iload 11
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ". trusted key count: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 10
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
88: invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
89: StackMap locals:
StackMap stack:
aload 2
ifnull 101
90: aload 5
invokevirtual java.security.MessageDigest.digest:()[B
astore 15
start local 15 91: aload 4
aload 15
arraylength
invokestatic sun.misc.IOUtils.readExactlyNBytes:(Ljava/io/InputStream;I)[B
astore 16
start local 16 92: aload 15
aload 16
invokestatic java.security.MessageDigest.isEqual:([B[B)Z
ifne 101
93: new java.security.UnrecoverableKeyException
dup
94: ldc "Password verification failed"
95: invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
astore 17
start local 17 96: new java.io.IOException
dup
97: ldc "Keystore was tampered with, or password was incorrect"
98: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
99: aload 17
invokevirtual java.io.IOException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
100: checkcast java.io.IOException
athrow
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 101: StackMap locals: sun.security.provider.JavaKeyStore java.io.InputStream char[] java.util.Hashtable
StackMap stack:
aload 3
monitorexit
102: goto 105
StackMap locals:
StackMap stack: java.lang.Throwable
103: aload 3
monitorexit
104: athrow
105: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 106 0 this Lsun/security/provider/JavaKeyStore;
0 106 1 stream Ljava/io/InputStream;
0 106 2 password [C
14 15 4 dis Ljava/io/DataInputStream;
16 101 4 dis Ljava/io/DataInputStream;
2 101 5 md Ljava/security/MessageDigest;
3 101 6 cf Ljava/security/cert/CertificateFactory;
4 101 7 cfs Ljava/util/Hashtable<Ljava/lang/String;Ljava/security/cert/CertificateFactory;>;
5 101 8 bais Ljava/io/ByteArrayInputStream;
6 101 9 encoded [B
7 101 10 trustedKeyCount I
8 101 11 privateKeyCount I
17 101 12 xMagic I
18 101 13 xVersion I
27 101 14 count I
28 85 15 i I
30 83 16 tag I
34 62 17 alias Ljava/lang/String;
66 80 17 alias Ljava/lang/String;
33 61 18 entry Lsun/security/provider/JavaKeyStore$KeyEntry;
39 61 19 numOfCerts I
44 60 20 certs Ljava/util/List<Ljava/security/cert/Certificate;>;
45 59 21 j I
48 53 22 certType Ljava/lang/String;
65 79 18 entry Lsun/security/provider/JavaKeyStore$TrustedCertEntry;
69 74 19 certType Ljava/lang/String;
91 101 15 computed [B
92 101 16 actual [B
96 101 17 t Ljava/lang/Throwable;
Exception table:
from to target type
1 10 103 any
11 102 103 any
103 104 103 any
Exceptions:
throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.cert.CertificateException
MethodParameters:
Name Flags
stream
password
private java.security.MessageDigest getPreKeyedHash(char[]);
descriptor: ([C)Ljava/security/MessageDigest;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: ldc "SHA"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 2
start local 2 1: aload 0
aload 1
invokevirtual sun.security.provider.JavaKeyStore.convertToBytes:([C)[B
astore 3
start local 3 2: aload 2
aload 3
invokevirtual java.security.MessageDigest.update:([B)V
3: aload 3
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
4: aload 2
ldc "Mighty Aphrodite"
ldc "UTF8"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
invokevirtual java.security.MessageDigest.update:([B)V
5: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/provider/JavaKeyStore;
0 6 1 password [C
1 6 2 md Ljava/security/MessageDigest;
2 6 3 passwdBytes [B
Exceptions:
throws java.security.NoSuchAlgorithmException, java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
password
private byte[] convertToBytes(char[]);
descriptor: ([C)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
arraylength
iconst_2
imul
newarray 8
astore 4
start local 4 1: iconst_0
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 7
4: StackMap locals: int int byte[]
StackMap stack:
aload 4
iload 3
iinc 3 1
aload 1
iload 2
caload
bipush 8
ishr
i2b
bastore
5: aload 4
iload 3
iinc 3 1
aload 1
iload 2
caload
i2b
bastore
6: iinc 2 1
StackMap locals:
StackMap stack:
7: iload 2
aload 1
arraylength
if_icmplt 4
8: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/provider/JavaKeyStore;
0 9 1 password [C
2 9 2 i I
3 9 3 j I
1 9 4 passwdBytes [B
MethodParameters:
Name Flags
password
}
SourceFile: "JavaKeyStore.java"
NestMembers:
sun.security.provider.JavaKeyStore$CaseExactJKS sun.security.provider.JavaKeyStore$DualFormatJKS sun.security.provider.JavaKeyStore$JKS sun.security.provider.JavaKeyStore$KeyEntry sun.security.provider.JavaKeyStore$TrustedCertEntry
InnerClasses:
public final CaseExactJKS = sun.security.provider.JavaKeyStore$CaseExactJKS of sun.security.provider.JavaKeyStore
public final DualFormatJKS = sun.security.provider.JavaKeyStore$DualFormatJKS of sun.security.provider.JavaKeyStore
public final JKS = sun.security.provider.JavaKeyStore$JKS of sun.security.provider.JavaKeyStore
private KeyEntry = sun.security.provider.JavaKeyStore$KeyEntry of sun.security.provider.JavaKeyStore
private TrustedCertEntry = sun.security.provider.JavaKeyStore$TrustedCertEntry of sun.security.provider.JavaKeyStore