public class org.bouncycastle.crypto.digests.KeccakDigest implements org.bouncycastle.crypto.ExtendedDigest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.digests.KeccakDigest
super_class: java.lang.Object
{
private static long[] KeccakRoundConstants;
descriptor: [J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
protected long[] state;
descriptor: [J
flags: (0x0004) ACC_PROTECTED
protected byte[] dataQueue;
descriptor: [B
flags: (0x0004) ACC_PROTECTED
protected int rate;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int bitsInQueue;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected int fixedOutputLength;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected boolean squeezing;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: .line 15
bipush 24
newarray 11
dup
iconst_0
lconst_1
lastore
dup
iconst_1
ldc 32898
lastore
dup
iconst_2
1: .line 16
ldc -9223372036854742902
lastore
dup
iconst_3
ldc -9223372034707259392
lastore
dup
iconst_4
ldc 32907
lastore
dup
iconst_5
ldc 2147483649
lastore
dup
bipush 6
ldc -9223372034707259263
lastore
dup
bipush 7
2: .line 17
ldc -9223372036854743031
lastore
dup
bipush 8
ldc 138
lastore
dup
bipush 9
ldc 136
lastore
dup
bipush 10
ldc 2147516425
lastore
dup
bipush 11
ldc 2147483658
lastore
dup
bipush 12
3: .line 18
ldc 2147516555
lastore
dup
bipush 13
ldc -9223372036854775669
lastore
dup
bipush 14
ldc -9223372036854742903
lastore
dup
bipush 15
ldc -9223372036854743037
lastore
dup
bipush 16
ldc -9223372036854743038
lastore
dup
bipush 17
4: .line 19
ldc -9223372036854775680
lastore
dup
bipush 18
ldc 32778
lastore
dup
bipush 19
ldc -9223372034707292150
lastore
dup
bipush 20
ldc -9223372034707259263
lastore
dup
bipush 21
ldc -9223372036854742912
lastore
dup
bipush 22
5: .line 20
ldc 2147483649
lastore
dup
bipush 23
ldc -9223372034707259384
lastore
6: .line 15
putstatic org.bouncycastle.crypto.digests.KeccakDigest.KeccakRoundConstants:[J
7: .line 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 // org.bouncycastle.crypto.digests.KeccakDigest this
0: .line 31
aload 0 /* this */
sipush 288
invokespecial org.bouncycastle.crypto.digests.KeccakDigest.<init>:(I)V
1: .line 32
return
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
start local 1 // int bitLength
0: .line 34
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 22
aload 0 /* this */
bipush 25
newarray 11
putfield org.bouncycastle.crypto.digests.KeccakDigest.state:[J
2: .line 23
aload 0 /* this */
sipush 192
newarray 8
putfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
3: .line 36
aload 0 /* this */
iload 1 /* bitLength */
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.init:(I)V
4: .line 37
return
end local 1 // int bitLength
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
0 5 1 bitLength I
MethodParameters:
Name Flags
bitLength
public void <init>(org.bouncycastle.crypto.digests.KeccakDigest);
descriptor: (Lorg/bouncycastle/crypto/digests/KeccakDigest;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
start local 1 // org.bouncycastle.crypto.digests.KeccakDigest source
0: .line 39
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 22
aload 0 /* this */
bipush 25
newarray 11
putfield org.bouncycastle.crypto.digests.KeccakDigest.state:[J
2: .line 23
aload 0 /* this */
sipush 192
newarray 8
putfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
3: .line 41
aload 1 /* source */
getfield org.bouncycastle.crypto.digests.KeccakDigest.state:[J
iconst_0
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.state:[J
iconst_0
aload 1 /* source */
getfield org.bouncycastle.crypto.digests.KeccakDigest.state:[J
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: .line 42
aload 1 /* source */
getfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
iconst_0
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
iconst_0
aload 1 /* source */
getfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: .line 43
aload 0 /* this */
aload 1 /* source */
getfield org.bouncycastle.crypto.digests.KeccakDigest.rate:I
putfield org.bouncycastle.crypto.digests.KeccakDigest.rate:I
6: .line 44
aload 0 /* this */
aload 1 /* source */
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
putfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
7: .line 45
aload 0 /* this */
aload 1 /* source */
getfield org.bouncycastle.crypto.digests.KeccakDigest.fixedOutputLength:I
putfield org.bouncycastle.crypto.digests.KeccakDigest.fixedOutputLength:I
8: .line 46
aload 0 /* this */
aload 1 /* source */
getfield org.bouncycastle.crypto.digests.KeccakDigest.squeezing:Z
putfield org.bouncycastle.crypto.digests.KeccakDigest.squeezing:Z
9: .line 47
return
end local 1 // org.bouncycastle.crypto.digests.KeccakDigest source
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
0 10 1 source Lorg/bouncycastle/crypto/digests/KeccakDigest;
MethodParameters:
Name Flags
source
public java.lang.String getAlgorithmName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
0: .line 51
new java.lang.StringBuilder
dup
ldc "Keccak-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.fixedOutputLength:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
public int getDigestSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
0: .line 56
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.fixedOutputLength:I
bipush 8
idiv
ireturn
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
public void update(byte);
descriptor: (B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
start local 1 // byte in
0: .line 61
aload 0 /* this */
iconst_1
newarray 8
dup
iconst_0
iload 1 /* in */
bastore
iconst_0
iconst_1
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.absorb:([BII)V
1: .line 62
return
end local 1 // byte in
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
0 2 1 in B
MethodParameters:
Name Flags
in
public void update(byte[], int, int);
descriptor: ([BII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
start local 1 // byte[] in
start local 2 // int inOff
start local 3 // int len
0: .line 66
aload 0 /* this */
aload 1 /* in */
iload 2 /* inOff */
iload 3 /* len */
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.absorb:([BII)V
1: .line 67
return
end local 3 // int len
end local 2 // int inOff
end local 1 // byte[] in
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
0 2 1 in [B
0 2 2 inOff I
0 2 3 len I
MethodParameters:
Name Flags
in
inOff
len
public int doFinal(byte[], int);
descriptor: ([BI)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
start local 1 // byte[] out
start local 2 // int outOff
0: .line 71
aload 0 /* this */
aload 1 /* out */
iload 2 /* outOff */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.fixedOutputLength:I
i2l
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.squeeze:([BIJ)V
1: .line 73
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.reset:()V
2: .line 75
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.getDigestSize:()I
ireturn
end local 2 // int outOff
end local 1 // byte[] out
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
0 3 1 out [B
0 3 2 outOff I
MethodParameters:
Name Flags
out
outOff
protected int doFinal(byte[], int, byte, int);
descriptor: ([BIBI)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=5
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
start local 1 // byte[] out
start local 2 // int outOff
start local 3 // byte partialByte
start local 4 // int partialBits
0: .line 83
iload 4 /* partialBits */
ifle 2
1: .line 85
aload 0 /* this */
iload 3 /* partialByte */
iload 4 /* partialBits */
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.absorbBits:(II)V
2: .line 88
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* out */
iload 2 /* outOff */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.fixedOutputLength:I
i2l
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.squeeze:([BIJ)V
3: .line 90
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.reset:()V
4: .line 92
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.getDigestSize:()I
ireturn
end local 4 // int partialBits
end local 3 // byte partialByte
end local 2 // int outOff
end local 1 // byte[] out
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
0 5 1 out [B
0 5 2 outOff I
0 5 3 partialByte B
0 5 4 partialBits I
MethodParameters:
Name Flags
out
outOff
partialByte
partialBits
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
0: .line 97
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.fixedOutputLength:I
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.init:(I)V
1: .line 98
return
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
public int getByteLength();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
0: .line 107
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.rate:I
bipush 8
idiv
ireturn
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
private void init(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
start local 1 // int bitLength
0: .line 112
iload 1 /* bitLength */
lookupswitch { // 6
128: 1
224: 1
256: 1
288: 1
384: 1
512: 1
default: 3
}
1: .line 120
StackMap locals:
StackMap stack:
aload 0 /* this */
sipush 1600
iload 1 /* bitLength */
iconst_1
ishl
isub
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.initSponge:(I)V
2: .line 121
goto 4
3: .line 123
StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "bitLength must be one of 128, 224, 256, 288, 384, or 512."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: .line 125
StackMap locals:
StackMap stack:
return
end local 1 // int bitLength
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
0 5 1 bitLength I
MethodParameters:
Name Flags
bitLength
private void initSponge(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
start local 1 // int rate
0: .line 129
iload 1 /* rate */
ifle 1
iload 1 /* rate */
sipush 1600
if_icmpge 1
iload 1 /* rate */
bipush 64
irem
ifeq 2
1: .line 131
StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "invalid rate value"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: .line 134
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 1 /* rate */
putfield org.bouncycastle.crypto.digests.KeccakDigest.rate:I
3: .line 135
iconst_0
istore 2 /* i */
start local 2 // int i
4: goto 7
5: .line 137
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.state:[J
iload 2 /* i */
lconst_0
lastore
6: .line 135
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 2 /* i */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.state:[J
arraylength
if_icmplt 5
end local 2 // int i
8: .line 139
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
iconst_0
invokestatic org.bouncycastle.util.Arrays.fill:([BB)V
9: .line 140
aload 0 /* this */
iconst_0
putfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
10: .line 141
aload 0 /* this */
iconst_0
putfield org.bouncycastle.crypto.digests.KeccakDigest.squeezing:Z
11: .line 142
aload 0 /* this */
sipush 1600
iload 1 /* rate */
isub
iconst_2
idiv
putfield org.bouncycastle.crypto.digests.KeccakDigest.fixedOutputLength:I
12: .line 143
return
end local 1 // int rate
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
0 13 1 rate I
4 8 2 i I
MethodParameters:
Name Flags
rate
protected void absorb(byte[], int, int);
descriptor: ([BII)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=8, args_size=4
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
start local 1 // byte[] data
start local 2 // int off
start local 3 // int len
0: .line 147
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
bipush 8
irem
ifeq 2
1: .line 149
new java.lang.IllegalStateException
dup
ldc "attempt to absorb with odd length queue"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: .line 151
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.squeezing:Z
ifeq 4
3: .line 153
new java.lang.IllegalStateException
dup
ldc "attempt to absorb while squeezing"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: .line 156
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
iconst_3
ishr
istore 4 /* bytesInQueue */
start local 4 // int bytesInQueue
5: .line 157
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.rate:I
iconst_3
ishr
istore 5 /* rateBytes */
start local 5 // int rateBytes
6: .line 159
iconst_0
istore 6 /* count */
start local 6 // int count
7: .line 160
goto 21
8: .line 162
StackMap locals: int int int
StackMap stack:
iload 4 /* bytesInQueue */
ifne 14
iload 6 /* count */
iload 3 /* len */
iload 5 /* rateBytes */
isub
if_icmpgt 14
9: .line 166
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* data */
iload 2 /* off */
iload 6 /* count */
iadd
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.KeccakAbsorb:([BI)V
10: .line 167
iload 6 /* count */
iload 5 /* rateBytes */
iadd
istore 6 /* count */
11: .line 169
iload 6 /* count */
iload 3 /* len */
iload 5 /* rateBytes */
isub
12: .line 164
if_icmple 9
13: .line 170
goto 21
14: .line 173
StackMap locals:
StackMap stack:
iload 5 /* rateBytes */
iload 4 /* bytesInQueue */
isub
iload 3 /* len */
iload 6 /* count */
isub
invokestatic java.lang.Math.min:(II)I
istore 7 /* partialBlock */
start local 7 // int partialBlock
15: .line 174
aload 1 /* data */
iload 2 /* off */
iload 6 /* count */
iadd
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
iload 4 /* bytesInQueue */
iload 7 /* partialBlock */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
16: .line 176
iload 4 /* bytesInQueue */
iload 7 /* partialBlock */
iadd
istore 4 /* bytesInQueue */
17: .line 177
iload 6 /* count */
iload 7 /* partialBlock */
iadd
istore 6 /* count */
18: .line 179
iload 4 /* bytesInQueue */
iload 5 /* rateBytes */
if_icmpne 21
19: .line 181
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
iconst_0
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.KeccakAbsorb:([BI)V
20: .line 182
iconst_0
istore 4 /* bytesInQueue */
end local 7 // int partialBlock
21: .line 160
StackMap locals:
StackMap stack:
iload 6 /* count */
iload 3 /* len */
if_icmplt 8
22: .line 187
aload 0 /* this */
iload 4 /* bytesInQueue */
iconst_3
ishl
putfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
23: .line 188
return
end local 6 // int count
end local 5 // int rateBytes
end local 4 // int bytesInQueue
end local 3 // int len
end local 2 // int off
end local 1 // byte[] data
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
0 24 1 data [B
0 24 2 off I
0 24 3 len I
5 24 4 bytesInQueue I
6 24 5 rateBytes I
7 24 6 count I
15 21 7 partialBlock I
MethodParameters:
Name Flags
data
off
len
protected void absorbBits(int, int);
descriptor: (II)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=3
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
start local 1 // int data
start local 2 // int bits
0: .line 192
iload 2 /* bits */
iconst_1
if_icmplt 1
iload 2 /* bits */
bipush 7
if_icmple 2
1: .line 194
StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "'bits' must be in the range 1 to 7"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: .line 196
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
bipush 8
irem
ifeq 4
3: .line 198
new java.lang.IllegalStateException
dup
ldc "attempt to absorb with odd length queue"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: .line 200
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.squeezing:Z
ifeq 6
5: .line 202
new java.lang.IllegalStateException
dup
ldc "attempt to absorb while squeezing"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
6: .line 205
StackMap locals:
StackMap stack:
iconst_1
iload 2 /* bits */
ishl
iconst_1
isub
istore 3 /* mask */
start local 3 // int mask
7: .line 206
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
iconst_3
ishr
iload 1 /* data */
iload 3 /* mask */
iand
i2b
bastore
8: .line 209
aload 0 /* this */
dup
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
iload 2 /* bits */
iadd
putfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
9: .line 210
return
end local 3 // int mask
end local 2 // int bits
end local 1 // int data
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
0 10 1 data I
0 10 2 bits I
7 10 3 mask I
MethodParameters:
Name Flags
data
bits
private void padAndSwitchToSqueezingPhase();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=6, args_size=1
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
0: .line 214
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
iconst_3
ishr
dup2
baload
lconst_1
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
bipush 7
iand
lshl
l2i
i2b
ior
i2b
bastore
1: .line 216
aload 0 /* this */
dup
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
iconst_1
iadd
dup_x1
putfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.rate:I
if_icmpne 4
2: .line 218
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
iconst_0
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.KeccakAbsorb:([BI)V
3: .line 219
aload 0 /* this */
iconst_0
putfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
4: .line 223
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
bipush 6
ishr
istore 1 /* full */
start local 1 // int full
5: aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
bipush 63
iand
istore 2 /* partial */
start local 2 // int partial
6: .line 224
iconst_0
istore 3 /* off */
start local 3 // int off
7: .line 225
iconst_0
istore 4 /* i */
start local 4 // int i
8: goto 12
9: .line 227
StackMap locals: org.bouncycastle.crypto.digests.KeccakDigest int int int int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.state:[J
iload 4 /* i */
dup2
laload
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
iload 3 /* off */
invokestatic org.bouncycastle.util.Pack.littleEndianToLong:([BI)J
lxor
lastore
10: .line 228
iinc 3 /* off */ 8
11: .line 225
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
12: iload 4 /* i */
iload 1 /* full */
if_icmplt 9
end local 4 // int i
13: .line 230
iload 2 /* partial */
ifle 16
14: .line 232
lconst_1
iload 2 /* partial */
lshl
lconst_1
lsub
lstore 4 /* mask */
start local 4 // long mask
15: .line 233
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.state:[J
iload 1 /* full */
dup2
laload
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
iload 3 /* off */
invokestatic org.bouncycastle.util.Pack.littleEndianToLong:([BI)J
lload 4 /* mask */
land
lxor
lastore
end local 4 // long mask
16: .line 235
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.state:[J
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.rate:I
iconst_1
isub
bipush 6
ishr
dup2
laload
ldc -9223372036854775808
lxor
lastore
end local 3 // int off
end local 2 // int partial
end local 1 // int full
17: .line 238
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.KeccakPermutation:()V
18: .line 240
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.KeccakExtract:()V
19: .line 241
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.rate:I
putfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
20: .line 243
aload 0 /* this */
iconst_1
putfield org.bouncycastle.crypto.digests.KeccakDigest.squeezing:Z
21: .line 244
return
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
5 17 1 full I
6 17 2 partial I
7 17 3 off I
8 13 4 i I
15 16 4 mask J
protected void squeeze(byte[], int, long);
descriptor: ([BIJ)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=8, locals=8, args_size=4
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
start local 1 // byte[] output
start local 2 // int offset
start local 3 // long outputLength
0: .line 248
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.squeezing:Z
ifne 2
1: .line 250
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.padAndSwitchToSqueezingPhase:()V
2: .line 252
StackMap locals:
StackMap stack:
lload 3 /* outputLength */
ldc 8
lrem
lconst_0
lcmp
ifeq 4
3: .line 254
new java.lang.IllegalStateException
dup
ldc "outputLength not a multiple of 8"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
4: .line 257
StackMap locals:
StackMap stack:
lconst_0
lstore 5 /* i */
start local 5 // long i
5: .line 258
goto 14
6: .line 260
StackMap locals: long
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
ifne 10
7: .line 262
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.KeccakPermutation:()V
8: .line 263
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.KeccakExtract:()V
9: .line 264
aload 0 /* this */
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.rate:I
putfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
10: .line 266
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
i2l
lload 3 /* outputLength */
lload 5 /* i */
lsub
invokestatic java.lang.Math.min:(JJ)J
l2i
istore 7 /* partialBlock */
start local 7 // int partialBlock
11: .line 267
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.rate:I
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
isub
bipush 8
idiv
aload 1 /* output */
iload 2 /* offset */
lload 5 /* i */
ldc 8
ldiv
l2i
iadd
iload 7 /* partialBlock */
bipush 8
idiv
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: .line 268
aload 0 /* this */
dup
getfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
iload 7 /* partialBlock */
isub
putfield org.bouncycastle.crypto.digests.KeccakDigest.bitsInQueue:I
13: .line 269
lload 5 /* i */
iload 7 /* partialBlock */
i2l
ladd
lstore 5 /* i */
end local 7 // int partialBlock
14: .line 258
StackMap locals:
StackMap stack:
lload 5 /* i */
lload 3 /* outputLength */
lcmp
iflt 6
15: .line 271
return
end local 5 // long i
end local 3 // long outputLength
end local 2 // int offset
end local 1 // byte[] output
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
0 16 1 output [B
0 16 2 offset I
0 16 3 outputLength J
5 16 5 i J
11 14 7 partialBlock I
MethodParameters:
Name Flags
output
offset
outputLength
private void KeccakAbsorb(byte[], int);
descriptor: ([BI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=3
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
start local 1 // byte[] data
start local 2 // int off
0: .line 275
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.rate:I
bipush 6
ishr
istore 3 /* count */
start local 3 // int count
1: .line 276
iconst_0
istore 4 /* i */
start local 4 // int i
2: goto 6
3: .line 278
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.state:[J
iload 4 /* i */
dup2
laload
aload 1 /* data */
iload 2 /* off */
invokestatic org.bouncycastle.util.Pack.littleEndianToLong:([BI)J
lxor
lastore
4: .line 279
iinc 2 /* off */ 8
5: .line 276
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
6: iload 4 /* i */
iload 3 /* count */
if_icmplt 3
end local 4 // int i
7: .line 282
aload 0 /* this */
invokevirtual org.bouncycastle.crypto.digests.KeccakDigest.KeccakPermutation:()V
8: .line 283
return
end local 3 // int count
end local 2 // int off
end local 1 // byte[] data
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
0 9 1 data [B
0 9 2 off I
1 9 3 count I
2 7 4 i I
MethodParameters:
Name Flags
data
off
private void KeccakExtract();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
0: .line 287
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.state:[J
iconst_0
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.rate:I
bipush 6
ishr
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.dataQueue:[B
iconst_0
invokestatic org.bouncycastle.util.Pack.longToLittleEndian:([JII[BI)V
1: .line 288
return
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
private void KeccakPermutation();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=73, args_size=1
start local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
0: .line 292
aload 0 /* this */
getfield org.bouncycastle.crypto.digests.KeccakDigest.state:[J
astore 1 /* A */
start local 1 // long[] A
1: .line 294
aload 1 /* A */
iconst_0
laload
lstore 2 /* a00 */
start local 2 // long a00
2: aload 1 /* A */
iconst_1
laload
lstore 4 /* a01 */
start local 4 // long a01
3: aload 1 /* A */
iconst_2
laload
lstore 6 /* a02 */
start local 6 // long a02
4: aload 1 /* A */
iconst_3
laload
lstore 8 /* a03 */
start local 8 // long a03
5: aload 1 /* A */
iconst_4
laload
lstore 10 /* a04 */
start local 10 // long a04
6: .line 295
aload 1 /* A */
iconst_5
laload
lstore 12 /* a05 */
start local 12 // long a05
7: aload 1 /* A */
bipush 6
laload
lstore 14 /* a06 */
start local 14 // long a06
8: aload 1 /* A */
bipush 7
laload
lstore 16 /* a07 */
start local 16 // long a07
9: aload 1 /* A */
bipush 8
laload
lstore 18 /* a08 */
start local 18 // long a08
10: aload 1 /* A */
bipush 9
laload
lstore 20 /* a09 */
start local 20 // long a09
11: .line 296
aload 1 /* A */
bipush 10
laload
lstore 22 /* a10 */
start local 22 // long a10
12: aload 1 /* A */
bipush 11
laload
lstore 24 /* a11 */
start local 24 // long a11
13: aload 1 /* A */
bipush 12
laload
lstore 26 /* a12 */
start local 26 // long a12
14: aload 1 /* A */
bipush 13
laload
lstore 28 /* a13 */
start local 28 // long a13
15: aload 1 /* A */
bipush 14
laload
lstore 30 /* a14 */
start local 30 // long a14
16: .line 297
aload 1 /* A */
bipush 15
laload
lstore 32 /* a15 */
start local 32 // long a15
17: aload 1 /* A */
bipush 16
laload
lstore 34 /* a16 */
start local 34 // long a16
18: aload 1 /* A */
bipush 17
laload
lstore 36 /* a17 */
start local 36 // long a17
19: aload 1 /* A */
bipush 18
laload
lstore 38 /* a18 */
start local 38 // long a18
20: aload 1 /* A */
bipush 19
laload
lstore 40 /* a19 */
start local 40 // long a19
21: .line 298
aload 1 /* A */
bipush 20
laload
lstore 42 /* a20 */
start local 42 // long a20
22: aload 1 /* A */
bipush 21
laload
lstore 44 /* a21 */
start local 44 // long a21
23: aload 1 /* A */
bipush 22
laload
lstore 46 /* a22 */
start local 46 // long a22
24: aload 1 /* A */
bipush 23
laload
lstore 48 /* a23 */
start local 48 // long a23
25: aload 1 /* A */
bipush 24
laload
lstore 50 /* a24 */
start local 50 // long a24
26: .line 300
iconst_0
istore 52 /* i */
start local 52 // int i
27: goto 105
28: .line 303
StackMap locals: org.bouncycastle.crypto.digests.KeccakDigest long[] long long long long long long long long long long long long long long long long long long long long long long long long long int
StackMap stack:
lload 2 /* a00 */
lload 12 /* a05 */
lxor
lload 22 /* a10 */
lxor
lload 32 /* a15 */
lxor
lload 42 /* a20 */
lxor
lstore 53 /* c0 */
start local 53 // long c0
29: .line 304
lload 4 /* a01 */
lload 14 /* a06 */
lxor
lload 24 /* a11 */
lxor
lload 34 /* a16 */
lxor
lload 44 /* a21 */
lxor
lstore 55 /* c1 */
start local 55 // long c1
30: .line 305
lload 6 /* a02 */
lload 16 /* a07 */
lxor
lload 26 /* a12 */
lxor
lload 36 /* a17 */
lxor
lload 46 /* a22 */
lxor
lstore 57 /* c2 */
start local 57 // long c2
31: .line 306
lload 8 /* a03 */
lload 18 /* a08 */
lxor
lload 28 /* a13 */
lxor
lload 38 /* a18 */
lxor
lload 48 /* a23 */
lxor
lstore 59 /* c3 */
start local 59 // long c3
32: .line 307
lload 10 /* a04 */
lload 20 /* a09 */
lxor
lload 30 /* a14 */
lxor
lload 40 /* a19 */
lxor
lload 50 /* a24 */
lxor
lstore 61 /* c4 */
start local 61 // long c4
33: .line 309
lload 55 /* c1 */
iconst_1
lshl
lload 55 /* c1 */
iconst_m1
lushr
lor
lload 61 /* c4 */
lxor
lstore 63 /* d1 */
start local 63 // long d1
34: .line 310
lload 57 /* c2 */
iconst_1
lshl
lload 57 /* c2 */
iconst_m1
lushr
lor
lload 53 /* c0 */
lxor
lstore 65 /* d2 */
start local 65 // long d2
35: .line 311
lload 59 /* c3 */
iconst_1
lshl
lload 59 /* c3 */
iconst_m1
lushr
lor
lload 55 /* c1 */
lxor
lstore 67 /* d3 */
start local 67 // long d3
36: .line 312
lload 61 /* c4 */
iconst_1
lshl
lload 61 /* c4 */
iconst_m1
lushr
lor
lload 57 /* c2 */
lxor
lstore 69 /* d4 */
start local 69 // long d4
37: .line 313
lload 53 /* c0 */
iconst_1
lshl
lload 53 /* c0 */
iconst_m1
lushr
lor
lload 59 /* c3 */
lxor
lstore 71 /* d0 */
start local 71 // long d0
38: .line 315
lload 2 /* a00 */
lload 63 /* d1 */
lxor
lstore 2 /* a00 */
lload 12 /* a05 */
lload 63 /* d1 */
lxor
lstore 12 /* a05 */
lload 22 /* a10 */
lload 63 /* d1 */
lxor
lstore 22 /* a10 */
lload 32 /* a15 */
lload 63 /* d1 */
lxor
lstore 32 /* a15 */
lload 42 /* a20 */
lload 63 /* d1 */
lxor
lstore 42 /* a20 */
39: .line 316
lload 4 /* a01 */
lload 65 /* d2 */
lxor
lstore 4 /* a01 */
lload 14 /* a06 */
lload 65 /* d2 */
lxor
lstore 14 /* a06 */
lload 24 /* a11 */
lload 65 /* d2 */
lxor
lstore 24 /* a11 */
lload 34 /* a16 */
lload 65 /* d2 */
lxor
lstore 34 /* a16 */
lload 44 /* a21 */
lload 65 /* d2 */
lxor
lstore 44 /* a21 */
40: .line 317
lload 6 /* a02 */
lload 67 /* d3 */
lxor
lstore 6 /* a02 */
lload 16 /* a07 */
lload 67 /* d3 */
lxor
lstore 16 /* a07 */
lload 26 /* a12 */
lload 67 /* d3 */
lxor
lstore 26 /* a12 */
lload 36 /* a17 */
lload 67 /* d3 */
lxor
lstore 36 /* a17 */
lload 46 /* a22 */
lload 67 /* d3 */
lxor
lstore 46 /* a22 */
41: .line 318
lload 8 /* a03 */
lload 69 /* d4 */
lxor
lstore 8 /* a03 */
lload 18 /* a08 */
lload 69 /* d4 */
lxor
lstore 18 /* a08 */
lload 28 /* a13 */
lload 69 /* d4 */
lxor
lstore 28 /* a13 */
lload 38 /* a18 */
lload 69 /* d4 */
lxor
lstore 38 /* a18 */
lload 48 /* a23 */
lload 69 /* d4 */
lxor
lstore 48 /* a23 */
42: .line 319
lload 10 /* a04 */
lload 71 /* d0 */
lxor
lstore 10 /* a04 */
lload 20 /* a09 */
lload 71 /* d0 */
lxor
lstore 20 /* a09 */
lload 30 /* a14 */
lload 71 /* d0 */
lxor
lstore 30 /* a14 */
lload 40 /* a19 */
lload 71 /* d0 */
lxor
lstore 40 /* a19 */
lload 50 /* a24 */
lload 71 /* d0 */
lxor
lstore 50 /* a24 */
43: .line 322
lload 4 /* a01 */
iconst_1
lshl
lload 4 /* a01 */
bipush 63
lushr
lor
lstore 55 /* c1 */
44: .line 323
lload 14 /* a06 */
bipush 44
lshl
lload 14 /* a06 */
bipush 20
lushr
lor
lstore 4 /* a01 */
45: .line 324
lload 20 /* a09 */
bipush 20
lshl
lload 20 /* a09 */
bipush 44
lushr
lor
lstore 14 /* a06 */
46: .line 325
lload 46 /* a22 */
bipush 61
lshl
lload 46 /* a22 */
iconst_3
lushr
lor
lstore 20 /* a09 */
47: .line 326
lload 30 /* a14 */
bipush 39
lshl
lload 30 /* a14 */
bipush 25
lushr
lor
lstore 46 /* a22 */
48: .line 327
lload 42 /* a20 */
bipush 18
lshl
lload 42 /* a20 */
bipush 46
lushr
lor
lstore 30 /* a14 */
49: .line 328
lload 6 /* a02 */
bipush 62
lshl
lload 6 /* a02 */
iconst_2
lushr
lor
lstore 42 /* a20 */
50: .line 329
lload 26 /* a12 */
bipush 43
lshl
lload 26 /* a12 */
bipush 21
lushr
lor
lstore 6 /* a02 */
51: .line 330
lload 28 /* a13 */
bipush 25
lshl
lload 28 /* a13 */
bipush 39
lushr
lor
lstore 26 /* a12 */
52: .line 331
lload 40 /* a19 */
bipush 8
lshl
lload 40 /* a19 */
bipush 56
lushr
lor
lstore 28 /* a13 */
53: .line 332
lload 48 /* a23 */
bipush 56
lshl
lload 48 /* a23 */
bipush 8
lushr
lor
lstore 40 /* a19 */
54: .line 333
lload 32 /* a15 */
bipush 41
lshl
lload 32 /* a15 */
bipush 23
lushr
lor
lstore 48 /* a23 */
55: .line 334
lload 10 /* a04 */
bipush 27
lshl
lload 10 /* a04 */
bipush 37
lushr
lor
lstore 32 /* a15 */
56: .line 335
lload 50 /* a24 */
bipush 14
lshl
lload 50 /* a24 */
bipush 50
lushr
lor
lstore 10 /* a04 */
57: .line 336
lload 44 /* a21 */
iconst_2
lshl
lload 44 /* a21 */
bipush 62
lushr
lor
lstore 50 /* a24 */
58: .line 337
lload 18 /* a08 */
bipush 55
lshl
lload 18 /* a08 */
bipush 9
lushr
lor
lstore 44 /* a21 */
59: .line 338
lload 34 /* a16 */
bipush 45
lshl
lload 34 /* a16 */
bipush 19
lushr
lor
lstore 18 /* a08 */
60: .line 339
lload 12 /* a05 */
bipush 36
lshl
lload 12 /* a05 */
bipush 28
lushr
lor
lstore 34 /* a16 */
61: .line 340
lload 8 /* a03 */
bipush 28
lshl
lload 8 /* a03 */
bipush 36
lushr
lor
lstore 12 /* a05 */
62: .line 341
lload 38 /* a18 */
bipush 21
lshl
lload 38 /* a18 */
bipush 43
lushr
lor
lstore 8 /* a03 */
63: .line 342
lload 36 /* a17 */
bipush 15
lshl
lload 36 /* a17 */
bipush 49
lushr
lor
lstore 38 /* a18 */
64: .line 343
lload 24 /* a11 */
bipush 10
lshl
lload 24 /* a11 */
bipush 54
lushr
lor
lstore 36 /* a17 */
65: .line 344
lload 16 /* a07 */
bipush 6
lshl
lload 16 /* a07 */
bipush 58
lushr
lor
lstore 24 /* a11 */
66: .line 345
lload 22 /* a10 */
iconst_3
lshl
lload 22 /* a10 */
bipush 61
lushr
lor
lstore 16 /* a07 */
67: .line 346
lload 55 /* c1 */
lstore 22 /* a10 */
68: .line 349
lload 2 /* a00 */
lload 4 /* a01 */
ldc -1
lxor
lload 6 /* a02 */
land
lxor
lstore 53 /* c0 */
69: .line 350
lload 4 /* a01 */
lload 6 /* a02 */
ldc -1
lxor
lload 8 /* a03 */
land
lxor
lstore 55 /* c1 */
70: .line 351
lload 6 /* a02 */
lload 8 /* a03 */
ldc -1
lxor
lload 10 /* a04 */
land
lxor
lstore 6 /* a02 */
71: .line 352
lload 8 /* a03 */
lload 10 /* a04 */
ldc -1
lxor
lload 2 /* a00 */
land
lxor
lstore 8 /* a03 */
72: .line 353
lload 10 /* a04 */
lload 2 /* a00 */
ldc -1
lxor
lload 4 /* a01 */
land
lxor
lstore 10 /* a04 */
73: .line 354
lload 53 /* c0 */
lstore 2 /* a00 */
74: .line 355
lload 55 /* c1 */
lstore 4 /* a01 */
75: .line 357
lload 12 /* a05 */
lload 14 /* a06 */
ldc -1
lxor
lload 16 /* a07 */
land
lxor
lstore 53 /* c0 */
76: .line 358
lload 14 /* a06 */
lload 16 /* a07 */
ldc -1
lxor
lload 18 /* a08 */
land
lxor
lstore 55 /* c1 */
77: .line 359
lload 16 /* a07 */
lload 18 /* a08 */
ldc -1
lxor
lload 20 /* a09 */
land
lxor
lstore 16 /* a07 */
78: .line 360
lload 18 /* a08 */
lload 20 /* a09 */
ldc -1
lxor
lload 12 /* a05 */
land
lxor
lstore 18 /* a08 */
79: .line 361
lload 20 /* a09 */
lload 12 /* a05 */
ldc -1
lxor
lload 14 /* a06 */
land
lxor
lstore 20 /* a09 */
80: .line 362
lload 53 /* c0 */
lstore 12 /* a05 */
81: .line 363
lload 55 /* c1 */
lstore 14 /* a06 */
82: .line 365
lload 22 /* a10 */
lload 24 /* a11 */
ldc -1
lxor
lload 26 /* a12 */
land
lxor
lstore 53 /* c0 */
83: .line 366
lload 24 /* a11 */
lload 26 /* a12 */
ldc -1
lxor
lload 28 /* a13 */
land
lxor
lstore 55 /* c1 */
84: .line 367
lload 26 /* a12 */
lload 28 /* a13 */
ldc -1
lxor
lload 30 /* a14 */
land
lxor
lstore 26 /* a12 */
85: .line 368
lload 28 /* a13 */
lload 30 /* a14 */
ldc -1
lxor
lload 22 /* a10 */
land
lxor
lstore 28 /* a13 */
86: .line 369
lload 30 /* a14 */
lload 22 /* a10 */
ldc -1
lxor
lload 24 /* a11 */
land
lxor
lstore 30 /* a14 */
87: .line 370
lload 53 /* c0 */
lstore 22 /* a10 */
88: .line 371
lload 55 /* c1 */
lstore 24 /* a11 */
89: .line 373
lload 32 /* a15 */
lload 34 /* a16 */
ldc -1
lxor
lload 36 /* a17 */
land
lxor
lstore 53 /* c0 */
90: .line 374
lload 34 /* a16 */
lload 36 /* a17 */
ldc -1
lxor
lload 38 /* a18 */
land
lxor
lstore 55 /* c1 */
91: .line 375
lload 36 /* a17 */
lload 38 /* a18 */
ldc -1
lxor
lload 40 /* a19 */
land
lxor
lstore 36 /* a17 */
92: .line 376
lload 38 /* a18 */
lload 40 /* a19 */
ldc -1
lxor
lload 32 /* a15 */
land
lxor
lstore 38 /* a18 */
93: .line 377
lload 40 /* a19 */
lload 32 /* a15 */
ldc -1
lxor
lload 34 /* a16 */
land
lxor
lstore 40 /* a19 */
94: .line 378
lload 53 /* c0 */
lstore 32 /* a15 */
95: .line 379
lload 55 /* c1 */
lstore 34 /* a16 */
96: .line 381
lload 42 /* a20 */
lload 44 /* a21 */
ldc -1
lxor
lload 46 /* a22 */
land
lxor
lstore 53 /* c0 */
97: .line 382
lload 44 /* a21 */
lload 46 /* a22 */
ldc -1
lxor
lload 48 /* a23 */
land
lxor
lstore 55 /* c1 */
98: .line 383
lload 46 /* a22 */
lload 48 /* a23 */
ldc -1
lxor
lload 50 /* a24 */
land
lxor
lstore 46 /* a22 */
99: .line 384
lload 48 /* a23 */
lload 50 /* a24 */
ldc -1
lxor
lload 42 /* a20 */
land
lxor
lstore 48 /* a23 */
100: .line 385
lload 50 /* a24 */
lload 42 /* a20 */
ldc -1
lxor
lload 44 /* a21 */
land
lxor
lstore 50 /* a24 */
101: .line 386
lload 53 /* c0 */
lstore 42 /* a20 */
102: .line 387
lload 55 /* c1 */
lstore 44 /* a21 */
103: .line 390
lload 2 /* a00 */
getstatic org.bouncycastle.crypto.digests.KeccakDigest.KeccakRoundConstants:[J
iload 52 /* i */
laload
lxor
lstore 2 /* a00 */
end local 71 // long d0
end local 69 // long d4
end local 67 // long d3
end local 65 // long d2
end local 63 // long d1
end local 61 // long c4
end local 59 // long c3
end local 57 // long c2
end local 55 // long c1
end local 53 // long c0
104: .line 300
iinc 52 /* i */ 1
StackMap locals:
StackMap stack:
105: iload 52 /* i */
bipush 24
if_icmplt 28
end local 52 // int i
106: .line 393
aload 1 /* A */
iconst_0
lload 2 /* a00 */
lastore
aload 1 /* A */
iconst_1
lload 4 /* a01 */
lastore
aload 1 /* A */
iconst_2
lload 6 /* a02 */
lastore
aload 1 /* A */
iconst_3
lload 8 /* a03 */
lastore
aload 1 /* A */
iconst_4
lload 10 /* a04 */
lastore
107: .line 394
aload 1 /* A */
iconst_5
lload 12 /* a05 */
lastore
aload 1 /* A */
bipush 6
lload 14 /* a06 */
lastore
aload 1 /* A */
bipush 7
lload 16 /* a07 */
lastore
aload 1 /* A */
bipush 8
lload 18 /* a08 */
lastore
aload 1 /* A */
bipush 9
lload 20 /* a09 */
lastore
108: .line 395
aload 1 /* A */
bipush 10
lload 22 /* a10 */
lastore
aload 1 /* A */
bipush 11
lload 24 /* a11 */
lastore
aload 1 /* A */
bipush 12
lload 26 /* a12 */
lastore
aload 1 /* A */
bipush 13
lload 28 /* a13 */
lastore
aload 1 /* A */
bipush 14
lload 30 /* a14 */
lastore
109: .line 396
aload 1 /* A */
bipush 15
lload 32 /* a15 */
lastore
aload 1 /* A */
bipush 16
lload 34 /* a16 */
lastore
aload 1 /* A */
bipush 17
lload 36 /* a17 */
lastore
aload 1 /* A */
bipush 18
lload 38 /* a18 */
lastore
aload 1 /* A */
bipush 19
lload 40 /* a19 */
lastore
110: .line 397
aload 1 /* A */
bipush 20
lload 42 /* a20 */
lastore
aload 1 /* A */
bipush 21
lload 44 /* a21 */
lastore
aload 1 /* A */
bipush 22
lload 46 /* a22 */
lastore
aload 1 /* A */
bipush 23
lload 48 /* a23 */
lastore
aload 1 /* A */
bipush 24
lload 50 /* a24 */
lastore
111: .line 398
return
end local 50 // long a24
end local 48 // long a23
end local 46 // long a22
end local 44 // long a21
end local 42 // long a20
end local 40 // long a19
end local 38 // long a18
end local 36 // long a17
end local 34 // long a16
end local 32 // long a15
end local 30 // long a14
end local 28 // long a13
end local 26 // long a12
end local 24 // long a11
end local 22 // long a10
end local 20 // long a09
end local 18 // long a08
end local 16 // long a07
end local 14 // long a06
end local 12 // long a05
end local 10 // long a04
end local 8 // long a03
end local 6 // long a02
end local 4 // long a01
end local 2 // long a00
end local 1 // long[] A
end local 0 // org.bouncycastle.crypto.digests.KeccakDigest this
LocalVariableTable:
Start End Slot Name Signature
0 112 0 this Lorg/bouncycastle/crypto/digests/KeccakDigest;
1 112 1 A [J
2 112 2 a00 J
3 112 4 a01 J
4 112 6 a02 J
5 112 8 a03 J
6 112 10 a04 J
7 112 12 a05 J
8 112 14 a06 J
9 112 16 a07 J
10 112 18 a08 J
11 112 20 a09 J
12 112 22 a10 J
13 112 24 a11 J
14 112 26 a12 J
15 112 28 a13 J
16 112 30 a14 J
17 112 32 a15 J
18 112 34 a16 J
19 112 36 a17 J
20 112 38 a18 J
21 112 40 a19 J
22 112 42 a20 J
23 112 44 a21 J
24 112 46 a22 J
25 112 48 a23 J
26 112 50 a24 J
27 106 52 i I
29 104 53 c0 J
30 104 55 c1 J
31 104 57 c2 J
32 104 59 c3 J
33 104 61 c4 J
34 104 63 d1 J
35 104 65 d2 J
36 104 67 d3 J
37 104 69 d4 J
38 104 71 d0 J
}
SourceFile: "KeccakDigest.java"