scripts
This commit is contained in:
+51
@@ -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;
|
||||
}
|
||||
}
|
||||
+50
@@ -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;
|
||||
}
|
||||
}
|
||||
+443
@@ -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;
|
||||
}
|
||||
}
|
||||
+22
@@ -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);
|
||||
}
|
||||
}
|
||||
+22
@@ -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);
|
||||
}
|
||||
}
|
||||
+94
@@ -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;
|
||||
}
|
||||
}
|
||||
+107
@@ -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;
|
||||
}
|
||||
}
|
||||
+141
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user