public class org.bouncycastle.crypto.generators.PKCS12ParametersGenerator extends org.bouncycastle.crypto.PBEParametersGenerator
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.generators.PKCS12ParametersGenerator
super_class: org.bouncycastle.crypto.PBEParametersGenerator
{
public static final int KEY_MATERIAL;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int IV_MATERIAL;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public static final int MAC_MATERIAL;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private org.bouncycastle.crypto.Digest digest;
descriptor: Lorg/bouncycastle/crypto/Digest;
flags: (0x0002) ACC_PRIVATE
private int u;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int v;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public void <init>(org.bouncycastle.crypto.Digest);
descriptor: (Lorg/bouncycastle/crypto/Digest;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.bouncycastle.crypto.PBEParametersGenerator.<init>:()V
1: aload 0
aload 1
putfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.digest:Lorg/bouncycastle/crypto/Digest;
2: aload 1
instanceof org.bouncycastle.crypto.ExtendedDigest
ifeq 6
3: aload 0
aload 1
invokeinterface org.bouncycastle.crypto.Digest.getDigestSize:()I
putfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.u:I
4: aload 0
aload 1
checkcast org.bouncycastle.crypto.ExtendedDigest
invokeinterface org.bouncycastle.crypto.ExtendedDigest.getByteLength:()I
putfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.v:I
5: goto 7
6: StackMap locals: org.bouncycastle.crypto.generators.PKCS12ParametersGenerator org.bouncycastle.crypto.Digest
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Digest "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface org.bouncycastle.crypto.Digest.getAlgorithmName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " unsupported"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/bouncycastle/crypto/generators/PKCS12ParametersGenerator;
0 8 1 digest Lorg/bouncycastle/crypto/Digest;
MethodParameters:
Name Flags
digest
private void adjust(byte[], int, byte[]);
descriptor: ([BI[B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
aload 3
arraylength
iconst_1
isub
baload
sipush 255
iand
aload 1
iload 2
aload 3
arraylength
iadd
iconst_1
isub
baload
sipush 255
iand
iadd
iconst_1
iadd
istore 4
start local 4 1: aload 1
iload 2
aload 3
arraylength
iadd
iconst_1
isub
iload 4
i2b
bastore
2: iload 4
bipush 8
iushr
istore 4
3: aload 3
arraylength
iconst_2
isub
istore 5
start local 5 4: goto 9
5: StackMap locals: int int
StackMap stack:
iload 4
aload 3
iload 5
baload
sipush 255
iand
aload 1
iload 2
iload 5
iadd
baload
sipush 255
iand
iadd
iadd
istore 4
6: aload 1
iload 2
iload 5
iadd
iload 4
i2b
bastore
7: iload 4
bipush 8
iushr
istore 4
8: iinc 5 -1
StackMap locals:
StackMap stack:
9: iload 5
ifge 5
end local 5 10: return
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/crypto/generators/PKCS12ParametersGenerator;
0 11 1 a [B
0 11 2 aOff I
0 11 3 b [B
1 11 4 x I
4 10 5 i I
MethodParameters:
Name Flags
a
aOff
b
private byte[] generateDerivedKey(int, int);
descriptor: (II)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.v:I
newarray 8
astore 3
start local 3 1: iload 2
newarray 8
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 6
4: StackMap locals: byte[] byte[] int
StackMap stack:
aload 3
iload 5
iload 1
i2b
bastore
5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
aload 3
arraylength
if_icmpne 4
end local 5 7: aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.salt:[B
ifnull 15
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.salt:[B
arraylength
ifeq 15
8: aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.v:I
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.salt:[B
arraylength
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.v:I
iadd
iconst_1
isub
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.v:I
idiv
imul
newarray 8
astore 5
start local 5 9: iconst_0
istore 6
start local 6 10: goto 13
11: StackMap locals: org.bouncycastle.crypto.generators.PKCS12ParametersGenerator int int byte[] byte[] byte[] int
StackMap stack:
aload 5
iload 6
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.salt:[B
iload 6
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.salt:[B
arraylength
irem
baload
bastore
12: iinc 6 1
StackMap locals:
StackMap stack:
13: iload 6
aload 5
arraylength
if_icmpne 11
end local 6 14: goto 16
end local 5 15: StackMap locals:
StackMap stack:
iconst_0
newarray 8
astore 5
start local 5 16: StackMap locals: byte[]
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.password:[B
ifnull 24
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.password:[B
arraylength
ifeq 24
17: aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.v:I
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.password:[B
arraylength
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.v:I
iadd
iconst_1
isub
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.v:I
idiv
imul
newarray 8
astore 6
start local 6 18: iconst_0
istore 7
start local 7 19: goto 22
20: StackMap locals: byte[] int
StackMap stack:
aload 6
iload 7
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.password:[B
iload 7
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.password:[B
arraylength
irem
baload
bastore
21: iinc 7 1
StackMap locals:
StackMap stack:
22: iload 7
aload 6
arraylength
if_icmpne 20
end local 7 23: goto 25
end local 6 24: StackMap locals:
StackMap stack:
iconst_0
newarray 8
astore 6
start local 6 25: StackMap locals: byte[]
StackMap stack:
aload 5
arraylength
aload 6
arraylength
iadd
newarray 8
astore 7
start local 7 26: aload 5
iconst_0
aload 7
iconst_0
aload 5
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
27: aload 6
iconst_0
aload 7
aload 5
arraylength
aload 6
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
28: aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.v:I
newarray 8
astore 8
start local 8 29: iload 2
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.u:I
iadd
iconst_1
isub
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.u:I
idiv
istore 9
start local 9 30: aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.u:I
newarray 8
astore 10
start local 10 31: iconst_1
istore 11
start local 11 32: goto 57
33: StackMap locals: org.bouncycastle.crypto.generators.PKCS12ParametersGenerator int int byte[] byte[] byte[] byte[] byte[] byte[] int byte[] int
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.digest:Lorg/bouncycastle/crypto/Digest;
aload 3
iconst_0
aload 3
arraylength
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
34: aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.digest:Lorg/bouncycastle/crypto/Digest;
aload 7
iconst_0
aload 7
arraylength
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
35: aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.digest:Lorg/bouncycastle/crypto/Digest;
aload 10
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
36: iconst_1
istore 12
start local 12 37: goto 41
38: StackMap locals: int
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.digest:Lorg/bouncycastle/crypto/Digest;
aload 10
iconst_0
aload 10
arraylength
invokeinterface org.bouncycastle.crypto.Digest.update:([BII)V
39: aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.digest:Lorg/bouncycastle/crypto/Digest;
aload 10
iconst_0
invokeinterface org.bouncycastle.crypto.Digest.doFinal:([BI)I
pop
40: iinc 12 1
StackMap locals:
StackMap stack:
41: iload 12
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.iterationCount:I
if_icmplt 38
end local 12 42: iconst_0
istore 12
start local 12 43: goto 46
44: StackMap locals:
StackMap stack:
aload 8
iload 12
aload 10
iload 12
aload 10
arraylength
irem
baload
bastore
45: iinc 12 1
StackMap locals:
StackMap stack:
46: iload 12
aload 8
arraylength
if_icmpne 44
end local 12 47: iconst_0
istore 12
start local 12 48: goto 51
49: StackMap locals:
StackMap stack:
aload 0
aload 7
iload 12
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.v:I
imul
aload 8
invokevirtual org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.adjust:([BI[B)V
50: iinc 12 1
StackMap locals:
StackMap stack:
51: iload 12
aload 7
arraylength
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.v:I
idiv
if_icmpne 49
end local 12 52: iload 11
iload 9
if_icmpne 55
53: aload 10
iconst_0
aload 4
iload 11
iconst_1
isub
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.u:I
imul
aload 4
arraylength
iload 11
iconst_1
isub
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.u:I
imul
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
54: goto 56
55: StackMap locals:
StackMap stack:
aload 10
iconst_0
aload 4
iload 11
iconst_1
isub
aload 0
getfield org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.u:I
imul
aload 10
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
56: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
57: iload 11
iload 9
if_icmple 33
end local 11 58: aload 4
areturn
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 59 0 this Lorg/bouncycastle/crypto/generators/PKCS12ParametersGenerator;
0 59 1 idByte I
0 59 2 n I
1 59 3 D [B
2 59 4 dKey [B
3 7 5 i I
9 15 5 S [B
16 59 5 S [B
10 14 6 i I
18 24 6 P [B
25 59 6 P [B
19 23 7 i I
26 59 7 I [B
29 59 8 B [B
30 59 9 c I
31 59 10 A [B
32 58 11 i I
37 42 12 j I
43 47 12 j I
48 52 12 j I
MethodParameters:
Name Flags
idByte
n
public org.bouncycastle.crypto.CipherParameters generateDerivedParameters(int);
descriptor: (I)Lorg/bouncycastle/crypto/CipherParameters;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iload 1
bipush 8
idiv
istore 1
1: aload 0
iconst_1
iload 1
invokevirtual org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.generateDerivedKey:(II)[B
astore 2
start local 2 2: new org.bouncycastle.crypto.params.KeyParameter
dup
aload 2
iconst_0
iload 1
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([BII)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/crypto/generators/PKCS12ParametersGenerator;
0 3 1 keySize I
2 3 2 dKey [B
MethodParameters:
Name Flags
keySize
public org.bouncycastle.crypto.CipherParameters generateDerivedParameters(int, int);
descriptor: (II)Lorg/bouncycastle/crypto/CipherParameters;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 1
bipush 8
idiv
istore 1
1: iload 2
bipush 8
idiv
istore 2
2: aload 0
iconst_1
iload 1
invokevirtual org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.generateDerivedKey:(II)[B
astore 3
start local 3 3: aload 0
iconst_2
iload 2
invokevirtual org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.generateDerivedKey:(II)[B
astore 4
start local 4 4: new org.bouncycastle.crypto.params.ParametersWithIV
dup
new org.bouncycastle.crypto.params.KeyParameter
dup
aload 3
iconst_0
iload 1
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([BII)V
aload 4
iconst_0
iload 2
invokespecial org.bouncycastle.crypto.params.ParametersWithIV.<init>:(Lorg/bouncycastle/crypto/CipherParameters;[BII)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/crypto/generators/PKCS12ParametersGenerator;
0 5 1 keySize I
0 5 2 ivSize I
3 5 3 dKey [B
4 5 4 iv [B
MethodParameters:
Name Flags
keySize
ivSize
public org.bouncycastle.crypto.CipherParameters generateDerivedMacParameters(int);
descriptor: (I)Lorg/bouncycastle/crypto/CipherParameters;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iload 1
bipush 8
idiv
istore 1
1: aload 0
iconst_3
iload 1
invokevirtual org.bouncycastle.crypto.generators.PKCS12ParametersGenerator.generateDerivedKey:(II)[B
astore 2
start local 2 2: new org.bouncycastle.crypto.params.KeyParameter
dup
aload 2
iconst_0
iload 1
invokespecial org.bouncycastle.crypto.params.KeyParameter.<init>:([BII)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/crypto/generators/PKCS12ParametersGenerator;
0 3 1 keySize I
2 3 2 dKey [B
MethodParameters:
Name Flags
keySize
}
SourceFile: "PKCS12ParametersGenerator.java"