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 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=7, 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:
new sun.security.provider.KeyProtector
dup
aload 2
invokespecial sun.security.provider.KeyProtector.<init>:([C)V
astore 4
start local 4 6: aload 3
checkcast sun.security.provider.JavaKeyStore$KeyEntry
getfield sun.security.provider.JavaKeyStore$KeyEntry.protectedPrivKey:[B
astore 5
start local 5 7: new sun.security.pkcs.EncryptedPrivateKeyInfo
dup
aload 5
invokespecial sun.security.pkcs.EncryptedPrivateKeyInfo.<init>:([B)V
astore 6
start local 6 8: goto 11
end local 6 StackMap locals: sun.security.provider.JavaKeyStore java.lang.String char[] java.lang.Object sun.security.provider.KeyProtector byte[]
StackMap stack: java.io.IOException
9: pop
10: new java.security.UnrecoverableKeyException
dup
ldc "Private key not stored as PKCS #8 EncryptedPrivateKeyInfo"
invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
athrow
start local 6 11: StackMap locals: sun.security.pkcs.EncryptedPrivateKeyInfo
StackMap stack:
aload 4
aload 6
invokevirtual sun.security.provider.KeyProtector.recover:(Lsun/security/pkcs/EncryptedPrivateKeyInfo;)Ljava/security/Key;
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/security/provider/JavaKeyStore;
0 12 1 alias Ljava/lang/String;
0 12 2 password [C
1 12 3 entry Ljava/lang/Object;
6 12 4 keyProtector Lsun/security/provider/KeyProtector;
7 12 5 encrBytes [B
8 9 6 encrInfo Lsun/security/pkcs/EncryptedPrivateKeyInfo;
11 12 6 encrInfo Lsun/security/pkcs/EncryptedPrivateKeyInfo;
Exception table:
from to target type
7 8 9 Class java.io.IOException
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=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aconst_null
astore 5
start local 5 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.KeyProtector
StackMap stack:
aload 0
getfield sun.security.provider.JavaKeyStore.entries:Ljava/util/Hashtable;
dup
astore 6
monitorenter
4: new sun.security.provider.JavaKeyStore$KeyEntry
dup
invokespecial sun.security.provider.JavaKeyStore$KeyEntry.<init>:()V
astore 7
start local 7 5: aload 7
new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
putfield sun.security.provider.JavaKeyStore$KeyEntry.date:Ljava/util/Date;
6: new sun.security.provider.KeyProtector
dup
aload 3
invokespecial sun.security.provider.KeyProtector.<init>:([C)V
astore 5
7: aload 7
aload 5
aload 2
invokevirtual sun.security.provider.KeyProtector.protect:(Ljava/security/Key;)[B
putfield sun.security.provider.JavaKeyStore$KeyEntry.protectedPrivKey:[B
8: aload 4
ifnull 12
9: aload 4
arraylength
ifeq 12
10: aload 7
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;
11: goto 13
12: StackMap locals: java.util.Hashtable sun.security.provider.JavaKeyStore$KeyEntry
StackMap stack:
aload 7
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 7
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 14: aload 6
monitorexit
15: goto 23
StackMap locals: sun.security.provider.JavaKeyStore java.lang.String java.security.Key char[] java.security.cert.Certificate[] sun.security.provider.KeyProtector java.util.Hashtable
StackMap stack: java.lang.Throwable
16: aload 6
monitorexit
17: athrow
18: StackMap locals: sun.security.provider.JavaKeyStore java.lang.String java.security.Key char[] java.security.cert.Certificate[] sun.security.provider.KeyProtector
StackMap stack: java.security.NoSuchAlgorithmException
pop
19: new java.security.KeyStoreException
dup
ldc "Key protection algorithm not found"
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack: java.lang.Throwable
astore 8
21: aconst_null
astore 5
22: aload 8
athrow
23: StackMap locals:
StackMap stack:
aconst_null
astore 5
24: return
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 25 0 this Lsun/security/provider/JavaKeyStore;
0 25 1 alias Ljava/lang/String;
0 25 2 key Ljava/security/Key;
0 25 3 password [C
0 25 4 chain [Ljava/security/cert/Certificate;
1 25 5 keyProtector Lsun/security/provider/KeyProtector;
5 14 7 entry Lsun/security/provider/JavaKeyStore$KeyEntry;
Exception table:
from to target type
4 15 16 any
16 17 16 any
3 18 18 Class java.security.NoSuchAlgorithmException
3 20 20 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=20, 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 89
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 66
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
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
newarray 8
putfield sun.security.provider.JavaKeyStore$KeyEntry.protectedPrivKey:[B
33: goto 36
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
StackMap stack: java.lang.OutOfMemoryError
34: pop
35: new java.io.IOException
dup
ldc "Keysize too big"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
36: StackMap locals:
StackMap stack:
aload 4
aload 16
getfield sun.security.provider.JavaKeyStore$KeyEntry.protectedPrivKey:[B
invokevirtual java.io.DataInputStream.readFully:([B)V
37: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 17
start local 17 38: iload 17
ifle 45
39: aload 16
iload 17
anewarray java.security.cert.Certificate
putfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
40: goto 45
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: java.lang.OutOfMemoryError
41: pop
42: new java.io.IOException
dup
43: ldc "Too many certificates in chain"
44: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
45: StackMap locals:
StackMap stack:
iconst_0
istore 18
start local 18 46: goto 63
47: StackMap locals: int
StackMap stack:
iload 11
iconst_2
if_icmpne 54
48: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 19
start local 19 49: aload 7
aload 19
invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
ifeq 52
50: aload 7
aload 19
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.CertificateFactory
astore 6
51: goto 54
52: StackMap locals: java.lang.String
StackMap stack:
aload 19
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
53: aload 7
aload 19
aload 6
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 19 54: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
newarray 8
astore 9
55: goto 58
StackMap locals:
StackMap stack: java.lang.OutOfMemoryError
56: pop
57: new java.io.IOException
dup
ldc "Certificate too big"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
58: StackMap locals:
StackMap stack:
aload 4
aload 9
invokevirtual java.io.DataInputStream.readFully:([B)V
59: new java.io.ByteArrayInputStream
dup
aload 9
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 8
60: aload 16
getfield sun.security.provider.JavaKeyStore$KeyEntry.chain:[Ljava/security/cert/Certificate;
iload 18
aload 6
aload 8
invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
aastore
61: aload 8
invokevirtual java.io.ByteArrayInputStream.close:()V
62: iinc 18 1
StackMap locals:
StackMap stack:
63: iload 18
iload 17
if_icmplt 47
end local 18 64: 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 65: goto 88
end local 15 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
StackMap stack:
66: iload 14
iconst_2
if_icmpne 87
67: new sun.security.provider.JavaKeyStore$TrustedCertEntry
dup
invokespecial sun.security.provider.JavaKeyStore$TrustedCertEntry.<init>:()V
astore 16
start local 16 68: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 15
start local 15 69: 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;
70: iload 11
iconst_2
if_icmpne 77
71: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 17
start local 17 72: aload 7
aload 17
invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
ifeq 75
73: aload 7
aload 17
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.CertificateFactory
astore 6
74: goto 77
75: 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
76: aload 7
aload 17
aload 6
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 17 77: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
newarray 8
astore 9
78: goto 81
StackMap locals:
StackMap stack: java.lang.OutOfMemoryError
79: pop
80: new java.io.IOException
dup
ldc "Certificate too big"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
81: StackMap locals:
StackMap stack:
aload 4
aload 9
invokevirtual java.io.DataInputStream.readFully:([B)V
82: new java.io.ByteArrayInputStream
dup
aload 9
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 8
83: 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;
84: aload 8
invokevirtual java.io.ByteArrayInputStream.close:()V
85: 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 86: goto 88
end local 15 87: 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 88: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
89: iload 13
iload 12
if_icmplt 27
end local 13 90: aload 2
ifnull 107
91: aload 5
invokevirtual java.security.MessageDigest.digest:()[B
astore 13
start local 13 92: aload 13
arraylength
newarray 8
astore 14
start local 14 93: aload 4
aload 14
invokevirtual java.io.DataInputStream.readFully:([B)V
94: iconst_0
istore 15
start local 15 95: goto 106
96: 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 105
97: new java.security.UnrecoverableKeyException
dup
98: ldc "Password verification failed"
99: invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
astore 16
start local 16 100: new java.io.IOException
dup
101: ldc "Keystore was tampered with, or password was incorrect"
102: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
103: aload 16
invokevirtual java.io.IOException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
104: checkcast java.io.IOException
athrow
end local 16 105: StackMap locals:
StackMap stack:
iinc 15 1
StackMap locals:
StackMap stack:
106: iload 15
aload 13
arraylength
if_icmplt 96
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 107: StackMap locals: sun.security.provider.JavaKeyStore java.io.InputStream char[] java.util.Hashtable
StackMap stack:
aload 3
monitorexit
108: goto 111
StackMap locals:
StackMap stack: java.lang.Throwable
109: aload 3
monitorexit
110: athrow
111: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 112 0 this Lsun/security/provider/JavaKeyStore;
0 112 1 stream Ljava/io/InputStream;
0 112 2 password [C
12 13 4 dis Ljava/io/DataInputStream;
14 107 4 dis Ljava/io/DataInputStream;
2 107 5 md Ljava/security/MessageDigest;
3 107 6 cf Ljava/security/cert/CertificateFactory;
4 107 7 cfs Ljava/util/Hashtable<Ljava/lang/String;Ljava/security/cert/CertificateFactory;>;
5 107 8 bais Ljava/io/ByteArrayInputStream;
6 107 9 encoded [B
15 107 10 xMagic I
16 107 11 xVersion I
25 107 12 count I
26 90 13 i I
28 88 14 tag I
31 66 15 alias Ljava/lang/String;
69 87 15 alias Ljava/lang/String;
30 65 16 entry Lsun/security/provider/JavaKeyStore$KeyEntry;
38 65 17 numOfCerts I
46 64 18 j I
49 54 19 certType Ljava/lang/String;
68 86 16 entry Lsun/security/provider/JavaKeyStore$TrustedCertEntry;
72 77 17 certType Ljava/lang/String;
92 107 13 computed [B
93 107 14 actual [B
95 107 15 i I
100 105 16 t Ljava/lang/Throwable;
Exception table:
from to target type
32 33 34 Class java.lang.OutOfMemoryError
38 40 41 Class java.lang.OutOfMemoryError
54 55 56 Class java.lang.OutOfMemoryError
77 78 79 Class java.lang.OutOfMemoryError
1 8 109 any
9 108 109 any
109 110 109 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=4, locals=6, args_size=2
start local 0 start local 1 0: ldc "SHA"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 4
start local 4 1: aload 1
arraylength
iconst_2
imul
newarray 8
astore 5
start local 5 2: iconst_0
istore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 8
5: StackMap locals: sun.security.provider.JavaKeyStore char[] int int java.security.MessageDigest byte[]
StackMap stack:
aload 5
iload 3
iinc 3 1
aload 1
iload 2
caload
bipush 8
ishr
i2b
bastore
6: aload 5
iload 3
iinc 3 1
aload 1
iload 2
caload
i2b
bastore
7: iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
aload 1
arraylength
if_icmplt 5
9: aload 4
aload 5
invokevirtual java.security.MessageDigest.update:([B)V
10: iconst_0
istore 2
goto 13
11: StackMap locals:
StackMap stack:
aload 5
iload 2
iconst_0
bastore
12: iinc 2 1
StackMap locals:
StackMap stack:
13: iload 2
aload 5
arraylength
if_icmplt 11
14: aload 4
ldc "Mighty Aphrodite"
ldc "UTF8"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
invokevirtual java.security.MessageDigest.update:([B)V
15: aload 4
areturn
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 16 0 this Lsun/security/provider/JavaKeyStore;
0 16 1 password [C
3 16 2 i I
4 16 3 j I
1 16 4 md Ljava/security/MessageDigest;
2 16 5 passwdBytes [B
Exceptions:
throws java.security.NoSuchAlgorithmException, java.io.UnsupportedEncodingException
MethodParameters:
Name Flags
password
}
SourceFile: "JavaKeyStore.java"
NestMembers:
sun.security.provider.JavaKeyStore$CaseExactJKS 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 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