m
This commit is contained in:
+49
@@ -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;
|
||||
}
|
||||
}
|
||||
+48
@@ -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;
|
||||
}
|
||||
}
|
||||
+441
@@ -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;
|
||||
}
|
||||
}
|
||||
+20
@@ -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);
|
||||
}
|
||||
}
|
||||
+20
@@ -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);
|
||||
}
|
||||
}
|
||||
+92
@@ -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;
|
||||
}
|
||||
}
|
||||
+105
@@ -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;
|
||||
}
|
||||
}
|
||||
+139
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user