public class org.bouncycastle.jce.provider.PBE$Util
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.jce.provider.PBE$Util
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/jce/provider/PBE$Util;
private static org.bouncycastle.crypto.PBEParametersGenerator makePBEGenerator(int, int);
descriptor: (II)Lorg/bouncycastle/crypto/PBEParametersGenerator;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 0
ifne 10
1: iload 1
tableswitch { // 0 - 5
0: 4
1: 6
2: 8
3: 8
4: 8
5: 2
default: 8
}
2: StackMap locals:
StackMap stack:
new org.bouncycastle.crypto.generators.PKCS5S1ParametersGenerator
dup
new org.bouncycastle.crypto.digests.MD2Digest
dup
invokespecial org.bouncycastle.crypto.digests.MD2Digest.<init>:()V
invokespecial org.bouncycastle.crypto.generators.PKCS5S1ParametersGenerator.<init>:(Lorg/bouncycastle/crypto/Digest;)V
astore 2
start local 2 3: goto 30
end local 2 4: StackMap locals:
StackMap stack:
new org.bouncycastle.crypto.generators.PKCS5S1ParametersGenerator
dup
new org.bouncycastle.crypto.digests.MD5Digest
dup
invokespecial org.bouncycastle.crypto.digests.MD5Digest.<init>:()V
invokespecial org.bouncycastle.crypto.generators.PKCS5S1ParametersGenerator.<init>:(Lorg/bouncycastle/crypto/Digest;)V
astore 2
start local 2 5: goto 30
end local 2 6: StackMap locals:
StackMap stack:
new org.bouncycastle.crypto.generators.PKCS5S1ParametersGenerator
dup
new org.bouncycastle.crypto.digests.SHA1Digest
dup
invokespecial org.bouncycastle.crypto.digests.SHA1Digest.<init>:()V
invokespecial org.bouncycastle.crypto.generators.PKCS5S1ParametersGenerator.<init>:(Lorg/bouncycastle/crypto/Digest;)V
astore 2
start local 2 7: goto 30
end local 2 8: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "PKCS5 scheme 1 only supports MD2, MD5 and SHA1."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
start local 2 9: StackMap locals: org.bouncycastle.crypto.PBEParametersGenerator
StackMap stack:
goto 30
end local 2 10: StackMap locals:
StackMap stack:
iload 0
iconst_1
if_icmpne 13
11: new org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator
dup
invokespecial org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator.<init>:()V
astore 2
start local 2 12: goto 30
end local 2 13: StackMap locals:
StackMap stack:
iload 0
iconst_2
if_icmpne 29
14: iload 1
tableswitch { // 0 - 5
0: 17
1: 19
2: 21
3: 23
4: 25
5: 15
default: 27
}
15: StackMap locals:
StackMap stack:
new org.bouncycastle.crypto.generators.PKCS12ParametersGenerator
dup
new org.bouncycastle.crypto.digests.MD2Digest
dup
invokespecial org.bouncycastle.crypto.digests.MD2Digest.<init>:()V
invokespecial org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.<init>:(Lorg/bouncycastle/crypto/Digest;)V
astore 2
start local 2 16: goto 30
end local 2 17: StackMap locals:
StackMap stack:
new org.bouncycastle.crypto.generators.PKCS12ParametersGenerator
dup
new org.bouncycastle.crypto.digests.MD5Digest
dup
invokespecial org.bouncycastle.crypto.digests.MD5Digest.<init>:()V
invokespecial org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.<init>:(Lorg/bouncycastle/crypto/Digest;)V
astore 2
start local 2 18: goto 30
end local 2 19: StackMap locals:
StackMap stack:
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 2
start local 2 20: goto 30
end local 2 21: StackMap locals:
StackMap stack:
new org.bouncycastle.crypto.generators.PKCS12ParametersGenerator
dup
new org.bouncycastle.crypto.digests.RIPEMD160Digest
dup
invokespecial org.bouncycastle.crypto.digests.RIPEMD160Digest.<init>:()V
invokespecial org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.<init>:(Lorg/bouncycastle/crypto/Digest;)V
astore 2
start local 2 22: goto 30
end local 2 23: StackMap locals:
StackMap stack:
new org.bouncycastle.crypto.generators.PKCS12ParametersGenerator
dup
new org.bouncycastle.crypto.digests.TigerDigest
dup
invokespecial org.bouncycastle.crypto.digests.TigerDigest.<init>:()V
invokespecial org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.<init>:(Lorg/bouncycastle/crypto/Digest;)V
astore 2
start local 2 24: goto 30
end local 2 25: StackMap locals:
StackMap stack:
new org.bouncycastle.crypto.generators.PKCS12ParametersGenerator
dup
new org.bouncycastle.crypto.digests.SHA256Digest
dup
invokespecial org.bouncycastle.crypto.digests.SHA256Digest.<init>:()V
invokespecial org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.<init>:(Lorg/bouncycastle/crypto/Digest;)V
astore 2
start local 2 26: goto 30
end local 2 27: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "unknown digest scheme for PBE encryption."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
start local 2 28: StackMap locals: org.bouncycastle.crypto.PBEParametersGenerator
StackMap stack:
goto 30
end local 2 29: StackMap locals:
StackMap stack:
new org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator
dup
invokespecial org.bouncycastle.crypto.generators.OpenSSLPBEParametersGenerator.<init>:()V
astore 2
start local 2 30: StackMap locals: org.bouncycastle.crypto.PBEParametersGenerator
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 type I
0 31 1 hash I
3 4 2 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
5 6 2 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
7 8 2 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
9 10 2 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
12 13 2 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
16 17 2 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
18 19 2 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
20 21 2 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
22 23 2 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
24 25 2 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
26 27 2 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
28 29 2 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
30 31 2 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
MethodParameters:
Name Flags
type
hash
static org.bouncycastle.crypto.CipherParameters makePBEParameters(org.bouncycastle.jce.provider.JCEPBEKey, java.security.spec.AlgorithmParameterSpec, java.lang.String);
descriptor: (Lorg/bouncycastle/jce/provider/JCEPBEKey;Ljava/security/spec/AlgorithmParameterSpec;Ljava/lang/String;)Lorg/bouncycastle/crypto/CipherParameters;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 1
aload 1
instanceof javax.crypto.spec.PBEParameterSpec
ifne 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Need a PBEParameter spec with a PBE key."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
checkcast javax.crypto.spec.PBEParameterSpec
astore 3
start local 3 3: aload 0
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getType:()I
aload 0
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getDigest:()I
invokestatic org.bouncycastle.jce.provider.PBE$Util.makePBEGenerator:(II)Lorg/bouncycastle/crypto/PBEParametersGenerator;
astore 4
start local 4 4: aload 0
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getEncoded:()[B
astore 5
start local 5 5: aload 0
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.shouldTryWrongPKCS12:()Z
ifeq 7
6: iconst_2
newarray 8
astore 5
7: StackMap locals: javax.crypto.spec.PBEParameterSpec org.bouncycastle.crypto.PBEParametersGenerator byte[]
StackMap stack:
aload 4
aload 5
aload 3
invokevirtual javax.crypto.spec.PBEParameterSpec.getSalt:()[B
aload 3
invokevirtual javax.crypto.spec.PBEParameterSpec.getIterationCount:()I
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.init:([B[BI)V
8: aload 0
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getIvSize:()I
ifeq 11
9: aload 4
aload 0
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getKeySize:()I
aload 0
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getIvSize:()I
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.generateDerivedParameters:(II)Lorg/bouncycastle/crypto/CipherParameters;
astore 6
start local 6 10: goto 12
end local 6 11: StackMap locals:
StackMap stack:
aload 4
aload 0
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getKeySize:()I
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.generateDerivedParameters:(I)Lorg/bouncycastle/crypto/CipherParameters;
astore 6
start local 6 12: StackMap locals: org.bouncycastle.crypto.CipherParameters
StackMap stack:
aload 2
ldc "DES"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 19
13: aload 6
instanceof org.bouncycastle.crypto.params.ParametersWithIV
ifeq 17
14: aload 6
checkcast org.bouncycastle.crypto.params.ParametersWithIV
invokevirtual org.bouncycastle.crypto.params.ParametersWithIV.getParameters:()Lorg/bouncycastle/crypto/CipherParameters;
checkcast org.bouncycastle.crypto.params.KeyParameter
astore 7
start local 7 15: aload 7
invokevirtual org.bouncycastle.crypto.params.KeyParameter.getKey:()[B
invokestatic org.bouncycastle.crypto.params.DESParameters.setOddParity:([B)V
end local 7 16: goto 19
17: StackMap locals:
StackMap stack:
aload 6
checkcast org.bouncycastle.crypto.params.KeyParameter
astore 7
start local 7 18: aload 7
invokevirtual org.bouncycastle.crypto.params.KeyParameter.getKey:()[B
invokestatic org.bouncycastle.crypto.params.DESParameters.setOddParity:([B)V
end local 7 19: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 20: goto 23
21: StackMap locals: int
StackMap stack:
aload 5
iload 7
iconst_0
bastore
22: iinc 7 1
StackMap locals:
StackMap stack:
23: iload 7
aload 5
arraylength
if_icmpne 21
end local 7 24: aload 6
areturn
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 pbeKey Lorg/bouncycastle/jce/provider/JCEPBEKey;
0 25 1 spec Ljava/security/spec/AlgorithmParameterSpec;
0 25 2 targetAlgorithm Ljava/lang/String;
3 25 3 pbeParam Ljavax/crypto/spec/PBEParameterSpec;
4 25 4 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
5 25 5 key [B
10 11 6 param Lorg/bouncycastle/crypto/CipherParameters;
12 25 6 param Lorg/bouncycastle/crypto/CipherParameters;
15 16 7 kParam Lorg/bouncycastle/crypto/params/KeyParameter;
18 19 7 kParam Lorg/bouncycastle/crypto/params/KeyParameter;
20 24 7 i I
MethodParameters:
Name Flags
pbeKey
spec
targetAlgorithm
static org.bouncycastle.crypto.CipherParameters makePBEMacParameters(org.bouncycastle.jce.provider.JCEPBEKey, java.security.spec.AlgorithmParameterSpec);
descriptor: (Lorg/bouncycastle/jce/provider/JCEPBEKey;Ljava/security/spec/AlgorithmParameterSpec;)Lorg/bouncycastle/crypto/CipherParameters;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
instanceof javax.crypto.spec.PBEParameterSpec
ifne 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Need a PBEParameter spec with a PBE key."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
checkcast javax.crypto.spec.PBEParameterSpec
astore 2
start local 2 3: aload 0
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getType:()I
aload 0
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getDigest:()I
invokestatic org.bouncycastle.jce.provider.PBE$Util.makePBEGenerator:(II)Lorg/bouncycastle/crypto/PBEParametersGenerator;
astore 3
start local 3 4: aload 0
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getEncoded:()[B
astore 4
start local 4 5: aload 0
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.shouldTryWrongPKCS12:()Z
ifeq 7
6: iconst_2
newarray 8
astore 4
7: StackMap locals: javax.crypto.spec.PBEParameterSpec org.bouncycastle.crypto.PBEParametersGenerator byte[]
StackMap stack:
aload 3
aload 4
aload 2
invokevirtual javax.crypto.spec.PBEParameterSpec.getSalt:()[B
aload 2
invokevirtual javax.crypto.spec.PBEParameterSpec.getIterationCount:()I
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.init:([B[BI)V
8: aload 3
aload 0
invokevirtual org.bouncycastle.jce.provider.JCEPBEKey.getKeySize:()I
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.generateDerivedMacParameters:(I)Lorg/bouncycastle/crypto/CipherParameters;
astore 5
start local 5 9: iconst_0
istore 6
start local 6 10: goto 13
11: StackMap locals: org.bouncycastle.crypto.CipherParameters int
StackMap stack:
aload 4
iload 6
iconst_0
bastore
12: iinc 6 1
StackMap locals:
StackMap stack:
13: iload 6
aload 4
arraylength
if_icmpne 11
end local 6 14: aload 5
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 15 0 pbeKey Lorg/bouncycastle/jce/provider/JCEPBEKey;
0 15 1 spec Ljava/security/spec/AlgorithmParameterSpec;
3 15 2 pbeParam Ljavax/crypto/spec/PBEParameterSpec;
4 15 3 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
5 15 4 key [B
9 15 5 param Lorg/bouncycastle/crypto/CipherParameters;
10 14 6 i I
MethodParameters:
Name Flags
pbeKey
spec
static org.bouncycastle.crypto.CipherParameters makePBEParameters(javax.crypto.spec.PBEKeySpec, int, int, int, int);
descriptor: (Ljavax/crypto/spec/PBEKeySpec;IIII)Lorg/bouncycastle/crypto/CipherParameters;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 1
iload 2
invokestatic org.bouncycastle.jce.provider.PBE$Util.makePBEGenerator:(II)Lorg/bouncycastle/crypto/PBEParametersGenerator;
astore 5
start local 5 1: iload 1
iconst_2
if_icmpne 4
2: aload 0
invokevirtual javax.crypto.spec.PBEKeySpec.getPassword:()[C
invokestatic org.bouncycastle.crypto.PBEParametersGenerator.PKCS12PasswordToBytes:([C)[B
astore 6
start local 6 3: goto 5
end local 6 4: StackMap locals: org.bouncycastle.crypto.PBEParametersGenerator
StackMap stack:
aload 0
invokevirtual javax.crypto.spec.PBEKeySpec.getPassword:()[C
invokestatic org.bouncycastle.crypto.PBEParametersGenerator.PKCS5PasswordToBytes:([C)[B
astore 6
start local 6 5: StackMap locals: byte[]
StackMap stack:
aload 5
aload 6
aload 0
invokevirtual javax.crypto.spec.PBEKeySpec.getSalt:()[B
aload 0
invokevirtual javax.crypto.spec.PBEKeySpec.getIterationCount:()I
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.init:([B[BI)V
6: iload 4
ifeq 9
7: aload 5
iload 3
iload 4
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.generateDerivedParameters:(II)Lorg/bouncycastle/crypto/CipherParameters;
astore 7
start local 7 8: goto 10
end local 7 9: StackMap locals:
StackMap stack:
aload 5
iload 3
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.generateDerivedParameters:(I)Lorg/bouncycastle/crypto/CipherParameters;
astore 7
start local 7 10: StackMap locals: org.bouncycastle.crypto.CipherParameters
StackMap stack:
iconst_0
istore 8
start local 8 11: goto 14
12: StackMap locals: int
StackMap stack:
aload 6
iload 8
iconst_0
bastore
13: iinc 8 1
StackMap locals:
StackMap stack:
14: iload 8
aload 6
arraylength
if_icmpne 12
end local 8 15: aload 7
areturn
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 16 0 keySpec Ljavax/crypto/spec/PBEKeySpec;
0 16 1 type I
0 16 2 hash I
0 16 3 keySize I
0 16 4 ivSize I
1 16 5 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
3 4 6 key [B
5 16 6 key [B
8 9 7 param Lorg/bouncycastle/crypto/CipherParameters;
10 16 7 param Lorg/bouncycastle/crypto/CipherParameters;
11 15 8 i I
MethodParameters:
Name Flags
keySpec
type
hash
keySize
ivSize
static org.bouncycastle.crypto.CipherParameters makePBEMacParameters(javax.crypto.spec.PBEKeySpec, int, int, int);
descriptor: (Ljavax/crypto/spec/PBEKeySpec;III)Lorg/bouncycastle/crypto/CipherParameters;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
iload 2
invokestatic org.bouncycastle.jce.provider.PBE$Util.makePBEGenerator:(II)Lorg/bouncycastle/crypto/PBEParametersGenerator;
astore 4
start local 4 1: iload 1
iconst_2
if_icmpne 4
2: aload 0
invokevirtual javax.crypto.spec.PBEKeySpec.getPassword:()[C
invokestatic org.bouncycastle.crypto.PBEParametersGenerator.PKCS12PasswordToBytes:([C)[B
astore 5
start local 5 3: goto 5
end local 5 4: StackMap locals: org.bouncycastle.crypto.PBEParametersGenerator
StackMap stack:
aload 0
invokevirtual javax.crypto.spec.PBEKeySpec.getPassword:()[C
invokestatic org.bouncycastle.crypto.PBEParametersGenerator.PKCS5PasswordToBytes:([C)[B
astore 5
start local 5 5: StackMap locals: byte[]
StackMap stack:
aload 4
aload 5
aload 0
invokevirtual javax.crypto.spec.PBEKeySpec.getSalt:()[B
aload 0
invokevirtual javax.crypto.spec.PBEKeySpec.getIterationCount:()I
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.init:([B[BI)V
6: aload 4
iload 3
invokevirtual org.bouncycastle.crypto.PBEParametersGenerator.generateDerivedMacParameters:(I)Lorg/bouncycastle/crypto/CipherParameters;
astore 6
start local 6 7: iconst_0
istore 7
start local 7 8: goto 11
9: StackMap locals: org.bouncycastle.crypto.CipherParameters int
StackMap stack:
aload 5
iload 7
iconst_0
bastore
10: iinc 7 1
StackMap locals:
StackMap stack:
11: iload 7
aload 5
arraylength
if_icmpne 9
end local 7 12: aload 6
areturn
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 13 0 keySpec Ljavax/crypto/spec/PBEKeySpec;
0 13 1 type I
0 13 2 hash I
0 13 3 keySize I
1 13 4 generator Lorg/bouncycastle/crypto/PBEParametersGenerator;
3 4 5 key [B
5 13 5 key [B
7 13 6 param Lorg/bouncycastle/crypto/CipherParameters;
8 12 7 i I
MethodParameters:
Name Flags
keySpec
type
hash
keySize
}
SourceFile: "PBE.java"
NestHost: org.bouncycastle.jce.provider.PBE
InnerClasses:
public Util = org.bouncycastle.jce.provider.PBE$Util of org.bouncycastle.jce.provider.PBE