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 4
checkcast com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
astore 6
start local 6 15: aload 5
aload 6
getfield com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.sealedKey:Ljavax/crypto/SealedObject;
aload 6
getfield com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.maxLength:I
invokevirtual com.sun.crypto.provider.KeyProtector.unseal:(Ljavax/crypto/SealedObject;I)Ljava/security/Key;
astore 3
end local 6 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;
15 16 6 ske Lcom/sun/crypto/provider/JceKeyStore$SecretKeyEntry;
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 21
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 7
ldc 2147483647
putfield com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.maxLength:I
17: 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 18: goto 21
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
19: astore 6
start local 6 20: 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 21: StackMap locals:
StackMap stack:
aload 5
monitorexit
22: goto 25
StackMap locals:
StackMap stack: java.lang.Throwable
23: aload 5
monitorexit
24: athrow
25: 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 26 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 26 1 alias Ljava/lang/String;
0 26 2 key Ljava/security/Key;
0 26 3 password [C
0 26 4 chain [Ljava/security/cert/Certificate;
2 18 6 keyProtector Lcom/sun/crypto/provider/KeyProtector;
4 12 7 entry Lcom/sun/crypto/provider/JceKeyStore$PrivateKeyEntry;
14 18 7 entry Lcom/sun/crypto/provider/JceKeyStore$SecretKeyEntry;
20 21 6 e Ljava/lang/Exception;
Exception table:
from to target type
1 18 19 Class java.lang.Exception
1 22 23 any
23 24 23 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=25, 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 1
invokestatic sun.misc.IOUtils.readAllBytes:(Ljava/io/InputStream;)[B
astore 10
start local 10 10: aload 10
arraylength
istore 11
start local 11 11: new java.io.ByteArrayInputStream
dup
aload 10
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 1
12: aload 2
ifnull 16
13: aload 0
aload 2
invokevirtual com.sun.crypto.provider.JceKeyStore.getPreKeyedHash:([C)Ljava/security/MessageDigest;
astore 5
14: 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 15: goto 17
end local 4 16: StackMap locals: byte[] int
StackMap stack:
new java.io.DataInputStream
dup
aload 1
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 4
start local 4 17: 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[] byte[] int
StackMap stack:
aconst_null
astore 12
start local 12 18: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 13
start local 13 19: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 14
start local 14 20: iload 13
ldc -825307442
if_icmpeq 21
iload 13
ldc -17957139
if_icmpne 22
21: StackMap locals: java.io.ObjectInputStream int int
StackMap stack:
iload 14
iconst_1
if_icmpeq 23
iload 14
iconst_2
if_icmpeq 23
22: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "Invalid keystore format"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
23: StackMap locals:
StackMap stack:
iload 14
iconst_1
if_icmpne 26
24: ldc "X509"
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
25: goto 27
26: StackMap locals:
StackMap stack:
new java.util.Hashtable
dup
iconst_3
invokespecial java.util.Hashtable.<init>:(I)V
astore 7
27: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.clear:()V
28: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 15
start local 15 29: iconst_0
istore 16
start local 16 30: goto 93
31: StackMap locals: int int
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 17
start local 17 32: iload 17
iconst_1
if_icmpne 59
33: new com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry
dup
invokespecial com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.<init>:()V
astore 19
start local 19 34: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 18
start local 18 35: aload 19
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;
36: aload 19
aload 4
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
invokestatic sun.misc.IOUtils.readExactlyNBytes:(Ljava/io/InputStream;I)[B
putfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.protectedKey:[B
37: aload 4
invokevirtual java.io.DataInputStream.readInt:()I
istore 20
start local 20 38: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 21
start local 21 39: iconst_0
istore 22
start local 22 40: goto 53
41: 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[] byte[] int java.io.ObjectInputStream int int int int int java.lang.String com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry int java.util.List int
StackMap stack:
iload 14
iconst_2
if_icmpne 49
42: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 23
start local 23 43: aload 7
aload 23
invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
ifeq 46
44: aload 7
aload 23
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.CertificateFactory
astore 6
45: goto 49
46: StackMap locals: java.lang.String
StackMap stack:
aload 23
47: invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
48: aload 7
aload 23
aload 6
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 23 49: StackMap locals:
StackMap stack:
aload 4
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
invokestatic sun.misc.IOUtils.readExactlyNBytes:(Ljava/io/InputStream;I)[B
astore 9
50: new java.io.ByteArrayInputStream
dup
aload 9
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 8
51: aload 21
aload 6
aload 8
invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
52: iinc 22 1
StackMap locals:
StackMap stack:
53: iload 22
iload 20
if_icmplt 41
end local 22 54: aload 19
aload 21
55: iload 20
anewarray java.security.cert.Certificate
56: invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.security.cert.Certificate[]
putfield com.sun.crypto.provider.JceKeyStore$PrivateKeyEntry.chain:[Ljava/security/cert/Certificate;
57: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 18
aload 19
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 21 end local 20 end local 19 58: goto 92
end local 18 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[] byte[] int java.io.ObjectInputStream int int int int int
StackMap stack:
59: iload 17
iconst_2
if_icmpne 75
60: new com.sun.crypto.provider.JceKeyStore$TrustedCertEntry
dup
invokespecial com.sun.crypto.provider.JceKeyStore$TrustedCertEntry.<init>:()V
astore 19
start local 19 61: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 18
start local 18 62: aload 19
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;
63: iload 14
iconst_2
if_icmpne 70
64: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 20
start local 20 65: aload 7
aload 20
invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
ifeq 68
66: aload 7
aload 20
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.security.cert.CertificateFactory
astore 6
67: goto 70
68: StackMap locals: java.lang.String com.sun.crypto.provider.JceKeyStore$TrustedCertEntry java.lang.String
StackMap stack:
aload 20
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 6
69: aload 7
aload 20
aload 6
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 20 70: StackMap locals:
StackMap stack:
aload 4
aload 4
invokevirtual java.io.DataInputStream.readInt:()I
invokestatic sun.misc.IOUtils.readExactlyNBytes:(Ljava/io/InputStream;I)[B
astore 9
71: new java.io.ByteArrayInputStream
dup
aload 9
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 8
72: aload 19
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;
73: aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 18
aload 19
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 19 74: goto 92
end local 18 StackMap locals:
StackMap stack:
75: iload 17
iconst_3
if_icmpne 91
76: new com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
dup
invokespecial com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.<init>:()V
astore 19
start local 19 77: aload 4
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 18
start local 18 78: aload 19
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;
79: new java.io.ObjectInputStream
dup
aload 4
invokespecial java.io.ObjectInputStream.<init>:(Ljava/io/InputStream;)V
astore 12
80: aload 12
astore 20
start local 20 81: new com.sun.crypto.provider.JceKeyStore$1
dup
aload 0
aload 20
iload 11
invokespecial com.sun.crypto.provider.JceKeyStore$1.<init>:(Lcom/sun/crypto/provider/JceKeyStore;Ljava/io/ObjectInputStream;I)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
82: aload 19
aload 12
invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
checkcast javax.crypto.SealedObject
putfield com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.sealedKey:Ljavax/crypto/SealedObject;
83: aload 19
iload 11
putfield com.sun.crypto.provider.JceKeyStore$SecretKeyEntry.maxLength:I
end local 20 84: goto 89
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[] byte[] int java.io.ObjectInputStream int int int int int java.lang.String com.sun.crypto.provider.JceKeyStore$SecretKeyEntry
StackMap stack: java.lang.ClassNotFoundException
85: astore 20
start local 20 86: new java.io.IOException
dup
aload 20
invokevirtual java.lang.ClassNotFoundException.getMessage:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 20 87: StackMap locals:
StackMap stack: java.io.InvalidClassException
pop
88: new java.io.IOException
dup
ldc "Invalid secret key format"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
89: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.crypto.provider.JceKeyStore.entries:Ljava/util/Hashtable;
aload 18
aload 19
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 19 90: goto 92
end local 18 91: 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 17 92: StackMap locals:
StackMap stack:
iinc 16 1
StackMap locals:
StackMap stack:
93: iload 16
iload 15
if_icmplt 31
end local 16 94: aload 2
ifnull 110
95: aload 5
invokevirtual java.security.MessageDigest.digest:()[B
astore 16
start local 16 96: aload 4
aload 16
arraylength
invokestatic sun.misc.IOUtils.readExactlyNBytes:(Ljava/io/InputStream;I)[B
astore 17
start local 17 97: aload 16
aload 17
invokestatic java.security.MessageDigest.isEqual:([B[B)Z
ifne 110
98: new java.io.IOException
dup
99: ldc "Keystore was tampered with, or password was incorrect"
100: new java.security.UnrecoverableKeyException
dup
101: ldc "Password verification failed"
102: invokespecial java.security.UnrecoverableKeyException.<init>:(Ljava/lang/String;)V
103: invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 17 end local 16 end local 15 end local 14 end local 13 104: 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[] byte[] int java.io.ObjectInputStream
StackMap stack: java.lang.Throwable
astore 24
105: aload 12
ifnull 108
106: aload 12
invokevirtual java.io.ObjectInputStream.close:()V
107: goto 109
108: 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[] byte[] int java.io.ObjectInputStream top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.close:()V
109: StackMap locals:
StackMap stack:
aload 24
athrow
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[] byte[] int java.io.ObjectInputStream
StackMap stack:
aload 12
ifnull 113
111: aload 12
invokevirtual java.io.ObjectInputStream.close:()V
112: goto 114
113: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.DataInputStream.close:()V
end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 114: StackMap locals: com.sun.crypto.provider.JceKeyStore java.io.InputStream char[] java.util.Hashtable
StackMap stack:
aload 3
monitorexit
115: goto 118
StackMap locals:
StackMap stack: java.lang.Throwable
116: aload 3
monitorexit
117: athrow
118: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 119 0 this Lcom/sun/crypto/provider/JceKeyStore;
0 119 1 stream Ljava/io/InputStream;
0 119 2 password [C
15 16 4 dis Ljava/io/DataInputStream;
17 114 4 dis Ljava/io/DataInputStream;
2 114 5 md Ljava/security/MessageDigest;
3 114 6 cf Ljava/security/cert/CertificateFactory;
4 114 7 cfs Ljava/util/Hashtable<Ljava/lang/String;Ljava/security/cert/CertificateFactory;>;
5 114 8 bais Ljava/io/ByteArrayInputStream;
6 114 9 encoded [B
10 114 10 allData [B
11 114 11 fullLength I
18 114 12 ois Ljava/io/ObjectInputStream;
19 104 13 xMagic I
20 104 14 xVersion I
29 104 15 count I
30 94 16 i I
32 92 17 tag I
35 59 18 alias Ljava/lang/String;
62 75 18 alias Ljava/lang/String;
78 91 18 alias Ljava/lang/String;
34 58 19 entry Lcom/sun/crypto/provider/JceKeyStore$PrivateKeyEntry;
38 58 20 numOfCerts I
39 58 21 tmpCerts Ljava/util/List<Ljava/security/cert/Certificate;>;
40 54 22 j I
43 49 23 certType Ljava/lang/String;
61 74 19 entry Lcom/sun/crypto/provider/JceKeyStore$TrustedCertEntry;
65 70 20 certType Ljava/lang/String;
77 90 19 entry Lcom/sun/crypto/provider/JceKeyStore$SecretKeyEntry;
81 84 20 ois2 Ljava/io/ObjectInputStream;
86 87 20 cnfe Ljava/lang/ClassNotFoundException;
96 104 16 computed [B
97 104 17 actual [B
Exception table:
from to target type
79 84 85 Class java.lang.ClassNotFoundException
79 84 87 Class java.io.InvalidClassException
18 104 104 any
1 8 116 any
9 115 116 any
116 117 116 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