public class org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore extends org.bouncycastle.jce.provider.JDKKeyStore
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore
super_class: org.bouncycastle.jce.provider.JDKKeyStore
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial org.bouncycastle.jce.provider.JDKKeyStore.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore$BouncyCastleStore;
public void engineLoad(java.io.InputStream, char[]);
descriptor: (Ljava/io/InputStream;[C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore.table:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.clear:()V
1: aload 1
ifnonnull 3
2: return
3: StackMap locals:
StackMap stack:
new java.io.DataInputStream
dup
aload 1
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 3
start local 3 4: aload 3
invokevirtual java.io.DataInputStream.readInt:()I
istore 4
start local 4 5: iload 4
iconst_1
if_icmpeq 8
6: iload 4
ifeq 8
7: new java.io.IOException
dup
ldc "Wrong version of key store."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: java.io.DataInputStream int
StackMap stack:
aload 3
invokevirtual java.io.DataInputStream.readInt:()I
newarray 8
astore 5
start local 5 9: aload 5
arraylength
bipush 20
if_icmpeq 11
10: new java.io.IOException
dup
ldc "Key store corrupted."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: byte[]
StackMap stack:
aload 3
aload 5
invokevirtual java.io.DataInputStream.readFully:([B)V
12: aload 3
invokevirtual java.io.DataInputStream.readInt:()I
istore 6
start local 6 13: iload 6
iflt 14
iload 6
sipush 4096
if_icmple 15
14: StackMap locals: int
StackMap stack:
new java.io.IOException
dup
ldc "Key store corrupted."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
iload 4
ifne 18
16: ldc "OldPBEWithSHAAndTwofish-CBC"
astore 7
start local 7 17: goto 19
end local 7 18: StackMap locals:
StackMap stack:
ldc "PBEWithSHAAndTwofish-CBC"
astore 7
start local 7 19: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 7
iconst_2
aload 2
aload 5
iload 6
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore.makePBECipher:(Ljava/lang/String;I[C[BI)Ljavax/crypto/Cipher;
astore 8
start local 8 20: new javax.crypto.CipherInputStream
dup
aload 3
aload 8
invokespecial javax.crypto.CipherInputStream.<init>:(Ljava/io/InputStream;Ljavax/crypto/Cipher;)V
astore 9
start local 9 21: new org.bouncycastle.crypto.digests.SHA1Digest
dup
invokespecial org.bouncycastle.crypto.digests.SHA1Digest.<init>:()V
astore 10
start local 10 22: new org.bouncycastle.crypto.io.DigestInputStream
dup
aload 9
aload 10
invokespecial org.bouncycastle.crypto.io.DigestInputStream.<init>:(Ljava/io/InputStream;Lorg/bouncycastle/crypto/Digest;)V
astore 11
start local 11 23: aload 0
aload 11
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore.loadStore:(Ljava/io/InputStream;)V
24: aload 10
invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
newarray 8
astore 12
start local 12 25: aload 10
aload 12
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
26: aload 10
invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
newarray 8
astore 13
start local 13 27: aload 9
aload 13
invokestatic org.bouncycastle.util.io.Streams.readFully:(Ljava/io/InputStream;[B)I
pop
28: aload 12
aload 13
invokestatic org.bouncycastle.util.Arrays.constantTimeAreEqual:([B[B)Z
ifne 31
29: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore.table:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.clear:()V
30: new java.io.IOException
dup
ldc "KeyStore integrity check failed."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
31: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore java.io.InputStream char[] java.io.DataInputStream int byte[] int java.lang.String javax.crypto.Cipher javax.crypto.CipherInputStream org.bouncycastle.crypto.Digest org.bouncycastle.crypto.io.DigestInputStream byte[] byte[]
StackMap stack:
return
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore$BouncyCastleStore;
0 32 1 stream Ljava/io/InputStream;
0 32 2 password [C
4 32 3 dIn Ljava/io/DataInputStream;
5 32 4 version I
9 32 5 salt [B
13 32 6 iterationCount I
17 18 7 cipherAlg Ljava/lang/String;
19 32 7 cipherAlg Ljava/lang/String;
20 32 8 cipher Ljavax/crypto/Cipher;
21 32 9 cIn Ljavax/crypto/CipherInputStream;
22 32 10 dig Lorg/bouncycastle/crypto/Digest;
23 32 11 dgIn Lorg/bouncycastle/crypto/io/DigestInputStream;
25 32 12 hash [B
27 32 13 oldHash [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
stream
password
public void engineStore(java.io.OutputStream, char[]);
descriptor: (Ljava/io/OutputStream;[C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=11, args_size=3
start local 0 start local 1 start local 2 0: new java.io.DataOutputStream
dup
aload 1
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 4
start local 4 1: bipush 20
newarray 8
astore 5
start local 5 2: sipush 1024
aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore.random:Ljava/security/SecureRandom;
invokevirtual java.security.SecureRandom.nextInt:()I
sipush 1023
iand
iadd
istore 6
start local 6 3: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore.random:Ljava/security/SecureRandom;
aload 5
invokevirtual java.security.SecureRandom.nextBytes:([B)V
4: aload 4
iconst_1
invokevirtual java.io.DataOutputStream.writeInt:(I)V
5: aload 4
aload 5
arraylength
invokevirtual java.io.DataOutputStream.writeInt:(I)V
6: aload 4
aload 5
invokevirtual java.io.DataOutputStream.write:([B)V
7: aload 4
iload 6
invokevirtual java.io.DataOutputStream.writeInt:(I)V
8: aload 0
ldc "PBEWithSHAAndTwofish-CBC"
iconst_1
aload 2
aload 5
iload 6
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore.makePBECipher:(Ljava/lang/String;I[C[BI)Ljavax/crypto/Cipher;
astore 3
start local 3 9: new javax.crypto.CipherOutputStream
dup
aload 4
aload 3
invokespecial javax.crypto.CipherOutputStream.<init>:(Ljava/io/OutputStream;Ljavax/crypto/Cipher;)V
astore 7
start local 7 10: new org.bouncycastle.crypto.io.DigestOutputStream
dup
aload 7
new org.bouncycastle.crypto.digests.SHA1Digest
dup
invokespecial org.bouncycastle.crypto.digests.SHA1Digest.<init>:()V
invokespecial org.bouncycastle.crypto.io.DigestOutputStream.<init>:(Ljava/io/OutputStream;Lorg/bouncycastle/crypto/Digest;)V
astore 8
start local 8 11: aload 0
aload 8
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore.saveStore:(Ljava/io/OutputStream;)V
12: aload 8
invokevirtual org.bouncycastle.crypto.io.DigestOutputStream.getDigest:()Lorg/bouncycastle/crypto/Digest;
astore 9
start local 9 13: aload 9
invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
newarray 8
astore 10
start local 10 14: aload 9
aload 10
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
15: aload 7
aload 10
invokevirtual javax.crypto.CipherOutputStream.write:([B)V
16: aload 7
invokevirtual javax.crypto.CipherOutputStream.close:()V
17: return
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore$BouncyCastleStore;
0 18 1 stream Ljava/io/OutputStream;
0 18 2 password [C
9 18 3 cipher Ljavax/crypto/Cipher;
1 18 4 dOut Ljava/io/DataOutputStream;
2 18 5 salt [B
3 18 6 iterationCount I
10 18 7 cOut Ljavax/crypto/CipherOutputStream;
11 18 8 dgOut Lorg/bouncycastle/crypto/io/DigestOutputStream;
13 18 9 dig Lorg/bouncycastle/crypto/Digest;
14 18 10 hash [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
stream
password
}
SourceFile: "JDKKeyStore.java"
NestHost: org.bouncycastle.jce.provider.JDKKeyStore
InnerClasses:
public BouncyCastleStore = org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore of org.bouncycastle.jce.provider.JDKKeyStore