a
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: 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;
|
||||
}
|
||||
}
|
||||
+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: 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;
|
||||
}
|
||||
}
|
||||
+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: 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;
|
||||
}
|
||||
}
|
||||
+20
@@ -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);
|
||||
}
|
||||
}
|
||||
+20
@@ -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);
|
||||
}
|
||||
}
|
||||
+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: 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;
|
||||
}
|
||||
}
|
||||
+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: 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;
|
||||
}
|
||||
}
|
||||
+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: 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user