This commit is contained in:
niko
2026-04-08 23:40:05 +02:00
parent d6894bcbc7
commit 18dc73f922
7750 changed files with 1795369 additions and 0 deletions
@@ -0,0 +1,51 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001664 RID: 5732
[Token(Token = "0x2001664")]
[StructLayout(3)]
public class BasicGcmExponentiator : IGcmExponentiator
{
// Token: 0x0600990D RID: 39181 RVA: 0x00220460 File Offset: 0x0021E660
[Token(Token = "0x600990D")]
[Address(RVA = "0x20E3C20", Offset = "0x20E2620", VA = "0x1820E3C20", 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: 0x0600990E RID: 39182 RVA: 0x00220488 File Offset: 0x0021E688
[Token(Token = "0x600990E")]
[Address(RVA = "0x20E3A80", Offset = "0x20E2480", VA = "0x1820E3A80", 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: 0x0600990F RID: 39183 RVA: 0x002204D8 File Offset: 0x0021E6D8
[Token(Token = "0x600990F")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public BasicGcmExponentiator()
{
}
// Token: 0x04006497 RID: 25751
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006497")]
private uint[] x;
}
}
@@ -0,0 +1,50 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001665 RID: 5733
[Token(Token = "0x2001665")]
[StructLayout(3)]
public class BasicGcmMultiplier : IGcmMultiplier
{
// Token: 0x06009910 RID: 39184 RVA: 0x002204EC File Offset: 0x0021E6EC
[Token(Token = "0x6009910")]
[Address(RVA = "0x20E3CD0", Offset = "0x20E26D0", VA = "0x1820E3CD0", 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: 0x06009911 RID: 39185 RVA: 0x00220514 File Offset: 0x0021E714
[Token(Token = "0x6009911")]
[Address(RVA = "0x20E3D80", Offset = "0x20E2780", VA = "0x1820E3D80", 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: 0x06009912 RID: 39186 RVA: 0x0022054C File Offset: 0x0021E74C
[Token(Token = "0x6009912")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public BasicGcmMultiplier()
{
}
// Token: 0x04006498 RID: 25752
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006498")]
private uint[] H;
}
}
@@ -0,0 +1,443 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001666 RID: 5734
[Token(Token = "0x2001666")]
[StructLayout(3)]
internal abstract class GcmUtilities
{
// Token: 0x06009913 RID: 39187 RVA: 0x00220560 File Offset: 0x0021E760
[Token(Token = "0x6009913")]
[Address(RVA = "0x20EE090", Offset = "0x20ECA90", VA = "0x1820EE090")]
private static uint[] GenerateLookup()
{
uint[] array = new uint[256];
int num = 0;
num++;
array[0] = (uint)256;
return array;
}
// Token: 0x06009914 RID: 39188 RVA: 0x00220594 File Offset: 0x0021E794
[Token(Token = "0x6009914")]
[Address(RVA = "0x20EEAA0", Offset = "0x20ED4A0", VA = "0x1820EEAA0")]
internal static byte[] OneAsBytes()
{
byte[] array = new byte[16];
array[0] = (byte)((ulong)128L);
return array;
}
// Token: 0x06009915 RID: 39189 RVA: 0x002205C0 File Offset: 0x0021E7C0
[Token(Token = "0x6009915")]
[Address(RVA = "0x20EEB00", Offset = "0x20ED500", VA = "0x1820EEB00")]
internal static uint[] OneAsUints()
{
uint[] array = new uint[4];
array[0] = (uint)((ulong)2147483648L);
return array;
}
// Token: 0x06009916 RID: 39190 RVA: 0x002205EC File Offset: 0x0021E7EC
[Token(Token = "0x6009916")]
[Address(RVA = "0x20EEB60", Offset = "0x20ED560", VA = "0x1820EEB60")]
internal static ulong[] OneAsUlongs()
{
ulong[] array = new ulong[2];
array[0] = (ulong)long.MinValue;
return array;
}
// Token: 0x06009917 RID: 39191 RVA: 0x00220618 File Offset: 0x0021E818
[Token(Token = "0x6009917")]
[Address(RVA = "0x20EDF90", Offset = "0x20EC990", VA = "0x1820EDF90")]
internal static byte[] AsBytes(uint[] x)
{
return Pack.UInt32_To_BE(x);
}
// Token: 0x06009918 RID: 39192 RVA: 0x0022062C File Offset: 0x0021E82C
[Token(Token = "0x6009918")]
[Address(RVA = "0x20EDFA0", Offset = "0x20EC9A0", VA = "0x1820EDFA0")]
internal static void AsBytes(uint[] x, byte[] z)
{
int num = 0;
Pack.UInt32_To_BE(x, z, num);
}
// Token: 0x06009919 RID: 39193 RVA: 0x00220644 File Offset: 0x0021E844
[Token(Token = "0x6009919")]
[Address(RVA = "0x20EDF20", Offset = "0x20EC920", VA = "0x1820EDF20")]
internal static byte[] AsBytes(ulong[] x)
{
byte[] array = new byte[16];
int num = 0;
Pack.UInt64_To_BE(x, array, num);
return array;
}
// Token: 0x0600991A RID: 39194 RVA: 0x00220664 File Offset: 0x0021E864
[Token(Token = "0x600991A")]
[Address(RVA = "0x20EDF80", Offset = "0x20EC980", VA = "0x1820EDF80")]
internal static void AsBytes(ulong[] x, byte[] z)
{
int num = 0;
Pack.UInt64_To_BE(x, z, num);
}
// Token: 0x0600991B RID: 39195 RVA: 0x0022067C File Offset: 0x0021E87C
[Token(Token = "0x600991B")]
[Address(RVA = "0x20EDFC0", Offset = "0x20EC9C0", VA = "0x1820EDFC0")]
internal static uint[] AsUints(byte[] bs)
{
uint[] array = new uint[4];
int num = 0;
Pack.BE_To_UInt32(bs, num, array);
return array;
}
// Token: 0x0600991C RID: 39196 RVA: 0x0022069C File Offset: 0x0021E89C
[Token(Token = "0x600991C")]
[Address(RVA = "0x20EDFB0", Offset = "0x20EC9B0", VA = "0x1820EDFB0")]
internal static void AsUints(byte[] bs, uint[] output)
{
int num = 0;
Pack.BE_To_UInt32(bs, num, output);
}
// Token: 0x0600991D RID: 39197 RVA: 0x002206B4 File Offset: 0x0021E8B4
[Token(Token = "0x600991D")]
[Address(RVA = "0x20EE020", Offset = "0x20ECA20", VA = "0x1820EE020")]
internal static ulong[] AsUlongs(byte[] x)
{
ulong[] array = new ulong[2];
int num = 0;
Pack.BE_To_UInt64(x, num, array);
return array;
}
// Token: 0x0600991E RID: 39198 RVA: 0x002206D4 File Offset: 0x0021E8D4
[Token(Token = "0x600991E")]
[Address(RVA = "0x20EE080", Offset = "0x20ECA80", VA = "0x1820EE080")]
public static void AsUlongs(byte[] x, ulong[] z)
{
int num = 0;
Pack.BE_To_UInt64(x, num, z);
}
// Token: 0x0600991F RID: 39199 RVA: 0x002206EC File Offset: 0x0021E8EC
[Token(Token = "0x600991F")]
[Address(RVA = "0x20EE850", Offset = "0x20ED250", VA = "0x1820EE850")]
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: 0x06009920 RID: 39200 RVA: 0x00220730 File Offset: 0x0021E930
[Token(Token = "0x6009920")]
[Address(RVA = "0x20EE670", Offset = "0x20ED070", VA = "0x1820EE670")]
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: 0x06009921 RID: 39201 RVA: 0x00220788 File Offset: 0x0021E988
[Token(Token = "0x6009921")]
[Address(RVA = "0x20EE960", Offset = "0x20ED360", VA = "0x1820EE960")]
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: 0x06009922 RID: 39202 RVA: 0x002207D8 File Offset: 0x0021E9D8
[Token(Token = "0x6009922")]
[Address(RVA = "0x20EE3B0", Offset = "0x20ECDB0", VA = "0x1820EE3B0")]
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: 0x06009923 RID: 39203 RVA: 0x00220828 File Offset: 0x0021EA28
[Token(Token = "0x6009923")]
[Address(RVA = "0x20EE4C0", Offset = "0x20ECEC0", VA = "0x1820EE4C0")]
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: 0x06009924 RID: 39204 RVA: 0x00220878 File Offset: 0x0021EA78
[Token(Token = "0x6009924")]
[Address(RVA = "0x20EE260", Offset = "0x20ECC60", VA = "0x1820EE260")]
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: 0x06009925 RID: 39205 RVA: 0x002208D0 File Offset: 0x0021EAD0
[Token(Token = "0x6009925")]
[Address(RVA = "0x20EE1A0", Offset = "0x20ECBA0", VA = "0x1820EE1A0")]
internal static void MultiplyP8(uint[] x, uint[] y)
{
uint num = GcmUtilities.ShiftRightN(x, 8, y);
}
// Token: 0x06009926 RID: 39206 RVA: 0x002208EC File Offset: 0x0021EAEC
[Token(Token = "0x6009926")]
[Address(RVA = "0x20EEE30", Offset = "0x20ED830", VA = "0x1820EEE30")]
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: 0x06009927 RID: 39207 RVA: 0x00220948 File Offset: 0x0021EB48
[Token(Token = "0x6009927")]
[Address(RVA = "0x20EEEF0", Offset = "0x20ED8F0", VA = "0x1820EEEF0")]
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: 0x06009928 RID: 39208 RVA: 0x002209A0 File Offset: 0x0021EBA0
[Token(Token = "0x6009928")]
[Address(RVA = "0x20EED40", Offset = "0x20ED740", VA = "0x1820EED40")]
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: 0x06009929 RID: 39209 RVA: 0x002209FC File Offset: 0x0021EBFC
[Token(Token = "0x6009929")]
[Address(RVA = "0x20EEBD0", Offset = "0x20ED5D0", VA = "0x1820EEBD0")]
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: 0x0600992A RID: 39210 RVA: 0x00220A58 File Offset: 0x0021EC58
[Token(Token = "0x600992A")]
[Address(RVA = "0x20EF680", Offset = "0x20EE080", VA = "0x1820EF680")]
internal static void Xor(byte[] x, byte[] y)
{
int num = 0;
num += 3;
if (4UL < (ulong)16L)
{
}
}
// Token: 0x0600992B RID: 39211 RVA: 0x00220A78 File Offset: 0x0021EC78
[Token(Token = "0x600992B")]
[Address(RVA = "0x20EF030", Offset = "0x20EDA30", VA = "0x1820EF030")]
internal static void Xor(byte[] x, byte[] y, int yOff)
{
int num = 0;
num++;
num++;
num += 2;
num++;
num++;
}
// Token: 0x0600992C RID: 39212 RVA: 0x00220AA4 File Offset: 0x0021ECA4
[Token(Token = "0x600992C")]
[Address(RVA = "0x20EF7D0", Offset = "0x20EE1D0", VA = "0x1820EF7D0")]
internal static void Xor(byte[] x, int xOff, byte[] y, int yOff, byte[] z, int zOff)
{
int num = 0;
num += 4;
}
// Token: 0x0600992D RID: 39213 RVA: 0x00220AC0 File Offset: 0x0021ECC0
[Token(Token = "0x600992D")]
[Address(RVA = "0x20EF610", Offset = "0x20EE010", VA = "0x1820EF610")]
internal static void Xor(byte[] x, byte[] y, int yOff, int yLen)
{
int num = yLen - 1;
}
// Token: 0x0600992E RID: 39214 RVA: 0x00220AD8 File Offset: 0x0021ECD8
[Token(Token = "0x600992E")]
[Address(RVA = "0x20EFB30", Offset = "0x20EE530", VA = "0x1820EFB30")]
internal static void Xor(byte[] x, int xOff, byte[] y, int yOff, int len)
{
}
// Token: 0x0600992F RID: 39215 RVA: 0x00220AEC File Offset: 0x0021ECEC
[Token(Token = "0x600992F")]
[Address(RVA = "0x20EF440", Offset = "0x20EDE40", VA = "0x1820EF440")]
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: 0x06009930 RID: 39216 RVA: 0x00220B1C File Offset: 0x0021ED1C
[Token(Token = "0x6009930")]
[Address(RVA = "0x20EF350", Offset = "0x20EDD50", VA = "0x1820EF350")]
internal static void Xor(uint[] x, uint[] y)
{
uint num = y[1];
}
// Token: 0x06009931 RID: 39217 RVA: 0x00220B38 File Offset: 0x0021ED38
[Token(Token = "0x6009931")]
[Address(RVA = "0x20EF1B0", Offset = "0x20EDBB0", VA = "0x1820EF1B0")]
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: 0x06009932 RID: 39218 RVA: 0x00220B8C File Offset: 0x0021ED8C
[Token(Token = "0x6009932")]
[Address(RVA = "0x20EF9E0", Offset = "0x20EE3E0", VA = "0x1820EF9E0")]
internal static void Xor(ulong[] x, ulong[] y)
{
ulong num = y[1];
}
// Token: 0x06009933 RID: 39219 RVA: 0x00220BA8 File Offset: 0x0021EDA8
[Token(Token = "0x6009933")]
[Address(RVA = "0x20EFA70", Offset = "0x20EE470", VA = "0x1820EFA70")]
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: 0x06009934 RID: 39220 RVA: 0x00220BDC File Offset: 0x0021EDDC
[Token(Token = "0x6009934")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
protected GcmUtilities()
{
}
// Token: 0x06009935 RID: 39221 RVA: 0x00220BF0 File Offset: 0x0021EDF0
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6009935")]
[Address(RVA = "0x20EFBC0", Offset = "0x20EE5C0", VA = "0x1820EFBC0")]
static GcmUtilities()
{
uint[] array = new uint[256];
int num = 0;
num++;
array[0] = (uint)256;
}
// Token: 0x04006499 RID: 25753
[Token(Token = "0x4006499")]
private const uint E1 = 3774873600U;
// Token: 0x0400649A RID: 25754
[Token(Token = "0x400649A")]
private const ulong E1L = 16212958658533785600UL;
// Token: 0x0400649B RID: 25755
[Token(Token = "0x400649B")]
private static readonly uint[] LOOKUP;
}
}
@@ -0,0 +1,22 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001667 RID: 5735
[Token(Token = "0x2001667")]
[StructLayout(3)]
public interface IGcmExponentiator
{
// Token: 0x06009936 RID: 39222
[Token(Token = "0x6009936")]
[Address(Slot = "0")]
void Init(byte[] x);
// Token: 0x06009937 RID: 39223
[Token(Token = "0x6009937")]
[Address(Slot = "1")]
void ExponentiateX(long pow, byte[] output);
}
}
@@ -0,0 +1,22 @@
using System;
using System.Runtime.InteropServices;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001668 RID: 5736
[Token(Token = "0x2001668")]
[StructLayout(3)]
public interface IGcmMultiplier
{
// Token: 0x06009938 RID: 39224
[Token(Token = "0x6009938")]
[Address(Slot = "0")]
void Init(byte[] H);
// Token: 0x06009939 RID: 39225
[Token(Token = "0x6009939")]
[Address(Slot = "1")]
void MultiplyH(byte[] x);
}
}
@@ -0,0 +1,94 @@
using System;
using System.Collections;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x02001669 RID: 5737
[Token(Token = "0x2001669")]
[StructLayout(3)]
public class Tables1kGcmExponentiator : IGcmExponentiator
{
// Token: 0x0600993A RID: 39226 RVA: 0x00220C24 File Offset: 0x0021EE24
[Token(Token = "0x600993A")]
[Address(RVA = "0x20F98B0", Offset = "0x20F82B0", VA = "0x1820F98B0", 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: 0x0600993B RID: 39227 RVA: 0x00220C74 File Offset: 0x0021EE74
[Token(Token = "0x600993B")]
[Address(RVA = "0x20F9720", Offset = "0x20F8120", VA = "0x1820F9720", 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: 0x0600993C RID: 39228 RVA: 0x00220CC4 File Offset: 0x0021EEC4
[Token(Token = "0x600993C")]
[Address(RVA = "0x20F9540", Offset = "0x20F7F40", VA = "0x1820F9540")]
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: 0x0600993D RID: 39229 RVA: 0x00220D20 File Offset: 0x0021EF20
[Token(Token = "0x600993D")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public Tables1kGcmExponentiator()
{
}
// Token: 0x0400649C RID: 25756
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400649C")]
private IList lookupPowX2;
}
}
@@ -0,0 +1,107 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x0200166A RID: 5738
[Token(Token = "0x200166A")]
[StructLayout(3)]
public class Tables64kGcmMultiplier : IGcmMultiplier
{
// Token: 0x0600993E RID: 39230 RVA: 0x00220D34 File Offset: 0x0021EF34
[Token(Token = "0x600993E")]
[Address(RVA = "0x20F9A20", Offset = "0x20F8420", VA = "0x1820F9A20", 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: 0x0600993F RID: 39231 RVA: 0x00220F10 File Offset: 0x0021F110
[Token(Token = "0x600993F")]
[Address(RVA = "0x20FA240", Offset = "0x20F8C40", VA = "0x1820FA240", 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: 0x06009940 RID: 39232 RVA: 0x00220F5C File Offset: 0x0021F15C
[Token(Token = "0x6009940")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
public Tables64kGcmMultiplier()
{
}
// Token: 0x0400649D RID: 25757
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400649D")]
private byte[] H;
// Token: 0x0400649E RID: 25758
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x400649E")]
private uint[][][] M;
}
}
@@ -0,0 +1,141 @@
using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm
{
// Token: 0x0200166B RID: 5739
[Token(Token = "0x200166B")]
[StructLayout(3)]
public sealed class Tables8kGcmMultiplier : IGcmMultiplier
{
// Token: 0x06009941 RID: 39233 RVA: 0x00220F70 File Offset: 0x0021F170
[Token(Token = "0x6009941")]
[Address(RVA = "0x20FA420", Offset = "0x20F8E20", VA = "0x1820FA420", 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: 0x06009942 RID: 39234 RVA: 0x0022124C File Offset: 0x0021F44C
[Token(Token = "0x6009942")]
[Address(RVA = "0x20FAFB0", Offset = "0x20F99B0", VA = "0x1820FAFB0", 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: 0x06009943 RID: 39235 RVA: 0x00221314 File Offset: 0x0021F514
[Token(Token = "0x6009943")]
[Address(RVA = "0x20FB350", Offset = "0x20F9D50", VA = "0x1820FB350")]
public Tables8kGcmMultiplier()
{
uint[] array = new uint[4];
this.z = array;
base..ctor();
}
// Token: 0x0400649F RID: 25759
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x400649F")]
private byte[] H;
// Token: 0x040064A0 RID: 25760
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x40064A0")]
private uint[][][] M;
// Token: 0x040064A1 RID: 25761
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x40064A1")]
private uint[] z;
}
}