Files
Jan2021-Cpp2Il-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/Math/EC/Rfc7748/X25519Field.cs
T
2026-04-08 23:40:05 +02:00

912 lines
23 KiB
C#

using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc7748
{
// Token: 0x02001435 RID: 5173
[Token(Token = "0x2001435")]
[StructLayout(3)]
public abstract class X25519Field
{
// Token: 0x06008639 RID: 34361 RVA: 0x001D6F24 File Offset: 0x001D5124
[Token(Token = "0x6008639")]
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
private X25519Field()
{
}
// Token: 0x0600863A RID: 34362 RVA: 0x001D6F38 File Offset: 0x001D5138
[Token(Token = "0x600863A")]
[Address(RVA = "0x2097E80", Offset = "0x2096880", VA = "0x182097E80")]
public static void Add(int[] x, int[] y, int[] z)
{
int num = 0;
int num2 = x[num];
num++;
z[0] = num2;
}
// Token: 0x0600863B RID: 34363 RVA: 0x001D6F64 File Offset: 0x001D5164
[Token(Token = "0x600863B")]
[Address(RVA = "0x2097E50", Offset = "0x2096850", VA = "0x182097E50")]
public static void AddOne(int[] z)
{
}
// Token: 0x0600863C RID: 34364 RVA: 0x001D6F78 File Offset: 0x001D5178
[Token(Token = "0x600863C")]
[Address(RVA = "0x2097E20", Offset = "0x2096820", VA = "0x182097E20")]
public static void AddOne(int[] z, int zOff)
{
}
// Token: 0x0600863D RID: 34365 RVA: 0x001D6F8C File Offset: 0x001D518C
[Token(Token = "0x600863D")]
[Address(RVA = "0x2097F10", Offset = "0x2096910", VA = "0x182097F10")]
public static void Apm(int[] x, int[] y, int[] zp, int[] zm)
{
int num = 0;
int num2 = x[num];
int num3 = y[num];
zp[0] = x;
num2 -= num3;
num++;
zm[0] = num2;
}
// Token: 0x0600863E RID: 34366 RVA: 0x001D6FCC File Offset: 0x001D51CC
[Token(Token = "0x600863E")]
[Address(RVA = "0x20980C0", Offset = "0x2096AC0", VA = "0x1820980C0")]
public static void Carry(int[] z)
{
int num = z.Length;
int num2 = z[0];
int num3 = z[0];
int num4 = z[1];
int num5 = z[1];
int num6 = z[2];
int num7 = z[2];
int num8 = z[3];
int num9 = z[3];
int num10 = z[4];
int num11 = z[4];
num = num4;
num5 += num;
num = num6;
num7 += num;
num = num9;
num10 += num;
num = num11;
long num12 = (long)(num * (int)((uint)38));
num2 = (int)((long)num2 + num12);
num3 += num2;
z[0] = num2;
num2 = num7;
num8 += num2;
num2 = num3;
z[0] = num2;
num4 += num3;
z[1] = num4;
num2 = num5;
z[1] = num2;
num6 += num5;
z[2] = num6;
z[2] = num7;
num2 = num8;
z[3] = num2;
num9 += num8;
z[3] = num9;
num2 = num10;
z[4] = num2;
num11 += num10;
z[4] = num11;
}
// Token: 0x0600863F RID: 34367 RVA: 0x001D70EC File Offset: 0x001D52EC
[Token(Token = "0x600863F")]
[Address(RVA = "0x2097FD0", Offset = "0x20969D0", VA = "0x182097FD0")]
public static void CNegate(int negate, int[] z)
{
int num = 0;
num++;
z[0] = negate;
}
// Token: 0x06008640 RID: 34368 RVA: 0x001D7110 File Offset: 0x001D5310
[Token(Token = "0x6008640")]
[Address(RVA = "0x20983D0", Offset = "0x2096DD0", VA = "0x1820983D0")]
public static void Copy(int[] x, int xOff, int[] z, int zOff)
{
int num = x[x];
z[0] = num;
num = zOff - zOff;
}
// Token: 0x06008641 RID: 34369 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6008641")]
[Address(RVA = "0x2098490", Offset = "0x2096E90", VA = "0x182098490")]
public static int[] Create()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06008642 RID: 34370 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6008642")]
[Address(RVA = "0x2098450", Offset = "0x2096E50", VA = "0x182098450")]
public static int[] CreateTable(int n)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06008643 RID: 34371 RVA: 0x001D713C File Offset: 0x001D533C
[Token(Token = "0x6008643")]
[Address(RVA = "0x2098020", Offset = "0x2096A20", VA = "0x182098020")]
public static void CSwap(int swap, int[] a, int[] b)
{
int num = 0;
int num2 = b[num];
num++;
b[0] = num2;
}
// Token: 0x06008644 RID: 34372 RVA: 0x001D7168 File Offset: 0x001D5368
[Token(Token = "0x6008644")]
[Address(RVA = "0x2098850", Offset = "0x2097250", VA = "0x182098850")]
public static void Decode(byte[] x, int xOff, int[] z)
{
int num = 0;
X25519Field.Decode128(x, xOff, z, num);
X25519Field.Decode128(x, xOff, z, 5);
}
// Token: 0x06008645 RID: 34373 RVA: 0x001D7190 File Offset: 0x001D5390
[Token(Token = "0x6008645")]
[Address(RVA = "0x20984D0", Offset = "0x2096ED0", VA = "0x1820984D0")]
private static void Decode128(byte[] bs, int off, int[] z, int zOff)
{
int length = bs.Length;
int num = zOff + 1;
byte b;
z[0] = (int)b;
byte b2;
b = b2;
byte b3;
b = b3;
z[0] = (int)b2;
byte b4;
b = b4;
z[0] = (int)b3;
z[0] = (int)b4;
}
// Token: 0x06008646 RID: 34374 RVA: 0x001D71D8 File Offset: 0x001D53D8
[Token(Token = "0x6008646")]
[Address(RVA = "0x74C4E0", Offset = "0x74AEE0", VA = "0x18074C4E0")]
private static uint Decode32(byte[] bs, int off)
{
int length = bs.Length;
int num = off + 1;
throw new NullReferenceException();
}
// Token: 0x06008647 RID: 34375 RVA: 0x001D71F8 File Offset: 0x001D53F8
[Token(Token = "0x6008647")]
[Address(RVA = "0x2098C40", Offset = "0x2097640", VA = "0x182098C40")]
public static void Encode(int[] x, byte[] z, int zOff)
{
int num = 0;
X25519Field.Encode128(x, num, z, zOff);
X25519Field.Encode128(x, 5, z, zOff);
}
// Token: 0x06008648 RID: 34376 RVA: 0x001D721C File Offset: 0x001D541C
[Token(Token = "0x6008648")]
[Address(RVA = "0x2098910", Offset = "0x2097310", VA = "0x182098910")]
private static void Encode128(int[] x, int xOff, byte[] bs, int off)
{
int num = x.Length;
int num2 = xOff + 1;
int num3 = x[num2];
int num4 = x[num2];
int num5 = x[num2];
Ed25519.Encode32((uint)num3, bs, off);
bs[0] = (byte)off;
bs[0] = (byte)off;
num = num4;
bs[0] = (byte)num;
num = num4;
bs[0] = (byte)num;
num = num5;
bs[0] = (byte)num;
num = num5;
num3 = off + 15;
bs[0] = (byte)num;
}
// Token: 0x06008649 RID: 34377 RVA: 0x001D72A8 File Offset: 0x001D54A8
[Token(Token = "0x6008649")]
[Address(RVA = "0x1DFD250", Offset = "0x1DFBC50", VA = "0x181DFD250")]
private static void Encode32(uint n, byte[] bs, int off)
{
int num = off + 1;
}
// Token: 0x0600864A RID: 34378 RVA: 0x001D72C0 File Offset: 0x001D54C0
[Token(Token = "0x600864A")]
[Address(RVA = "0x2098CE0", Offset = "0x20976E0", VA = "0x182098CE0")]
public static void Inv(int[] x, int[] z)
{
int[] array = new int[10];
int[] array2 = new int[10];
X25519Field.PowPm5d8(x, array, array2);
X25519Field.Sqr(array2, 3, array2);
X25519Field.Mul(array2, array, z);
}
// Token: 0x0600864B RID: 34379 RVA: 0x001D72F8 File Offset: 0x001D54F8
[Token(Token = "0x600864B")]
[Address(RVA = "0x2098DE0", Offset = "0x20977E0", VA = "0x182098DE0")]
public static bool IsZeroVar(int[] x)
{
int num = 0;
num++;
return num == 0;
}
// Token: 0x0600864C RID: 34380 RVA: 0x001D7318 File Offset: 0x001D5518
[Token(Token = "0x600864C")]
[Address(RVA = "0x2098E30", Offset = "0x2097830", VA = "0x182098E30")]
public static void Mul(int[] x, int y, int[] z)
{
int num = x.Length;
int num2 = x[0];
int num3 = x[2];
int num4 = x[4];
int num5 = x[1];
int num6 = x[2];
int num7 = x[3];
int num8 = x[0];
int num9 = num4 * y;
int num10 = num8 * y;
int num11 = num5 * y;
int num12 = num6 * y;
int num13 = num7 * y;
num = num9;
long num14 = (long)((ulong)num * (ulong)38L);
num10 = (int)((long)num10 + num14);
num = num10;
z[0] = num;
num = num12;
int num15 = num3 * y;
num15 += num;
int num16 = num2 * y;
num = num15;
num16 += num10;
z[2] = num;
num = num16;
z[0] = num;
num = num11;
int num17 = num3 * y;
num17 += num;
int num18 = num10 * y;
num = num17;
num18 += num15;
z[1] = num;
num = num18;
z[3] = num;
num = num13;
int num19 = num15 * y;
num19 += num;
num = num19;
z[4] = num;
num16 += num11;
z[1] = num16;
num17 += num12;
z[2] = num17;
num18 += num13;
z[3] = num18;
num19 += num9;
z[4] = num19;
}
// Token: 0x0600864D RID: 34381 RVA: 0x001D7464 File Offset: 0x001D5664
[Token(Token = "0x600864D")]
[Address(RVA = "0x20991B0", Offset = "0x2097BB0", VA = "0x1820991B0")]
public static void Mul(int[] x, int[] y, int[] z)
{
int length = x.Length;
int num = x[0];
int num2 = y.Length;
int num3 = y[0];
int num4 = x[0];
int num5 = y[0];
int num6 = x[1];
int num7 = y[1];
int num8 = x[1];
int num9 = y[1];
int num10 = x[2];
int num11 = x[2];
int num12 = y[2];
int num13 = x[3];
int num14 = y[3];
int num15 = x[3];
int num16 = y[3];
int num17 = x[4];
int num18 = y[4];
int num19 = x[4];
int num20 = y[2];
num17 = num10;
num2 = num8;
num7 = num5;
num5 = num9;
int num21 = y[0];
int num22 = num * num20;
num20 = num21;
int num23 = num20 * num17;
num22 += num23;
num23 = num4;
int num24 = num23 * num5;
num22 += num24;
num24 = num7;
int num25 = num24 * num2;
int num26 = y[4];
num22 += num25;
num25 = num6;
int num27 = num25 * num7;
int num28 = y[3];
num22 = num11;
int num29 = num12 * num19;
int num30 = num22 * num26;
num30 += num29;
num29 = num13;
num30 += num29;
num30 += num28;
num28 = num15;
int num31 = num28 * num16;
num30 = num26;
num31 = num19;
int num32 = num30 * num13;
num32 += num31;
int num33 = num18 * num15;
num32 += num33;
int num34 = num17 * num16;
num32 += num34;
long num35 = (long)((ulong)num32 * (ulong)76L);
num32 = num;
int num36 = num32 * num21;
num36 = (int)((long)num36 - num35);
int num37 = num19 * num16;
num36 = num26;
int num38 = num36 * num15;
num38 += num37;
long num39 = (long)((ulong)num18 * (ulong)38L);
num18 = num21;
int num40 = num18 * num4;
num40 = (int)((long)num40 - num39);
num40 = num;
int num41 = num40 * num7;
num41 = num26;
int num42 = num26 * num19;
num19 += num41;
long num43 = (long)((ulong)num19 * (ulong)38L);
num19 = num4;
int num44 = num19 * num7;
num44 = (int)((long)num44 - num43);
int num45 = num * num7;
int num46 = num * num5;
num44 += num45;
num45 = num21;
int num47 = num45 * num6;
num44 += num47;
num44 = num4;
int num48 = num44 * num7;
long num49 = (long)((ulong)num42 * (ulong)38L);
num48 = (int)((long)num48 - num49);
int num50 = num7 * num6;
num48 += num50;
int num51 = num21 * num8;
num19 = num8;
num46 = num10;
num48 += num51;
int num52 = num10 * num7;
num42 = num12;
int num53 = num20 * num4;
num53 += num52;
num52 = num5;
int num54 = num52 * num6;
num53 += num54;
num54 = num19;
int num55 = num54 * num7;
num53 += num55;
num55 = num11;
int num56 = num55 * num12;
num53 += num53;
num12 = num20;
num53 -= num56;
num56 = num46;
int num57 = num56 * num7;
int num58 = num12 * num6;
num58 += num57;
num57 = num42;
int num59 = num57 * num13;
num58 += num58;
num58 -= num59;
num59 = num11;
int num60 = num59 * num28;
num58 -= num60;
num60 = num5;
int num61 = num60 * num19;
num58 += num61;
num61 = num13;
int num62 = num61 * num28;
num58 = num46;
int num63 = num58 * num5;
num63 -= num62;
num62 = num11;
int num64 = num62 * num16;
num63 -= num64;
num64 = num42;
int num65 = num64 * num15;
num63 -= num65;
num65 = num20;
int num66 = num65 * num19;
int num67 = num28 * num15;
int num68 = num20 * num46;
int num69 = num13 * num16;
num63 += num66;
num67 += num67;
num46 = num7;
num68 += num68;
num69 += num69;
num68 -= num69;
num68 -= num67;
num68 -= num11;
num68 -= num42;
num6 += num15;
num15 = num9;
num69 = num6;
num11 = num46;
num6 = num5;
int num70 = num6 * num69;
num46 = num4;
num4 = num8;
num9 = num46;
int num71 = num9 * num11;
num71 += num70;
num5 = num3;
num3 = num10;
num70 = num;
int num72 = num70 * num15;
num72 = num5;
int num73 = num72 * num4;
num71 = num;
num8 += num73;
num73 = num5;
int num74 = num73 * num3;
num8 += num68;
num68 = num19;
int num75 = num71 * num68;
num75 += num74;
num74 = num46;
int num76 = num74 * num15;
num75 += num76;
num76 = num6;
int num77 = num76 * num4;
num75 += num77;
num77 = num69;
int num78 = num77 * num11;
num78 = num8;
num10 += num78;
num75 = num68;
num78 = num3;
int num79 = num78 * num6;
int num80 = num75 * num46;
num80 += num79;
num79 = num15;
int num81 = num79 * num69;
num80 += num81;
num81 = num4;
int num82 = num81 * num11;
num80 += num82;
long num83 = (long)((ulong)num80 * (ulong)38L);
num80 = num68;
int num84 = num3 * num11;
int num85 = num80 * num69;
num85 += num84;
num85 -= num58;
long num86 = (long)((ulong)num85 * (ulong)38L);
num86 += (long)num40;
num83 += num86;
num85 = num3;
int num87 = num68 * num4;
int num88 = num85 * num15;
num88 += num87;
num88 -= num63;
long num89 = (long)((ulong)num88 * (ulong)38L);
num89 += (long)num44;
num83 += num89;
int num90 = num68 * num3;
num90 += num90;
long num91 = (long)((ulong)num90 * (ulong)38L);
num83 += num91;
num27 = (int)((long)num27 + num83);
long num92;
num92 += (long)num27;
int num93 = num * num5;
num93 = (int)((long)num93 + num92);
int num94 = num5 * num46;
num93 = num;
num90 = num5;
int num95 = num93 * num5;
num94 += num95;
num94 += num93;
num94 -= num40;
num94 += num58;
int num96 = num46 * num90;
int num97 = num * num46;
int num98 = num5 * num6;
num96 += num97;
num96 += num98;
num96 += num94;
num96 -= num44;
num96 += num63;
num8 += num96;
num8 += num10;
}
// Token: 0x0600864E RID: 34382 RVA: 0x001D7A7C File Offset: 0x001D5C7C
[Token(Token = "0x600864E")]
[Address(RVA = "0x2099B60", Offset = "0x2098560", VA = "0x182099B60")]
public static void Negate(int[] x, int[] z)
{
int num = 0;
int num2 = x[num];
num++;
z[0] = num2;
}
// Token: 0x0600864F RID: 34383 RVA: 0x001D7AA8 File Offset: 0x001D5CA8
[Token(Token = "0x600864F")]
[Address(RVA = "0x2099BD0", Offset = "0x20985D0", VA = "0x182099BD0")]
public static void Normalize(int[] z)
{
int num = z[4];
X25519Field.Reduce(z, num);
X25519Field.Reduce(z, num);
}
// Token: 0x06008650 RID: 34384 RVA: 0x001D7AD4 File Offset: 0x001D5CD4
[Token(Token = "0x6008650")]
[Address(RVA = "0x2099C70", Offset = "0x2098670", VA = "0x182099C70")]
public static void One(int[] z)
{
int num = 0;
z[0] = (int)((uint)1);
z[0] = num;
}
// Token: 0x06008651 RID: 34385 RVA: 0x001D7AFC File Offset: 0x001D5CFC
[Token(Token = "0x6008651")]
[Address(RVA = "0x2099CD0", Offset = "0x20986D0", VA = "0x182099CD0")]
private static void PowPm5d8(int[] x, int[] rx2, int[] rz)
{
X25519Field.Sqr(x, rx2);
X25519Field.Mul(x, rx2, rx2);
int[] array = new int[10];
X25519Field.Sqr(rx2, array);
X25519Field.Mul(x, array, array);
X25519Field.Sqr(array, 2, array);
X25519Field.Mul(rx2, array, array);
int[] array2 = new int[10];
X25519Field.Sqr(array, 5, array2);
X25519Field.Mul(array, array2, array2);
int[] array3 = new int[10];
X25519Field.Sqr(array2, 5, array3);
X25519Field.Mul(array, array3, array3);
X25519Field.Sqr(array3, 10, array);
X25519Field.Mul(array2, array, array);
X25519Field.Sqr(array, 25, array2);
X25519Field.Mul(array, array2, array2);
X25519Field.Sqr(array2, 25, array3);
X25519Field.Mul(array, array3, array3);
X25519Field.Sqr(array3, 50, array);
X25519Field.Mul(array2, array, array);
X25519Field.Sqr(array, 125, array2);
X25519Field.Mul(array, array2, array2);
X25519Field.Sqr(array2, 2, array);
X25519Field.Mul(array, x, rz);
}
// Token: 0x06008652 RID: 34386 RVA: 0x001D7BD4 File Offset: 0x001D5DD4
[Token(Token = "0x6008652")]
[Address(RVA = "0x2099F50", Offset = "0x2098950", VA = "0x182099F50")]
private static void Reduce(int[] z, int c)
{
int length = z.Length;
int num = z[4];
num += c;
long num2 = (long)(num * (int)((uint)19));
z[0] = (int)num2;
z[0] = (int)num2;
z[1] = (int)num2;
z[1] = (int)num2;
z[2] = (int)num2;
z[2] = (int)num2;
z[3] = (int)num2;
z[3] = (int)num2;
z[4] = (int)num2;
num = (int)((long)num + num2);
z[4] = num;
}
// Token: 0x06008653 RID: 34387 RVA: 0x001D7C54 File Offset: 0x001D5E54
[Token(Token = "0x6008653")]
[Address(RVA = "0x209A210", Offset = "0x2098C10", VA = "0x18209A210")]
public static void Sqr(int[] x, int[] z)
{
int num = x.Length;
int num2 = x[0];
int num3 = x[0];
int num4 = x[1];
int num5 = x[1];
int num6 = x[2];
int num7 = x[2];
int num8 = x[3];
int num9 = x[3];
int num10 = x[4];
int num11 = x[4];
num7 = num3;
num5 = num4;
int num12 = num5 * num;
num = num2;
int num13 = num * num;
num12 += num13;
num13 = num3;
int num14 = num13 * num;
num12 += num14;
num9 = num8;
num4 = num14;
num3 = num14;
num14 = num7;
int num15 = num9 * num14;
int num16 = num14 * num3;
num15 += num16;
num16 = num9;
int num17 = num16 * num4;
num15 += num17;
num17 = num9;
num17 += num17;
num10 = num17;
num17 = num4;
int num18 = num17 * num14;
num15 = num10;
int num19 = num15 * num3;
num19 += num18;
long num20 = (long)((ulong)num19 * (ulong)38L);
num19 = num2;
int num21 = num19 * num2;
num21 = (int)((long)num21 - num20);
num7 += num7;
num6 = num7;
num21 = num10;
int num22 = num21 * num10;
int num23 = num10 * num3;
int num24 = num7 * num7;
num7 = num3;
int num25 = num7 * num14;
num22 += num25;
long num26 = (long)((ulong)num22 * (ulong)38L);
num22 = num6;
int num27 = num22 * num2;
num27 = (int)((long)num27 - num26);
int num28 = num * num2;
long num29 = (long)((ulong)num23 * (ulong)38L);
int num30 = num2 * num;
num28 = (int)((long)num28 - num29);
num28 += num24;
int num31 = num11 * num3;
long num32 = (long)((ulong)num31 * (ulong)38L);
num31 = num;
int num33 = num31 * num6;
num33 = (int)((long)num33 - num32);
num33 += num30;
num33 = num7;
int num34 = num33 * num7;
int num35 = num * num;
int num36 = num * num;
int num37 = num6 * num;
int num38 = num9 * num9;
num35 -= num34;
num35 += num37;
num34 = num10;
int num39 = num34 * num7;
int num40 = num10 * num14;
num36 -= num39;
num39 = num5;
num35 = num5;
int num41 = num39 * num5;
int num42 = num35 * num;
num36 += num41;
num41 = num7;
int num43 = num41 * num14;
int num44 = num7 * num4;
num42 -= num38;
num42 -= num43;
int num45 = num6 * num;
num45 -= num44;
num45 -= num40;
num44 = num4;
num40 = num2;
num3 = num45;
num6 += num11;
num24 = num42;
num37 = num45;
num2 = num24;
int num46 = num44 * num3;
int num47 = num2 * num3;
num45 = num40;
int num48 = num45 * num37;
num42 = num24;
num47 += num48;
num4 = num48;
num48 = num40;
int num49 = num48 * num4;
int num50 = num42 * num4;
num46 += num49;
num49 = num3;
int num51 = num49 * num37;
num46 += num51;
num51 = num47;
num46 += num51;
num51 = num3;
int num52 = num51 * num37;
num50 += num52;
num52 = num46;
num50 += num52;
long num53 = (long)((ulong)num50 * (ulong)38L);
num50 = num5;
int num54 = num50 * num5;
int num55 = num3 * num4;
num54 += num55;
num54 -= num36;
long num56 = (long)((ulong)num54 * (ulong)38L);
num53 += num56;
int num57 = num5 * num4;
num57 -= num42;
long num58 = (long)((ulong)num57 * (ulong)38L);
num53 += num58;
long num59 = (long)((ulong)(num6 * num4) * (ulong)38L);
num53 += num59;
num12 = (int)((long)num12 + num53);
long num60;
num60 += (long)num12;
num54 = num40;
int num61 = num54 * num40;
num61 = (int)((long)num61 + num60);
int num62 = num24 * num40;
num62 += num61;
num62 += num36;
int num63 = num3 * num40;
int num64 = num3 * num3;
num63 += num64;
num63 += num62;
num63 += num42;
num47 += num63;
num47 += num46;
}
// Token: 0x06008654 RID: 34388 RVA: 0x001D8004 File Offset: 0x001D6204
[Token(Token = "0x6008654")]
[Address(RVA = "0x209A150", Offset = "0x2098B50", VA = "0x18209A150")]
public static void Sqr(int[] x, int n, int[] z)
{
X25519Field.Sqr(x, z);
if (n > 0)
{
X25519Field.Sqr(z, z);
}
}
// Token: 0x06008655 RID: 34389 RVA: 0x001D8024 File Offset: 0x001D6224
[Token(Token = "0x6008655")]
[Address(RVA = "0x209A860", Offset = "0x2099260", VA = "0x18209A860")]
public static bool SqrtRatioVar(int[] u, int[] v, int[] z)
{
int[] array = new int[10];
int[] array2 = new int[10];
X25519Field.Mul(u, v, array);
X25519Field.Sqr(v, array2);
X25519Field.Mul(array, array2, array);
X25519Field.Sqr(array2, array2);
X25519Field.Mul(array2, array, array2);
int[] array3 = new int[10];
int[] array4 = new int[10];
X25519Field.PowPm5d8(array2, array3, array4);
X25519Field.Mul(array4, array, array4);
int[] array5 = new int[10];
X25519Field.Sqr(array4, array5);
X25519Field.Mul(array5, v, array5);
X25519Field.Sub(array5, u, array3);
X25519Field.Normalize(array3);
int num = 0;
num++;
if (num != 0)
{
int num2 = array5[num];
num++;
array3[0] = num2;
X25519Field.Normalize(array3);
int length = array3.Length;
num++;
if (num != 0)
{
}
}
if ("{il2cpp array field local15->}" != (ulong)2L)
{
}
throw new NullReferenceException();
}
// Token: 0x06008656 RID: 34390 RVA: 0x001D8110 File Offset: 0x001D6310
[Token(Token = "0x6008656")]
[Address(RVA = "0x209AC70", Offset = "0x2099670", VA = "0x18209AC70")]
public static void Sub(int[] x, int[] y, int[] z)
{
int num = 0;
int num2 = x[num];
num++;
z[0] = num2;
}
// Token: 0x06008657 RID: 34391 RVA: 0x001D813C File Offset: 0x001D633C
[Token(Token = "0x6008657")]
[Address(RVA = "0x209AC40", Offset = "0x2099640", VA = "0x18209AC40")]
public static void SubOne(int[] z)
{
}
// Token: 0x06008658 RID: 34392 RVA: 0x001D8150 File Offset: 0x001D6350
[Token(Token = "0x6008658")]
[Address(RVA = "0x209AD00", Offset = "0x2099700", VA = "0x18209AD00")]
public static void Zero(int[] z)
{
int num = 0;
num++;
z[0] = num;
}
// Token: 0x06008659 RID: 34393 RVA: 0x001D8174 File Offset: 0x001D6374
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x6008659")]
[Address(RVA = "0x209AD50", Offset = "0x2099750", VA = "0x18209AD50")]
static X25519Field()
{
RuntimeHelpers.InitializeArray(new int[10], fieldof(<PrivateImplementationDetails>.146E4D4A36742E37DEE528D23474B9675695E406).FieldHandle);
}
// Token: 0x04005CC5 RID: 23749
[Token(Token = "0x4005CC5")]
public const int Size = 10;
// Token: 0x04005CC6 RID: 23750
[Token(Token = "0x4005CC6")]
private const int M24 = 16777215;
// Token: 0x04005CC7 RID: 23751
[Token(Token = "0x4005CC7")]
private const int M25 = 33554431;
// Token: 0x04005CC8 RID: 23752
[Token(Token = "0x4005CC8")]
private const int M26 = 67108863;
// Token: 0x04005CC9 RID: 23753
[Token(Token = "0x4005CC9")]
private static readonly int[] RootNegOne;
}
}