public final class io.netty.util.internal.ConstantTimeUtils
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.netty.util.internal.ConstantTimeUtils
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // io.netty.util.internal.ConstantTimeUtils this
0: .line 19
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // io.netty.util.internal.ConstantTimeUtils this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/util/internal/ConstantTimeUtils;
public static int equalsConstantTime(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 // int x
start local 1 // int y
0: .line 37
iconst_m1
iload 0 /* x */
iload 1 /* y */
ixor
ixor
istore 2 /* z */
start local 2 // int z
1: .line 38
iload 2 /* z */
iload 2 /* z */
bipush 16
ishr
iand
istore 2 /* z */
2: .line 39
iload 2 /* z */
iload 2 /* z */
bipush 8
ishr
iand
istore 2 /* z */
3: .line 40
iload 2 /* z */
iload 2 /* z */
iconst_4
ishr
iand
istore 2 /* z */
4: .line 41
iload 2 /* z */
iload 2 /* z */
iconst_2
ishr
iand
istore 2 /* z */
5: .line 42
iload 2 /* z */
iload 2 /* z */
iconst_1
ishr
iand
istore 2 /* z */
6: .line 43
iload 2 /* z */
iconst_1
iand
ireturn
end local 2 // int z
end local 1 // int y
end local 0 // int x
LocalVariableTable:
Start End Slot Name Signature
0 7 0 x I
0 7 1 y I
1 7 2 z I
MethodParameters:
Name Flags
x
y
public static int equalsConstantTime(long, long);
descriptor: (JJ)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=6, args_size=2
start local 0 // long x
start local 2 // long y
0: .line 62
ldc -1
lload 0 /* x */
lload 2 /* y */
lxor
lxor
lstore 4 /* z */
start local 4 // long z
1: .line 63
lload 4 /* z */
lload 4 /* z */
bipush 32
lshr
land
lstore 4 /* z */
2: .line 64
lload 4 /* z */
lload 4 /* z */
bipush 16
lshr
land
lstore 4 /* z */
3: .line 65
lload 4 /* z */
lload 4 /* z */
bipush 8
lshr
land
lstore 4 /* z */
4: .line 66
lload 4 /* z */
lload 4 /* z */
iconst_4
lshr
land
lstore 4 /* z */
5: .line 67
lload 4 /* z */
lload 4 /* z */
iconst_2
lshr
land
lstore 4 /* z */
6: .line 68
lload 4 /* z */
lload 4 /* z */
iconst_1
lshr
land
lstore 4 /* z */
7: .line 69
lload 4 /* z */
lconst_1
land
l2i
ireturn
end local 4 // long z
end local 2 // long y
end local 0 // long x
LocalVariableTable:
Start End Slot Name Signature
0 8 0 x J
0 8 2 y J
1 8 4 z J
MethodParameters:
Name Flags
x
y
public static int equalsConstantTime(byte[], int, byte[], int, int);
descriptor: ([BI[BII)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=5
start local 0 // byte[] bytes1
start local 1 // int startPos1
start local 2 // byte[] bytes2
start local 3 // int startPos2
start local 4 // int length
0: .line 96
iconst_0
istore 5 /* b */
start local 5 // int b
1: .line 97
iload 1 /* startPos1 */
iload 4 /* length */
iadd
istore 6 /* end */
start local 6 // int end
2: .line 98
goto 5
3: .line 99
StackMap locals: int int
StackMap stack:
iload 5 /* b */
aload 0 /* bytes1 */
iload 1 /* startPos1 */
baload
aload 2 /* bytes2 */
iload 3 /* startPos2 */
baload
ixor
ior
istore 5 /* b */
4: .line 98
iinc 1 /* startPos1 */ 1
iinc 3 /* startPos2 */ 1
StackMap locals:
StackMap stack:
5: iload 1 /* startPos1 */
iload 6 /* end */
if_icmplt 3
6: .line 101
iload 5 /* b */
iconst_0
invokestatic io.netty.util.internal.ConstantTimeUtils.equalsConstantTime:(II)I
ireturn
end local 6 // int end
end local 5 // int b
end local 4 // int length
end local 3 // int startPos2
end local 2 // byte[] bytes2
end local 1 // int startPos1
end local 0 // byte[] bytes1
LocalVariableTable:
Start End Slot Name Signature
0 7 0 bytes1 [B
0 7 1 startPos1 I
0 7 2 bytes2 [B
0 7 3 startPos2 I
0 7 4 length I
1 7 5 b I
2 7 6 end I
MethodParameters:
Name Flags
bytes1
startPos1
bytes2
startPos2
length
public static int equalsConstantTime(java.lang.CharSequence, java.lang.CharSequence);
descriptor: (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 // java.lang.CharSequence s1
start local 1 // java.lang.CharSequence s2
0: .line 120
aload 0 /* s1 */
invokeinterface java.lang.CharSequence.length:()I
aload 1 /* s2 */
invokeinterface java.lang.CharSequence.length:()I
if_icmpeq 2
1: .line 121
iconst_0
ireturn
2: .line 125
StackMap locals:
StackMap stack:
iconst_0
istore 2 /* c */
start local 2 // int c
3: .line 126
iconst_0
istore 3 /* i */
start local 3 // int i
4: goto 7
5: .line 127
StackMap locals: int int
StackMap stack:
iload 2 /* c */
aload 0 /* s1 */
iload 3 /* i */
invokeinterface java.lang.CharSequence.charAt:(I)C
aload 1 /* s2 */
iload 3 /* i */
invokeinterface java.lang.CharSequence.charAt:(I)C
ixor
ior
istore 2 /* c */
6: .line 126
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 3 /* i */
aload 0 /* s1 */
invokeinterface java.lang.CharSequence.length:()I
if_icmplt 5
end local 3 // int i
8: .line 129
iload 2 /* c */
iconst_0
invokestatic io.netty.util.internal.ConstantTimeUtils.equalsConstantTime:(II)I
ireturn
end local 2 // int c
end local 1 // java.lang.CharSequence s2
end local 0 // java.lang.CharSequence s1
LocalVariableTable:
Start End Slot Name Signature
0 9 0 s1 Ljava/lang/CharSequence;
0 9 1 s2 Ljava/lang/CharSequence;
3 9 2 c I
4 8 3 i I
MethodParameters:
Name Flags
s1
s2
}
SourceFile: "ConstantTimeUtils.java"