public abstract class sun.security.provider.JavaKeyStore extends java.security.KeyStoreSpi
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: sun.security.provider.JavaKeyStore
super_class: java.security.KeyStoreSpi
{
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;>;
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=21, 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: aload 1
ifnonnull 9
7: aload 3
monitorexit
8: return
9: 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[]
StackMap stack:
aload 2
ifnull 13
10: aload 0
aload 2
invokevirtual sun.security.provider.JavaKeyStore.getPreKeyedHash:([C)Ljava/security/MessageDigest;
astore 5
11: 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 12: goto 14
end local 4 13: 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 14: 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[]
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 10
start local 10 15: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 11
start local 11 16: iload 10
ldc -17957139
if_icmpne 18
17: iload 11
iconst_1
if_icmpeq 19
iload 11
iconst_2
if_icmpeq 19
18: 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
19: StackMap locals:
StackMap stack:
iload 11
iconst_1
if_icmpne 22
20: ldc "X509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
21: goto 23
22: StackMap locals:
StackMap stack:
new java.util.Hashtable
dup
iconst_3
invokespecial java.util.Hashtable.<init>:(I)V
astore 7
23: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.clear:()V
24: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 12
start local 12 25: iconst_0
istore 13
start local 13 26: goto 78
27: StackMap locals: int int
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 14
start local 14 28: iload 14
iconst_1
if_icmpne 59
29: new sun.security.provider.JavaKeyStore$KeyEntry
dup
invokespecial sun.security.provider.JavaKeyStore$KeyEntry.<init>:()V
astore 16
start local 16 30: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 15
start local 15 31: aload 16
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;
32: aload 16
33: aload 4
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
iconst_1
invokestatic sun.security.util.IOUtils.readFully:(Ljava/io/InputStream;IZ)[B
34: putfield sun.security.provider.JavaKeyStore$KeyEntry.protectedPrivKey:[B
35: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 17
start local 17 36: iload 17
ifle 57
37: new java.util.ArrayList
dup
38: iload 17
bipush 10
if_icmple 39
bipush 10
goto 40
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 java.lang.String sun.security.provider.JavaKeyStore$KeyEntry int
StackMap stack: new 37 new 37
39: iload 17
40: 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 java.lang.String sun.security.provider.JavaKeyStore$KeyEntry int
StackMap stack: new 37 new 37 int
invokespecial java.util.ArrayList.<init>:(I)V
astore 18
start local 18 41: iconst_0
istore 19
start local 19 42: goto 55
43: StackMap locals: java.util.List int
StackMap stack:
iload 11
iconst_2
if_icmpne 50
44: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 20
start local 20 45: aload 7
aload 20
invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
ifeq 48
46: aload 7
aload 20
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.CertificateFactory
astore 6
47: goto 50
48: StackMap locals: java.lang.String
StackMap stack:
aload 20
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
49: aload 7
aload 20
aload 6
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 20 50: StackMap locals:
StackMap stack:
aload 4
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
iconst_1
invokestatic sun.security.util.IOUtils.readFully:(Ljava/io/InputStream;IZ)[B
astore 9
51: new java.io.ByteArrayInputStream
dup
aload 9
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 8
52: aload 18
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
53: aload 8
invokevirtual java.io.ByteArrayInputStream.close:()V
54: iinc 19 1
StackMap locals:
StackMap stack:
55: iload 19
iload 17
if_icmplt 43
end local 19 56: aload 16
aload 18
iload 17
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 18 57: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 15
aload 16
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 17 end local 16 58: goto 77
end local 15 StackMap locals:
StackMap stack:
59: iload 14
iconst_2
if_icmpne 76
60: new sun.security.provider.JavaKeyStore$TrustedCertEntry
dup
invokespecial sun.security.provider.JavaKeyStore$TrustedCertEntry.<init>:()V
astore 16
start local 16 61: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 15
start local 15 62: aload 16
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;
63: iload 11
iconst_2
if_icmpne 70
64: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 17
start local 17 65: aload 7
aload 17
invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
ifeq 68
66: aload 7
aload 17
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.CertificateFactory
astore 6
67: goto 70
68: StackMap locals: java.lang.String sun.security.provider.JavaKeyStore$TrustedCertEntry java.lang.String
StackMap stack:
aload 17
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
69: aload 7
aload 17
aload 6
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 17 70: StackMap locals:
StackMap stack:
aload 4
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
iconst_1
invokestatic sun.security.util.IOUtils.readFully:(Ljava/io/InputStream;IZ)[B
astore 9
71: new java.io.ByteArrayInputStream
dup
aload 9
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 8
72: aload 16
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;
73: aload 8
invokevirtual java.io.ByteArrayInputStream.close:()V
74: aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
aload 15
aload 16
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 16 75: goto 77
end local 15 76: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "Unrecognized keystore entry"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 14 77: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
78: iload 13
iload 12
if_icmplt 27
end local 13 79: aload 2
ifnull 96
80: aload 5
invokevirtual java.security.MessageDigest.digest:()[B
astore 13
start local 13 81: aload 13
arraylength
newarray 8
astore 14
start local 14 82: aload 4
aload 14
invokevirtual java.io.DataInputStream.readFully:([B)V
83: iconst_0
istore 15
start local 15 84: goto 95
85: 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 byte[] byte[] int
StackMap stack:
aload 13
iload 15
baload
aload 14
iload 15
baload
if_icmpeq 94
86: new java.security.UnrecoverableKeyException
dup
87: ldc "Password verification failed"
88: invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
astore 16
start local 16 89: new java.io.IOException
dup
90: ldc "Keystore was tampered with, or password was incorrect"
91: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
92: aload 16
invokevirtual java.io.IOException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
93: checkcast java.io.IOException
athrow
end local 16 94: StackMap locals:
StackMap stack:
iinc 15 1
StackMap locals:
StackMap stack:
95: iload 15
aload 13
arraylength
if_icmplt 85
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 96: StackMap locals: sun.security.provider.JavaKeyStore java.io.InputStream char[] java.util.Hashtable
StackMap stack:
aload 3
monitorexit
97: goto 100
StackMap locals:
StackMap stack: java.lang.Throwable
98: aload 3
monitorexit
99: athrow
100: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 101 0 this Lsun/security/provider/JavaKeyStore;
0 101 1 stream Ljava/io/InputStream;
0 101 2 password [C
12 13 4 dis Ljava/io/DataInputStream;
14 96 4 dis Ljava/io/DataInputStream;
2 96 5 md Ljava/security/MessageDigest;
3 96 6 cf Ljava/security/cert/CertificateFactory;
4 96 7 cfs Ljava/util/Hashtable<Ljava/lang/String;Ljava/security/cert/CertificateFactory;>;
5 96 8 bais Ljava/io/ByteArrayInputStream;
6 96 9 encoded [B
15 96 10 xMagic I
16 96 11 xVersion I
25 96 12 count I
26 79 13 i I
28 77 14 tag I
31 59 15 alias Ljava/lang/String;
62 76 15 alias Ljava/lang/String;
30 58 16 entry Lsun/security/provider/JavaKeyStore$KeyEntry;
36 58 17 numOfCerts I
41 57 18 certs Ljava/util/List<Ljava/security/cert/Certificate;>;
42 56 19 j I
45 50 20 certType Ljava/lang/String;
61 75 16 entry Lsun/security/provider/JavaKeyStore$TrustedCertEntry;
65 70 17 certType Ljava/lang/String;
81 96 13 computed [B
82 96 14 actual [B
84 96 15 i I
89 94 16 t Ljava/lang/Throwable;
Exception table:
from to target type
1 8 98 any
9 97 98 any
98 99 98 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
public boolean engineProbe(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.io.DataInputStream
ifeq 3
1: aload 1
checkcast java.io.DataInputStream
astore 2
start local 2 2: goto 4
end local 2 3: StackMap locals:
StackMap stack:
new java.io.DataInputStream
dup
aload 1
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 2
start local 2 4: StackMap locals: java.io.DataInputStream
StackMap stack:
ldc -17957139
aload 2
invokevirtual java.io.DataInputStream.readInt:()I
if_icmpne 5
iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
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 stream Ljava/io/InputStream;
2 3 2 dataStream Ljava/io/DataInputStream;
4 6 2 dataStream Ljava/io/DataInputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
stream
}
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