public final class com.sun.crypto.provider.JceKeyStore extends java.security.KeyStoreSpi
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.crypto.provider.JceKeyStore
super_class: java.security.KeyStoreSpi
{
private static final int JCEKS_MAGIC;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -825307442
private static final int JKS_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 java.util.Hashtable<java.lang.String, java.lang.Object> entries;
descriptor: Ljava/util/Hashtable;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Object;>;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.security.KeyStoreSpi.<init>:()V
1: aload 0
new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/crypto/provider/JceKeyStore;
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=8, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 2: aload 4
instanceof com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
ifne 5
3: aload 4
instanceof com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
ifne 5
4: aconst_null
areturn
5: StackMap locals: java.security.Key java.lang.Object
StackMap stack:
new com.sun.crypto.provider.KeyProtector
dup
aload 2
invokespecial com.sun.crypto.provider.KeyProtector.<init>:([C)V
astore 5
start local 5 6: aload 4
instanceof com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
ifeq 14
7: aload 4
checkcast com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.protectedKey:[B
astore 6
start local 6 8: new com.sun.crypto.provider.EncryptedPrivateKeyInfo
dup
aload 6
invokespecial com.sun.crypto.provider.EncryptedPrivateKeyInfo.<init>:([B)V
astore 7
start local 7 9: goto 12
end local 7 StackMap locals: com.sun.crypto.provider.JceKeyStore java.lang.String char[] java.security.Key java.lang.Object com.sun.crypto.provider.KeyProtector byte[]
StackMap stack: java.io.IOException
10: pop
11: 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 7 12: StackMap locals: com.sun.crypto.provider.EncryptedPrivateKeyInfo
StackMap stack:
aload 5
aload 7
invokevirtual com.sun.crypto.provider.KeyProtector.recover:(Lcom/sun/crypto/provider/EncryptedPrivateKeyInfo;)Ljava/security/Key;
astore 3
end local 7 end local 6 13: goto 16
14: StackMap locals:
StackMap stack:
aload 5
aload 4
checkcast com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
getfield com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.sealedKey:Ljavax/crypto/SealedObject;
invokevirtual com.sun.crypto.provider.KeyProtector.unseal:(Ljavax/crypto/SealedObject;)Ljava/security/Key;
15: astore 3
16: StackMap locals:
StackMap stack:
aload 3
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 17 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 17 1 alias Ljava/lang/String;
0 17 2 password [C
1 17 3 key Ljava/security/Key;
2 17 4 entry Ljava/lang/Object;
6 17 5 keyProtector Lcom/sun/crypto/provider/KeyProtector;
8 13 6 encrBytes [B
9 10 7 encrInfo Lcom/sun/crypto/provider/EncryptedPrivateKeyInfo;
12 13 7 encrInfo Lcom/sun/crypto/provider/EncryptedPrivateKeyInfo;
Exception table:
from to target type
8 9 10 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=2, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 2: aload 3
instanceof com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
ifeq 5
3: aload 3
checkcast com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
ifnull 5
4: aload 3
checkcast com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.Certificate[]
astore 2
5: StackMap locals: java.security.cert.Certificate[] java.lang.Object
StackMap stack:
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 Lcom/sun/crypto/provider/JceKeyStore;
0 6 1 alias Ljava/lang/String;
1 6 2 chain [Ljava/security/cert/Certificate;
2 6 3 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=2, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 2: aload 3
ifnull 9
3: aload 3
instanceof com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
ifeq 6
4: aload 3
checkcast com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
getfield com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.cert:Ljava/security/cert/Certificate;
astore 2
5: goto 9
StackMap locals: java.security.cert.Certificate java.lang.Object
StackMap stack:
6: aload 3
instanceof com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
ifeq 9
7: aload 3
checkcast com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
ifnull 9
8: aload 3
checkcast com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
iconst_0
aaload
astore 2
9: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 10 1 alias Ljava/lang/String;
1 10 2 cert Ljava/security/cert/Certificate;
2 10 3 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=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 2: aload 3
ifnull 10
3: aload 3
instanceof com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
ifeq 6
4: new java.util.Date
dup
aload 3
checkcast com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
getfield com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.date:Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokespecial java.util.Date.<init>:(J)V
astore 2
5: goto 10
StackMap locals: java.util.Date java.lang.Object
StackMap stack:
6: aload 3
instanceof com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
ifeq 9
7: new java.util.Date
dup
aload 3
checkcast com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.date:Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokespecial java.util.Date.<init>:(J)V
astore 2
8: goto 10
9: StackMap locals:
StackMap stack:
new java.util.Date
dup
aload 3
checkcast com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
getfield com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.date:Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokespecial java.util.Date.<init>:(J)V
astore 2
10: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 11 1 alias Ljava/lang/String;
1 11 2 date Ljava/util/Date;
2 11 3 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=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
dup
astore 5
monitorenter
1: new com.sun.crypto.provider.KeyProtector
dup
aload 3
invokespecial com.sun.crypto.provider.KeyProtector.<init>:([C)V
astore 6
start local 6 2: aload 2
instanceof java.security.PrivateKey
ifeq 13
3: new com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
dup
invokespecial com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.<init>:()V
astore 7
start local 7 4: aload 7
new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
putfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.date:Ljava/util/Date;
5: aload 7
aload 6
aload 2
checkcast java.security.PrivateKey
invokevirtual com.sun.crypto.provider.KeyProtector.protect:(Ljava/security/PrivateKey;)[B
putfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.protectedKey:[B
6: aload 4
ifnull 10
7: aload 4
arraylength
ifeq 10
8: aload 7
aload 4
invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.Certificate[]
putfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
9: goto 11
10: StackMap locals: java.util.Hashtable com.sun.crypto.provider.KeyProtector com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
StackMap stack:
aload 7
aconst_null
putfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
11: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
aload 7
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 12: goto 20
13: StackMap locals:
StackMap stack:
new com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
dup
invokespecial com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.<init>:()V
astore 7
start local 7 14: aload 7
new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
putfield com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.date:Ljava/util/Date;
15: aload 7
aload 6
aload 2
invokevirtual com.sun.crypto.provider.KeyProtector.seal:(Ljava/security/Key;)Ljavax/crypto/SealedObject;
putfield com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.sealedKey:Ljavax/crypto/SealedObject;
16: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
aload 7
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 7 end local 6 17: goto 20
StackMap locals: com.sun.crypto.provider.JceKeyStore java.lang.String java.security.Key char[] java.security.cert.Certificate[] java.util.Hashtable
StackMap stack: java.lang.Exception
18: astore 6
start local 6 19: new java.security.KeyStoreException
dup
aload 6
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
end local 6 20: StackMap locals:
StackMap stack:
aload 5
monitorexit
21: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
22: aload 5
monitorexit
23: athrow
24: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/sun/crypto/provider/JceKeyStore;
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;
2 17 6 keyProtector Lcom/sun/crypto/provider/KeyProtector;
4 12 7 entry Lcom/sun/crypto/provider/JceKeyStore$PrivateKeyEntry;
14 17 7 entry Lcom/sun/crypto/provider/JceKeyStore$SecretKeyEntry;
19 20 6 e Ljava/lang/Exception;
Exception table:
from to target type
1 17 18 Class java.lang.Exception
1 21 22 any
22 23 22 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 com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
dup
astore 4
monitorenter
1: new com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
dup
invokespecial com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.<init>:()V
astore 5
start local 5 2: aload 5
new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
putfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.date:Ljava/util/Date;
3: aload 5
aload 2
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
putfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.protectedKey:[B
4: aload 3
ifnull 8
5: aload 3
arraylength
ifeq 8
6: aload 5
aload 3
invokevirtual java.security.cert.Certificate[].clone:()Ljava/lang/Object;
checkcast java.security.cert.Certificate[]
putfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
7: goto 9
8: StackMap locals: java.util.Hashtable com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
StackMap stack:
aload 5
aconst_null
putfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
9: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
aload 5
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 10: aload 4
monitorexit
11: goto 14
StackMap locals: com.sun.crypto.provider.JceKeyStore java.lang.String byte[] java.security.cert.Certificate[] java.util.Hashtable
StackMap stack: java.lang.Throwable
12: aload 4
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 15 1 alias Ljava/lang/String;
0 15 2 key [B
0 15 3 chain [Ljava/security/cert/Certificate;
2 10 5 entry Lcom/sun/crypto/provider/JceKeyStore$PrivateKeyEntry;
Exception table:
from to target type
1 11 12 any
12 13 12 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 com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
dup
astore 3
monitorenter
1: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 2: aload 4
ifnull 7
3: aload 4
instanceof com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
ifeq 5
4: new java.security.KeyStoreException
dup
ldc "Cannot overwrite own certificate"
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.util.Hashtable java.lang.Object
StackMap stack:
aload 4
instanceof com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
ifeq 7
6: new java.security.KeyStoreException
dup
ldc "Cannot overwrite secret key"
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
new com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
dup
invokespecial com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.<init>:()V
astore 5
start local 5 8: aload 5
aload 2
putfield com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.cert:Ljava/security/cert/Certificate;
9: aload 5
new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
putfield com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.date:Ljava/util/Date;
10: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
aload 5
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 4 11: aload 3
monitorexit
12: goto 15
StackMap locals: com.sun.crypto.provider.JceKeyStore java.lang.String java.security.cert.Certificate java.util.Hashtable
StackMap stack: java.lang.Throwable
13: aload 3
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 16 1 alias Ljava/lang/String;
0 16 2 cert Ljava/security/cert/Certificate;
2 11 4 entry Ljava/lang/Object;
8 11 5 trustedCertEntry Lcom/sun/crypto/provider/JceKeyStore$TrustedCertEntry;
Exception table:
from to target type
1 12 13 any
13 14 13 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=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
dup
astore 2
monitorenter
1: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 2
monitorexit
3: goto 6
StackMap locals: com.sun.crypto.provider.JceKeyStore 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 Lcom/sun/crypto/provider/JceKeyStore;
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 com.sun.crypto.provider.JceKeyStore.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 Lcom/sun/crypto/provider/JceKeyStore;
Signature: ()Ljava/util/Enumeration<Ljava/lang/String;>;
public boolean engineContainsAlias(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/crypto/provider/JceKeyStore;
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 com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/crypto/provider/JceKeyStore;
public boolean engineIsKeyEntry(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 2: aload 3
instanceof com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
ifne 4
3: aload 3
instanceof com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
ifeq 5
4: StackMap locals: int java.lang.Object
StackMap stack:
iconst_1
istore 2
5: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 6 1 alias Ljava/lang/String;
1 6 2 isKey Z
2 6 3 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=2, locals=4, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 1
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 2: aload 3
instanceof com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
ifeq 4
3: iconst_1
istore 2
4: StackMap locals: int java.lang.Object
StackMap stack:
iload 2
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 5 1 alias Ljava/lang/String;
1 5 2 isCert Z
2 5 3 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 com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
astore 3
start local 3 1: goto 12
2: StackMap locals: com.sun.crypto.provider.JceKeyStore 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 com.sun.crypto.provider.JceKeyStore.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 com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
ifeq 7
5: aload 5
checkcast com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
getfield com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.cert:Ljava/security/cert/Certificate;
astore 2
start local 2 6: goto 10
end local 2 StackMap locals: java.lang.String java.lang.Object
StackMap stack:
7: aload 5
instanceof com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
ifeq 12
8: aload 5
checkcast com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
ifnull 12
9: aload 5
checkcast com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
iconst_0
aaload
astore 2
start local 2 10: StackMap locals: com.sun.crypto.provider.JceKeyStore 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 12
11: aload 4
areturn
end local 5 end local 4 end local 2 12: StackMap locals: com.sun.crypto.provider.JceKeyStore java.security.cert.Certificate top java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 2
13: aconst_null
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 14 1 cert Ljava/security/cert/Certificate;
6 7 2 certElem Ljava/security/cert/Certificate;
10 12 2 certElem Ljava/security/cert/Certificate;
1 14 3 e Ljava/util/Enumeration<Ljava/lang/String;>;
3 12 4 alias Ljava/lang/String;
4 12 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=15, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.crypto.provider.JceKeyStore.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 com.sun.crypto.provider.JceKeyStore.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: aconst_null
astore 7
start local 7 7: aload 6
ldc -825307442
invokevirtual java.io.DataOutputStream.writeInt:(I)V
8: aload 6
iconst_2
invokevirtual java.io.DataOutputStream.writeInt:(I)V
9: aload 6
aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.size:()I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
10: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.keys:()Ljava/util/Enumeration;
astore 8
start local 8 11: goto 49
12: StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.OutputStream char[] java.util.Hashtable top java.security.MessageDigest java.io.DataOutputStream java.io.ObjectOutputStream java.util.Enumeration
StackMap stack:
aload 8
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 13: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 9
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 10
start local 10 14: aload 10
instanceof com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
ifeq 35
15: aload 10
checkcast com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
astore 11
start local 11 16: aload 6
iconst_1
invokevirtual java.io.DataOutputStream.writeInt:(I)V
17: aload 6
aload 9
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
18: aload 6
aload 11
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.date:Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokevirtual java.io.DataOutputStream.writeLong:(J)V
19: aload 6
aload 11
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.protectedKey:[B
arraylength
invokevirtual java.io.DataOutputStream.writeInt:(I)V
20: aload 6
aload 11
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.protectedKey:[B
invokevirtual java.io.DataOutputStream.write:([B)V
21: aload 11
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
ifnonnull 24
22: iconst_0
istore 12
start local 12 23: goto 25
end local 12 24: StackMap locals: java.lang.String java.lang.Object com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
StackMap stack:
aload 11
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
arraylength
istore 12
start local 12 25: StackMap locals: int
StackMap stack:
aload 6
iload 12
invokevirtual java.io.DataOutputStream.writeInt:(I)V
26: iconst_0
istore 13
start local 13 27: goto 33
28: StackMap locals: int
StackMap stack:
aload 11
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
iload 13
aaload
invokevirtual java.security.cert.Certificate.getEncoded:()[B
astore 4
start local 4 29: aload 6
aload 11
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
iload 13
aaload
invokevirtual java.security.cert.Certificate.getType:()Ljava/lang/String;
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
30: aload 6
aload 4
arraylength
invokevirtual java.io.DataOutputStream.writeInt:(I)V
31: aload 6
aload 4
invokevirtual java.io.DataOutputStream.write:([B)V
32: iinc 13 1
end local 4 StackMap locals:
StackMap stack:
33: iload 13
iload 12
if_icmplt 28
end local 13 end local 12 end local 11 34: goto 49
StackMap locals:
StackMap stack:
35: aload 10
instanceof com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
ifeq 44
36: aload 6
iconst_2
invokevirtual java.io.DataOutputStream.writeInt:(I)V
37: aload 6
aload 9
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
38: aload 6
aload 10
checkcast com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
getfield com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.date:Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokevirtual java.io.DataOutputStream.writeLong:(J)V
39: aload 10
checkcast com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
getfield com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.cert:Ljava/security/cert/Certificate;
invokevirtual java.security.cert.Certificate.getEncoded:()[B
astore 4
start local 4 40: aload 6
aload 10
checkcast com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
getfield com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.cert:Ljava/security/cert/Certificate;
invokevirtual java.security.cert.Certificate.getType:()Ljava/lang/String;
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
41: aload 6
aload 4
arraylength
invokevirtual java.io.DataOutputStream.writeInt:(I)V
42: aload 6
aload 4
invokevirtual java.io.DataOutputStream.write:([B)V
43: goto 49
end local 4 44: StackMap locals:
StackMap stack:
aload 6
iconst_3
invokevirtual java.io.DataOutputStream.writeInt:(I)V
45: aload 6
aload 9
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
46: aload 6
aload 10
checkcast com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
getfield com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.date:Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokevirtual java.io.DataOutputStream.writeLong:(J)V
47: new java.io.ObjectOutputStream
dup
aload 6
invokespecial java.io.ObjectOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 7
48: aload 7
aload 10
checkcast com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
getfield com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.sealedKey:Ljavax/crypto/SealedObject;
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
end local 10 end local 9 49: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 12
50: aload 5
invokevirtual java.security.MessageDigest.digest:()[B
astore 9
start local 9 51: aload 6
aload 9
invokevirtual java.io.DataOutputStream.write:([B)V
52: aload 6
invokevirtual java.io.DataOutputStream.flush:()V
end local 9 end local 8 53: goto 60
StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.OutputStream char[] java.util.Hashtable top java.security.MessageDigest java.io.DataOutputStream java.io.ObjectOutputStream
StackMap stack: java.lang.Throwable
54: astore 14
55: aload 7
ifnull 58
56: aload 7
invokevirtual java.io.ObjectOutputStream.close:()V
57: goto 59
58: StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.OutputStream char[] java.util.Hashtable top java.security.MessageDigest java.io.DataOutputStream java.io.ObjectOutputStream top top top top top top java.lang.Throwable
StackMap stack:
aload 6
invokevirtual java.io.DataOutputStream.close:()V
59: StackMap locals:
StackMap stack:
aload 14
athrow
60: StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.OutputStream char[] java.util.Hashtable top java.security.MessageDigest java.io.DataOutputStream java.io.ObjectOutputStream
StackMap stack:
aload 7
ifnull 63
61: aload 7
invokevirtual java.io.ObjectOutputStream.close:()V
62: goto 64
63: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.io.DataOutputStream.close:()V
end local 7 end local 6 end local 5 64: StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.OutputStream char[] java.util.Hashtable
StackMap stack:
aload 3
monitorexit
65: goto 68
StackMap locals:
StackMap stack: java.lang.Throwable
66: aload 3
monitorexit
67: athrow
68: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 69 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 69 1 stream Ljava/io/OutputStream;
0 69 2 password [C
29 33 4 encoded [B
40 44 4 encoded [B
4 64 5 md Ljava/security/MessageDigest;
6 64 6 dos Ljava/io/DataOutputStream;
7 64 7 oos Ljava/io/ObjectOutputStream;
11 53 8 e Ljava/util/Enumeration<Ljava/lang/String;>;
13 49 9 alias Ljava/lang/String;
14 49 10 entry Ljava/lang/Object;
16 34 11 pentry Lcom/sun/crypto/provider/JceKeyStore$PrivateKeyEntry;
23 24 12 chainLen I
25 34 12 chainLen I
27 34 13 i I
51 53 9 digest [B
Exception table:
from to target type
7 54 54 any
1 65 66 any
66 67 66 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=22, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.crypto.provider.JceKeyStore.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: com.sun.crypto.provider.JceKeyStore 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 com.sun.crypto.provider.JceKeyStore.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: com.sun.crypto.provider.JceKeyStore 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:
aconst_null
astore 10
start local 10 15: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 11
start local 11 16: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 12
start local 12 17: iload 11
ldc -825307442
if_icmpeq 18
iload 11
ldc -17957139
if_icmpne 19
18: StackMap locals: java.io.ObjectInputStream int int
StackMap stack:
iload 12
iconst_1
if_icmpeq 20
iload 12
iconst_2
if_icmpeq 20
19: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "Invalid keystore format"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
iload 12
iconst_1
if_icmpne 23
21: ldc "X509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
22: goto 24
23: StackMap locals:
StackMap stack:
new java.util.Hashtable
dup
iconst_3
invokespecial java.util.Hashtable.<init>:(I)V
astore 7
24: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.clear:()V
25: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 13
start local 13 26: iconst_0
istore 14
start local 14 27: goto 102
28: StackMap locals: int int
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 15
start local 15 29: iload 15
iconst_1
if_icmpne 64
30: new com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
dup
invokespecial com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.<init>:()V
astore 17
start local 17 31: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 16
start local 16 32: aload 17
new java.util.Date
dup
aload 4
invokevirtual java.io.DataInputStream.readLong:()J
invokespecial java.util.Date.<init>:(J)V
putfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.date:Ljava/util/Date;
33: aload 17
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
newarray 8
putfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.protectedKey:[B
34: goto 37
StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.InputStream char[] java.util.Hashtable java.io.DataInputStream java.security.MessageDigest java.security.cert.CertificateFactory java.util.Hashtable java.io.ByteArrayInputStream byte[] java.io.ObjectInputStream int int int int int java.lang.String com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
StackMap stack: java.lang.OutOfMemoryError
35: pop
36: new java.io.IOException
dup
ldc "Keysize too big"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
37: StackMap locals:
StackMap stack:
aload 4
aload 17
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.protectedKey:[B
invokevirtual java.io.DataInputStream.readFully:([B)V
38: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 18
start local 18 39: iload 18
ifle 44
40: aload 17
iload 18
anewarray java.security.cert.Certificate
putfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
41: goto 44
StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.InputStream char[] java.util.Hashtable java.io.DataInputStream java.security.MessageDigest java.security.cert.CertificateFactory java.util.Hashtable java.io.ByteArrayInputStream byte[] java.io.ObjectInputStream int int int int int java.lang.String com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry int
StackMap stack: java.lang.OutOfMemoryError
42: pop
43: new java.io.IOException
dup
ldc "Too many certificates in chain"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
44: StackMap locals:
StackMap stack:
iconst_0
istore 19
start local 19 45: goto 61
46: StackMap locals: int
StackMap stack:
iload 12
iconst_2
if_icmpne 53
47: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 20
start local 20 48: aload 7
aload 20
invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
ifeq 51
49: aload 7
aload 20
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.CertificateFactory
astore 6
50: goto 53
51: StackMap locals: java.lang.String
StackMap stack:
aload 20
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
52: aload 7
aload 20
aload 6
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 20 53: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
newarray 8
astore 9
54: goto 57
StackMap locals:
StackMap stack: java.lang.OutOfMemoryError
55: pop
56: new java.io.IOException
dup
ldc "Certificate too big"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
57: StackMap locals:
StackMap stack:
aload 4
aload 9
invokevirtual java.io.DataInputStream.readFully:([B)V
58: new java.io.ByteArrayInputStream
dup
aload 9
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 8
59: aload 17
getfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
iload 19
aload 6
aload 8
invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
aastore
60: iinc 19 1
StackMap locals:
StackMap stack:
61: iload 19
iload 18
if_icmplt 46
end local 19 62: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 16
aload 17
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 18 end local 17 63: goto 101
end local 16 StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.InputStream char[] java.util.Hashtable java.io.DataInputStream java.security.MessageDigest java.security.cert.CertificateFactory java.util.Hashtable java.io.ByteArrayInputStream byte[] java.io.ObjectInputStream int int int int int
StackMap stack:
64: iload 15
iconst_2
if_icmpne 84
65: new com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
dup
invokespecial com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.<init>:()V
astore 17
start local 17 66: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 16
start local 16 67: aload 17
new java.util.Date
dup
aload 4
invokevirtual java.io.DataInputStream.readLong:()J
invokespecial java.util.Date.<init>:(J)V
putfield com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.date:Ljava/util/Date;
68: iload 12
iconst_2
if_icmpne 75
69: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 18
start local 18 70: aload 7
aload 18
invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
ifeq 73
71: aload 7
aload 18
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.CertificateFactory
astore 6
72: goto 75
73: StackMap locals: java.lang.String com.sun.crypto.provider.JceKeyStore$TrustedCertEntry java.lang.String
StackMap stack:
aload 18
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
74: aload 7
aload 18
aload 6
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 18 75: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
newarray 8
astore 9
76: goto 79
StackMap locals:
StackMap stack: java.lang.OutOfMemoryError
77: pop
78: new java.io.IOException
dup
ldc "Certificate too big"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
79: StackMap locals:
StackMap stack:
aload 4
aload 9
invokevirtual java.io.DataInputStream.readFully:([B)V
80: new java.io.ByteArrayInputStream
dup
aload 9
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 8
81: aload 17
aload 6
aload 8
invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
putfield com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.cert:Ljava/security/cert/Certificate;
82: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 16
aload 17
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 17 83: goto 101
end local 16 StackMap locals:
StackMap stack:
84: iload 15
iconst_3
if_icmpne 100
85: new com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
dup
invokespecial com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.<init>:()V
astore 17
start local 17 86: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 16
start local 16 87: aload 17
new java.util.Date
dup
aload 4
invokevirtual java.io.DataInputStream.readLong:()J
invokespecial java.util.Date.<init>:(J)V
putfield com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.date:Ljava/util/Date;
88: new java.io.ObjectInputStream
dup
aload 4
invokespecial java.io.ObjectInputStream.<init>:(Ljava/io/InputStream;)V
astore 10
89: aload 10
astore 18
start local 18 90: new com.sun.crypto.provider.JceKeyStore$1
dup
aload 0
aload 18
invokespecial com.sun.crypto.provider.JceKeyStore$1.<init>:(Lcom/sun/crypto/provider/JceKeyStore;Ljava/io/ObjectInputStream;)V
91: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
92: aload 17
aload 10
invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
checkcast javax.crypto.SealedObject
putfield com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.sealedKey:Ljavax/crypto/SealedObject;
end local 18 93: goto 98
StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.InputStream char[] java.util.Hashtable java.io.DataInputStream java.security.MessageDigest java.security.cert.CertificateFactory java.util.Hashtable java.io.ByteArrayInputStream byte[] java.io.ObjectInputStream int int int int int java.lang.String com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
StackMap stack: java.lang.ClassNotFoundException
94: astore 18
start local 18 95: new java.io.IOException
dup
aload 18
invokevirtual java.lang.ClassNotFoundException.getMessage:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 18 96: StackMap locals:
StackMap stack: java.io.InvalidClassException
pop
97: new java.io.IOException
dup
ldc "Invalid secret key format"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
98: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 16
aload 17
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 17 99: goto 101
end local 16 100: 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 15 101: StackMap locals:
StackMap stack:
iinc 14 1
StackMap locals:
StackMap stack:
102: iload 14
iload 13
if_icmplt 28
end local 14 103: aload 2
ifnull 120
104: aload 5
invokevirtual java.security.MessageDigest.digest:()[B
astore 14
start local 14 105: aload 14
arraylength
newarray 8
astore 15
start local 15 106: aload 4
aload 15
invokevirtual java.io.DataInputStream.readFully:([B)V
107: iconst_0
istore 16
start local 16 108: goto 112
109: StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.InputStream char[] java.util.Hashtable java.io.DataInputStream java.security.MessageDigest java.security.cert.CertificateFactory java.util.Hashtable java.io.ByteArrayInputStream byte[] java.io.ObjectInputStream int int int byte[] byte[] int
StackMap stack:
aload 14
iload 16
baload
aload 15
iload 16
baload
if_icmpeq 111
110: new java.io.IOException
dup
ldc "Keystore was tampered with, or password was incorrect"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
111: StackMap locals:
StackMap stack:
iinc 16 1
StackMap locals:
StackMap stack:
112: iload 16
aload 14
arraylength
if_icmplt 109
end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 113: goto 120
StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.InputStream char[] java.util.Hashtable java.io.DataInputStream java.security.MessageDigest java.security.cert.CertificateFactory java.util.Hashtable java.io.ByteArrayInputStream byte[] java.io.ObjectInputStream
StackMap stack: java.lang.Throwable
114: astore 21
115: aload 10
ifnull 118
116: aload 10
invokevirtual java.io.ObjectInputStream.close:()V
117: goto 119
118: StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.InputStream char[] java.util.Hashtable java.io.DataInputStream java.security.MessageDigest java.security.cert.CertificateFactory java.util.Hashtable java.io.ByteArrayInputStream byte[] java.io.ObjectInputStream top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.close:()V
119: StackMap locals:
StackMap stack:
aload 21
athrow
120: StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.InputStream char[] java.util.Hashtable java.io.DataInputStream java.security.MessageDigest java.security.cert.CertificateFactory java.util.Hashtable java.io.ByteArrayInputStream byte[] java.io.ObjectInputStream
StackMap stack:
aload 10
ifnull 123
121: aload 10
invokevirtual java.io.ObjectInputStream.close:()V
122: goto 124
123: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.close:()V
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 124: StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.InputStream char[] java.util.Hashtable
StackMap stack:
aload 3
monitorexit
125: goto 128
StackMap locals:
StackMap stack: java.lang.Throwable
126: aload 3
monitorexit
127: athrow
128: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 129 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 129 1 stream Ljava/io/InputStream;
0 129 2 password [C
12 13 4 dis Ljava/io/DataInputStream;
14 124 4 dis Ljava/io/DataInputStream;
2 124 5 md Ljava/security/MessageDigest;
3 124 6 cf Ljava/security/cert/CertificateFactory;
4 124 7 cfs Ljava/util/Hashtable<Ljava/lang/String;Ljava/security/cert/CertificateFactory;>;
5 124 8 bais Ljava/io/ByteArrayInputStream;
6 124 9 encoded [B
15 124 10 ois Ljava/io/ObjectInputStream;
16 113 11 xMagic I
17 113 12 xVersion I
26 113 13 count I
27 103 14 i I
29 101 15 tag I
32 64 16 alias Ljava/lang/String;
67 84 16 alias Ljava/lang/String;
87 100 16 alias Ljava/lang/String;
31 63 17 entry Lcom/sun/crypto/provider/JceKeyStore$PrivateKeyEntry;
39 63 18 numOfCerts I
45 62 19 j I
48 53 20 certType Ljava/lang/String;
66 83 17 entry Lcom/sun/crypto/provider/JceKeyStore$TrustedCertEntry;
70 75 18 certType Ljava/lang/String;
86 99 17 entry Lcom/sun/crypto/provider/JceKeyStore$SecretKeyEntry;
90 93 18 ois2 Ljava/io/ObjectInputStream;
95 96 18 cnfe Ljava/lang/ClassNotFoundException;
105 113 14 computed [B
106 113 15 actual [B
108 113 16 i I
Exception table:
from to target type
33 34 35 Class java.lang.OutOfMemoryError
39 41 42 Class java.lang.OutOfMemoryError
53 54 55 Class java.lang.OutOfMemoryError
75 76 77 Class java.lang.OutOfMemoryError
88 93 94 Class java.lang.ClassNotFoundException
88 93 96 Class java.io.InvalidClassException
15 114 114 any
1 8 126 any
9 125 126 any
126 127 126 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: com.sun.crypto.provider.JceKeyStore 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 Lcom/sun/crypto/provider/JceKeyStore;
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: "JceKeyStore.java"
NestMembers:
com.sun.crypto.provider.JceKeyStore$1 com.sun.crypto.provider.JceKeyStore$DeserializationChecker com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry com.sun.crypto.provider.JceKeyStore$SecretKeyEntry com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
InnerClasses:
com.sun.crypto.provider.JceKeyStore$1
private DeserializationChecker = com.sun.crypto.provider.JceKeyStore$DeserializationChecker of com.sun.crypto.provider.JceKeyStore
private final PrivateKeyEntry = com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry of com.sun.crypto.provider.JceKeyStore
private final SecretKeyEntry = com.sun.crypto.provider.JceKeyStore$SecretKeyEntry of com.sun.crypto.provider.JceKeyStore
private final TrustedCertEntry = com.sun.crypto.provider.JceKeyStore$TrustedCertEntry of com.sun.crypto.provider.JceKeyStore