public class org.bouncycastle.jce.provider.JDKKeyStore extends java.security.KeyStoreSpi implements org.bouncycastle.jce.interfaces.BCKeyStore
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.jce.provider.JDKKeyStore
super_class: java.security.KeyStoreSpi
{
private static final int STORE_VERSION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int STORE_SALT_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
private static final java.lang.String STORE_CIPHER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "PBEWithSHAAndTwofish-CBC"
private static final int KEY_SALT_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
private static final int MIN_ITERATIONS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1024
private static final java.lang.String KEY_CIPHER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "PBEWithSHAAnd3-KeyTripleDES-CBC"
static final int NULL;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final int CERTIFICATE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int KEY;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int SECRET;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
static final int SEALED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4
static final int KEY_PRIVATE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final int KEY_PUBLIC;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int KEY_SECRET;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
protected java.util.Hashtable table;
descriptor: Ljava/util/Hashtable;
flags: (0x0004) ACC_PROTECTED
protected java.security.SecureRandom random;
descriptor: Ljava/security/SecureRandom;
flags: (0x0004) ACC_PROTECTED
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 org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
2: aload 0
new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
putfield org.bouncycastle.jce.provider.JDKKeyStore.random:Ljava/security/SecureRandom;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
private void encodeCertificate(java.security.cert.Certificate, java.io.DataOutputStream);
descriptor: (Ljava/security/cert/Certificate;Ljava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.security.cert.Certificate.getEncoded:()[B
astore 3
start local 3 1: aload 2
aload 1
invokevirtual java.security.cert.Certificate.getType:()Ljava/lang/String;
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
2: aload 2
aload 3
arraylength
invokevirtual java.io.DataOutputStream.writeInt:(I)V
3: aload 2
aload 3
invokevirtual java.io.DataOutputStream.write:([B)V
end local 3 4: goto 7
5: StackMap locals:
StackMap stack: java.security.cert.CertificateEncodingException
astore 3
start local 3 6: new java.io.IOException
dup
aload 3
invokevirtual java.security.cert.CertificateEncodingException.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 3 7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 8 1 cert Ljava/security/cert/Certificate;
0 8 2 dOut Ljava/io/DataOutputStream;
1 4 3 cEnc [B
6 7 3 ex Ljava/security/cert/CertificateEncodingException;
Exception table:
from to target type
0 4 5 Class java.security.cert.CertificateEncodingException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
cert
dOut
private java.security.cert.Certificate decodeCertificate(java.io.DataInputStream);
descriptor: (Ljava/io/DataInputStream;)Ljava/security/cert/Certificate;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 2
start local 2 1: aload 1
invokevirtual java.io.DataInputStream.readInt:()I
newarray 8
astore 3
start local 3 2: aload 1
aload 3
invokevirtual java.io.DataInputStream.readFully:([B)V
3: aload 2
getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
astore 4
start local 4 4: new java.io.ByteArrayInputStream
dup
aload 3
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 5
start local 5 5: aload 4
aload 5
invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
6: areturn
end local 5 end local 4 7: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore java.io.DataInputStream java.lang.String byte[]
StackMap stack: java.security.NoSuchProviderException
astore 4
start local 4 8: new java.io.IOException
dup
aload 4
invokevirtual java.security.NoSuchProviderException.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 4 9: StackMap locals:
StackMap stack: java.security.cert.CertificateException
astore 4
start local 4 10: new java.io.IOException
dup
aload 4
invokevirtual java.security.cert.CertificateException.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 11 1 dIn Ljava/io/DataInputStream;
1 11 2 type Ljava/lang/String;
2 11 3 cEnc [B
4 7 4 cFact Ljava/security/cert/CertificateFactory;
5 7 5 bIn Ljava/io/ByteArrayInputStream;
8 9 4 ex Ljava/security/NoSuchProviderException;
10 11 4 ex Ljava/security/cert/CertificateException;
Exception table:
from to target type
3 6 7 Class java.security.NoSuchProviderException
3 6 9 Class java.security.cert.CertificateException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dIn
private void encodeKey(java.security.Key, java.io.DataOutputStream);
descriptor: (Ljava/security/Key;Ljava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface java.security.Key.getEncoded:()[B
astore 3
start local 3 1: aload 1
instanceof java.security.PrivateKey
ifeq 4
2: aload 2
iconst_0
invokevirtual java.io.DataOutputStream.write:(I)V
3: goto 8
4: StackMap locals: byte[]
StackMap stack:
aload 1
instanceof java.security.PublicKey
ifeq 7
5: aload 2
iconst_1
invokevirtual java.io.DataOutputStream.write:(I)V
6: goto 8
7: StackMap locals:
StackMap stack:
aload 2
iconst_2
invokevirtual java.io.DataOutputStream.write:(I)V
8: StackMap locals:
StackMap stack:
aload 2
aload 1
invokeinterface java.security.Key.getFormat:()Ljava/lang/String;
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
9: aload 2
aload 1
invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
10: aload 2
aload 3
arraylength
invokevirtual java.io.DataOutputStream.writeInt:(I)V
11: aload 2
aload 3
invokevirtual java.io.DataOutputStream.write:([B)V
12: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 13 1 key Ljava/security/Key;
0 13 2 dOut Ljava/io/DataOutputStream;
1 13 3 enc [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
key
dOut
private java.security.Key decodeKey(java.io.DataInputStream);
descriptor: (Ljava/io/DataInputStream;)Ljava/security/Key;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.DataInputStream.read:()I
istore 2
start local 2 1: aload 1
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 3
start local 3 2: aload 1
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 4
start local 4 3: aload 1
invokevirtual java.io.DataInputStream.readInt:()I
newarray 8
astore 5
start local 5 4: aload 1
aload 5
invokevirtual java.io.DataInputStream.readFully:([B)V
5: aload 3
ldc "PKCS#8"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
aload 3
ldc "PKCS8"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
6: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore java.io.DataInputStream int java.lang.String java.lang.String byte[]
StackMap stack:
new java.security.spec.PKCS8EncodedKeySpec
dup
aload 5
invokespecial java.security.spec.PKCS8EncodedKeySpec.<init>:([B)V
astore 6
start local 6 7: goto 14
end local 6 8: StackMap locals:
StackMap stack:
aload 3
ldc "X.509"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
aload 3
ldc "X509"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
9: StackMap locals:
StackMap stack:
new java.security.spec.X509EncodedKeySpec
dup
aload 5
invokespecial java.security.spec.X509EncodedKeySpec.<init>:([B)V
astore 6
start local 6 10: goto 14
end local 6 11: StackMap locals:
StackMap stack:
aload 3
ldc "RAW"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
12: new javax.crypto.spec.SecretKeySpec
dup
aload 5
aload 4
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
areturn
13: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Key format "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " not recognised!"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
start local 6 14: StackMap locals: java.security.spec.KeySpec
StackMap stack:
iload 2
tableswitch { // 0 - 2
0: 15
1: 17
2: 19
default: 21
}
15: StackMap locals:
StackMap stack:
aload 4
getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
aload 6
invokevirtual java.security.KeyFactory.generatePrivate:(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;
16: areturn
17: StackMap locals:
StackMap stack:
aload 4
getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;
aload 6
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
18: areturn
19: StackMap locals:
StackMap stack:
aload 4
getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
aload 6
invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
20: areturn
21: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Key type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " not recognised!"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack: java.lang.Exception
astore 7
start local 7 23: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Exception creating key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
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 24 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 24 1 dIn Ljava/io/DataInputStream;
1 24 2 keyType I
2 24 3 format Ljava/lang/String;
3 24 4 algorithm Ljava/lang/String;
4 24 5 enc [B
7 8 6 spec Ljava/security/spec/KeySpec;
10 11 6 spec Ljava/security/spec/KeySpec;
14 24 6 spec Ljava/security/spec/KeySpec;
23 24 7 e Ljava/lang/Exception;
Exception table:
from to target type
14 16 22 Class java.lang.Exception
17 18 22 Class java.lang.Exception
19 20 22 Class java.lang.Exception
21 22 22 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dIn
protected javax.crypto.Cipher makePBECipher(java.lang.String, int, char[], byte[], int);
descriptor: (Ljava/lang/String;I[C[BI)Ljavax/crypto/Cipher;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new javax.crypto.spec.PBEKeySpec
dup
aload 3
invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
astore 6
start local 6 1: aload 1
getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
invokestatic javax.crypto.SecretKeyFactory.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
astore 7
start local 7 2: new javax.crypto.spec.PBEParameterSpec
dup
aload 4
iload 5
invokespecial javax.crypto.spec.PBEParameterSpec.<init>:([BI)V
astore 8
start local 8 3: aload 1
getstatic org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME:Ljava/lang/String;
invokestatic javax.crypto.Cipher.getInstance:(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;
astore 9
start local 9 4: aload 9
iload 2
aload 7
aload 6
invokevirtual javax.crypto.SecretKeyFactory.generateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
aload 8
invokevirtual javax.crypto.Cipher.init:(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
5: aload 9
6: areturn
end local 9 end local 8 end local 7 end local 6 7: StackMap locals:
StackMap stack: java.lang.Exception
astore 6
start local 6 8: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Error initialising store of key store: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
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 9 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 9 1 algorithm Ljava/lang/String;
0 9 2 mode I
0 9 3 password [C
0 9 4 salt [B
0 9 5 iterationCount I
1 7 6 pbeSpec Ljavax/crypto/spec/PBEKeySpec;
2 7 7 keyFact Ljavax/crypto/SecretKeyFactory;
3 7 8 defParams Ljavax/crypto/spec/PBEParameterSpec;
4 7 9 cipher Ljavax/crypto/Cipher;
8 9 6 e Ljava/lang/Exception;
Exception table:
from to target type
0 6 7 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
algorithm
mode
password
salt
iterationCount
public void setRandom(java.security.SecureRandom);
descriptor: (Ljava/security/SecureRandom;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.bouncycastle.jce.provider.JDKKeyStore.random:Ljava/security/SecureRandom;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 2 1 rand Ljava/security/SecureRandom;
MethodParameters:
Name Flags
rand
public java.util.Enumeration engineAliases();
descriptor: ()Ljava/util/Enumeration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table: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 Lorg/bouncycastle/jce/provider/JDKKeyStore;
public boolean engineContainsAlias(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 2 1 alias Ljava/lang/String;
MethodParameters:
Name Flags
alias
public void engineDeleteEntry(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: new java.security.KeyStoreException
dup
new java.lang.StringBuilder
dup
ldc "no such entry as "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 5 1 alias Ljava/lang/String;
1 5 2 entry Ljava/lang/Object;
Exceptions:
throws java.security.KeyStoreException
MethodParameters:
Name Flags
alias
public java.security.cert.Certificate engineGetCertificate(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/security/cert/Certificate;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
astore 2
start local 2 1: aload 2
ifnull 7
2: aload 2
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getType:()I
iconst_1
if_icmpne 4
3: aload 2
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getObject:()Ljava/lang/Object;
checkcast java.security.cert.Certificate
areturn
4: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
StackMap stack:
aload 2
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getCertificateChain:()[Ljava/security/cert/Certificate;
astore 3
start local 3 5: aload 3
ifnull 7
6: aload 3
iconst_0
aaload
areturn
end local 3 7: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 8 1 alias Ljava/lang/String;
1 8 2 entry Lorg/bouncycastle/jce/provider/JDKKeyStore$StoreEntry;
5 7 3 chain [Ljava/security/cert/Certificate;
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=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.elements:()Ljava/util/Enumeration;
astore 2
start local 2 1: goto 10
2: StackMap locals: java.util.Enumeration
StackMap stack:
aload 2
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
astore 3
start local 3 3: aload 3
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getObject:()Ljava/lang/Object;
instanceof java.security.cert.Certificate
ifeq 7
4: aload 3
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getObject:()Ljava/lang/Object;
checkcast java.security.cert.Certificate
astore 4
start local 4 5: aload 4
aload 1
invokevirtual java.security.cert.Certificate.equals:(Ljava/lang/Object;)Z
ifeq 10
6: aload 3
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getAlias:()Ljava/lang/String;
areturn
end local 4 7: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
StackMap stack:
aload 3
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getCertificateChain:()[Ljava/security/cert/Certificate;
astore 4
start local 4 8: aload 4
ifnull 10
aload 4
iconst_0
aaload
aload 1
invokevirtual java.security.cert.Certificate.equals:(Ljava/lang/Object;)Z
ifeq 10
9: aload 3
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getAlias:()Ljava/lang/String;
areturn
end local 4 end local 3 10: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 2
11: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 12 1 cert Ljava/security/cert/Certificate;
1 12 2 e Ljava/util/Enumeration;
3 10 3 entry Lorg/bouncycastle/jce/provider/JDKKeyStore$StoreEntry;
5 7 4 c Ljava/security/cert/Certificate;
8 10 4 chain [Ljava/security/cert/Certificate;
MethodParameters:
Name Flags
cert
public java.security.cert.Certificate[] engineGetCertificateChain(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/security/cert/Certificate;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getCertificateChain:()[Ljava/security/cert/Certificate;
areturn
3: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 4 1 alias Ljava/lang/String;
1 4 2 entry Lorg/bouncycastle/jce/provider/JDKKeyStore$StoreEntry;
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=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 2
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getDate:()Ljava/util/Date;
areturn
3: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 4 1 alias Ljava/lang/String;
1 4 2 entry Lorg/bouncycastle/jce/provider/JDKKeyStore$StoreEntry;
MethodParameters:
Name Flags
alias
public java.security.Key engineGetKey(java.lang.String, char[]);
descriptor: (Ljava/lang/String;[C)Ljava/security/Key;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
astore 3
start local 3 1: aload 3
ifnull 2
aload 3
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getType:()I
iconst_1
if_icmpne 3
2: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
StackMap stack:
aconst_null
areturn
3: StackMap locals:
StackMap stack:
aload 3
aload 2
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getObject:([C)Ljava/lang/Object;
checkcast java.security.Key
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 4 1 alias Ljava/lang/String;
0 4 2 password [C
1 4 3 entry Lorg/bouncycastle/jce/provider/JDKKeyStore$StoreEntry;
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyException
MethodParameters:
Name Flags
alias
password
public boolean engineIsCertificateEntry(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
astore 2
start local 2 1: aload 2
ifnull 3
aload 2
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getType:()I
iconst_1
if_icmpne 3
2: iconst_1
ireturn
3: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 4 1 alias Ljava/lang/String;
1 4 2 entry Lorg/bouncycastle/jce/provider/JDKKeyStore$StoreEntry;
MethodParameters:
Name Flags
alias
public boolean engineIsKeyEntry(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
astore 2
start local 2 1: aload 2
ifnull 3
aload 2
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getType:()I
iconst_1
if_icmpeq 3
2: iconst_1
ireturn
3: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
StackMap stack:
iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 4 1 alias Ljava/lang/String;
1 4 2 entry Lorg/bouncycastle/jce/provider/JDKKeyStore$StoreEntry;
MethodParameters:
Name Flags
alias
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=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
astore 3
start local 3 1: aload 3
ifnull 3
aload 3
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getType:()I
iconst_1
if_icmpeq 3
2: new java.security.KeyStoreException
dup
new java.lang.StringBuilder
dup
ldc "key store already has a key entry with alias "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 1
new org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
dup
aload 0
aload 1
aload 2
invokespecial org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.<init>:(Lorg/bouncycastle/jce/provider/JDKKeyStore;Ljava/lang/String;Ljava/security/cert/Certificate;)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 5 1 alias Ljava/lang/String;
0 5 2 cert Ljava/security/cert/Certificate;
1 5 3 entry Lorg/bouncycastle/jce/provider/JDKKeyStore$StoreEntry;
Exceptions:
throws java.security.KeyStoreException
MethodParameters:
Name Flags
alias
cert
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=8, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 1
new org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
dup
aload 0
aload 1
aload 2
aload 3
invokespecial org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.<init>:(Lorg/bouncycastle/jce/provider/JDKKeyStore;Ljava/lang/String;[B[Ljava/security/cert/Certificate;)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 2 1 alias Ljava/lang/String;
0 2 2 key [B
0 2 3 chain [Ljava/security/cert/Certificate;
Exceptions:
throws java.security.KeyStoreException
MethodParameters:
Name Flags
alias
key
chain
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=9, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
instanceof java.security.PrivateKey
ifeq 2
aload 4
ifnonnull 2
1: new java.security.KeyStoreException
dup
ldc "no certificate chain for private key"
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 1
new org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
dup
aload 0
aload 1
aload 2
aload 3
aload 4
invokespecial org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.<init>:(Lorg/bouncycastle/jce/provider/JDKKeyStore;Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: goto 6
4: StackMap locals:
StackMap stack: java.lang.Exception
astore 5
start local 5 5: new java.security.KeyStoreException
dup
aload 5
invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
invokespecial java.security.KeyStoreException.<init>:(Ljava/lang/String;)V
athrow
end local 5 6: 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 7 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 7 1 alias Ljava/lang/String;
0 7 2 key Ljava/security/Key;
0 7 3 password [C
0 7 4 chain [Ljava/security/cert/Certificate;
5 6 5 e Ljava/lang/Exception;
Exception table:
from to target type
2 3 4 Class java.lang.Exception
Exceptions:
throws java.security.KeyStoreException
MethodParameters:
Name Flags
alias
key
password
chain
public int engineSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
protected void loadStore(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=10, locals=11, args_size=2
start local 0 start local 1 0: new java.io.DataInputStream
dup
aload 1
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
astore 2
start local 2 1: aload 2
invokevirtual java.io.DataInputStream.read:()I
istore 3
start local 3 2: goto 27
3: StackMap locals: java.io.DataInputStream int
StackMap stack:
aload 2
invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
astore 4
start local 4 4: new java.util.Date
dup
aload 2
invokevirtual java.io.DataInputStream.readLong:()J
invokespecial java.util.Date.<init>:(J)V
astore 5
start local 5 5: aload 2
invokevirtual java.io.DataInputStream.readInt:()I
istore 6
start local 6 6: aconst_null
astore 7
start local 7 7: iload 6
ifeq 14
8: iload 6
anewarray java.security.cert.Certificate
astore 7
9: iconst_0
istore 8
start local 8 10: goto 13
11: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore java.io.InputStream java.io.DataInputStream int java.lang.String java.util.Date int java.security.cert.Certificate[] int
StackMap stack:
aload 7
iload 8
aload 0
aload 2
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore.decodeCertificate:(Ljava/io/DataInputStream;)Ljava/security/cert/Certificate;
aastore
12: iinc 8 1
StackMap locals:
StackMap stack:
13: iload 8
iload 6
if_icmpne 11
end local 8 14: StackMap locals:
StackMap stack:
iload 3
tableswitch { // 1 - 4
1: 15
2: 18
3: 21
4: 21
default: 25
}
15: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore.decodeCertificate:(Ljava/io/DataInputStream;)Ljava/security/cert/Certificate;
astore 8
start local 8 16: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 4
new org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
dup
aload 0
aload 4
aload 5
iconst_1
aload 8
invokespecial org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.<init>:(Lorg/bouncycastle/jce/provider/JDKKeyStore;Ljava/lang/String;Ljava/util/Date;ILjava/lang/Object;)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: goto 26
end local 8 18: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore.decodeKey:(Ljava/io/DataInputStream;)Ljava/security/Key;
astore 9
start local 9 19: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 4
new org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
dup
aload 0
aload 4
aload 5
iconst_2
aload 9
aload 7
invokespecial org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.<init>:(Lorg/bouncycastle/jce/provider/JDKKeyStore;Ljava/lang/String;Ljava/util/Date;ILjava/lang/Object;[Ljava/security/cert/Certificate;)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: goto 26
end local 9 21: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.DataInputStream.readInt:()I
newarray 8
astore 10
start local 10 22: aload 2
aload 10
invokevirtual java.io.DataInputStream.readFully:([B)V
23: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
aload 4
new org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
dup
aload 0
aload 4
aload 5
iload 3
aload 10
aload 7
invokespecial org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.<init>:(Lorg/bouncycastle/jce/provider/JDKKeyStore;Ljava/lang/String;Ljava/util/Date;ILjava/lang/Object;[Ljava/security/cert/Certificate;)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
24: goto 26
end local 10 25: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
ldc "Unknown object type in store."
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.DataInputStream.read:()I
istore 3
end local 7 end local 6 end local 5 end local 4 27: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore java.io.InputStream java.io.DataInputStream int
StackMap stack:
iload 3
ifgt 3
28: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 29 1 in Ljava/io/InputStream;
1 29 2 dIn Ljava/io/DataInputStream;
2 29 3 type I
4 27 4 alias Ljava/lang/String;
5 27 5 date Ljava/util/Date;
6 27 6 chainLength I
7 27 7 chain [Ljava/security/cert/Certificate;
10 14 8 i I
16 18 8 cert Ljava/security/cert/Certificate;
19 21 9 key Ljava/security/Key;
22 25 10 b [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
protected void saveStore(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.elements:()Ljava/util/Enumeration;
astore 2
start local 2 1: new java.io.DataOutputStream
dup
aload 1
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 3
start local 3 2: goto 27
3: StackMap locals: java.util.Enumeration java.io.DataOutputStream
StackMap stack:
aload 2
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
astore 4
start local 4 4: aload 3
aload 4
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getType:()I
invokevirtual java.io.DataOutputStream.write:(I)V
5: aload 3
aload 4
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getAlias:()Ljava/lang/String;
invokevirtual java.io.DataOutputStream.writeUTF:(Ljava/lang/String;)V
6: aload 3
aload 4
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getDate:()Ljava/util/Date;
invokevirtual java.util.Date.getTime:()J
invokevirtual java.io.DataOutputStream.writeLong:(J)V
7: aload 4
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getCertificateChain:()[Ljava/security/cert/Certificate;
astore 5
start local 5 8: aload 5
ifnonnull 11
9: aload 3
iconst_0
invokevirtual java.io.DataOutputStream.writeInt:(I)V
10: goto 17
11: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry java.security.cert.Certificate[]
StackMap stack:
aload 3
aload 5
arraylength
invokevirtual java.io.DataOutputStream.writeInt:(I)V
12: iconst_0
istore 6
start local 6 13: goto 16
14: StackMap locals: int
StackMap stack:
aload 0
aload 5
iload 6
aaload
aload 3
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore.encodeCertificate:(Ljava/security/cert/Certificate;Ljava/io/DataOutputStream;)V
15: iinc 6 1
StackMap locals:
StackMap stack:
16: iload 6
aload 5
arraylength
if_icmpne 14
end local 6 17: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getType:()I
tableswitch { // 1 - 4
1: 18
2: 20
3: 22
4: 22
default: 26
}
18: StackMap locals:
StackMap stack:
aload 0
aload 4
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getObject:()Ljava/lang/Object;
checkcast java.security.cert.Certificate
aload 3
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore.encodeCertificate:(Ljava/security/cert/Certificate;Ljava/io/DataOutputStream;)V
19: goto 27
20: StackMap locals:
StackMap stack:
aload 0
aload 4
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getObject:()Ljava/lang/Object;
checkcast java.security.Key
aload 3
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore.encodeKey:(Ljava/security/Key;Ljava/io/DataOutputStream;)V
21: goto 27
22: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry.getObject:()Ljava/lang/Object;
checkcast byte[]
astore 6
start local 6 23: aload 3
aload 6
arraylength
invokevirtual java.io.DataOutputStream.writeInt:(I)V
24: aload 3
aload 6
invokevirtual java.io.DataOutputStream.write:([B)V
25: goto 27
end local 6 26: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
ldc "Unknown object type in store."
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
end local 5 end local 4 27: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 3
28: aload 3
iconst_0
invokevirtual java.io.DataOutputStream.write:(I)V
29: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 30 1 out Ljava/io/OutputStream;
1 30 2 e Ljava/util/Enumeration;
2 30 3 dOut Ljava/io/DataOutputStream;
4 27 4 entry Lorg/bouncycastle/jce/provider/JDKKeyStore$StoreEntry;
8 27 5 chain [Ljava/security/cert/Certificate;
13 17 6 i I
23 26 6 b [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
public void engineLoad(java.io.InputStream, char[]);
descriptor: (Ljava/io/InputStream;[C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.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 3
aload 5
invokevirtual java.io.DataInputStream.readFully:([B)V
10: aload 3
invokevirtual java.io.DataInputStream.readInt:()I
istore 6
start local 6 11: new org.bouncycastle.crypto.macs.HMac
dup
new org.bouncycastle.crypto.digests.SHA1Digest
dup
invokespecial org.bouncycastle.crypto.digests.SHA1Digest.<init>:()V
invokespecial org.bouncycastle.crypto.macs.HMac.<init>:(Lorg/bouncycastle/crypto/Digest;)V
astore 7
start local 7 12: aload 2
ifnull 28
aload 2
arraylength
ifeq 28
13: aload 2
invokestatic org.bouncycastle.crypto.PBEParametersGenerator.PKCS12PasswordToBytes:([C)[B
astore 8
start local 8 14: new org.bouncycastle.crypto.generators.PKCS12ParametersGenerator
dup
new org.bouncycastle.crypto.digests.SHA1Digest
dup
invokespecial org.bouncycastle.crypto.digests.SHA1Digest.<init>:()V
invokespecial org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.<init>:(Lorg/bouncycastle/crypto/Digest;)V
astore 9
start local 9 15: aload 9
aload 8
aload 5
iload 6
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.init:([B[BI)V
16: aload 9
aload 7
invokevirtual org.bouncycastle.crypto.macs.HMac.getMacSize:()I
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.generateDerivedMacParameters:(I)Lorg/bouncycastle/crypto/CipherParameters;
astore 10
start local 10 17: aload 8
iconst_0
invokestatic org.bouncycastle.util.Arrays.fill:([BB)V
18: aload 7
aload 10
invokevirtual org.bouncycastle.crypto.macs.HMac.init:(Lorg/bouncycastle/crypto/CipherParameters;)V
19: new org.bouncycastle.crypto.io.MacInputStream
dup
aload 3
aload 7
invokespecial org.bouncycastle.crypto.io.MacInputStream.<init>:(Ljava/io/InputStream;Lorg/bouncycastle/crypto/Mac;)V
astore 11
start local 11 20: aload 0
aload 11
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore.loadStore:(Ljava/io/InputStream;)V
21: aload 7
invokevirtual org.bouncycastle.crypto.macs.HMac.getMacSize:()I
newarray 8
astore 12
start local 12 22: aload 7
aload 12
iconst_0
invokevirtual org.bouncycastle.crypto.macs.HMac.doFinal:([BI)I
pop
23: aload 7
invokevirtual org.bouncycastle.crypto.macs.HMac.getMacSize:()I
newarray 8
astore 13
start local 13 24: aload 3
aload 13
invokevirtual java.io.DataInputStream.readFully:([B)V
25: aload 12
aload 13
invokestatic org.bouncycastle.util.Arrays.constantTimeAreEqual:([B[B)Z
ifne 31
26: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.table:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.clear:()V
27: new java.io.IOException
dup
ldc "KeyStore integrity check failed."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 28: StackMap locals: byte[] int org.bouncycastle.crypto.macs.HMac
StackMap stack:
aload 0
aload 3
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore.loadStore:(Ljava/io/InputStream;)V
29: aload 7
invokevirtual org.bouncycastle.crypto.macs.HMac.getMacSize:()I
newarray 8
astore 8
start local 8 30: aload 3
aload 8
invokevirtual java.io.DataInputStream.readFully:([B)V
end local 8 31: StackMap locals:
StackMap stack:
return
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;
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
11 32 6 iterationCount I
12 32 7 hMac Lorg/bouncycastle/crypto/macs/HMac;
14 28 8 passKey [B
15 28 9 pbeGen Lorg/bouncycastle/crypto/PBEParametersGenerator;
17 28 10 macParams Lorg/bouncycastle/crypto/CipherParameters;
20 28 11 mIn Lorg/bouncycastle/crypto/io/MacInputStream;
22 28 12 mac [B
24 28 13 oldMac [B
30 31 8 oldMac [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=4, 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 3
start local 3 1: bipush 20
newarray 8
astore 4
start local 4 2: sipush 1024
aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.random:Ljava/security/SecureRandom;
invokevirtual java.security.SecureRandom.nextInt:()I
sipush 1023
iand
iadd
istore 5
start local 5 3: aload 0
getfield org.bouncycastle.jce.provider.JDKKeyStore.random:Ljava/security/SecureRandom;
aload 4
invokevirtual java.security.SecureRandom.nextBytes:([B)V
4: aload 3
iconst_1
invokevirtual java.io.DataOutputStream.writeInt:(I)V
5: aload 3
aload 4
arraylength
invokevirtual java.io.DataOutputStream.writeInt:(I)V
6: aload 3
aload 4
invokevirtual java.io.DataOutputStream.write:([B)V
7: aload 3
iload 5
invokevirtual java.io.DataOutputStream.writeInt:(I)V
8: new org.bouncycastle.crypto.macs.HMac
dup
new org.bouncycastle.crypto.digests.SHA1Digest
dup
invokespecial org.bouncycastle.crypto.digests.SHA1Digest.<init>:()V
invokespecial org.bouncycastle.crypto.macs.HMac.<init>:(Lorg/bouncycastle/crypto/Digest;)V
astore 6
start local 6 9: new org.bouncycastle.crypto.io.MacOutputStream
dup
aload 3
aload 6
invokespecial org.bouncycastle.crypto.io.MacOutputStream.<init>:(Ljava/io/OutputStream;Lorg/bouncycastle/crypto/Mac;)V
astore 7
start local 7 10: new org.bouncycastle.crypto.generators.PKCS12ParametersGenerator
dup
new org.bouncycastle.crypto.digests.SHA1Digest
dup
invokespecial org.bouncycastle.crypto.digests.SHA1Digest.<init>:()V
invokespecial org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.<init>:(Lorg/bouncycastle/crypto/Digest;)V
astore 8
start local 8 11: aload 2
invokestatic org.bouncycastle.crypto.PBEParametersGenerator.PKCS12PasswordToBytes:([C)[B
astore 9
start local 9 12: aload 8
aload 9
aload 4
iload 5
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.init:([B[BI)V
13: aload 6
aload 8
aload 6
invokevirtual org.bouncycastle.crypto.macs.HMac.getMacSize:()I
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.generateDerivedMacParameters:(I)Lorg/bouncycastle/crypto/CipherParameters;
invokevirtual org.bouncycastle.crypto.macs.HMac.init:(Lorg/bouncycastle/crypto/CipherParameters;)V
14: iconst_0
istore 10
start local 10 15: goto 18
16: StackMap locals: org.bouncycastle.jce.provider.JDKKeyStore java.io.OutputStream char[] java.io.DataOutputStream byte[] int org.bouncycastle.crypto.macs.HMac org.bouncycastle.crypto.io.MacOutputStream org.bouncycastle.crypto.PBEParametersGenerator byte[] int
StackMap stack:
aload 9
iload 10
iconst_0
bastore
17: iinc 10 1
StackMap locals:
StackMap stack:
18: iload 10
aload 9
arraylength
if_icmpne 16
end local 10 19: aload 0
aload 7
invokevirtual org.bouncycastle.jce.provider.JDKKeyStore.saveStore:(Ljava/io/OutputStream;)V
20: aload 6
invokevirtual org.bouncycastle.crypto.macs.HMac.getMacSize:()I
newarray 8
astore 10
start local 10 21: aload 6
aload 10
iconst_0
invokevirtual org.bouncycastle.crypto.macs.HMac.doFinal:([BI)I
pop
22: aload 3
aload 10
invokevirtual java.io.DataOutputStream.write:([B)V
23: aload 3
invokevirtual java.io.DataOutputStream.close:()V
24: 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 25 0 this Lorg/bouncycastle/jce/provider/JDKKeyStore;
0 25 1 stream Ljava/io/OutputStream;
0 25 2 password [C
1 25 3 dOut Ljava/io/DataOutputStream;
2 25 4 salt [B
3 25 5 iterationCount I
9 25 6 hMac Lorg/bouncycastle/crypto/macs/HMac;
10 25 7 mOut Lorg/bouncycastle/crypto/io/MacOutputStream;
11 25 8 pbeGen Lorg/bouncycastle/crypto/PBEParametersGenerator;
12 25 9 passKey [B
15 19 10 i I
21 25 10 mac [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
stream
password
}
SourceFile: "JDKKeyStore.java"
NestMembers:
org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
InnerClasses:
public BouncyCastleStore = org.bouncycastle.jce.provider.JDKKeyStore$BouncyCastleStore of org.bouncycastle.jce.provider.JDKKeyStore
private StoreEntry = org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry of org.bouncycastle.jce.provider.JDKKeyStore