This commit is contained in:
niko
2026-04-10 22:50:51 +02:00
parent 6d1607d5a2
commit f18d448581
17033 changed files with 2863270 additions and 0 deletions
@@ -0,0 +1,49 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001C41 RID: 7233
[Token(Token = "0x2001C41")]
public class BasicGcmExponentiator : IGcmExponentiator
{
// Token: 0x0600B4E7 RID: 46311 RVA: 0x00277A78 File Offset: 0x00275C78
[Token(Token = "0x600B4E7")]
[Address(RVA = "0x1C19D30", Offset = "0x1C18B30", VA = "0x181C19D30", Slot = "4")]
public void Init(byte[] x)
{
uint[] array = new uint[4];
int num = 0;
Pack.BE_To_UInt32(x, num, array);
this.x = array;
}
// Token: 0x0600B4E8 RID: 46312 RVA: 0x00277AA0 File Offset: 0x00275CA0
[Token(Token = "0x600B4E8")]
[Address(RVA = "0x1C19B90", Offset = "0x1C18990", VA = "0x181C19B90", Slot = "5")]
public void ExponentiateX(long pow, byte[] output)
{
uint[] array = new uint[4];
array[0] = (uint)((ulong)2147483648L);
uint[] array2 = Arrays.Clone(this.x);
GcmUtilities.Multiply(array, array2);
GcmUtilities.Multiply(array2, array2);
int num = 0;
Pack.UInt32_To_BE(array, output, num);
}
// Token: 0x0600B4E9 RID: 46313 RVA: 0x00277AF0 File Offset: 0x00275CF0
[Token(Token = "0x600B4E9")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public BasicGcmExponentiator()
{
}
// Token: 0x040072DA RID: 29402
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40072DA")]
private uint[] x;
}
}
@@ -0,0 +1,48 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001C42 RID: 7234
[Token(Token = "0x2001C42")]
public class BasicGcmMultiplier : IGcmMultiplier
{
// Token: 0x0600B4EA RID: 46314 RVA: 0x00277B04 File Offset: 0x00275D04
[Token(Token = "0x600B4EA")]
[Address(RVA = "0x1C19DE0", Offset = "0x1C18BE0", VA = "0x181C19DE0", Slot = "4")]
public void Init(byte[] H)
{
uint[] array = new uint[4];
int num = 0;
Pack.BE_To_UInt32(H, num, array);
this.H = array;
}
// Token: 0x0600B4EB RID: 46315 RVA: 0x00277B2C File Offset: 0x00275D2C
[Token(Token = "0x600B4EB")]
[Address(RVA = "0x1C19E90", Offset = "0x1C18C90", VA = "0x181C19E90", Slot = "5")]
public void MultiplyH(byte[] x)
{
uint[] array = new uint[4];
int num = 0;
Pack.BE_To_UInt32(x, num, array);
uint[] h = this.H;
GcmUtilities.Multiply(array, h);
int num2 = 0;
Pack.UInt32_To_BE(array, x, num2);
}
// Token: 0x0600B4EC RID: 46316 RVA: 0x00277B64 File Offset: 0x00275D64
[Token(Token = "0x600B4EC")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public BasicGcmMultiplier()
{
}
// Token: 0x040072DB RID: 29403
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40072DB")]
private uint[] H;
}
}
@@ -0,0 +1,441 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001C43 RID: 7235
[Token(Token = "0x2001C43")]
internal abstract class GcmUtilities
{
// Token: 0x0600B4ED RID: 46317 RVA: 0x00277B78 File Offset: 0x00275D78
[Token(Token = "0x600B4ED")]
[Address(RVA = "0x1C250F0", Offset = "0x1C23EF0", VA = "0x181C250F0")]
private static uint[] GenerateLookup()
{
uint[] array = new uint[256];
int num = 0;
num++;
array[0] = (uint)256;
return array;
}
// Token: 0x0600B4EE RID: 46318 RVA: 0x00277BAC File Offset: 0x00275DAC
[Token(Token = "0x600B4EE")]
[Address(RVA = "0x1C25B00", Offset = "0x1C24900", VA = "0x181C25B00")]
internal static byte[] OneAsBytes()
{
byte[] array = new byte[16];
array[0] = (byte)((ulong)128L);
return array;
}
// Token: 0x0600B4EF RID: 46319 RVA: 0x00277BD8 File Offset: 0x00275DD8
[Token(Token = "0x600B4EF")]
[Address(RVA = "0x1C25B60", Offset = "0x1C24960", VA = "0x181C25B60")]
internal static uint[] OneAsUints()
{
uint[] array = new uint[4];
array[0] = (uint)((ulong)2147483648L);
return array;
}
// Token: 0x0600B4F0 RID: 46320 RVA: 0x00277C04 File Offset: 0x00275E04
[Token(Token = "0x600B4F0")]
[Address(RVA = "0x1C25BC0", Offset = "0x1C249C0", VA = "0x181C25BC0")]
internal static ulong[] OneAsUlongs()
{
ulong[] array = new ulong[2];
array[0] = (ulong)long.MinValue;
return array;
}
// Token: 0x0600B4F1 RID: 46321 RVA: 0x00277C30 File Offset: 0x00275E30
[Token(Token = "0x600B4F1")]
[Address(RVA = "0x1C24FF0", Offset = "0x1C23DF0", VA = "0x181C24FF0")]
internal static byte[] AsBytes(uint[] x)
{
return Pack.UInt32_To_BE(x);
}
// Token: 0x0600B4F2 RID: 46322 RVA: 0x00277C44 File Offset: 0x00275E44
[Token(Token = "0x600B4F2")]
[Address(RVA = "0x1C25000", Offset = "0x1C23E00", VA = "0x181C25000")]
internal static void AsBytes(uint[] x, byte[] z)
{
int num = 0;
Pack.UInt32_To_BE(x, z, num);
}
// Token: 0x0600B4F3 RID: 46323 RVA: 0x00277C5C File Offset: 0x00275E5C
[Token(Token = "0x600B4F3")]
[Address(RVA = "0x1C24F80", Offset = "0x1C23D80", VA = "0x181C24F80")]
internal static byte[] AsBytes(ulong[] x)
{
byte[] array = new byte[16];
int num = 0;
Pack.UInt64_To_BE(x, array, num);
return array;
}
// Token: 0x0600B4F4 RID: 46324 RVA: 0x00277C7C File Offset: 0x00275E7C
[Token(Token = "0x600B4F4")]
[Address(RVA = "0x1C24FE0", Offset = "0x1C23DE0", VA = "0x181C24FE0")]
internal static void AsBytes(ulong[] x, byte[] z)
{
int num = 0;
Pack.UInt64_To_BE(x, z, num);
}
// Token: 0x0600B4F5 RID: 46325 RVA: 0x00277C94 File Offset: 0x00275E94
[Token(Token = "0x600B4F5")]
[Address(RVA = "0x1C25020", Offset = "0x1C23E20", VA = "0x181C25020")]
internal static uint[] AsUints(byte[] bs)
{
uint[] array = new uint[4];
int num = 0;
Pack.BE_To_UInt32(bs, num, array);
return array;
}
// Token: 0x0600B4F6 RID: 46326 RVA: 0x00277CB4 File Offset: 0x00275EB4
[Token(Token = "0x600B4F6")]
[Address(RVA = "0x1C25010", Offset = "0x1C23E10", VA = "0x181C25010")]
internal static void AsUints(byte[] bs, uint[] output)
{
int num = 0;
Pack.BE_To_UInt32(bs, num, output);
}
// Token: 0x0600B4F7 RID: 46327 RVA: 0x00277CCC File Offset: 0x00275ECC
[Token(Token = "0x600B4F7")]
[Address(RVA = "0x1C25080", Offset = "0x1C23E80", VA = "0x181C25080")]
internal static ulong[] AsUlongs(byte[] x)
{
ulong[] array = new ulong[2];
int num = 0;
Pack.BE_To_UInt64(x, num, array);
return array;
}
// Token: 0x0600B4F8 RID: 46328 RVA: 0x00277CEC File Offset: 0x00275EEC
[Token(Token = "0x600B4F8")]
[Address(RVA = "0x1C250E0", Offset = "0x1C23EE0", VA = "0x181C250E0")]
public static void AsUlongs(byte[] x, ulong[] z)
{
int num = 0;
Pack.BE_To_UInt64(x, num, z);
}
// Token: 0x0600B4F9 RID: 46329 RVA: 0x00277D04 File Offset: 0x00275F04
[Token(Token = "0x600B4F9")]
[Address(RVA = "0x1C258B0", Offset = "0x1C246B0", VA = "0x181C258B0")]
internal static void Multiply(byte[] x, byte[] y)
{
uint[] array = new uint[4];
int num = 0;
Pack.BE_To_UInt32(x, num, array);
uint[] array2 = new uint[4];
int num2 = 0;
Pack.BE_To_UInt32(y, num2, array2);
GcmUtilities.Multiply(array, array2);
int num3 = 0;
Pack.UInt32_To_BE(array, x, num3);
}
// Token: 0x0600B4FA RID: 46330 RVA: 0x00277D48 File Offset: 0x00275F48
[Token(Token = "0x600B4FA")]
[Address(RVA = "0x1C256D0", Offset = "0x1C244D0", VA = "0x181C256D0")]
internal static void Multiply(uint[] x, uint[] y)
{
int length = x.Length;
int num = 0;
uint num2 = y[num];
num2 += num2;
while (num != y.Length)
{
}
num++;
x[0] = (uint)num;
x[0] = (uint)num;
x[1] = (uint)num;
x[1] = (uint)num;
}
// Token: 0x0600B4FB RID: 46331 RVA: 0x00277DA0 File Offset: 0x00275FA0
[Token(Token = "0x600B4FB")]
[Address(RVA = "0x1C259C0", Offset = "0x1C247C0", VA = "0x181C259C0")]
internal static void Multiply(ulong[] x, ulong[] y)
{
int length = x.Length;
ulong num = x[1];
int num2 = 0;
ulong num3 = y[num2];
num3 += num3;
while (num2 != y.Length)
{
}
num2++;
x[0] = (ulong)num2;
x[1] = (ulong)num2;
}
// Token: 0x0600B4FC RID: 46332 RVA: 0x00277DF0 File Offset: 0x00275FF0
[Token(Token = "0x600B4FC")]
[Address(RVA = "0x1C25410", Offset = "0x1C24210", VA = "0x181C25410")]
internal static void MultiplyP(uint[] x)
{
uint num = x[0];
x[0] = num;
uint num2 = x[0];
num = num2;
x[0] = num;
uint num3 = x[1];
x[1] = num2;
x[1] = num3;
}
// Token: 0x0600B4FD RID: 46333 RVA: 0x00277E40 File Offset: 0x00276040
[Token(Token = "0x600B4FD")]
[Address(RVA = "0x1C25520", Offset = "0x1C24320", VA = "0x181C25520")]
internal static void MultiplyP(uint[] x, uint[] z)
{
uint num = x[0];
z[0] = num;
uint num2 = x[0];
num = num2;
z[0] = num;
uint num3 = x[1];
z[1] = num2;
z[1] = num3;
}
// Token: 0x0600B4FE RID: 46334 RVA: 0x00277E90 File Offset: 0x00276090
[Token(Token = "0x600B4FE")]
[Address(RVA = "0x1C252C0", Offset = "0x1C240C0", VA = "0x181C252C0")]
internal static void MultiplyP8(uint[] x)
{
uint num = x[0];
x[0] = num;
uint num2 = x[0];
num = num2;
x[0] = num;
uint num3 = x[1];
x[1] = num2;
num = x[1];
x[1] = num3;
}
// Token: 0x0600B4FF RID: 46335 RVA: 0x00277EE8 File Offset: 0x002760E8
[Token(Token = "0x600B4FF")]
[Address(RVA = "0x1C25200", Offset = "0x1C24000", VA = "0x181C25200")]
internal static void MultiplyP8(uint[] x, uint[] y)
{
uint num = GcmUtilities.ShiftRightN(x, 8, y);
}
// Token: 0x0600B500 RID: 46336 RVA: 0x00277F04 File Offset: 0x00276104
[Token(Token = "0x600B500")]
[Address(RVA = "0x1C25E90", Offset = "0x1C24C90", VA = "0x181C25E90")]
internal static uint ShiftRight(uint[] x)
{
uint num = x[0];
x[0] = num;
uint num2 = x[0];
num = num2;
x[0] = num;
uint num3 = x[1];
x[1] = num2;
uint num4 = x[1];
x[1] = num3;
return num4;
}
// Token: 0x0600B501 RID: 46337 RVA: 0x00277F60 File Offset: 0x00276160
[Token(Token = "0x600B501")]
[Address(RVA = "0x1C25F50", Offset = "0x1C24D50", VA = "0x181C25F50")]
internal static uint ShiftRight(uint[] x, uint[] z)
{
uint num = x[0];
z[0] = num;
uint num2 = x[0];
num = num2;
z[0] = num;
uint num3 = x[1];
z[1] = num2;
uint num4 = x[1];
z[1] = num3;
return num4;
}
// Token: 0x0600B502 RID: 46338 RVA: 0x00277FB8 File Offset: 0x002761B8
[Token(Token = "0x600B502")]
[Address(RVA = "0x1C25DA0", Offset = "0x1C24BA0", VA = "0x181C25DA0")]
internal static uint ShiftRightN(uint[] x, int n)
{
uint num = x[0];
x[0] = num;
uint num2 = x[0];
num = num2;
x[0] = num;
uint num3 = x[1];
x[1] = num2;
uint num4 = x[1];
x[1] = num3;
return num4;
}
// Token: 0x0600B503 RID: 46339 RVA: 0x00278014 File Offset: 0x00276214
[Token(Token = "0x600B503")]
[Address(RVA = "0x1C25C30", Offset = "0x1C24A30", VA = "0x181C25C30")]
internal static uint ShiftRightN(uint[] x, int n, uint[] z)
{
uint num = x[0];
z[0] = num;
uint num2 = x[0];
num = num2;
z[0] = num;
uint num3 = x[1];
z[1] = num2;
uint num4 = x[1];
z[1] = num3;
return num4;
}
// Token: 0x0600B504 RID: 46340 RVA: 0x00278070 File Offset: 0x00276270
[Token(Token = "0x600B504")]
[Address(RVA = "0x1C266E0", Offset = "0x1C254E0", VA = "0x181C266E0")]
internal static void Xor(byte[] x, byte[] y)
{
int num = 0;
num += 3;
if (4UL < (ulong)16L)
{
}
}
// Token: 0x0600B505 RID: 46341 RVA: 0x00278090 File Offset: 0x00276290
[Token(Token = "0x600B505")]
[Address(RVA = "0x1C26090", Offset = "0x1C24E90", VA = "0x181C26090")]
internal static void Xor(byte[] x, byte[] y, int yOff)
{
int num = 0;
num++;
num++;
num += 2;
num++;
num++;
}
// Token: 0x0600B506 RID: 46342 RVA: 0x002780BC File Offset: 0x002762BC
[Token(Token = "0x600B506")]
[Address(RVA = "0x1C26830", Offset = "0x1C25630", VA = "0x181C26830")]
internal static void Xor(byte[] x, int xOff, byte[] y, int yOff, byte[] z, int zOff)
{
int num = 0;
num += 4;
}
// Token: 0x0600B507 RID: 46343 RVA: 0x002780D8 File Offset: 0x002762D8
[Token(Token = "0x600B507")]
[Address(RVA = "0x1C26670", Offset = "0x1C25470", VA = "0x181C26670")]
internal static void Xor(byte[] x, byte[] y, int yOff, int yLen)
{
int num = yLen - 1;
}
// Token: 0x0600B508 RID: 46344 RVA: 0x002780F0 File Offset: 0x002762F0
[Token(Token = "0x600B508")]
[Address(RVA = "0x1C26B90", Offset = "0x1C25990", VA = "0x181C26B90")]
internal static void Xor(byte[] x, int xOff, byte[] y, int yOff, int len)
{
}
// Token: 0x0600B509 RID: 46345 RVA: 0x00278104 File Offset: 0x00276304
[Token(Token = "0x600B509")]
[Address(RVA = "0x1C264A0", Offset = "0x1C252A0", VA = "0x181C264A0")]
internal static void Xor(byte[] x, byte[] y, byte[] z)
{
int num = 0;
byte b = x[num];
z[0] = b;
num += 3;
if (4UL < (ulong)16L)
{
}
}
// Token: 0x0600B50A RID: 46346 RVA: 0x00278134 File Offset: 0x00276334
[Token(Token = "0x600B50A")]
[Address(RVA = "0x1C263B0", Offset = "0x1C251B0", VA = "0x181C263B0")]
internal static void Xor(uint[] x, uint[] y)
{
uint num = y[1];
}
// Token: 0x0600B50B RID: 46347 RVA: 0x00278150 File Offset: 0x00276350
[Token(Token = "0x600B50B")]
[Address(RVA = "0x1C26210", Offset = "0x1C25010", VA = "0x181C26210")]
internal static void Xor(uint[] x, uint[] y, uint[] z)
{
uint num = y[0];
z[0] = num;
uint num2 = y[0];
z[0] = num2;
uint num3 = y[1];
z[1] = num3;
uint num4 = y[1];
z[1] = num4;
}
// Token: 0x0600B50C RID: 46348 RVA: 0x002781A4 File Offset: 0x002763A4
[Token(Token = "0x600B50C")]
[Address(RVA = "0x1C26A40", Offset = "0x1C25840", VA = "0x181C26A40")]
internal static void Xor(ulong[] x, ulong[] y)
{
ulong num = y[1];
}
// Token: 0x0600B50D RID: 46349 RVA: 0x002781C0 File Offset: 0x002763C0
[Token(Token = "0x600B50D")]
[Address(RVA = "0x1C26AD0", Offset = "0x1C258D0", VA = "0x181C26AD0")]
internal static void Xor(ulong[] x, ulong[] y, ulong[] z)
{
ulong num = y[0];
z[0] = num;
ulong num2 = y[1];
z[1] = num2;
}
// Token: 0x0600B50E RID: 46350 RVA: 0x002781F4 File Offset: 0x002763F4
[Token(Token = "0x600B50E")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
protected GcmUtilities()
{
}
// Token: 0x0600B50F RID: 46351 RVA: 0x00278208 File Offset: 0x00276408
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B50F")]
[Address(RVA = "0x1C26C20", Offset = "0x1C25A20", VA = "0x181C26C20")]
static GcmUtilities()
{
uint[] array = new uint[256];
int num = 0;
num++;
array[0] = (uint)256;
}
// Token: 0x040072DC RID: 29404
[Token(Token = "0x40072DC")]
private const uint E1 = 3774873600U;
// Token: 0x040072DD RID: 29405
[Token(Token = "0x40072DD")]
private const ulong E1L = 16212958658533785600UL;
// Token: 0x040072DE RID: 29406
[Token(Token = "0x40072DE")]
private static readonly uint[] LOOKUP;
}
}
@@ -0,0 +1,20 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001C44 RID: 7236
[Token(Token = "0x2001C44")]
public interface IGcmExponentiator
{
// Token: 0x0600B510 RID: 46352
[Token(Token = "0x600B510")]
[Address(Slot = "0")]
void Init(byte[] x);
// Token: 0x0600B511 RID: 46353
[Token(Token = "0x600B511")]
[Address(Slot = "1")]
void ExponentiateX(long pow, byte[] output);
}
}
@@ -0,0 +1,20 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001C45 RID: 7237
[Token(Token = "0x2001C45")]
public interface IGcmMultiplier
{
// Token: 0x0600B512 RID: 46354
[Token(Token = "0x600B512")]
[Address(Slot = "0")]
void Init(byte[] H);
// Token: 0x0600B513 RID: 46355
[Token(Token = "0x600B513")]
[Address(Slot = "1")]
void MultiplyH(byte[] x);
}
}
@@ -0,0 +1,92 @@
using System;
using System.Collections;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001C46 RID: 7238
[Token(Token = "0x2001C46")]
public class Tables1kGcmExponentiator : IGcmExponentiator
{
// Token: 0x0600B514 RID: 46356 RVA: 0x0027823C File Offset: 0x0027643C
[Token(Token = "0x600B514")]
[Address(RVA = "0x1C31160", Offset = "0x1C2FF60", VA = "0x181C31160", Slot = "4")]
public void Init(byte[] x)
{
uint[] array;
do
{
array = new uint[4];
int num = 0;
Pack.BE_To_UInt32(x, num, array);
if (this.lookupPowX2 == 0)
{
goto IL_2C;
}
if (array == 0)
{
}
}
while (array == 0);
if (Arrays.AreEqual(array, array))
{
return;
}
IL_2C:
IList list = Platform.CreateArrayList(8);
this.lookupPowX2 = list;
}
// Token: 0x0600B515 RID: 46357 RVA: 0x0027828C File Offset: 0x0027648C
[Token(Token = "0x600B515")]
[Address(RVA = "0x1C30FD0", Offset = "0x1C2FDD0", VA = "0x181C30FD0", Slot = "5")]
public void ExponentiateX(long pow, byte[] output)
{
uint[] array = new uint[4];
int num = 0;
array[0] = (uint)((ulong)2147483648L);
this.EnsureAvailable(num);
IList list = this.lookupPowX2;
GcmUtilities.Multiply(array, array);
num++;
int num2 = 0;
Pack.UInt32_To_BE(array, output, num2);
}
// Token: 0x0600B516 RID: 46358 RVA: 0x002782DC File Offset: 0x002764DC
[Token(Token = "0x600B516")]
[Address(RVA = "0x1C30DF0", Offset = "0x1C2FBF0", VA = "0x181C30DF0")]
private void EnsureAvailable(int bit)
{
IList list = this.lookupPowX2;
IList list2 = this.lookupPowX2;
int i = 0;
int num = 0;
uint[] array;
GcmUtilities.Multiply(array, array);
IList list3 = this.lookupPowX2;
if (i < num)
{
i += i;
i++;
}
while (i <= bit)
{
}
}
// Token: 0x0600B517 RID: 46359 RVA: 0x00278338 File Offset: 0x00276538
[Token(Token = "0x600B517")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public Tables1kGcmExponentiator()
{
}
// Token: 0x040072DF RID: 29407
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40072DF")]
private IList lookupPowX2;
}
}
@@ -0,0 +1,105 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001C47 RID: 7239
[Token(Token = "0x2001C47")]
public class Tables64kGcmMultiplier : IGcmMultiplier
{
// Token: 0x0600B518 RID: 46360 RVA: 0x0027834C File Offset: 0x0027654C
[Token(Token = "0x600B518")]
[Address(RVA = "0x1C312D0", Offset = "0x1C300D0", VA = "0x181C312D0", Slot = "4")]
public void Init(byte[] H)
{
uint[][][] m2;
for (;;)
{
if (this.M != (ulong)0L)
{
if (Arrays.AreEqual(this.H, H))
{
break;
}
}
else
{
uint[][][] array = new uint[16][][];
this.M = array;
}
byte[] array2 = Arrays.Clone(H);
uint[][][] m = this.M;
this.H = array2;
uint[][] array3 = new uint[256][];
if (array3 != 0)
{
}
m[0] = array3;
uint[][] array4 = this.M[0];
uint[] array5 = new uint[4];
if (array5 != 0)
{
}
array4[0] = array5;
uint[][] array6 = this.M[0];
uint[] array7 = new uint[4];
int num = 0;
Pack.BE_To_UInt32(H, num, array7);
if (array7 != 0)
{
}
array6[128] = array7;
m2 = this.M;
uint[] array8 = m2[0][m2];
if (m2 == 0)
{
}
if (m2 != 0)
{
goto Block_2;
}
}
return;
Block_2:
GcmUtilities.MultiplyP(m2);
uint[][] array9 = this.M[0];
throw new ArrayTypeMismatchException();
}
// Token: 0x0600B519 RID: 46361 RVA: 0x00278528 File Offset: 0x00276728
[Token(Token = "0x600B519")]
[Address(RVA = "0x1C31AF0", Offset = "0x1C308F0", VA = "0x181C31AF0", Slot = "5")]
public void MultiplyH(byte[] x)
{
uint[] array = new uint[4];
int num = 0;
byte b;
uint num2 = this.M[num][(int)b][1];
num++;
while (num != 16)
{
}
int num3 = 0;
Pack.UInt32_To_BE(array, x, num3);
}
// Token: 0x0600B51A RID: 46362 RVA: 0x00278574 File Offset: 0x00276774
[Token(Token = "0x600B51A")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public Tables64kGcmMultiplier()
{
}
// Token: 0x040072E0 RID: 29408
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40072E0")]
private byte[] H;
// Token: 0x040072E1 RID: 29409
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40072E1")]
private uint[][][] M;
}
}
@@ -0,0 +1,139 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001C48 RID: 7240
[Token(Token = "0x2001C48")]
public sealed class Tables8kGcmMultiplier : IGcmMultiplier
{
// Token: 0x0600B51B RID: 46363 RVA: 0x00278588 File Offset: 0x00276788
[Token(Token = "0x600B51B")]
[Address(RVA = "0x1C31CD0", Offset = "0x1C30AD0", VA = "0x181C31CD0", Slot = "4")]
public void Init(byte[] H)
{
uint[][][] m3;
for (;;)
{
if (this.M != (ulong)0L)
{
if (Arrays.AreEqual(this.H, H))
{
break;
}
}
else
{
uint[][][] array = new uint[32][][];
this.M = array;
}
byte[] array2 = Arrays.Clone(H);
uint[][][] m = this.M;
this.H = array2;
uint[][] array3 = new uint[16][];
if (array3 != 0)
{
}
m[0] = array3;
uint[][][] m2 = this.M;
uint[][] array4 = new uint[16][];
if (array4 != 0)
{
}
m2[1] = array4;
uint[][] array5 = this.M[0];
uint[] array6 = new uint[4];
if (array6 != 0)
{
}
array5[0] = array6;
uint[][] array7 = this.M[1];
uint[] array8 = new uint[4];
if (array8 != 0)
{
}
array7[0] = array8;
uint[][] array9 = this.M[1];
uint[] array10 = new uint[4];
int num = 0;
Pack.BE_To_UInt32(H, num, array10);
if (array10 != 0)
{
}
array9[8] = array10;
m3 = this.M;
uint[] array11 = m3[1][m3];
if (m3 == 0)
{
}
if (m3 != 0)
{
goto Block_2;
}
}
return;
Block_2:
GcmUtilities.MultiplyP(m3);
uint[][] array12 = this.M[1];
throw new ArrayTypeMismatchException();
}
// Token: 0x0600B51C RID: 46364 RVA: 0x00278864 File Offset: 0x00276A64
[Token(Token = "0x600B51C")]
[Address(RVA = "0x1C32860", Offset = "0x1C31660", VA = "0x181C32860", Slot = "5")]
public void MultiplyH(byte[] x)
{
uint[] array = this.z;
int length = array.Length;
int num = 0;
Array.Clear(array, num, length);
uint[][] array2 = this.M[length];
uint[] array3 = this.z;
byte b;
uint[] array4 = array2[(int)b];
uint[] array5 = this.z;
uint[] array6 = this.z;
uint[] array7 = this.z;
uint[][][] m = this.M;
int num2 = length + 1;
uint[][] array8 = m[num2];
uint[] array9 = this.z;
byte b2;
uint[] array10 = array8[(int)b2];
uint[] array11 = this.z;
uint[] array12 = this.z;
uint[] array13 = this.z;
uint num3 = array10[1];
uint[] array14 = this.z;
int num4 = 0;
Pack.UInt32_To_BE(array14, x, num4);
}
// Token: 0x0600B51D RID: 46365 RVA: 0x0027892C File Offset: 0x00276B2C
[Token(Token = "0x600B51D")]
[Address(RVA = "0x1C32C00", Offset = "0x1C31A00", VA = "0x181C32C00")]
public Tables8kGcmMultiplier()
{
uint[] array = new uint[4];
this.z = array;
base..ctor();
}
// Token: 0x040072E2 RID: 29410
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40072E2")]
private byte[] H;
// Token: 0x040072E3 RID: 29411
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40072E3")]
private uint[][][] M;
// Token: 0x040072E4 RID: 29412
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40072E4")]
private uint[] z;
}
}