This commit is contained in:
niko
2026-04-12 16:51:38 +02:00
parent 1b6f6d81d0
commit c12fbe3fc6
17828 changed files with 2994770 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: 0x02001D21 RID: 7457
[Token(Token = "0x2001D21")]
public class BasicGcmExponentiator : IGcmExponentiator
{
// Token: 0x0600B8B5 RID: 47285 RVA: 0x00280C14 File Offset: 0x0027EE14
[Token(Token = "0x600B8B5")]
[Address(RVA = "0x25B0CD0", Offset = "0x25AFCD0", VA = "0x1825B0CD0", 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: 0x0600B8B6 RID: 47286 RVA: 0x00280C3C File Offset: 0x0027EE3C
[Token(Token = "0x600B8B6")]
[Address(RVA = "0x25B0B30", Offset = "0x25AFB30", VA = "0x1825B0B30", 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: 0x0600B8B7 RID: 47287 RVA: 0x00280C8C File Offset: 0x0027EE8C
[Token(Token = "0x600B8B7")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public BasicGcmExponentiator()
{
}
// Token: 0x04007493 RID: 29843
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007493")]
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: 0x02001D22 RID: 7458
[Token(Token = "0x2001D22")]
public class BasicGcmMultiplier : IGcmMultiplier
{
// Token: 0x0600B8B8 RID: 47288 RVA: 0x00280CA0 File Offset: 0x0027EEA0
[Token(Token = "0x600B8B8")]
[Address(RVA = "0x25B0D80", Offset = "0x25AFD80", VA = "0x1825B0D80", 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: 0x0600B8B9 RID: 47289 RVA: 0x00280CC8 File Offset: 0x0027EEC8
[Token(Token = "0x600B8B9")]
[Address(RVA = "0x25B0E30", Offset = "0x25AFE30", VA = "0x1825B0E30", 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: 0x0600B8BA RID: 47290 RVA: 0x00280D00 File Offset: 0x0027EF00
[Token(Token = "0x600B8BA")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public BasicGcmMultiplier()
{
}
// Token: 0x04007494 RID: 29844
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007494")]
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: 0x02001D23 RID: 7459
[Token(Token = "0x2001D23")]
internal abstract class GcmUtilities
{
// Token: 0x0600B8BB RID: 47291 RVA: 0x00280D14 File Offset: 0x0027EF14
[Token(Token = "0x600B8BB")]
[Address(RVA = "0x25B9D80", Offset = "0x25B8D80", VA = "0x1825B9D80")]
private static uint[] GenerateLookup()
{
uint[] array = new uint[256];
int num = 0;
num++;
array[0] = (uint)256;
return array;
}
// Token: 0x0600B8BC RID: 47292 RVA: 0x00280D48 File Offset: 0x0027EF48
[Token(Token = "0x600B8BC")]
[Address(RVA = "0x25BA790", Offset = "0x25B9790", VA = "0x1825BA790")]
internal static byte[] OneAsBytes()
{
byte[] array = new byte[16];
array[0] = (byte)((ulong)128L);
return array;
}
// Token: 0x0600B8BD RID: 47293 RVA: 0x00280D74 File Offset: 0x0027EF74
[Token(Token = "0x600B8BD")]
[Address(RVA = "0x25BA7F0", Offset = "0x25B97F0", VA = "0x1825BA7F0")]
internal static uint[] OneAsUints()
{
uint[] array = new uint[4];
array[0] = (uint)((ulong)2147483648L);
return array;
}
// Token: 0x0600B8BE RID: 47294 RVA: 0x00280DA0 File Offset: 0x0027EFA0
[Token(Token = "0x600B8BE")]
[Address(RVA = "0x25BA850", Offset = "0x25B9850", VA = "0x1825BA850")]
internal static ulong[] OneAsUlongs()
{
ulong[] array = new ulong[2];
array[0] = (ulong)long.MinValue;
return array;
}
// Token: 0x0600B8BF RID: 47295 RVA: 0x00280DCC File Offset: 0x0027EFCC
[Token(Token = "0x600B8BF")]
[Address(RVA = "0x25B9C80", Offset = "0x25B8C80", VA = "0x1825B9C80")]
internal static byte[] AsBytes(uint[] x)
{
return Pack.UInt32_To_BE(x);
}
// Token: 0x0600B8C0 RID: 47296 RVA: 0x00280DE0 File Offset: 0x0027EFE0
[Token(Token = "0x600B8C0")]
[Address(RVA = "0x25B9C90", Offset = "0x25B8C90", VA = "0x1825B9C90")]
internal static void AsBytes(uint[] x, byte[] z)
{
int num = 0;
Pack.UInt32_To_BE(x, z, num);
}
// Token: 0x0600B8C1 RID: 47297 RVA: 0x00280DF8 File Offset: 0x0027EFF8
[Token(Token = "0x600B8C1")]
[Address(RVA = "0x25B9C10", Offset = "0x25B8C10", VA = "0x1825B9C10")]
internal static byte[] AsBytes(ulong[] x)
{
byte[] array = new byte[16];
int num = 0;
Pack.UInt64_To_BE(x, array, num);
return array;
}
// Token: 0x0600B8C2 RID: 47298 RVA: 0x00280E18 File Offset: 0x0027F018
[Token(Token = "0x600B8C2")]
[Address(RVA = "0x25B9C70", Offset = "0x25B8C70", VA = "0x1825B9C70")]
internal static void AsBytes(ulong[] x, byte[] z)
{
int num = 0;
Pack.UInt64_To_BE(x, z, num);
}
// Token: 0x0600B8C3 RID: 47299 RVA: 0x00280E30 File Offset: 0x0027F030
[Token(Token = "0x600B8C3")]
[Address(RVA = "0x25B9CB0", Offset = "0x25B8CB0", VA = "0x1825B9CB0")]
internal static uint[] AsUints(byte[] bs)
{
uint[] array = new uint[4];
int num = 0;
Pack.BE_To_UInt32(bs, num, array);
return array;
}
// Token: 0x0600B8C4 RID: 47300 RVA: 0x00280E50 File Offset: 0x0027F050
[Token(Token = "0x600B8C4")]
[Address(RVA = "0x25B9CA0", Offset = "0x25B8CA0", VA = "0x1825B9CA0")]
internal static void AsUints(byte[] bs, uint[] output)
{
int num = 0;
Pack.BE_To_UInt32(bs, num, output);
}
// Token: 0x0600B8C5 RID: 47301 RVA: 0x00280E68 File Offset: 0x0027F068
[Token(Token = "0x600B8C5")]
[Address(RVA = "0x25B9D10", Offset = "0x25B8D10", VA = "0x1825B9D10")]
internal static ulong[] AsUlongs(byte[] x)
{
ulong[] array = new ulong[2];
int num = 0;
Pack.BE_To_UInt64(x, num, array);
return array;
}
// Token: 0x0600B8C6 RID: 47302 RVA: 0x00280E88 File Offset: 0x0027F088
[Token(Token = "0x600B8C6")]
[Address(RVA = "0x25B9D70", Offset = "0x25B8D70", VA = "0x1825B9D70")]
public static void AsUlongs(byte[] x, ulong[] z)
{
int num = 0;
Pack.BE_To_UInt64(x, num, z);
}
// Token: 0x0600B8C7 RID: 47303 RVA: 0x00280EA0 File Offset: 0x0027F0A0
[Token(Token = "0x600B8C7")]
[Address(RVA = "0x25BA540", Offset = "0x25B9540", VA = "0x1825BA540")]
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: 0x0600B8C8 RID: 47304 RVA: 0x00280EE4 File Offset: 0x0027F0E4
[Token(Token = "0x600B8C8")]
[Address(RVA = "0x25BA360", Offset = "0x25B9360", VA = "0x1825BA360")]
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: 0x0600B8C9 RID: 47305 RVA: 0x00280F3C File Offset: 0x0027F13C
[Token(Token = "0x600B8C9")]
[Address(RVA = "0x25BA650", Offset = "0x25B9650", VA = "0x1825BA650")]
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: 0x0600B8CA RID: 47306 RVA: 0x00280F8C File Offset: 0x0027F18C
[Token(Token = "0x600B8CA")]
[Address(RVA = "0x25BA0A0", Offset = "0x25B90A0", VA = "0x1825BA0A0")]
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: 0x0600B8CB RID: 47307 RVA: 0x00280FDC File Offset: 0x0027F1DC
[Token(Token = "0x600B8CB")]
[Address(RVA = "0x25BA1B0", Offset = "0x25B91B0", VA = "0x1825BA1B0")]
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: 0x0600B8CC RID: 47308 RVA: 0x0028102C File Offset: 0x0027F22C
[Token(Token = "0x600B8CC")]
[Address(RVA = "0x25B9F50", Offset = "0x25B8F50", VA = "0x1825B9F50")]
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: 0x0600B8CD RID: 47309 RVA: 0x00281084 File Offset: 0x0027F284
[Token(Token = "0x600B8CD")]
[Address(RVA = "0x25B9E90", Offset = "0x25B8E90", VA = "0x1825B9E90")]
internal static void MultiplyP8(uint[] x, uint[] y)
{
uint num = GcmUtilities.ShiftRightN(x, 8, y);
}
// Token: 0x0600B8CE RID: 47310 RVA: 0x002810A0 File Offset: 0x0027F2A0
[Token(Token = "0x600B8CE")]
[Address(RVA = "0x25BAB20", Offset = "0x25B9B20", VA = "0x1825BAB20")]
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: 0x0600B8CF RID: 47311 RVA: 0x002810FC File Offset: 0x0027F2FC
[Token(Token = "0x600B8CF")]
[Address(RVA = "0x25BABE0", Offset = "0x25B9BE0", VA = "0x1825BABE0")]
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: 0x0600B8D0 RID: 47312 RVA: 0x00281154 File Offset: 0x0027F354
[Token(Token = "0x600B8D0")]
[Address(RVA = "0x25BAA30", Offset = "0x25B9A30", VA = "0x1825BAA30")]
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: 0x0600B8D1 RID: 47313 RVA: 0x002811B0 File Offset: 0x0027F3B0
[Token(Token = "0x600B8D1")]
[Address(RVA = "0x25BA8C0", Offset = "0x25B98C0", VA = "0x1825BA8C0")]
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: 0x0600B8D2 RID: 47314 RVA: 0x0028120C File Offset: 0x0027F40C
[Token(Token = "0x600B8D2")]
[Address(RVA = "0x25BB370", Offset = "0x25BA370", VA = "0x1825BB370")]
internal static void Xor(byte[] x, byte[] y)
{
int num = 0;
num += 3;
if (4UL < (ulong)16L)
{
}
}
// Token: 0x0600B8D3 RID: 47315 RVA: 0x0028122C File Offset: 0x0027F42C
[Token(Token = "0x600B8D3")]
[Address(RVA = "0x25BAD20", Offset = "0x25B9D20", VA = "0x1825BAD20")]
internal static void Xor(byte[] x, byte[] y, int yOff)
{
int num = 0;
num++;
num++;
num += 2;
num++;
num++;
}
// Token: 0x0600B8D4 RID: 47316 RVA: 0x00281258 File Offset: 0x0027F458
[Token(Token = "0x600B8D4")]
[Address(RVA = "0x25BB4C0", Offset = "0x25BA4C0", VA = "0x1825BB4C0")]
internal static void Xor(byte[] x, int xOff, byte[] y, int yOff, byte[] z, int zOff)
{
int num = 0;
num += 4;
}
// Token: 0x0600B8D5 RID: 47317 RVA: 0x00281274 File Offset: 0x0027F474
[Token(Token = "0x600B8D5")]
[Address(RVA = "0x25BB300", Offset = "0x25BA300", VA = "0x1825BB300")]
internal static void Xor(byte[] x, byte[] y, int yOff, int yLen)
{
int num = yLen - 1;
}
// Token: 0x0600B8D6 RID: 47318 RVA: 0x0028128C File Offset: 0x0027F48C
[Token(Token = "0x600B8D6")]
[Address(RVA = "0x25BB760", Offset = "0x25BA760", VA = "0x1825BB760")]
internal static void Xor(byte[] x, int xOff, byte[] y, int yOff, int len)
{
}
// Token: 0x0600B8D7 RID: 47319 RVA: 0x002812A0 File Offset: 0x0027F4A0
[Token(Token = "0x600B8D7")]
[Address(RVA = "0x25BB130", Offset = "0x25BA130", VA = "0x1825BB130")]
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: 0x0600B8D8 RID: 47320 RVA: 0x002812D0 File Offset: 0x0027F4D0
[Token(Token = "0x600B8D8")]
[Address(RVA = "0x25BB040", Offset = "0x25BA040", VA = "0x1825BB040")]
internal static void Xor(uint[] x, uint[] y)
{
uint num = y[1];
}
// Token: 0x0600B8D9 RID: 47321 RVA: 0x002812EC File Offset: 0x0027F4EC
[Token(Token = "0x600B8D9")]
[Address(RVA = "0x25BAEA0", Offset = "0x25B9EA0", VA = "0x1825BAEA0")]
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: 0x0600B8DA RID: 47322 RVA: 0x00281340 File Offset: 0x0027F540
[Token(Token = "0x600B8DA")]
[Address(RVA = "0x25BB6D0", Offset = "0x25BA6D0", VA = "0x1825BB6D0")]
internal static void Xor(ulong[] x, ulong[] y)
{
ulong num = y[1];
}
// Token: 0x0600B8DB RID: 47323 RVA: 0x0028135C File Offset: 0x0027F55C
[Token(Token = "0x600B8DB")]
[Address(RVA = "0x7EF250", Offset = "0x7EE250", VA = "0x1807EF250")]
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: 0x0600B8DC RID: 47324 RVA: 0x00281390 File Offset: 0x0027F590
[Token(Token = "0x600B8DC")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected GcmUtilities()
{
}
// Token: 0x0600B8DD RID: 47325 RVA: 0x002813A4 File Offset: 0x0027F5A4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600B8DD")]
[Address(RVA = "0x25BB7F0", Offset = "0x25BA7F0", VA = "0x1825BB7F0")]
static GcmUtilities()
{
uint[] array = new uint[256];
int num = 0;
num++;
array[0] = (uint)256;
}
// Token: 0x04007495 RID: 29845
[Token(Token = "0x4007495")]
private const uint E1 = 3774873600U;
// Token: 0x04007496 RID: 29846
[Token(Token = "0x4007496")]
private const ulong E1L = 16212958658533785600UL;
// Token: 0x04007497 RID: 29847
[Token(Token = "0x4007497")]
private static readonly uint[] LOOKUP;
}
}
@@ -0,0 +1,20 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001D24 RID: 7460
[Token(Token = "0x2001D24")]
public interface IGcmExponentiator
{
// Token: 0x0600B8DE RID: 47326
[Token(Token = "0x600B8DE")]
[Address(Slot = "0")]
void Init(byte[] x);
// Token: 0x0600B8DF RID: 47327
[Token(Token = "0x600B8DF")]
[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: 0x02001D25 RID: 7461
[Token(Token = "0x2001D25")]
public interface IGcmMultiplier
{
// Token: 0x0600B8E0 RID: 47328
[Token(Token = "0x600B8E0")]
[Address(Slot = "0")]
void Init(byte[] H);
// Token: 0x0600B8E1 RID: 47329
[Token(Token = "0x600B8E1")]
[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: 0x02001D26 RID: 7462
[Token(Token = "0x2001D26")]
public class Tables1kGcmExponentiator : IGcmExponentiator
{
// Token: 0x0600B8E2 RID: 47330 RVA: 0x002813D8 File Offset: 0x0027F5D8
[Token(Token = "0x600B8E2")]
[Address(RVA = "0x25C82D0", Offset = "0x25C72D0", VA = "0x1825C82D0", 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: 0x0600B8E3 RID: 47331 RVA: 0x00281428 File Offset: 0x0027F628
[Token(Token = "0x600B8E3")]
[Address(RVA = "0x25C8140", Offset = "0x25C7140", VA = "0x1825C8140", 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: 0x0600B8E4 RID: 47332 RVA: 0x00281478 File Offset: 0x0027F678
[Token(Token = "0x600B8E4")]
[Address(RVA = "0x25C7F60", Offset = "0x25C6F60", VA = "0x1825C7F60")]
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: 0x0600B8E5 RID: 47333 RVA: 0x002814D4 File Offset: 0x0027F6D4
[Token(Token = "0x600B8E5")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public Tables1kGcmExponentiator()
{
}
// Token: 0x04007498 RID: 29848
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007498")]
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: 0x02001D27 RID: 7463
[Token(Token = "0x2001D27")]
public class Tables64kGcmMultiplier : IGcmMultiplier
{
// Token: 0x0600B8E6 RID: 47334 RVA: 0x002814E8 File Offset: 0x0027F6E8
[Token(Token = "0x600B8E6")]
[Address(RVA = "0x25C8440", Offset = "0x25C7440", VA = "0x1825C8440", 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: 0x0600B8E7 RID: 47335 RVA: 0x002816C4 File Offset: 0x0027F8C4
[Token(Token = "0x600B8E7")]
[Address(RVA = "0x25C8C60", Offset = "0x25C7C60", VA = "0x1825C8C60", 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: 0x0600B8E8 RID: 47336 RVA: 0x00281710 File Offset: 0x0027F910
[Token(Token = "0x600B8E8")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public Tables64kGcmMultiplier()
{
}
// Token: 0x04007499 RID: 29849
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4007499")]
private byte[] H;
// Token: 0x0400749A RID: 29850
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400749A")]
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: 0x02001D28 RID: 7464
[Token(Token = "0x2001D28")]
public sealed class Tables8kGcmMultiplier : IGcmMultiplier
{
// Token: 0x0600B8E9 RID: 47337 RVA: 0x00281724 File Offset: 0x0027F924
[Token(Token = "0x600B8E9")]
[Address(RVA = "0x25C8E40", Offset = "0x25C7E40", VA = "0x1825C8E40", 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: 0x0600B8EA RID: 47338 RVA: 0x00281A00 File Offset: 0x0027FC00
[Token(Token = "0x600B8EA")]
[Address(RVA = "0x25C99D0", Offset = "0x25C89D0", VA = "0x1825C99D0", 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: 0x0600B8EB RID: 47339 RVA: 0x00281AC8 File Offset: 0x0027FCC8
[Token(Token = "0x600B8EB")]
[Address(RVA = "0x25C9D70", Offset = "0x25C8D70", VA = "0x1825C9D70")]
public Tables8kGcmMultiplier()
{
uint[] array = new uint[4];
this.z = array;
base..ctor();
}
// Token: 0x0400749B RID: 29851
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400749B")]
private byte[] H;
// Token: 0x0400749C RID: 29852
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400749C")]
private uint[][][] M;
// Token: 0x0400749D RID: 29853
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400749D")]
private uint[] z;
}
}