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; } }