abstract class sun.security.provider.SHA3 extends sun.security.provider.DigestBase
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: sun.security.provider.SHA3
super_class: sun.security.provider.DigestBase
{
private static final int WIDTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 200
private static final int DM;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final int NR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 24
private static final long[] RC_CONSTANTS;
descriptor: [J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final byte suffix;
descriptor: B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private byte[] state;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private long[] lanes;
descriptor: [J
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: .line 54
bipush 24
newarray 11
dup
iconst_0
1: .line 55
lconst_1
lastore
dup
iconst_1
ldc 32898
lastore
dup
iconst_2
ldc -9223372036854742902
lastore
dup
iconst_3
2: .line 56
ldc -9223372034707259392
lastore
dup
iconst_4
ldc 32907
lastore
dup
iconst_5
ldc 2147483649
lastore
dup
bipush 6
3: .line 57
ldc -9223372034707259263
lastore
dup
bipush 7
ldc -9223372036854743031
lastore
dup
bipush 8
ldc 138
lastore
dup
bipush 9
4: .line 58
ldc 136
lastore
dup
bipush 10
ldc 2147516425
lastore
dup
bipush 11
ldc 2147483658
lastore
dup
bipush 12
5: .line 59
ldc 2147516555
lastore
dup
bipush 13
ldc -9223372036854775669
lastore
dup
bipush 14
ldc -9223372036854742903
lastore
dup
bipush 15
6: .line 60
ldc -9223372036854743037
lastore
dup
bipush 16
ldc -9223372036854743038
lastore
dup
bipush 17
ldc -9223372036854775680
lastore
dup
bipush 18
7: .line 61
ldc 32778
lastore
dup
bipush 19
ldc -9223372034707292150
lastore
dup
bipush 20
ldc -9223372034707259263
lastore
dup
bipush 21
8: .line 62
ldc -9223372036854742912
lastore
dup
bipush 22
ldc 2147483649
lastore
dup
bipush 23
ldc -9223372034707259384
lastore
9: .line 54
putstatic sun.security.provider.SHA3.RC_CONSTANTS:[J
10: .line 63
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.String, int, byte, int);
descriptor: (Ljava/lang/String;IBI)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=5
start local 0 // sun.security.provider.SHA3 this
start local 1 // java.lang.String name
start local 2 // int digestLength
start local 3 // byte suffix
start local 4 // int c
0: .line 73
aload 0 /* this */
aload 1 /* name */
iload 2 /* digestLength */
sipush 200
iload 4 /* c */
isub
invokespecial sun.security.provider.DigestBase.<init>:(Ljava/lang/String;II)V
1: .line 66
aload 0 /* this */
sipush 200
newarray 8
putfield sun.security.provider.SHA3.state:[B
2: .line 67
aload 0 /* this */
bipush 25
newarray 11
putfield sun.security.provider.SHA3.lanes:[J
3: .line 74
aload 0 /* this */
iload 3 /* suffix */
putfield sun.security.provider.SHA3.suffix:B
4: .line 75
return
end local 4 // int c
end local 3 // byte suffix
end local 2 // int digestLength
end local 1 // java.lang.String name
end local 0 // sun.security.provider.SHA3 this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/provider/SHA3;
0 5 1 name Ljava/lang/String;
0 5 2 digestLength I
0 5 3 suffix B
0 5 4 c I
MethodParameters:
Name Flags
name
digestLength
suffix
c
private void implCompressCheck(byte[], int);
descriptor: ([BI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=3, args_size=3
start local 0 // sun.security.provider.SHA3 this
start local 1 // byte[] b
start local 2 // int ofs
0: .line 78
aload 1 /* b */
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: .line 79
return
end local 2 // int ofs
end local 1 // byte[] b
end local 0 // sun.security.provider.SHA3 this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/provider/SHA3;
0 2 1 b [B
0 2 2 ofs I
MethodParameters:
Name Flags
b
ofs
void implCompress(byte[], int);
descriptor: ([BI)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 // sun.security.provider.SHA3 this
start local 1 // byte[] b
start local 2 // int ofs
0: .line 86
aload 0 /* this */
aload 1 /* b */
iload 2 /* ofs */
invokevirtual sun.security.provider.SHA3.implCompressCheck:([BI)V
1: .line 87
aload 0 /* this */
aload 1 /* b */
iload 2 /* ofs */
invokevirtual sun.security.provider.SHA3.implCompress0:([BI)V
2: .line 88
return
end local 2 // int ofs
end local 1 // byte[] b
end local 0 // sun.security.provider.SHA3 this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/provider/SHA3;
0 3 1 b [B
0 3 2 ofs I
MethodParameters:
Name Flags
b
ofs
private void implCompress0(byte[], int);
descriptor: ([BI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 // sun.security.provider.SHA3 this
start local 1 // byte[] b
start local 2 // int ofs
0: .line 92
iconst_0
istore 3 /* i */
start local 3 // int i
1: goto 4
2: .line 93
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.security.provider.SHA3.state:[B
iload 3 /* i */
dup2
baload
aload 1 /* b */
iload 2 /* ofs */
iinc 2 /* ofs */ 1
baload
ixor
i2b
bastore
3: .line 92
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 3 /* i */
aload 0 /* this */
getfield sun.security.provider.SHA3.buffer:[B
arraylength
if_icmplt 2
end local 3 // int i
5: .line 95
aload 0 /* this */
invokevirtual sun.security.provider.SHA3.keccak:()V
6: .line 96
return
end local 2 // int ofs
end local 1 // byte[] b
end local 0 // sun.security.provider.SHA3 this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/provider/SHA3;
0 7 1 b [B
0 7 2 ofs I
1 5 3 i I
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.IntrinsicCandidate()
MethodParameters:
Name Flags
b
ofs
void implDigest(byte[], int);
descriptor: ([BI)V
flags: (0x0000)
Code:
stack=6, locals=4, args_size=3
start local 0 // sun.security.provider.SHA3 this
start local 1 // byte[] out
start local 2 // int ofs
0: .line 104
aload 0 /* this */
getfield sun.security.provider.SHA3.suffix:B
aload 0 /* this */
getfield sun.security.provider.SHA3.buffer:[B
aload 0 /* this */
getfield sun.security.provider.SHA3.bytesProcessed:J
aload 0 /* this */
getfield sun.security.provider.SHA3.buffer:[B
arraylength
i2l
lrem
l2i
invokestatic sun.security.provider.SHA3.setPaddingBytes:(B[BI)I
1: .line 103
istore 3 /* numOfPadding */
start local 3 // int numOfPadding
2: .line 105
iload 3 /* numOfPadding */
iconst_1
if_icmpge 4
3: .line 106
new java.security.ProviderException
dup
new java.lang.StringBuilder
dup
ldc "Incorrect pad size: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3 /* numOfPadding */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.security.ProviderException.<init>:(Ljava/lang/String;)V
athrow
4: .line 108
StackMap locals: int
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield sun.security.provider.SHA3.buffer:[B
iconst_0
invokevirtual sun.security.provider.SHA3.implCompress:([BI)V
5: .line 109
aload 0 /* this */
getfield sun.security.provider.SHA3.state:[B
iconst_0
aload 1 /* out */
iload 2 /* ofs */
aload 0 /* this */
invokevirtual sun.security.provider.SHA3.engineGetDigestLength:()I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: .line 110
return
end local 3 // int numOfPadding
end local 2 // int ofs
end local 1 // byte[] out
end local 0 // sun.security.provider.SHA3 this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/provider/SHA3;
0 7 1 out [B
0 7 2 ofs I
2 7 3 numOfPadding I
MethodParameters:
Name Flags
out
ofs
void implReset();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 // sun.security.provider.SHA3 this
0: .line 116
aload 0 /* this */
getfield sun.security.provider.SHA3.state:[B
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
1: .line 117
aload 0 /* this */
getfield sun.security.provider.SHA3.lanes:[J
lconst_0
invokestatic java.util.Arrays.fill:([JJ)V
2: .line 118
return
end local 0 // sun.security.provider.SHA3 this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/provider/SHA3;
private static int setPaddingBytes(byte, byte[], int);
descriptor: (B[BI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 // byte suffix
start local 1 // byte[] in
start local 2 // int len
0: .line 126
iload 2 /* len */
aload 1 /* in */
arraylength
if_icmpeq 4
1: .line 128
aload 1 /* in */
iload 2 /* len */
aload 1 /* in */
arraylength
iconst_0
invokestatic java.util.Arrays.fill:([BIIB)V
2: .line 131
aload 1 /* in */
iload 2 /* len */
dup2
baload
iload 0 /* suffix */
ior
i2b
bastore
3: .line 132
aload 1 /* in */
aload 1 /* in */
arraylength
iconst_1
isub
dup2
baload
bipush -128
ior
i2b
bastore
4: .line 134
StackMap locals:
StackMap stack:
aload 1 /* in */
arraylength
iload 2 /* len */
isub
ireturn
end local 2 // int len
end local 1 // byte[] in
end local 0 // byte suffix
LocalVariableTable:
Start End Slot Name Signature
0 5 0 suffix B
0 5 1 in [B
0 5 2 len I
MethodParameters:
Name Flags
suffix
in
len
private static void bytes2Lanes(byte[], long[]);
descriptor: ([B[J)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 // byte[] s
start local 1 // long[] m
0: .line 142
iconst_0
istore 2 /* sOfs */
start local 2 // int sOfs
1: .line 144
iconst_0
istore 3 /* y */
start local 3 // int y
2: goto 5
3: .line 145
StackMap locals: int int
StackMap stack:
aload 0 /* s */
iload 2 /* sOfs */
aload 1 /* m */
iconst_5
iload 3 /* y */
imul
bipush 40
invokestatic sun.security.provider.ByteArrayAccess.b2lLittle:([BI[JII)V
4: .line 144
iinc 3 /* y */ 1
iinc 2 /* sOfs */ 40
StackMap locals:
StackMap stack:
5: iload 3 /* y */
iconst_5
if_icmplt 3
end local 3 // int y
6: .line 147
return
end local 2 // int sOfs
end local 1 // long[] m
end local 0 // byte[] s
LocalVariableTable:
Start End Slot Name Signature
0 7 0 s [B
0 7 1 m [J
1 7 2 sOfs I
2 6 3 y I
MethodParameters:
Name Flags
s
m
private static void lanes2Bytes(long[], byte[]);
descriptor: ([J[B)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 // long[] m
start local 1 // byte[] s
0: .line 154
iconst_0
istore 2 /* sOfs */
start local 2 // int sOfs
1: .line 156
iconst_0
istore 3 /* y */
start local 3 // int y
2: goto 5
3: .line 157
StackMap locals: int int
StackMap stack:
aload 0 /* m */
iconst_5
iload 3 /* y */
imul
aload 1 /* s */
iload 2 /* sOfs */
bipush 40
invokestatic sun.security.provider.ByteArrayAccess.l2bLittle:([JI[BII)V
4: .line 156
iinc 3 /* y */ 1
iinc 2 /* sOfs */ 40
StackMap locals:
StackMap stack:
5: iload 3 /* y */
iconst_5
if_icmplt 3
end local 3 // int y
6: .line 159
return
end local 2 // int sOfs
end local 1 // byte[] s
end local 0 // long[] m
LocalVariableTable:
Start End Slot Name Signature
0 7 0 m [J
0 7 1 s [B
1 7 2 sOfs I
2 6 3 y I
MethodParameters:
Name Flags
m
s
private static long[] smTheta(long[]);
descriptor: ([J)[J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=22, args_size=1
start local 0 // long[] a
0: .line 165
aload 0 /* a */
iconst_0
laload
aload 0 /* a */
iconst_5
laload
lxor
aload 0 /* a */
bipush 10
laload
lxor
aload 0 /* a */
bipush 15
laload
lxor
aload 0 /* a */
bipush 20
laload
lxor
lstore 1 /* c0 */
start local 1 // long c0
1: .line 166
aload 0 /* a */
iconst_1
laload
aload 0 /* a */
bipush 6
laload
lxor
aload 0 /* a */
bipush 11
laload
lxor
aload 0 /* a */
bipush 16
laload
lxor
aload 0 /* a */
bipush 21
laload
lxor
lstore 3 /* c1 */
start local 3 // long c1
2: .line 167
aload 0 /* a */
iconst_2
laload
aload 0 /* a */
bipush 7
laload
lxor
aload 0 /* a */
bipush 12
laload
lxor
aload 0 /* a */
bipush 17
laload
lxor
aload 0 /* a */
bipush 22
laload
lxor
lstore 5 /* c2 */
start local 5 // long c2
3: .line 168
aload 0 /* a */
iconst_3
laload
aload 0 /* a */
bipush 8
laload
lxor
aload 0 /* a */
bipush 13
laload
lxor
aload 0 /* a */
bipush 18
laload
lxor
aload 0 /* a */
bipush 23
laload
lxor
lstore 7 /* c3 */
start local 7 // long c3
4: .line 169
aload 0 /* a */
iconst_4
laload
aload 0 /* a */
bipush 9
laload
lxor
aload 0 /* a */
bipush 14
laload
lxor
aload 0 /* a */
bipush 19
laload
lxor
aload 0 /* a */
bipush 24
laload
lxor
lstore 9 /* c4 */
start local 9 // long c4
5: .line 170
lload 9 /* c4 */
lload 3 /* c1 */
iconst_1
invokestatic java.lang.Long.rotateLeft:(JI)J
lxor
lstore 11 /* d0 */
start local 11 // long d0
6: .line 171
lload 1 /* c0 */
lload 5 /* c2 */
iconst_1
invokestatic java.lang.Long.rotateLeft:(JI)J
lxor
lstore 13 /* d1 */
start local 13 // long d1
7: .line 172
lload 3 /* c1 */
lload 7 /* c3 */
iconst_1
invokestatic java.lang.Long.rotateLeft:(JI)J
lxor
lstore 15 /* d2 */
start local 15 // long d2
8: .line 173
lload 5 /* c2 */
lload 9 /* c4 */
iconst_1
invokestatic java.lang.Long.rotateLeft:(JI)J
lxor
lstore 17 /* d3 */
start local 17 // long d3
9: .line 174
lload 7 /* c3 */
lload 1 /* c0 */
iconst_1
invokestatic java.lang.Long.rotateLeft:(JI)J
lxor
lstore 19 /* d4 */
start local 19 // long d4
10: .line 175
iconst_0
istore 21 /* y */
start local 21 // int y
11: goto 18
12: .line 176
StackMap locals: long[] long long long long long long long long long long int
StackMap stack:
aload 0 /* a */
iload 21 /* y */
dup2
laload
lload 11 /* d0 */
lxor
lastore
13: .line 177
aload 0 /* a */
iload 21 /* y */
iconst_1
iadd
dup2
laload
lload 13 /* d1 */
lxor
lastore
14: .line 178
aload 0 /* a */
iload 21 /* y */
iconst_2
iadd
dup2
laload
lload 15 /* d2 */
lxor
lastore
15: .line 179
aload 0 /* a */
iload 21 /* y */
iconst_3
iadd
dup2
laload
lload 17 /* d3 */
lxor
lastore
16: .line 180
aload 0 /* a */
iload 21 /* y */
iconst_4
iadd
dup2
laload
lload 19 /* d4 */
lxor
lastore
17: .line 175
iinc 21 /* y */ 5
StackMap locals:
StackMap stack:
18: iload 21 /* y */
aload 0 /* a */
arraylength
if_icmplt 12
end local 21 // int y
19: .line 182
aload 0 /* a */
areturn
end local 19 // long d4
end local 17 // long d3
end local 15 // long d2
end local 13 // long d1
end local 11 // long d0
end local 9 // long c4
end local 7 // long c3
end local 5 // long c2
end local 3 // long c1
end local 1 // long c0
end local 0 // long[] a
LocalVariableTable:
Start End Slot Name Signature
0 20 0 a [J
1 20 1 c0 J
2 20 3 c1 J
3 20 5 c2 J
4 20 7 c3 J
5 20 9 c4 J
6 20 11 d0 J
7 20 13 d1 J
8 20 15 d2 J
9 20 17 d3 J
10 20 19 d4 J
11 19 21 y I
MethodParameters:
Name Flags
a
private static long[] smPiRho(long[]);
descriptor: ([J)[J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 // long[] a
0: .line 199
aload 0 /* a */
bipush 10
laload
iconst_3
invokestatic java.lang.Long.rotateLeft:(JI)J
lstore 1 /* tmp */
start local 1 // long tmp
1: .line 200
aload 0 /* a */
bipush 10
aload 0 /* a */
iconst_1
laload
iconst_1
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
2: .line 201
aload 0 /* a */
iconst_1
aload 0 /* a */
bipush 6
laload
bipush 44
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
3: .line 202
aload 0 /* a */
bipush 6
aload 0 /* a */
bipush 9
laload
bipush 20
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
4: .line 203
aload 0 /* a */
bipush 9
aload 0 /* a */
bipush 22
laload
bipush 61
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
5: .line 204
aload 0 /* a */
bipush 22
aload 0 /* a */
bipush 14
laload
bipush 39
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
6: .line 205
aload 0 /* a */
bipush 14
aload 0 /* a */
bipush 20
laload
bipush 18
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
7: .line 206
aload 0 /* a */
bipush 20
aload 0 /* a */
iconst_2
laload
bipush 62
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
8: .line 207
aload 0 /* a */
iconst_2
aload 0 /* a */
bipush 12
laload
bipush 43
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
9: .line 208
aload 0 /* a */
bipush 12
aload 0 /* a */
bipush 13
laload
bipush 25
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
10: .line 209
aload 0 /* a */
bipush 13
aload 0 /* a */
bipush 19
laload
bipush 8
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
11: .line 210
aload 0 /* a */
bipush 19
aload 0 /* a */
bipush 23
laload
bipush 56
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
12: .line 211
aload 0 /* a */
bipush 23
aload 0 /* a */
bipush 15
laload
bipush 41
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
13: .line 212
aload 0 /* a */
bipush 15
aload 0 /* a */
iconst_4
laload
bipush 27
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
14: .line 213
aload 0 /* a */
iconst_4
aload 0 /* a */
bipush 24
laload
bipush 14
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
15: .line 214
aload 0 /* a */
bipush 24
aload 0 /* a */
bipush 21
laload
iconst_2
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
16: .line 215
aload 0 /* a */
bipush 21
aload 0 /* a */
bipush 8
laload
bipush 55
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
17: .line 216
aload 0 /* a */
bipush 8
aload 0 /* a */
bipush 16
laload
bipush 45
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
18: .line 217
aload 0 /* a */
bipush 16
aload 0 /* a */
iconst_5
laload
bipush 36
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
19: .line 218
aload 0 /* a */
iconst_5
aload 0 /* a */
iconst_3
laload
bipush 28
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
20: .line 219
aload 0 /* a */
iconst_3
aload 0 /* a */
bipush 18
laload
bipush 21
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
21: .line 220
aload 0 /* a */
bipush 18
aload 0 /* a */
bipush 17
laload
bipush 15
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
22: .line 221
aload 0 /* a */
bipush 17
aload 0 /* a */
bipush 11
laload
bipush 10
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
23: .line 222
aload 0 /* a */
bipush 11
aload 0 /* a */
bipush 7
laload
bipush 6
invokestatic java.lang.Long.rotateLeft:(JI)J
lastore
24: .line 223
aload 0 /* a */
bipush 7
lload 1 /* tmp */
lastore
25: .line 224
aload 0 /* a */
areturn
end local 1 // long tmp
end local 0 // long[] a
LocalVariableTable:
Start End Slot Name Signature
0 26 0 a [J
1 26 1 tmp J
MethodParameters:
Name Flags
a
private static long[] smChi(long[]);
descriptor: ([J)[J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=12, args_size=1
start local 0 // long[] a
0: .line 231
iconst_0
istore 1 /* y */
start local 1 // int y
1: goto 13
2: .line 232
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 1 /* y */
laload
lstore 2 /* ay0 */
start local 2 // long ay0
3: .line 233
aload 0 /* a */
iload 1 /* y */
iconst_1
iadd
laload
lstore 4 /* ay1 */
start local 4 // long ay1
4: .line 234
aload 0 /* a */
iload 1 /* y */
iconst_2
iadd
laload
lstore 6 /* ay2 */
start local 6 // long ay2
5: .line 235
aload 0 /* a */
iload 1 /* y */
iconst_3
iadd
laload
lstore 8 /* ay3 */
start local 8 // long ay3
6: .line 236
aload 0 /* a */
iload 1 /* y */
iconst_4
iadd
laload
lstore 10 /* ay4 */
start local 10 // long ay4
7: .line 237
aload 0 /* a */
iload 1 /* y */
lload 2 /* ay0 */
lload 4 /* ay1 */
ldc -1
lxor
lload 6 /* ay2 */
land
lxor
lastore
8: .line 238
aload 0 /* a */
iload 1 /* y */
iconst_1
iadd
lload 4 /* ay1 */
lload 6 /* ay2 */
ldc -1
lxor
lload 8 /* ay3 */
land
lxor
lastore
9: .line 239
aload 0 /* a */
iload 1 /* y */
iconst_2
iadd
lload 6 /* ay2 */
lload 8 /* ay3 */
ldc -1
lxor
lload 10 /* ay4 */
land
lxor
lastore
10: .line 240
aload 0 /* a */
iload 1 /* y */
iconst_3
iadd
lload 8 /* ay3 */
lload 10 /* ay4 */
ldc -1
lxor
lload 2 /* ay0 */
land
lxor
lastore
11: .line 241
aload 0 /* a */
iload 1 /* y */
iconst_4
iadd
lload 10 /* ay4 */
lload 2 /* ay0 */
ldc -1
lxor
lload 4 /* ay1 */
land
lxor
lastore
end local 10 // long ay4
end local 8 // long ay3
end local 6 // long ay2
end local 4 // long ay1
end local 2 // long ay0
12: .line 231
iinc 1 /* y */ 5
StackMap locals:
StackMap stack:
13: iload 1 /* y */
aload 0 /* a */
arraylength
if_icmplt 2
end local 1 // int y
14: .line 243
aload 0 /* a */
areturn
end local 0 // long[] a
LocalVariableTable:
Start End Slot Name Signature
0 15 0 a [J
1 14 1 y I
3 12 2 ay0 J
4 12 4 ay1 J
5 12 6 ay2 J
6 12 8 ay3 J
7 12 10 ay4 J
MethodParameters:
Name Flags
a
private static long[] smIota(long[], int);
descriptor: ([JI)[J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=2
start local 0 // long[] a
start local 1 // int rndIndex
0: .line 250
aload 0 /* a */
iconst_0
dup2
laload
getstatic sun.security.provider.SHA3.RC_CONSTANTS:[J
iload 1 /* rndIndex */
laload
lxor
lastore
1: .line 251
aload 0 /* a */
areturn
end local 1 // int rndIndex
end local 0 // long[] a
LocalVariableTable:
Start End Slot Name Signature
0 2 0 a [J
0 2 1 rndIndex I
MethodParameters:
Name Flags
a
rndIndex
private void keccak();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 // sun.security.provider.SHA3 this
0: .line 260
aload 0 /* this */
getfield sun.security.provider.SHA3.state:[B
aload 0 /* this */
getfield sun.security.provider.SHA3.lanes:[J
invokestatic sun.security.provider.SHA3.bytes2Lanes:([B[J)V
1: .line 262
iconst_0
istore 1 /* ir */
start local 1 // int ir
2: goto 5
3: .line 263
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield sun.security.provider.SHA3.lanes:[J
invokestatic sun.security.provider.SHA3.smTheta:([J)[J
invokestatic sun.security.provider.SHA3.smPiRho:([J)[J
invokestatic sun.security.provider.SHA3.smChi:([J)[J
iload 1 /* ir */
invokestatic sun.security.provider.SHA3.smIota:([JI)[J
pop
4: .line 262
iinc 1 /* ir */ 1
StackMap locals:
StackMap stack:
5: iload 1 /* ir */
bipush 24
if_icmplt 3
end local 1 // int ir
6: .line 266
aload 0 /* this */
getfield sun.security.provider.SHA3.lanes:[J
aload 0 /* this */
getfield sun.security.provider.SHA3.state:[B
invokestatic sun.security.provider.SHA3.lanes2Bytes:([J[B)V
7: .line 267
return
end local 0 // sun.security.provider.SHA3 this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/provider/SHA3;
2 6 1 ir I
public java.lang.Object clone();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 // sun.security.provider.SHA3 this
0: .line 270
aload 0 /* this */
invokespecial sun.security.provider.DigestBase.clone:()Ljava/lang/Object;
checkcast sun.security.provider.SHA3
astore 1 /* copy */
start local 1 // sun.security.provider.SHA3 copy
1: .line 271
aload 1 /* copy */
aload 1 /* copy */
getfield sun.security.provider.SHA3.state:[B
invokevirtual byte[].clone:()Ljava/lang/Object;
checkcast byte[]
putfield sun.security.provider.SHA3.state:[B
2: .line 272
aload 1 /* copy */
bipush 25
newarray 11
putfield sun.security.provider.SHA3.lanes:[J
3: .line 273
aload 1 /* copy */
areturn
end local 1 // sun.security.provider.SHA3 copy
end local 0 // sun.security.provider.SHA3 this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/provider/SHA3;
1 4 1 copy Lsun/security/provider/SHA3;
Exceptions:
throws java.lang.CloneNotSupportedException
}
SourceFile: "SHA3.java"
NestMembers:
sun.security.provider.SHA3$SHA224 sun.security.provider.SHA3$SHA256 sun.security.provider.SHA3$SHA384 sun.security.provider.SHA3$SHA512
InnerClasses:
public final SHA224 = sun.security.provider.SHA3$SHA224 of sun.security.provider.SHA3
public final SHA256 = sun.security.provider.SHA3$SHA256 of sun.security.provider.SHA3
public final SHA384 = sun.security.provider.SHA3$SHA384 of sun.security.provider.SHA3
public final SHA512 = sun.security.provider.SHA3$SHA512 of sun.security.provider.SHA3