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
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)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=3, 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
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)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=3, 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
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)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
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)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
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)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
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)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
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)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
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)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
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)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=3, 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
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)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=3, 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
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)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=3, 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
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)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=3, 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
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)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 103
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 65
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 62
46: StackMap locals: int
StackMap stack:
iload 12
iconst_2
if_icmpne 54
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 54
51: StackMap locals: java.lang.String
StackMap stack:
aload 20
52: invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
53: aload 7
aload 20
aload 6
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 20 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 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
61: iinc 19 1
StackMap locals:
StackMap stack:
62: iload 19
iload 18
if_icmplt 46
end local 19 63: 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 64: goto 102
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:
65: iload 15
iconst_2
if_icmpne 85
66: new com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
dup
invokespecial com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.<init>:()V
astore 17
start local 17 67: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 16
start local 16 68: 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;
69: iload 12
iconst_2
if_icmpne 76
70: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 18
start local 18 71: aload 7
aload 18
invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
ifeq 74
72: aload 7
aload 18
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.CertificateFactory
astore 6
73: goto 76
74: 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
75: aload 7
aload 18
aload 6
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 18 76: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
newarray 8
astore 9
77: goto 80
StackMap locals:
StackMap stack: java.lang.OutOfMemoryError
78: pop
79: new java.io.IOException
dup
ldc "Certificate too big"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
80: StackMap locals:
StackMap stack:
aload 4
aload 9
invokevirtual java.io.DataInputStream.readFully:([B)V
81: new java.io.ByteArrayInputStream
dup
aload 9
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 8
82: 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;
83: 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 84: goto 102
end local 16 StackMap locals:
StackMap stack:
85: iload 15
iconst_3
if_icmpne 101
86: new com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
dup
invokespecial com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.<init>:()V
astore 17
start local 17 87: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 16
start local 16 88: 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;
89: new java.io.ObjectInputStream
dup
aload 4
invokespecial java.io.ObjectInputStream.<init>:(Ljava/io/InputStream;)V
astore 10
90: aload 10
astore 18
start local 18 91: aload 18
invokedynamic run(Ljava/io/ObjectInputStream;)Ljava/security/PrivilegedAction;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
com/sun/crypto/provider/JceKeyStore.lambda$0(Ljava/io/ObjectInputStream;)Ljava/lang/Void; (6)
()Ljava/lang/Void;
92: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
93: 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 94: goto 99
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
95: astore 18
start local 18 96: 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 97: StackMap locals:
StackMap stack: java.io.InvalidClassException
pop
98: new java.io.IOException
dup
ldc "Invalid secret key format"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
99: 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 100: goto 102
end local 16 101: 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 102: StackMap locals:
StackMap stack:
iinc 14 1
StackMap locals:
StackMap stack:
103: iload 14
iload 13
if_icmplt 28
end local 14 104: aload 2
ifnull 126
105: aload 5
invokevirtual java.security.MessageDigest.digest:()[B
astore 14
start local 14 106: aload 14
arraylength
newarray 8
astore 15
start local 15 107: aload 4
aload 15
invokevirtual java.io.DataInputStream.readFully:([B)V
108: iconst_0
istore 16
start local 16 109: goto 118
110: 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 117
111: new java.io.IOException
dup
112: ldc "Keystore was tampered with, or password was incorrect"
113: new java.security.UnrecoverableKeyException
dup
114: ldc "Password verification failed"
115: invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
116: invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
117: StackMap locals:
StackMap stack:
iinc 16 1
StackMap locals:
StackMap stack:
118: iload 16
aload 14
arraylength
if_icmplt 110
end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 119: goto 126
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
120: astore 21
121: aload 10
ifnull 124
122: aload 10
invokevirtual java.io.ObjectInputStream.close:()V
123: goto 125
124: 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
125: StackMap locals:
StackMap stack:
aload 21
athrow
126: 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 129
127: aload 10
invokevirtual java.io.ObjectInputStream.close:()V
128: goto 130
129: 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 130: StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.InputStream char[] java.util.Hashtable
StackMap stack:
aload 3
monitorexit
131: goto 134
StackMap locals:
StackMap stack: java.lang.Throwable
132: aload 3
monitorexit
133: athrow
134: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 135 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 135 1 stream Ljava/io/InputStream;
0 135 2 password [C
12 13 4 dis Ljava/io/DataInputStream;
14 130 4 dis Ljava/io/DataInputStream;
2 130 5 md Ljava/security/MessageDigest;
3 130 6 cf Ljava/security/cert/CertificateFactory;
4 130 7 cfs Ljava/util/Hashtable<Ljava/lang/String;Ljava/security/cert/CertificateFactory;>;
5 130 8 bais Ljava/io/ByteArrayInputStream;
6 130 9 encoded [B
15 130 10 ois Ljava/io/ObjectInputStream;
16 119 11 xMagic I
17 119 12 xVersion I
26 119 13 count I
27 104 14 i I
29 102 15 tag I
32 65 16 alias Ljava/lang/String;
68 85 16 alias Ljava/lang/String;
88 101 16 alias Ljava/lang/String;
31 64 17 entry Lcom/sun/crypto/provider/JceKeyStore$PrivateKeyEntry;
39 64 18 numOfCerts I
45 63 19 j I
48 54 20 certType Ljava/lang/String;
67 84 17 entry Lcom/sun/crypto/provider/JceKeyStore$TrustedCertEntry;
71 76 18 certType Ljava/lang/String;
87 100 17 entry Lcom/sun/crypto/provider/JceKeyStore$SecretKeyEntry;
91 94 18 ois2 Ljava/io/ObjectInputStream;
96 97 18 cnfe Ljava/lang/ClassNotFoundException;
106 119 14 computed [B
107 119 15 actual [B
109 119 16 i I
Exception table:
from to target type
33 34 35 Class java.lang.OutOfMemoryError
39 41 42 Class java.lang.OutOfMemoryError
54 55 56 Class java.lang.OutOfMemoryError
76 77 78 Class java.lang.OutOfMemoryError
89 94 95 Class java.lang.ClassNotFoundException
89 94 97 Class java.io.InvalidClassException
15 120 120 any
1 8 132 any
9 131 132 any
132 133 132 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
public boolean engineProbe(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.io.DataInputStream
ifeq 3
1: aload 1
checkcast java.io.DataInputStream
astore 2
start local 2 2: goto 4
end local 2 3: StackMap locals:
StackMap stack:
new java.io.DataInputStream
dup
aload 1
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 2
start local 2 4: StackMap locals: java.io.DataInputStream
StackMap stack:
ldc -825307442
aload 2
invokevirtual java.io.DataInputStream.readInt:()I
if_icmpne 5
iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 6 1 stream Ljava/io/InputStream;
2 3 2 dataStream Ljava/io/DataInputStream;
4 6 2 dataStream Ljava/io/DataInputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
stream
private static java.lang.Void lambda$0(java.io.ObjectInputStream);
descriptor: (Ljava/io/ObjectInputStream;)Ljava/lang/Void;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
0: aload 0
1: new com.sun.crypto.provider.JceKeyStore$DeserializationChecker
dup
invokespecial com.sun.crypto.provider.JceKeyStore$DeserializationChecker.<init>:()V
2: invokevirtual java.io.ObjectInputStream.setObjectInputFilter:(Ljava/io/ObjectInputFilter;)V
3: aconst_null
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "JceKeyStore.java"
NestMembers:
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:
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
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles