public class org.bouncycastle.crypto.digests.Blake2bDigest implements org.bouncycastle.crypto.ExtendedDigest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.digests.Blake2bDigest
super_class: java.lang.Object
{
private static final long[] blake2b_IV;
descriptor: [J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[][] blake2b_sigma;
descriptor: [[B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static int ROUNDS;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final int BLOCK_LENGTH_BYTES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 128
private int digestLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int keyLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] salt;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] personalization;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] key;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] buffer;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int bufferPos;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private long[] internalState;
descriptor: [J
flags: (0x0002) ACC_PRIVATE
private long[] chainValue;
descriptor: [J
flags: (0x0002) ACC_PRIVATE
private long t0;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long t1;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long f0;
descriptor: J
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=0, args_size=0
0: bipush 8
newarray 11
dup
iconst_0
1: ldc 7640891576956012808
lastore
dup
iconst_1
ldc -4942790177534073029
lastore
dup
iconst_2
ldc 4354685564936845355
lastore
dup
iconst_3
2: ldc -6534734903238641935
lastore
dup
iconst_4
ldc 5840696475078001361
lastore
dup
iconst_5
ldc -7276294671716946913
lastore
dup
bipush 6
3: ldc 2270897969802886507
lastore
dup
bipush 7
ldc 6620516959819538809
lastore
4: putstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
5: bipush 12
anewarray byte[]
dup
iconst_0
6: bipush 16
newarray 8
dup
iconst_1
iconst_1
bastore
dup
iconst_2
iconst_2
bastore
dup
iconst_3
iconst_3
bastore
dup
iconst_4
iconst_4
bastore
dup
iconst_5
iconst_5
bastore
dup
bipush 6
bipush 6
bastore
dup
bipush 7
bipush 7
bastore
dup
bipush 8
bipush 8
bastore
dup
bipush 9
bipush 9
bastore
dup
bipush 10
bipush 10
bastore
dup
bipush 11
bipush 11
bastore
dup
bipush 12
bipush 12
bastore
dup
bipush 13
bipush 13
bastore
dup
bipush 14
bipush 14
bastore
dup
bipush 15
bipush 15
bastore
aastore
dup
iconst_1
7: bipush 16
newarray 8
dup
iconst_0
bipush 14
bastore
dup
iconst_1
bipush 10
bastore
dup
iconst_2
iconst_4
bastore
dup
iconst_3
bipush 8
bastore
dup
iconst_4
bipush 9
bastore
dup
iconst_5
bipush 15
bastore
dup
bipush 6
bipush 13
bastore
dup
bipush 7
bipush 6
bastore
dup
bipush 8
iconst_1
bastore
dup
bipush 9
bipush 12
bastore
dup
bipush 11
iconst_2
bastore
dup
bipush 12
bipush 11
bastore
dup
bipush 13
bipush 7
bastore
dup
bipush 14
iconst_5
bastore
dup
bipush 15
iconst_3
bastore
aastore
dup
iconst_2
8: bipush 16
newarray 8
dup
iconst_0
bipush 11
bastore
dup
iconst_1
bipush 8
bastore
dup
iconst_2
bipush 12
bastore
dup
iconst_4
iconst_5
bastore
dup
iconst_5
iconst_2
bastore
dup
bipush 6
bipush 15
bastore
dup
bipush 7
bipush 13
bastore
dup
bipush 8
bipush 10
bastore
dup
bipush 9
bipush 14
bastore
dup
bipush 10
iconst_3
bastore
dup
bipush 11
bipush 6
bastore
dup
bipush 12
bipush 7
bastore
dup
bipush 13
iconst_1
bastore
dup
bipush 14
bipush 9
bastore
dup
bipush 15
iconst_4
bastore
aastore
dup
iconst_3
9: bipush 16
newarray 8
dup
iconst_0
bipush 7
bastore
dup
iconst_1
bipush 9
bastore
dup
iconst_2
iconst_3
bastore
dup
iconst_3
iconst_1
bastore
dup
iconst_4
bipush 13
bastore
dup
iconst_5
bipush 12
bastore
dup
bipush 6
bipush 11
bastore
dup
bipush 7
bipush 14
bastore
dup
bipush 8
iconst_2
bastore
dup
bipush 9
bipush 6
bastore
dup
bipush 10
iconst_5
bastore
dup
bipush 11
bipush 10
bastore
dup
bipush 12
iconst_4
bastore
dup
bipush 14
bipush 15
bastore
dup
bipush 15
bipush 8
bastore
aastore
dup
iconst_4
10: bipush 16
newarray 8
dup
iconst_0
bipush 9
bastore
dup
iconst_2
iconst_5
bastore
dup
iconst_3
bipush 7
bastore
dup
iconst_4
iconst_2
bastore
dup
iconst_5
iconst_4
bastore
dup
bipush 6
bipush 10
bastore
dup
bipush 7
bipush 15
bastore
dup
bipush 8
bipush 14
bastore
dup
bipush 9
iconst_1
bastore
dup
bipush 10
bipush 11
bastore
dup
bipush 11
bipush 12
bastore
dup
bipush 12
bipush 6
bastore
dup
bipush 13
bipush 8
bastore
dup
bipush 14
iconst_3
bastore
dup
bipush 15
bipush 13
bastore
aastore
dup
iconst_5
11: bipush 16
newarray 8
dup
iconst_0
iconst_2
bastore
dup
iconst_1
bipush 12
bastore
dup
iconst_2
bipush 6
bastore
dup
iconst_3
bipush 10
bastore
dup
iconst_5
bipush 11
bastore
dup
bipush 6
bipush 8
bastore
dup
bipush 7
iconst_3
bastore
dup
bipush 8
iconst_4
bastore
dup
bipush 9
bipush 13
bastore
dup
bipush 10
bipush 7
bastore
dup
bipush 11
iconst_5
bastore
dup
bipush 12
bipush 15
bastore
dup
bipush 13
bipush 14
bastore
dup
bipush 14
iconst_1
bastore
dup
bipush 15
bipush 9
bastore
aastore
dup
bipush 6
12: bipush 16
newarray 8
dup
iconst_0
bipush 12
bastore
dup
iconst_1
iconst_5
bastore
dup
iconst_2
iconst_1
bastore
dup
iconst_3
bipush 15
bastore
dup
iconst_4
bipush 14
bastore
dup
iconst_5
bipush 13
bastore
dup
bipush 6
iconst_4
bastore
dup
bipush 7
bipush 10
bastore
dup
bipush 9
bipush 7
bastore
dup
bipush 10
bipush 6
bastore
dup
bipush 11
iconst_3
bastore
dup
bipush 12
bipush 9
bastore
dup
bipush 13
iconst_2
bastore
dup
bipush 14
bipush 8
bastore
dup
bipush 15
bipush 11
bastore
aastore
dup
bipush 7
13: bipush 16
newarray 8
dup
iconst_0
bipush 13
bastore
dup
iconst_1
bipush 11
bastore
dup
iconst_2
bipush 7
bastore
dup
iconst_3
bipush 14
bastore
dup
iconst_4
bipush 12
bastore
dup
iconst_5
iconst_1
bastore
dup
bipush 6
iconst_3
bastore
dup
bipush 7
bipush 9
bastore
dup
bipush 8
iconst_5
bastore
dup
bipush 10
bipush 15
bastore
dup
bipush 11
iconst_4
bastore
dup
bipush 12
bipush 8
bastore
dup
bipush 13
bipush 6
bastore
dup
bipush 14
iconst_2
bastore
dup
bipush 15
bipush 10
bastore
aastore
dup
bipush 8
14: bipush 16
newarray 8
dup
iconst_0
bipush 6
bastore
dup
iconst_1
bipush 15
bastore
dup
iconst_2
bipush 14
bastore
dup
iconst_3
bipush 9
bastore
dup
iconst_4
bipush 11
bastore
dup
iconst_5
iconst_3
bastore
dup
bipush 7
bipush 8
bastore
dup
bipush 8
bipush 12
bastore
dup
bipush 9
iconst_2
bastore
dup
bipush 10
bipush 13
bastore
dup
bipush 11
bipush 7
bastore
dup
bipush 12
iconst_1
bastore
dup
bipush 13
iconst_4
bastore
dup
bipush 14
bipush 10
bastore
dup
bipush 15
iconst_5
bastore
aastore
dup
bipush 9
15: bipush 16
newarray 8
dup
iconst_0
bipush 10
bastore
dup
iconst_1
iconst_2
bastore
dup
iconst_2
bipush 8
bastore
dup
iconst_3
iconst_4
bastore
dup
iconst_4
bipush 7
bastore
dup
iconst_5
bipush 6
bastore
dup
bipush 6
iconst_1
bastore
dup
bipush 7
iconst_5
bastore
dup
bipush 8
bipush 15
bastore
dup
bipush 9
bipush 11
bastore
dup
bipush 10
bipush 9
bastore
dup
bipush 11
bipush 14
bastore
dup
bipush 12
iconst_3
bastore
dup
bipush 13
bipush 12
bastore
dup
bipush 14
bipush 13
bastore
aastore
dup
bipush 10
16: bipush 16
newarray 8
dup
iconst_1
iconst_1
bastore
dup
iconst_2
iconst_2
bastore
dup
iconst_3
iconst_3
bastore
dup
iconst_4
iconst_4
bastore
dup
iconst_5
iconst_5
bastore
dup
bipush 6
bipush 6
bastore
dup
bipush 7
bipush 7
bastore
dup
bipush 8
bipush 8
bastore
dup
bipush 9
bipush 9
bastore
dup
bipush 10
bipush 10
bastore
dup
bipush 11
bipush 11
bastore
dup
bipush 12
bipush 12
bastore
dup
bipush 13
bipush 13
bastore
dup
bipush 14
bipush 14
bastore
dup
bipush 15
bipush 15
bastore
aastore
dup
bipush 11
17: bipush 16
newarray 8
dup
iconst_0
bipush 14
bastore
dup
iconst_1
bipush 10
bastore
dup
iconst_2
iconst_4
bastore
dup
iconst_3
bipush 8
bastore
dup
iconst_4
bipush 9
bastore
dup
iconst_5
bipush 15
bastore
dup
bipush 6
bipush 13
bastore
dup
bipush 7
bipush 6
bastore
dup
bipush 8
iconst_1
bastore
dup
bipush 9
bipush 12
bastore
dup
bipush 11
iconst_2
bastore
dup
bipush 12
bipush 11
bastore
dup
bipush 13
bipush 7
bastore
dup
bipush 14
iconst_5
bastore
dup
bipush 15
iconst_3
bastore
aastore
18: putstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
19: bipush 12
putstatic org.bouncycastle.crypto.digests.Blake2bDigest.ROUNDS:I
20: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
sipush 512
invokespecial org.bouncycastle.crypto.digests.Blake2bDigest.<init>:(I)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
public void <init>(org.bouncycastle.crypto.digests.Blake2bDigest);
descriptor: (Lorg/bouncycastle/crypto/digests/Blake2bDigest;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
bipush 64
putfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
2: aload 0
iconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.keyLength:I
3: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.salt:[B
4: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.personalization:[B
5: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
6: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
7: aload 0
iconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
8: aload 0
bipush 16
newarray 11
putfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
9: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
10: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
11: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
12: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.f0:J
13: aload 0
aload 1
getfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
14: aload 0
aload 1
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
putfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
15: aload 0
aload 1
getfield org.bouncycastle.crypto.digests.Blake2bDigest.keyLength:I
putfield org.bouncycastle.crypto.digests.Blake2bDigest.keyLength:I
16: aload 0
aload 1
getfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
putfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
17: aload 0
aload 1
getfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
putfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
18: aload 0
aload 1
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
invokestatic org.bouncycastle.util.Arrays.clone:([J)[J
putfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
19: aload 0
aload 1
getfield org.bouncycastle.crypto.digests.Blake2bDigest.personalization:[B
invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
putfield org.bouncycastle.crypto.digests.Blake2bDigest.personalization:[B
20: aload 0
aload 1
getfield org.bouncycastle.crypto.digests.Blake2bDigest.salt:[B
invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
putfield org.bouncycastle.crypto.digests.Blake2bDigest.salt:[B
21: aload 0
aload 1
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
22: aload 0
aload 1
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
23: aload 0
aload 1
getfield org.bouncycastle.crypto.digests.Blake2bDigest.f0:J
putfield org.bouncycastle.crypto.digests.Blake2bDigest.f0:J
24: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
0 25 1 digest Lorg/bouncycastle/crypto/digests/Blake2bDigest;
MethodParameters:
Name Flags
digest
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
bipush 64
putfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
2: aload 0
iconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.keyLength:I
3: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.salt:[B
4: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.personalization:[B
5: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
6: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
7: aload 0
iconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
8: aload 0
bipush 16
newarray 11
putfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
9: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
10: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
11: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
12: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.f0:J
13: iload 1
bipush 8
if_icmplt 14
iload 1
sipush 512
if_icmpgt 14
iload 1
bipush 8
irem
ifeq 17
14: StackMap locals: org.bouncycastle.crypto.digests.Blake2bDigest int
StackMap stack:
new java.lang.IllegalArgumentException
dup
15: ldc "BLAKE2b digest bit length must be a multiple of 8 and not greater than 512"
16: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 0
sipush 128
newarray 8
putfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
18: aload 0
iconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.keyLength:I
19: aload 0
iload 1
bipush 8
idiv
putfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
20: aload 0
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.init:()V
21: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
0 22 1 digestSize I
MethodParameters:
Name Flags
digestSize
public void <init>(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
bipush 64
putfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
2: aload 0
iconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.keyLength:I
3: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.salt:[B
4: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.personalization:[B
5: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
6: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
7: aload 0
iconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
8: aload 0
bipush 16
newarray 11
putfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
9: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
10: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
11: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
12: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.f0:J
13: aload 0
sipush 128
newarray 8
putfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
14: aload 1
ifnull 24
15: aload 0
aload 1
arraylength
newarray 8
putfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
16: aload 1
iconst_0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
iconst_0
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
17: aload 1
arraylength
bipush 64
if_icmple 21
18: new java.lang.IllegalArgumentException
dup
19: ldc "Keys > 64 are not supported"
20: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals: org.bouncycastle.crypto.digests.Blake2bDigest byte[]
StackMap stack:
aload 0
aload 1
arraylength
putfield org.bouncycastle.crypto.digests.Blake2bDigest.keyLength:I
22: aload 1
iconst_0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
iconst_0
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
23: aload 0
sipush 128
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
24: StackMap locals:
StackMap stack:
aload 0
bipush 64
putfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
25: aload 0
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.init:()V
26: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
0 27 1 key [B
MethodParameters:
Name Flags
key
public void <init>(byte[], int, byte[], byte[]);
descriptor: ([BI[B[B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
bipush 64
putfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
2: aload 0
iconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.keyLength:I
3: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.salt:[B
4: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.personalization:[B
5: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
6: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
7: aload 0
iconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
8: aload 0
bipush 16
newarray 11
putfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
9: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
10: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
11: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
12: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.f0:J
13: aload 0
sipush 128
newarray 8
putfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
14: iload 2
iconst_1
if_icmplt 15
iload 2
bipush 64
if_icmple 18
15: StackMap locals: org.bouncycastle.crypto.digests.Blake2bDigest byte[] int byte[] byte[]
StackMap stack:
new java.lang.IllegalArgumentException
dup
16: ldc "Invalid digest length (required: 1 - 64)"
17: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
aload 0
iload 2
putfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
19: aload 3
ifnull 26
20: aload 3
arraylength
bipush 16
if_icmpeq 24
21: new java.lang.IllegalArgumentException
dup
22: ldc "salt length must be exactly 16 bytes"
23: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
24: StackMap locals:
StackMap stack:
aload 0
bipush 16
newarray 8
putfield org.bouncycastle.crypto.digests.Blake2bDigest.salt:[B
25: aload 3
iconst_0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.salt:[B
iconst_0
aload 3
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
26: StackMap locals:
StackMap stack:
aload 4
ifnull 35
27: aload 4
arraylength
bipush 16
if_icmpeq 31
28: new java.lang.IllegalArgumentException
dup
29: ldc "personalization length must be exactly 16 bytes"
30: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
31: StackMap locals:
StackMap stack:
aload 0
bipush 16
newarray 8
putfield org.bouncycastle.crypto.digests.Blake2bDigest.personalization:[B
32: aload 4
iconst_0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.personalization:[B
iconst_0
33: aload 4
arraylength
34: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
35: StackMap locals:
StackMap stack:
aload 1
ifnull 45
36: aload 0
aload 1
arraylength
newarray 8
putfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
37: aload 1
iconst_0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
iconst_0
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
38: aload 1
arraylength
bipush 64
if_icmple 42
39: new java.lang.IllegalArgumentException
dup
40: ldc "Keys > 64 are not supported"
41: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
42: StackMap locals:
StackMap stack:
aload 0
aload 1
arraylength
putfield org.bouncycastle.crypto.digests.Blake2bDigest.keyLength:I
43: aload 1
iconst_0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
iconst_0
aload 1
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
44: aload 0
sipush 128
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
45: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.init:()V
46: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
0 47 1 key [B
0 47 2 digestLength I
0 47 3 salt [B
0 47 4 personalization [B
MethodParameters:
Name Flags
key
digestLength
salt
personalization
private void init();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
ifnonnull 18
1: aload 0
bipush 8
newarray 11
putfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
2: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
iconst_0
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
iconst_0
laload
3: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.keyLength:I
bipush 8
ishl
ior
ldc 16842752
ior
i2l
lxor
4: lastore
5: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
iconst_1
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
iconst_1
laload
lastore
6: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
iconst_2
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
iconst_2
laload
lastore
7: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
iconst_3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
iconst_3
laload
lastore
8: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
iconst_4
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
iconst_4
laload
lastore
9: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
iconst_5
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
iconst_5
laload
lastore
10: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.salt:[B
ifnull 13
11: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
iconst_4
dup2
laload
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.salt:[B
iconst_0
invokestatic org.bouncycastle.util.Pack.littleEndianToLong:([BI)J
lxor
lastore
12: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
iconst_5
dup2
laload
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.salt:[B
bipush 8
invokestatic org.bouncycastle.util.Pack.littleEndianToLong:([BI)J
lxor
lastore
13: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
bipush 6
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
bipush 6
laload
lastore
14: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
bipush 7
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
bipush 7
laload
lastore
15: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.personalization:[B
ifnull 18
16: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
bipush 6
dup2
laload
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.personalization:[B
iconst_0
invokestatic org.bouncycastle.util.Pack.littleEndianToLong:([BI)J
lxor
lastore
17: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
bipush 7
dup2
laload
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.personalization:[B
bipush 8
invokestatic org.bouncycastle.util.Pack.littleEndianToLong:([BI)J
lxor
lastore
18: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
private void initializeInternalState();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
iconst_0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iconst_0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
1: getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
iconst_0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
arraylength
iconst_4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
bipush 12
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
iconst_4
laload
lxor
lastore
3: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
bipush 13
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
iconst_5
laload
lxor
lastore
4: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
bipush 14
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.f0:J
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
bipush 6
laload
lxor
lastore
5: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
bipush 15
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_IV:[J
bipush 7
laload
lastore
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
public void update(byte);
descriptor: (B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: sipush 128
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
isub
istore 2
2: iload 2
ifne 11
3: aload 0
dup
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
ldc 128
ladd
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
4: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
lconst_0
lcmp
ifne 6
5: aload 0
dup
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
lconst_1
ladd
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
6: StackMap locals: int
StackMap stack:
aload 0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
iconst_0
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.compress:([BI)V
7: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
iconst_0
invokestatic org.bouncycastle.util.Arrays.fill:([BB)V
8: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
iconst_0
iload 1
bastore
9: aload 0
iconst_1
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
10: goto 14
11: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
iload 1
bastore
12: aload 0
dup
getfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
iconst_1
iadd
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
13: return
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
0 15 1 b B
1 15 2 remainingLength I
MethodParameters:
Name Flags
b
public void update(byte[], int, int);
descriptor: ([BII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnull 1
iload 3
ifne 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 3: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
ifeq 19
4: sipush 128
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
isub
istore 4
5: iload 4
iload 3
if_icmpge 16
6: aload 1
iload 2
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
7: iload 4
8: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: aload 0
dup
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
ldc 128
ladd
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
10: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
lconst_0
lcmp
ifne 12
11: aload 0
dup
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
lconst_1
ladd
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
12: StackMap locals: int
StackMap stack:
aload 0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
iconst_0
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.compress:([BI)V
13: aload 0
iconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
14: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
iconst_0
invokestatic org.bouncycastle.util.Arrays.fill:([BB)V
15: goto 19
16: StackMap locals:
StackMap stack:
aload 1
iload 2
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
17: aload 0
dup
getfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
iload 3
iadd
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
18: return
19: StackMap locals:
StackMap stack:
iload 2
iload 3
iadd
sipush 128
isub
istore 6
start local 6 20: iload 2
iload 4
iadd
istore 5
start local 5 21: goto 27
22: StackMap locals: int int
StackMap stack:
aload 0
dup
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
ldc 128
ladd
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
23: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
lconst_0
lcmp
ifne 25
24: aload 0
dup
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
lconst_1
ladd
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
25: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 5
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.compress:([BI)V
26: iinc 5 128
StackMap locals:
StackMap stack:
27: iload 5
iload 6
if_icmplt 22
28: aload 1
iload 5
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
iconst_0
iload 2
iload 3
iadd
29: iload 5
isub
30: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
31: aload 0
dup
getfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
iload 2
iload 3
iadd
iload 5
isub
iadd
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
32: return
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 33 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
0 33 1 message [B
0 33 2 offset I
0 33 3 len I
3 33 4 remainingLength I
21 33 5 messagePos I
20 33 6 blockWiseLastPos I
MethodParameters:
Name Flags
message
offset
len
public int doFinal(byte[], int);
descriptor: ([BI)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ldc -1
putfield org.bouncycastle.crypto.digests.Blake2bDigest.f0:J
1: aload 0
dup
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
i2l
ladd
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
2: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
ifle 4
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
lconst_0
lcmp
ifne 4
3: aload 0
dup
getfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
lconst_1
ladd
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
4: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
iconst_0
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.compress:([BI)V
5: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
iconst_0
invokestatic org.bouncycastle.util.Arrays.fill:([BB)V
6: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
lconst_0
invokestatic org.bouncycastle.util.Arrays.fill:([JJ)V
7: iconst_0
istore 3
start local 3 8: goto 15
9: StackMap locals: int
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
iload 3
laload
invokestatic org.bouncycastle.util.Pack.longToLittleEndian:(J)[B
astore 4
start local 4 10: iload 3
bipush 8
imul
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
bipush 8
isub
if_icmpge 13
11: aload 4
iconst_0
aload 1
iload 2
iload 3
bipush 8
imul
iadd
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: goto 14
13: StackMap locals: byte[]
StackMap stack:
aload 4
iconst_0
aload 1
iload 2
iload 3
bipush 8
imul
iadd
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
iload 3
bipush 8
imul
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
end local 4 14: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
15: iload 3
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
arraylength
if_icmpge 16
iload 3
bipush 8
imul
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
if_icmplt 9
end local 3 16: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
lconst_0
invokestatic org.bouncycastle.util.Arrays.fill:([JJ)V
17: aload 0
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.reset:()V
18: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
0 19 1 out [B
0 19 2 outOffset I
8 16 3 i I
10 14 4 bytes [B
MethodParameters:
Name Flags
out
outOffset
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
1: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.f0:J
2: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t0:J
3: aload 0
lconst_0
putfield org.bouncycastle.crypto.digests.Blake2bDigest.t1:J
4: aload 0
aconst_null
putfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
5: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
iconst_0
invokestatic org.bouncycastle.util.Arrays.fill:([BB)V
6: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
ifnull 9
7: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
iconst_0
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 0
sipush 128
putfield org.bouncycastle.crypto.digests.Blake2bDigest.bufferPos:I
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.init:()V
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
private void compress(byte[], int);
descriptor: ([BI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.initializeInternalState:()V
1: bipush 16
newarray 11
astore 3
start local 3 2: iconst_0
istore 4
start local 4 3: goto 6
4: StackMap locals: long[] int
StackMap stack:
aload 3
iload 4
aload 1
iload 2
iload 4
bipush 8
imul
iadd
invokestatic org.bouncycastle.util.Pack.littleEndianToLong:([BI)J
lastore
5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
bipush 16
if_icmplt 4
end local 4 7: iconst_0
istore 4
start local 4 8: goto 18
9: StackMap locals:
StackMap stack:
aload 0
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
iconst_0
baload
laload
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
iconst_1
baload
laload
iconst_0
iconst_4
bipush 8
bipush 12
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.G:(JJIIII)V
10: aload 0
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
iconst_2
baload
laload
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
iconst_3
baload
laload
iconst_1
iconst_5
bipush 9
bipush 13
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.G:(JJIIII)V
11: aload 0
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
iconst_4
baload
laload
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
iconst_5
baload
laload
iconst_2
bipush 6
bipush 10
bipush 14
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.G:(JJIIII)V
12: aload 0
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
bipush 6
baload
laload
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
bipush 7
baload
laload
iconst_3
bipush 7
bipush 11
bipush 15
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.G:(JJIIII)V
13: aload 0
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
bipush 8
baload
laload
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
bipush 9
baload
laload
iconst_0
iconst_5
bipush 10
bipush 15
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.G:(JJIIII)V
14: aload 0
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
bipush 10
baload
laload
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
bipush 11
baload
laload
iconst_1
bipush 6
bipush 11
bipush 12
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.G:(JJIIII)V
15: aload 0
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
bipush 12
baload
laload
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
bipush 13
baload
laload
iconst_2
bipush 7
bipush 8
bipush 13
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.G:(JJIIII)V
16: aload 0
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
bipush 14
baload
laload
aload 3
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.blake2b_sigma:[[B
iload 4
aaload
bipush 15
baload
laload
iconst_3
iconst_4
bipush 9
bipush 14
invokevirtual org.bouncycastle.crypto.digests.Blake2bDigest.G:(JJIIII)V
17: iinc 4 1
StackMap locals:
StackMap stack:
18: iload 4
getstatic org.bouncycastle.crypto.digests.Blake2bDigest.ROUNDS:I
if_icmplt 9
end local 4 19: iconst_0
istore 4
start local 4 20: goto 23
21: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
iload 4
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
iload 4
laload
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 4
laload
lxor
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 4
bipush 8
iadd
laload
lxor
lastore
22: iinc 4 1
StackMap locals:
StackMap stack:
23: iload 4
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.chainValue:[J
arraylength
if_icmplt 21
end local 4 24: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
0 25 1 message [B
0 25 2 messagePos I
2 25 3 m [J
3 7 4 j I
8 19 4 round I
20 24 4 offset I
MethodParameters:
Name Flags
message
messagePos
private void G(long, long, int, int, int, int);
descriptor: (JJIIII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=7
start local 0 start local 1 start local 3 start local 5 start local 6 start local 7 start local 8 0: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 5
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 5
laload
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 6
laload
ladd
lload 1
ladd
lastore
1: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 8
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 8
laload
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 5
laload
lxor
bipush 32
invokestatic org.bouncycastle.crypto.digests.Blake2bDigest.rotr64:(JI)J
lastore
2: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 7
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 7
laload
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 8
laload
ladd
lastore
3: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 6
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 6
laload
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 7
laload
lxor
bipush 24
invokestatic org.bouncycastle.crypto.digests.Blake2bDigest.rotr64:(JI)J
lastore
4: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 5
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 5
laload
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 6
laload
ladd
lload 3
ladd
lastore
5: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 8
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 8
laload
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 5
laload
lxor
bipush 16
invokestatic org.bouncycastle.crypto.digests.Blake2bDigest.rotr64:(JI)J
lastore
6: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 7
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 7
laload
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 8
laload
ladd
lastore
7: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 6
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 6
laload
aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.internalState:[J
iload 7
laload
lxor
bipush 63
invokestatic org.bouncycastle.crypto.digests.Blake2bDigest.rotr64:(JI)J
lastore
8: return
end local 8 end local 7 end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
0 9 1 m1 J
0 9 3 m2 J
0 9 5 posA I
0 9 6 posB I
0 9 7 posC I
0 9 8 posD I
MethodParameters:
Name Flags
m1
m2
posA
posB
posC
posD
private static long rotr64(long, int);
descriptor: (JI)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 2 0: lload 0
iload 2
lushr
lload 0
bipush 64
iload 2
isub
lshl
lor
lreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x J
0 1 2 rot I
MethodParameters:
Name Flags
x
rot
public java.lang.String getAlgorithmName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "BLAKE2b"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
public int getDigestSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.digestLength:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
public int getByteLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: sipush 128
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
public void clearKey();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
ifnull 3
1: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.key:[B
iconst_0
invokestatic org.bouncycastle.util.Arrays.fill:([BB)V
2: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.buffer:[B
iconst_0
invokestatic org.bouncycastle.util.Arrays.fill:([BB)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
public void clearSalt();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.salt:[B
ifnull 2
1: aload 0
getfield org.bouncycastle.crypto.digests.Blake2bDigest.salt:[B
iconst_0
invokestatic org.bouncycastle.util.Arrays.fill:([BB)V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/crypto/digests/Blake2bDigest;
}
SourceFile: "Blake2bDigest.java"