Files
27Aug2021-Cpp2IL-Dump/Assembly-CSharp/BestHTTP/SecureProtocol/Org/BouncyCastle/Math/EC/Rfc7748/X25519Field.cs
T
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

910 lines
23 KiB
C#

using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc7748
{
// Token: 0x02001AF2 RID: 6898
[Token(Token = "0x2001AF2")]
public abstract class X25519Field
{
// Token: 0x0600A5E1 RID: 42465 RVA: 0x002375B4 File Offset: 0x002357B4
[Token(Token = "0x600A5E1")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
private X25519Field()
{
}
// Token: 0x0600A5E2 RID: 42466 RVA: 0x002375C8 File Offset: 0x002357C8
[Token(Token = "0x600A5E2")]
[Address(RVA = "0x742760", Offset = "0x741760", VA = "0x180742760")]
public static void Add(int[] x, int[] y, int[] z)
{
int num = 0;
int num2 = x[num];
num++;
z[0] = num2;
}
// Token: 0x0600A5E3 RID: 42467 RVA: 0x002375F4 File Offset: 0x002357F4
[Token(Token = "0x600A5E3")]
[Address(RVA = "0x742730", Offset = "0x741730", VA = "0x180742730")]
public static void AddOne(int[] z)
{
}
// Token: 0x0600A5E4 RID: 42468 RVA: 0x00237608 File Offset: 0x00235808
[Token(Token = "0x600A5E4")]
[Address(RVA = "0x742700", Offset = "0x741700", VA = "0x180742700")]
public static void AddOne(int[] z, int zOff)
{
}
// Token: 0x0600A5E5 RID: 42469 RVA: 0x0023761C File Offset: 0x0023581C
[Token(Token = "0x600A5E5")]
[Address(RVA = "0x7427F0", Offset = "0x7417F0", VA = "0x1807427F0")]
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: 0x0600A5E6 RID: 42470 RVA: 0x0023765C File Offset: 0x0023585C
[Token(Token = "0x600A5E6")]
[Address(RVA = "0x7429A0", Offset = "0x7419A0", VA = "0x1807429A0")]
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: 0x0600A5E7 RID: 42471 RVA: 0x0023777C File Offset: 0x0023597C
[Token(Token = "0x600A5E7")]
[Address(RVA = "0x7428B0", Offset = "0x7418B0", VA = "0x1807428B0")]
public static void CNegate(int negate, int[] z)
{
int num = 0;
num++;
z[0] = negate;
}
// Token: 0x0600A5E8 RID: 42472 RVA: 0x002377A0 File Offset: 0x002359A0
[Token(Token = "0x600A5E8")]
[Address(RVA = "0x742CB0", Offset = "0x741CB0", VA = "0x180742CB0")]
public static void Copy(int[] x, int xOff, int[] z, int zOff)
{
int num = x[x];
z[0] = num;
num = zOff - zOff;
}
// Token: 0x0600A5E9 RID: 42473 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A5E9")]
[Address(RVA = "0x742D70", Offset = "0x741D70", VA = "0x180742D70")]
public static int[] Create()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A5EA RID: 42474 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A5EA")]
[Address(RVA = "0x742D30", Offset = "0x741D30", VA = "0x180742D30")]
public static int[] CreateTable(int n)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A5EB RID: 42475 RVA: 0x002377CC File Offset: 0x002359CC
[Token(Token = "0x600A5EB")]
[Address(RVA = "0x742900", Offset = "0x741900", VA = "0x180742900")]
public static void CSwap(int swap, int[] a, int[] b)
{
int num = 0;
int num2 = b[num];
num++;
b[0] = num2;
}
// Token: 0x0600A5EC RID: 42476 RVA: 0x002377F8 File Offset: 0x002359F8
[Token(Token = "0x600A5EC")]
[Address(RVA = "0x743130", Offset = "0x742130", VA = "0x180743130")]
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: 0x0600A5ED RID: 42477 RVA: 0x00237820 File Offset: 0x00235A20
[Token(Token = "0x600A5ED")]
[Address(RVA = "0x742DB0", Offset = "0x741DB0", VA = "0x180742DB0")]
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: 0x0600A5EE RID: 42478 RVA: 0x00237868 File Offset: 0x00235A68
[Token(Token = "0x600A5EE")]
[Address(RVA = "0x45D6B0", Offset = "0x45C6B0", VA = "0x18045D6B0")]
private static uint Decode32(byte[] bs, int off)
{
int length = bs.Length;
int num = off + 1;
throw new NullReferenceException();
}
// Token: 0x0600A5EF RID: 42479 RVA: 0x00237888 File Offset: 0x00235A88
[Token(Token = "0x600A5EF")]
[Address(RVA = "0x743520", Offset = "0x742520", VA = "0x180743520")]
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: 0x0600A5F0 RID: 42480 RVA: 0x002378AC File Offset: 0x00235AAC
[Token(Token = "0x600A5F0")]
[Address(RVA = "0x7431F0", Offset = "0x7421F0", VA = "0x1807431F0")]
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: 0x0600A5F1 RID: 42481 RVA: 0x00237938 File Offset: 0x00235B38
[Token(Token = "0x600A5F1")]
[Address(RVA = "0x45E270", Offset = "0x45D270", VA = "0x18045E270")]
private static void Encode32(uint n, byte[] bs, int off)
{
int num = off + 1;
}
// Token: 0x0600A5F2 RID: 42482 RVA: 0x00237950 File Offset: 0x00235B50
[Token(Token = "0x600A5F2")]
[Address(RVA = "0x7435C0", Offset = "0x7425C0", VA = "0x1807435C0")]
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: 0x0600A5F3 RID: 42483 RVA: 0x00237988 File Offset: 0x00235B88
[Token(Token = "0x600A5F3")]
[Address(RVA = "0x7436C0", Offset = "0x7426C0", VA = "0x1807436C0")]
public static bool IsZeroVar(int[] x)
{
int num = 0;
num++;
return num == 0;
}
// Token: 0x0600A5F4 RID: 42484 RVA: 0x002379A8 File Offset: 0x00235BA8
[Token(Token = "0x600A5F4")]
[Address(RVA = "0x743710", Offset = "0x742710", VA = "0x180743710")]
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: 0x0600A5F5 RID: 42485 RVA: 0x00237AF4 File Offset: 0x00235CF4
[Token(Token = "0x600A5F5")]
[Address(RVA = "0x743A90", Offset = "0x742A90", VA = "0x180743A90")]
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: 0x0600A5F6 RID: 42486 RVA: 0x0023810C File Offset: 0x0023630C
[Token(Token = "0x600A5F6")]
[Address(RVA = "0x744440", Offset = "0x743440", VA = "0x180744440")]
public static void Negate(int[] x, int[] z)
{
int num = 0;
int num2 = x[num];
num++;
z[0] = num2;
}
// Token: 0x0600A5F7 RID: 42487 RVA: 0x00238138 File Offset: 0x00236338
[Token(Token = "0x600A5F7")]
[Address(RVA = "0x7444B0", Offset = "0x7434B0", VA = "0x1807444B0")]
public static void Normalize(int[] z)
{
int num = z[4];
X25519Field.Reduce(z, num);
X25519Field.Reduce(z, num);
}
// Token: 0x0600A5F8 RID: 42488 RVA: 0x00238164 File Offset: 0x00236364
[Token(Token = "0x600A5F8")]
[Address(RVA = "0x744550", Offset = "0x743550", VA = "0x180744550")]
public static void One(int[] z)
{
int num = 0;
z[0] = (int)((uint)1);
z[0] = num;
}
// Token: 0x0600A5F9 RID: 42489 RVA: 0x0023818C File Offset: 0x0023638C
[Token(Token = "0x600A5F9")]
[Address(RVA = "0x7445B0", Offset = "0x7435B0", VA = "0x1807445B0")]
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: 0x0600A5FA RID: 42490 RVA: 0x00238264 File Offset: 0x00236464
[Token(Token = "0x600A5FA")]
[Address(RVA = "0x744830", Offset = "0x743830", VA = "0x180744830")]
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: 0x0600A5FB RID: 42491 RVA: 0x002382E4 File Offset: 0x002364E4
[Token(Token = "0x600A5FB")]
[Address(RVA = "0x744AF0", Offset = "0x743AF0", VA = "0x180744AF0")]
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: 0x0600A5FC RID: 42492 RVA: 0x00238694 File Offset: 0x00236894
[Token(Token = "0x600A5FC")]
[Address(RVA = "0x744A30", Offset = "0x743A30", VA = "0x180744A30")]
public static void Sqr(int[] x, int n, int[] z)
{
X25519Field.Sqr(x, z);
if (n > 0)
{
X25519Field.Sqr(z, z);
}
}
// Token: 0x0600A5FD RID: 42493 RVA: 0x002386B4 File Offset: 0x002368B4
[Token(Token = "0x600A5FD")]
[Address(RVA = "0x745140", Offset = "0x744140", VA = "0x180745140")]
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: 0x0600A5FE RID: 42494 RVA: 0x002387A0 File Offset: 0x002369A0
[Token(Token = "0x600A5FE")]
[Address(RVA = "0x745550", Offset = "0x744550", VA = "0x180745550")]
public static void Sub(int[] x, int[] y, int[] z)
{
int num = 0;
int num2 = x[num];
num++;
z[0] = num2;
}
// Token: 0x0600A5FF RID: 42495 RVA: 0x002387CC File Offset: 0x002369CC
[Token(Token = "0x600A5FF")]
[Address(RVA = "0x745520", Offset = "0x744520", VA = "0x180745520")]
public static void SubOne(int[] z)
{
}
// Token: 0x0600A600 RID: 42496 RVA: 0x002387E0 File Offset: 0x002369E0
[Token(Token = "0x600A600")]
[Address(RVA = "0x7455E0", Offset = "0x7445E0", VA = "0x1807455E0")]
public static void Zero(int[] z)
{
int num = 0;
num++;
z[0] = num;
}
// Token: 0x0600A601 RID: 42497 RVA: 0x00238804 File Offset: 0x00236A04
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A601")]
[Address(RVA = "0x745630", Offset = "0x744630", VA = "0x180745630")]
static X25519Field()
{
RuntimeHelpers.InitializeArray(new int[10], fieldof(<PrivateImplementationDetails>.146E4D4A36742E37DEE528D23474B9675695E406).FieldHandle);
}
// Token: 0x04006CC1 RID: 27841
[Token(Token = "0x4006CC1")]
public const int Size = 10;
// Token: 0x04006CC2 RID: 27842
[Token(Token = "0x4006CC2")]
private const int M24 = 16777215;
// Token: 0x04006CC3 RID: 27843
[Token(Token = "0x4006CC3")]
private const int M25 = 33554431;
// Token: 0x04006CC4 RID: 27844
[Token(Token = "0x4006CC4")]
private const int M26 = 67108863;
// Token: 0x04006CC5 RID: 27845
[Token(Token = "0x4006CC5")]
private static readonly int[] RootNegOne;
}
}