public class org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier implements org.bouncycastle.crypto.modes.gcm.GCMMultiplier
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier
super_class: java.lang.Object
{
private final int[][][] M;
descriptor: [[[I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier this
0: .line 5
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 7
aload 0 /* this */
bipush 32
bipush 16
multianewarray [[[I 2
putfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
2: .line 5
return
end local 0 // org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/crypto/modes/gcm/Tables8kGCMMultiplier;
public void init(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 // org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier this
start local 1 // byte[] H
0: .line 11
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iconst_0
aaload
iconst_0
iconst_4
newarray 10
aastore
1: .line 12
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iconst_1
aaload
iconst_0
iconst_4
newarray 10
aastore
2: .line 13
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iconst_1
aaload
bipush 8
aload 1 /* H */
invokestatic org.bouncycastle.crypto.modes.gcm.GCMUtil.asInts:([B)[I
aastore
3: .line 15
iconst_4
istore 2 /* j */
start local 2 // int j
4: goto 10
5: .line 17
StackMap locals: int
StackMap stack:
iconst_4
newarray 10
astore 3 /* tmp */
start local 3 // int[] tmp
6: .line 18
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iconst_1
aaload
iload 2 /* j */
iload 2 /* j */
iadd
aaload
iconst_0
aload 3 /* tmp */
iconst_0
iconst_4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: .line 20
aload 3 /* tmp */
invokestatic org.bouncycastle.crypto.modes.gcm.GCMUtil.multiplyP:([I)V
8: .line 21
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iconst_1
aaload
iload 2 /* j */
aload 3 /* tmp */
aastore
end local 3 // int[] tmp
9: .line 15
iload 2 /* j */
iconst_1
ishr
istore 2 /* j */
StackMap locals:
StackMap stack:
10: iload 2 /* j */
iconst_1
if_icmpge 5
end local 2 // int j
11: .line 25
iconst_4
newarray 10
astore 2 /* tmp */
start local 2 // int[] tmp
12: .line 26
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iconst_1
aaload
iconst_1
aaload
iconst_0
aload 2 /* tmp */
iconst_0
iconst_4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: .line 28
aload 2 /* tmp */
invokestatic org.bouncycastle.crypto.modes.gcm.GCMUtil.multiplyP:([I)V
14: .line 29
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iconst_0
aaload
bipush 8
aload 2 /* tmp */
aastore
end local 2 // int[] tmp
15: .line 32
iconst_4
istore 2 /* j */
start local 2 // int j
16: goto 22
17: .line 34
StackMap locals:
StackMap stack:
iconst_4
newarray 10
astore 3 /* tmp */
start local 3 // int[] tmp
18: .line 35
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iconst_0
aaload
iload 2 /* j */
iload 2 /* j */
iadd
aaload
iconst_0
aload 3 /* tmp */
iconst_0
iconst_4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
19: .line 37
aload 3 /* tmp */
invokestatic org.bouncycastle.crypto.modes.gcm.GCMUtil.multiplyP:([I)V
20: .line 38
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iconst_0
aaload
iload 2 /* j */
aload 3 /* tmp */
aastore
end local 3 // int[] tmp
21: .line 32
iload 2 /* j */
iconst_1
ishr
istore 2 /* j */
StackMap locals:
StackMap stack:
22: iload 2 /* j */
iconst_1
if_icmpge 17
end local 2 // int j
23: .line 41
iconst_0
istore 2 /* i */
start local 2 // int i
24: .line 44
StackMap locals:
StackMap stack:
iconst_2
istore 3 /* j */
start local 3 // int j
25: goto 35
26: .line 46
StackMap locals: int
StackMap stack:
iconst_1
istore 4 /* k */
start local 4 // int k
27: goto 33
28: .line 48
StackMap locals: int
StackMap stack:
iconst_4
newarray 10
astore 5 /* tmp */
start local 5 // int[] tmp
29: .line 49
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iload 2 /* i */
aaload
iload 3 /* j */
aaload
iconst_0
aload 5 /* tmp */
iconst_0
iconst_4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
30: .line 51
aload 5 /* tmp */
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iload 2 /* i */
aaload
iload 4 /* k */
aaload
invokestatic org.bouncycastle.crypto.modes.gcm.GCMUtil.xor:([I[I)V
31: .line 52
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iload 2 /* i */
aaload
iload 3 /* j */
iload 4 /* k */
iadd
aload 5 /* tmp */
aastore
end local 5 // int[] tmp
32: .line 46
iinc 4 /* k */ 1
StackMap locals:
StackMap stack:
33: iload 4 /* k */
iload 3 /* j */
if_icmplt 28
end local 4 // int k
34: .line 44
iload 3 /* j */
iload 3 /* j */
iadd
istore 3 /* j */
StackMap locals:
StackMap stack:
35: iload 3 /* j */
bipush 16
if_icmplt 26
end local 3 // int j
36: .line 56
iinc 2 /* i */ 1
iload 2 /* i */
bipush 32
if_icmpne 38
37: .line 58
return
38: .line 61
StackMap locals:
StackMap stack:
iload 2 /* i */
iconst_1
if_icmple 24
39: .line 63
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iload 2 /* i */
aaload
iconst_0
iconst_4
newarray 10
aastore
40: .line 64
bipush 8
istore 3 /* j */
start local 3 // int j
41: goto 47
42: .line 66
StackMap locals: int
StackMap stack:
iconst_4
newarray 10
astore 4 /* tmp */
start local 4 // int[] tmp
43: .line 67
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iload 2 /* i */
iconst_2
isub
aaload
iload 3 /* j */
aaload
iconst_0
aload 4 /* tmp */
iconst_0
iconst_4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
44: .line 69
aload 4 /* tmp */
invokestatic org.bouncycastle.crypto.modes.gcm.GCMUtil.multiplyP8:([I)V
45: .line 70
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iload 2 /* i */
aaload
iload 3 /* j */
aload 4 /* tmp */
aastore
end local 4 // int[] tmp
46: .line 64
iload 3 /* j */
iconst_1
ishr
istore 3 /* j */
StackMap locals:
StackMap stack:
47: iload 3 /* j */
ifgt 42
end local 3 // int j
48: .line 42
goto 24
end local 2 // int i
end local 1 // byte[] H
end local 0 // org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier this
LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lorg/bouncycastle/crypto/modes/gcm/Tables8kGCMMultiplier;
0 49 1 H [B
4 11 2 j I
6 9 3 tmp [I
12 15 2 tmp [I
16 23 2 j I
18 21 3 tmp [I
24 49 2 i I
25 36 3 j I
27 34 4 k I
29 32 5 tmp [I
41 48 3 j I
43 46 4 tmp [I
MethodParameters:
Name Flags
H
public void multiplyH(byte[]);
descriptor: ([B)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 // org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier this
start local 1 // byte[] x
0: .line 80
iconst_4
newarray 10
astore 2 /* z */
start local 2 // int[] z
1: .line 81
bipush 15
istore 3 /* i */
start local 3 // int i
2: goto 14
3: .line 84
StackMap locals: int[] int
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iload 3 /* i */
iload 3 /* i */
iadd
aaload
aload 1 /* x */
iload 3 /* i */
baload
bipush 15
iand
aaload
astore 4 /* m */
start local 4 // int[] m
4: .line 85
aload 2 /* z */
iconst_0
dup2
iaload
aload 4 /* m */
iconst_0
iaload
ixor
iastore
5: .line 86
aload 2 /* z */
iconst_1
dup2
iaload
aload 4 /* m */
iconst_1
iaload
ixor
iastore
6: .line 87
aload 2 /* z */
iconst_2
dup2
iaload
aload 4 /* m */
iconst_2
iaload
ixor
iastore
7: .line 88
aload 2 /* z */
iconst_3
dup2
iaload
aload 4 /* m */
iconst_3
iaload
ixor
iastore
8: .line 90
aload 0 /* this */
getfield org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier.M:[[[I
iload 3 /* i */
iload 3 /* i */
iadd
iconst_1
iadd
aaload
aload 1 /* x */
iload 3 /* i */
baload
sipush 240
iand
iconst_4
iushr
aaload
astore 4 /* m */
9: .line 91
aload 2 /* z */
iconst_0
dup2
iaload
aload 4 /* m */
iconst_0
iaload
ixor
iastore
10: .line 92
aload 2 /* z */
iconst_1
dup2
iaload
aload 4 /* m */
iconst_1
iaload
ixor
iastore
11: .line 93
aload 2 /* z */
iconst_2
dup2
iaload
aload 4 /* m */
iconst_2
iaload
ixor
iastore
12: .line 94
aload 2 /* z */
iconst_3
dup2
iaload
aload 4 /* m */
iconst_3
iaload
ixor
iastore
end local 4 // int[] m
13: .line 81
iinc 3 /* i */ -1
StackMap locals:
StackMap stack:
14: iload 3 /* i */
ifge 3
end local 3 // int i
15: .line 97
aload 2 /* z */
iconst_0
iaload
aload 1 /* x */
iconst_0
invokestatic org.bouncycastle.crypto.util.Pack.intToBigEndian:(I[BI)V
16: .line 98
aload 2 /* z */
iconst_1
iaload
aload 1 /* x */
iconst_4
invokestatic org.bouncycastle.crypto.util.Pack.intToBigEndian:(I[BI)V
17: .line 99
aload 2 /* z */
iconst_2
iaload
aload 1 /* x */
bipush 8
invokestatic org.bouncycastle.crypto.util.Pack.intToBigEndian:(I[BI)V
18: .line 100
aload 2 /* z */
iconst_3
iaload
aload 1 /* x */
bipush 12
invokestatic org.bouncycastle.crypto.util.Pack.intToBigEndian:(I[BI)V
19: .line 101
return
end local 2 // int[] z
end local 1 // byte[] x
end local 0 // org.bouncycastle.crypto.modes.gcm.Tables8kGCMMultiplier this
LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/bouncycastle/crypto/modes/gcm/Tables8kGCMMultiplier;
0 20 1 x [B
1 20 2 z [I
2 15 3 i I
4 13 4 m [I
MethodParameters:
Name Flags
x
}
SourceFile: "Tables8kGCMMultiplier.java"