This commit is contained in:
niko
2026-04-10 22:50:51 +02:00
parent 6d1607d5a2
commit f18d448581
17033 changed files with 2863270 additions and 0 deletions
@@ -0,0 +1,314 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb
{
// Token: 0x02001ABA RID: 6842
[Token(Token = "0x2001ABA")]
internal class Curve25519 : AbstractFpCurve
{
// Token: 0x0600A9C2 RID: 43458 RVA: 0x0025172C File Offset: 0x0024F92C
[Token(Token = "0x600A9C2")]
[Address(RVA = "0x1ED1B60", Offset = "0x1ED0960", VA = "0x181ED1B60")]
public Curve25519()
{
IFiniteField primeField = FiniteFields.GetPrimeField(Curve25519.q);
base..ctor(primeField);
int num;
int num2;
ulong num3;
Curve25519Point curve25519Point = new Curve25519Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = curve25519Point;
byte[] array = Hex.Decode("2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA984914A144");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("7B425ED097B425ED097B425ED097B425ED097B425ED097B4260B5E9C7710C864");
BigInteger bigInteger2 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("1000000000000000000000000000000014DEF9DEA2F79CD65812631A5CF5D3ED");
BigInteger bigInteger3 = new BigInteger(1, array3);
this.m_order = bigInteger3;
BigInteger bigInteger4;
this.m_cofactor = bigInteger4;
this.m_coord = (int)((ulong)4L);
}
// Token: 0x0600A9C3 RID: 43459 RVA: 0x002517E0 File Offset: 0x0024F9E0
[Token(Token = "0x600A9C3")]
[Address(RVA = "0x1ED1530", Offset = "0x1ED0330", VA = "0x181ED1530", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A9C3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Curve25519(var_0_05, newobj:Curve25519(Curve25519::.ctor))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A9C4 RID: 43460 RVA: 0x002517F4 File Offset: 0x0024F9F4
[Token(Token = "0x600A9C4")]
[Address(RVA = "0x1ED1AE0", Offset = "0x1ED08E0", VA = "0x181ED1AE0", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 4;
}
// Token: 0x17001B04 RID: 6916
// (get) Token: 0x0600A9C5 RID: 43461 RVA: 0x00251808 File Offset: 0x0024FA08
[Token(Token = "0x17001B04")]
public virtual BigInteger Q
{
[Token(Token = "0x600A9C5")]
[Address(RVA = "0x1ED1DF0", Offset = "0x1ED0BF0", VA = "0x181ED1DF0", Slot = "38")]
get
{
return Curve25519.q;
}
}
// Token: 0x17001B05 RID: 6917
// (get) Token: 0x0600A9C6 RID: 43462 RVA: 0x0025181C File Offset: 0x0024FA1C
[Token(Token = "0x17001B05")]
public override ECPoint Infinity
{
[Token(Token = "0x600A9C6")]
[Address(RVA = "0x415290", Offset = "0x414090", VA = "0x180415290", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A9C6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Curve25519Point(var_0_06, ldfld:Curve25519Point(Curve25519::m_infinity, ldloc:Curve25519(this)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
}
// Token: 0x17001B06 RID: 6918
// (get) Token: 0x0600A9C7 RID: 43463 RVA: 0x00251830 File Offset: 0x0024FA30
[Token(Token = "0x17001B06")]
public override int FieldSize
{
[Token(Token = "0x600A9C7")]
[Address(RVA = "0x1ED1D80", Offset = "0x1ED0B80", VA = "0x181ED1D80", Slot = "4")]
get
{
return Curve25519.q.BitLength;
}
}
// Token: 0x0600A9C8 RID: 43464 RVA: 0x00251850 File Offset: 0x0024FA50
[Token(Token = "0x600A9C8")]
[Address(RVA = "0x1ED1910", Offset = "0x1ED0710", VA = "0x181ED1910", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A9C8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_45:
stloc:ArgumentException(var_6_54, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for Curve25519FieldElement"), ldstr:string("x")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A9C9 RID: 43465 RVA: 0x002518B4 File Offset: 0x0024FAB4
[Token(Token = "0x600A9C9")]
[Address(RVA = "0x1ED17E0", Offset = "0x1ED05E0", VA = "0x181ED17E0", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A9C9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Curve25519Point(var_0_09, newobj:Curve25519Point(Curve25519Point::.ctor, ldloc:Curve25519[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A9CA RID: 43466 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A9CA")]
[Address(RVA = "0x1ED1870", Offset = "0x1ED0670", VA = "0x181ED1870", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A9CB RID: 43467 RVA: 0x002518CC File Offset: 0x0024FACC
[Token(Token = "0x600A9CB")]
[Address(RVA = "0x1ED1580", Offset = "0x1ED0380", VA = "0x181ED1580", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[len];
num = 0;
if (len <= 0)
{
goto IL_4A;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 16;
IL_4A:
Curve25519.Curve25519LookupTable curve25519LookupTable;
curve25519LookupTable.m_outer = 0;
curve25519LookupTable.m_table = array;
curve25519LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006C77 RID: 27767
[Token(Token = "0x4006C77")]
public static readonly BigInteger q = Nat256.ToBigInteger(Curve25519Field.P);
// Token: 0x04006C78 RID: 27768
[Token(Token = "0x4006C78")]
private const int Curve25519_DEFAULT_COORDS = 4;
// Token: 0x04006C79 RID: 27769
[Token(Token = "0x4006C79")]
private const int CURVE25519_FE_INTS = 8;
// Token: 0x04006C7A RID: 27770
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006C7A")]
protected readonly Curve25519Point m_infinity;
// Token: 0x02001ABB RID: 6843
[Token(Token = "0x2001ABB")]
private class Curve25519LookupTable : ECLookupTable
{
// Token: 0x0600A9CD RID: 43469 RVA: 0x0025195C File Offset: 0x0024FB5C
[Token(Token = "0x600A9CD")]
[Address(RVA = "0x412390", Offset = "0x411190", VA = "0x180412390")]
internal Curve25519LookupTable(Curve25519 outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001B07 RID: 6919
// (get) Token: 0x0600A9CE RID: 43470 RVA: 0x00251984 File Offset: 0x0024FB84
[Token(Token = "0x17001B07")]
public virtual int Size
{
[Token(Token = "0x600A9CE")]
[Address(RVA = "0x3F7310", Offset = "0x3F6110", VA = "0x1803F7310", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A9CF RID: 43471 RVA: 0x00251998 File Offset: 0x0024FB98
[Token(Token = "0x600A9CF")]
[Address(RVA = "0x1ECFE20", Offset = "0x1ECEC20", VA = "0x181ECFE20", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat256.Create();
uint[] array2 = Nat256.Create();
int num = 0;
int num2 = 0;
if (this.m_size > num2)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 16;
num2++;
}
Curve25519 outer = this.m_outer;
new Curve25519FieldElement().x = array;
new Curve25519FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006C7B RID: 27771
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006C7B")]
private readonly Curve25519 m_outer;
// Token: 0x04006C7C RID: 27772
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006C7C")]
private readonly uint[] m_table;
// Token: 0x04006C7D RID: 27773
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006C7D")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,360 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb
{
// Token: 0x02001ABC RID: 6844
[Token(Token = "0x2001ABC")]
internal class Curve25519Field
{
// Token: 0x0600A9D0 RID: 43472 RVA: 0x00251A18 File Offset: 0x0024FC18
[Token(Token = "0x600A9D0")]
[Address(RVA = "0x1ECF030", Offset = "0x1ECDE30", VA = "0x181ECF030")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
uint num = Nat256.Add(x, y, z);
uint[] p = Curve25519Field.P;
if (Nat256.Gte(z, p))
{
int num2 = Curve25519Field.SubPFrom(z);
}
}
// Token: 0x0600A9D1 RID: 43473 RVA: 0x00251A48 File Offset: 0x0024FC48
[Token(Token = "0x600A9D1")]
[Address(RVA = "0x1ECEC20", Offset = "0x1ECDA20", VA = "0x181ECEC20")]
public static void AddExt(uint[] xx, uint[] yy, uint[] zz)
{
uint num = Nat.Add(16, xx, yy, zz);
uint[] pext = Curve25519Field.PExt;
if (Nat.Gte(16, zz, pext))
{
int num2 = Curve25519Field.SubPExtFrom(zz);
}
}
// Token: 0x0600A9D2 RID: 43474 RVA: 0x00251A7C File Offset: 0x0024FC7C
[Token(Token = "0x600A9D2")]
[Address(RVA = "0x1ECECF0", Offset = "0x1ECDAF0", VA = "0x181ECECF0")]
public static void AddOne(uint[] x, uint[] z)
{
uint num = Nat.Inc(8, x, z);
uint[] p = Curve25519Field.P;
if (Nat256.Gte(z, p))
{
int num2 = Curve25519Field.SubPFrom(z);
}
}
// Token: 0x0600A9D3 RID: 43475 RVA: 0x00251AAC File Offset: 0x0024FCAC
[Token(Token = "0x600A9D3")]
[Address(RVA = "0x1ECF0F0", Offset = "0x1ECDEF0", VA = "0x181ECF0F0")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat256.FromBigInteger(x);
uint[] p = Curve25519Field.P;
if (Nat256.Gte(array, p))
{
int num = Nat256.SubFrom(Curve25519Field.P, array);
}
return array;
}
// Token: 0x0600A9D4 RID: 43476 RVA: 0x00251AE0 File Offset: 0x0024FCE0
[Token(Token = "0x600A9D4")]
[Address(RVA = "0x1ECF1C0", Offset = "0x1ECDFC0", VA = "0x181ECF1C0")]
public static void Half(uint[] x, uint[] z)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
uint[] p = Curve25519Field.P;
uint num = Nat256.Add(x, p, z);
int num2 = 0;
uint num3 = Nat.ShiftDownBit(8, z, (uint)num2);
return;
}
int num4 = 0;
uint num5 = Nat.ShiftDownBit(8, x, (uint)num4, z);
}
// Token: 0x0600A9D5 RID: 43477 RVA: 0x00251B28 File Offset: 0x0024FD28
[Token(Token = "0x600A9D5")]
[Address(RVA = "0x1ECF370", Offset = "0x1ECE170", VA = "0x181ECF370")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Mul(x, y, array);
Curve25519Field.Reduce(array, z);
}
// Token: 0x0600A9D6 RID: 43478 RVA: 0x00251B4C File Offset: 0x0024FD4C
[Token(Token = "0x600A9D6")]
[Address(RVA = "0x1ECF2A0", Offset = "0x1ECE0A0", VA = "0x181ECF2A0")]
public static void MultiplyAddToExt(uint[] x, uint[] y, uint[] zz)
{
uint num = Nat256.MulAddTo(x, y, zz);
uint[] pext = Curve25519Field.PExt;
if (Nat.Gte(16, zz, pext))
{
int num2 = Curve25519Field.SubPExtFrom(zz);
}
}
// Token: 0x0600A9D7 RID: 43479 RVA: 0x00251B7C File Offset: 0x0024FD7C
[Token(Token = "0x600A9D7")]
[Address(RVA = "0x1ECF410", Offset = "0x1ECE210", VA = "0x181ECF410")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat256.IsZero(x))
{
int num = Nat256.Sub(Curve25519Field.P, x, z);
return;
}
Nat256.Zero(z);
}
// Token: 0x0600A9D8 RID: 43480 RVA: 0x00251BA8 File Offset: 0x0024FDA8
[Token(Token = "0x600A9D8")]
[Address(RVA = "0x1ECF5D0", Offset = "0x1ECE3D0", VA = "0x181ECF5D0")]
public static void Reduce(uint[] xx, uint[] z)
{
uint num = xx[3];
int num2 = 0;
uint num4;
uint num3 = Nat.ShiftUpBit((int)num4, xx, (int)num4, num, z, num2);
uint num5 = Nat256.MulByWordAddTo((uint)19, xx, z);
uint num6 = z[3];
long num7 = (long)((uint)19 * (uint)19);
uint num8 = Nat.AddWordTo(7, (uint)num7, z);
num8 += num6;
z[3] = num8;
uint[] p = Curve25519Field.P;
if (Nat256.Gte(z, p))
{
int num9 = Curve25519Field.SubPFrom(z);
}
}
// Token: 0x0600A9D9 RID: 43481 RVA: 0x00251C28 File Offset: 0x0024FE28
[Token(Token = "0x600A9D9")]
[Address(RVA = "0x1ECF4B0", Offset = "0x1ECE2B0", VA = "0x181ECF4B0")]
public static void Reduce27(uint x, uint[] z)
{
uint num = z[3];
long num2 = (long)(num * (uint)19);
uint num3 = Nat.AddWordTo(7, (uint)num2, z);
num3 += num;
z[3] = num3;
uint[] p = Curve25519Field.P;
if (Nat256.Gte(z, p))
{
int num4 = Curve25519Field.SubPFrom(z);
}
}
// Token: 0x0600A9DA RID: 43482 RVA: 0x00251C78 File Offset: 0x0024FE78
[Token(Token = "0x600A9DA")]
[Address(RVA = "0x1ECF830", Offset = "0x1ECE630", VA = "0x181ECF830")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Square(x, array);
Curve25519Field.Reduce(array, z);
}
// Token: 0x0600A9DB RID: 43483 RVA: 0x00251C9C File Offset: 0x0024FE9C
[Token(Token = "0x600A9DB")]
[Address(RVA = "0x1ECF750", Offset = "0x1ECE550", VA = "0x181ECF750")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Square(x, array);
Curve25519Field.Reduce(array, z);
if (n > 0)
{
Nat256.Square(z, array);
Curve25519Field.Reduce(array, z);
}
}
// Token: 0x0600A9DC RID: 43484 RVA: 0x00251CD4 File Offset: 0x0024FED4
[Token(Token = "0x600A9DC")]
[Address(RVA = "0x1ECFBD0", Offset = "0x1ECE9D0", VA = "0x181ECFBD0")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
if (Nat256.Sub(x, y, z) != 0)
{
uint num = z[0];
z[0] = num;
if (num != (uint)0)
{
int num2 = Nat.DecAt(7, z, 1);
}
uint num3 = z[3];
uint num4;
num3 += num4;
num += num3;
z[3] = num;
}
}
// Token: 0x0600A9DD RID: 43485 RVA: 0x00251D28 File Offset: 0x0024FF28
[Token(Token = "0x600A9DD")]
[Address(RVA = "0x1ECFB40", Offset = "0x1ECE940", VA = "0x181ECFB40")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(16, xx, yy, zz) != 0)
{
uint num = Curve25519Field.AddPExtTo(zz);
}
}
// Token: 0x0600A9DE RID: 43486 RVA: 0x00251D4C File Offset: 0x0024FF4C
[Token(Token = "0x600A9DE")]
[Address(RVA = "0x1ECFCC0", Offset = "0x1ECEAC0", VA = "0x181ECFCC0")]
public static void Twice(uint[] x, uint[] z)
{
int num = 0;
uint num2 = Nat.ShiftUpBit(8, x, (uint)num, z);
uint[] p = Curve25519Field.P;
if (Nat256.Gte(z, p))
{
int num3 = Curve25519Field.SubPFrom(z);
}
}
// Token: 0x0600A9DF RID: 43487 RVA: 0x00251D80 File Offset: 0x0024FF80
[Token(Token = "0x600A9DF")]
[Address(RVA = "0x1ECEFA0", Offset = "0x1ECDDA0", VA = "0x181ECEFA0")]
private static uint AddPTo(uint[] z)
{
uint num = z[0];
z[0] = num;
if (num != (uint)0)
{
int num2 = Nat.DecAt(7, z, 1);
}
uint num3 = z[3];
uint num4;
num4 += num;
num4 += num3;
z[3] = num4;
return num4;
}
// Token: 0x0600A9E0 RID: 43488 RVA: 0x00251DCC File Offset: 0x0024FFCC
[Token(Token = "0x600A9E0")]
[Address(RVA = "0x1ECEDB0", Offset = "0x1ECDBB0", VA = "0x181ECEDB0")]
private static uint AddPExtTo(uint[] zz)
{
uint num = zz[0];
uint num2 = Curve25519Field.PExt[0];
num2 += num;
zz[0] = num2;
if (num2 != (uint)0)
{
uint num3 = Nat.IncAt(8, zz, 1);
}
uint num4 = zz[4];
num4 += (uint)(-19);
num4 += num2;
zz[4] = num4;
if (num4 != (uint)0)
{
int num5 = Nat.DecAt(15, zz, 9);
}
uint num6 = Curve25519Field.PExt[7];
num6 += (uint)1;
zz[7] = zz;
return zz;
}
// Token: 0x0600A9E1 RID: 43489 RVA: 0x00251E58 File Offset: 0x00250058
[Token(Token = "0x600A9E1")]
[Address(RVA = "0x1ECFAB0", Offset = "0x1ECE8B0", VA = "0x181ECFAB0")]
private static int SubPFrom(uint[] z)
{
uint num = z[0];
num += (uint)19;
z[0] = num;
if (num != (uint)0)
{
uint num2 = Nat.IncAt(7, z, 1);
}
uint num3 = z[3];
num3 += (uint)int.MinValue;
num += num3;
z[3] = num;
throw new NullReferenceException();
}
// Token: 0x0600A9E2 RID: 43490 RVA: 0x00251EB0 File Offset: 0x002500B0
[Token(Token = "0x600A9E2")]
[Address(RVA = "0x1ECF8C0", Offset = "0x1ECE6C0", VA = "0x181ECF8C0")]
private static int SubPExtFrom(uint[] zz)
{
uint num = zz[0];
uint num2 = Curve25519Field.PExt[0];
num -= num2;
zz[0] = num;
if (num != (uint)0)
{
int num3 = Nat.DecAt(8, zz, 1);
}
uint num4 = zz[4];
num4 += (uint)19;
num4 += num;
zz[4] = num4;
if (num4 != (uint)0)
{
num4 = Nat.IncAt(15, zz, 9);
}
uint num5 = zz[7];
uint num6 = Curve25519Field.PExt[7];
num6 += (uint)1;
num5 -= num6;
num4 += num5;
zz[7] = num4;
throw new NullReferenceException();
}
// Token: 0x0600A9E3 RID: 43491 RVA: 0x00251F50 File Offset: 0x00250150
[Token(Token = "0x600A9E3")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
public Curve25519Field()
{
}
// Token: 0x0600A9E4 RID: 43492 RVA: 0x00251F64 File Offset: 0x00250164
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A9E4")]
[Address(RVA = "0x1ECFD80", Offset = "0x1ECEB80", VA = "0x181ECFD80")]
static Curve25519Field()
{
uint[] array = new uint[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.86B0F85AC13B58F88DEFFD8FD6EE095438B98F10).FieldHandle);
Curve25519Field.P = array;
uint[] array2 = new uint[16];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.EAEB85AB6D40E0AB7CE0F65EF7EDF588A4DD81C9).FieldHandle);
Curve25519Field.PExt = array2;
}
// Token: 0x04006C7E RID: 27774
[Token(Token = "0x4006C7E")]
internal static readonly uint[] P;
// Token: 0x04006C7F RID: 27775
[Token(Token = "0x4006C7F")]
private const uint P7 = 2147483647U;
// Token: 0x04006C80 RID: 27776
[Token(Token = "0x4006C80")]
private static readonly uint[] PExt;
// Token: 0x04006C81 RID: 27777
[Token(Token = "0x4006C81")]
private const uint PInv = 19U;
}
}
@@ -0,0 +1,452 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb
{
// Token: 0x02001ABD RID: 6845
[Token(Token = "0x2001ABD")]
internal class Curve25519FieldElement : AbstractFpFieldElement
{
// Token: 0x0600A9E5 RID: 43493 RVA: 0x00251FA4 File Offset: 0x002501A4
[Token(Token = "0x600A9E5")]
[Address(RVA = "0x1ECE980", Offset = "0x1ECD780", VA = "0x181ECE980")]
public Curve25519FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A9E5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_44:
stloc:ArgumentException(var_5_53, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for Curve25519FieldElement"), ldstr:string("x")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A9E6 RID: 43494 RVA: 0x00252008 File Offset: 0x00250208
[Token(Token = "0x600A9E6")]
[Address(RVA = "0x1ECEB30", Offset = "0x1ECD930", VA = "0x181ECEB30")]
public Curve25519FieldElement()
{
uint[] array = Nat256.Create();
this.x = array;
}
// Token: 0x0600A9E7 RID: 43495 RVA: 0x0025202C File Offset: 0x0025022C
[Token(Token = "0x600A9E7")]
[Address(RVA = "0x462000", Offset = "0x460E00", VA = "0x180462000")]
protected internal Curve25519FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001B08 RID: 6920
// (get) Token: 0x0600A9E8 RID: 43496 RVA: 0x00252048 File Offset: 0x00250248
[Token(Token = "0x17001B08")]
public override bool IsZero
{
[Token(Token = "0x600A9E8")]
[Address(RVA = "0x1ECEC10", Offset = "0x1ECDA10", VA = "0x181ECEC10", Slot = "18")]
get
{
return Nat256.IsZero(this.x);
}
}
// Token: 0x17001B09 RID: 6921
// (get) Token: 0x0600A9E9 RID: 43497 RVA: 0x00252060 File Offset: 0x00250260
[Token(Token = "0x17001B09")]
public override bool IsOne
{
[Token(Token = "0x600A9E9")]
[Address(RVA = "0x1ECEC00", Offset = "0x1ECDA00", VA = "0x181ECEC00", Slot = "17")]
get
{
return Nat256.IsOne(this.x);
}
}
// Token: 0x0600A9EA RID: 43498 RVA: 0x00252078 File Offset: 0x00250278
[Token(Token = "0x600A9EA")]
[Address(RVA = "0x1ECE8A0", Offset = "0x1ECD6A0", VA = "0x181ECE8A0", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat256.GetBit(array, num) == (uint)1;
}
// Token: 0x0600A9EB RID: 43499 RVA: 0x0025209C File Offset: 0x0025029C
[Token(Token = "0x600A9EB")]
[Address(RVA = "0x1ECE8C0", Offset = "0x1ECD6C0", VA = "0x181ECE8C0", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat256.ToBigInteger(this.x);
}
// Token: 0x17001B0A RID: 6922
// (get) Token: 0x0600A9EC RID: 43500 RVA: 0x002520B4 File Offset: 0x002502B4
[Token(Token = "0x17001B0A")]
public override string FieldName
{
[Token(Token = "0x600A9EC")]
[Address(RVA = "0x1ECEB60", Offset = "0x1ECD960", VA = "0x181ECEB60", Slot = "5")]
get
{
return "Curve25519Field";
}
}
// Token: 0x17001B0B RID: 6923
// (get) Token: 0x0600A9ED RID: 43501 RVA: 0x002520C8 File Offset: 0x002502C8
[Token(Token = "0x17001B0B")]
public override int FieldSize
{
[Token(Token = "0x600A9ED")]
[Address(RVA = "0x1ECEB90", Offset = "0x1ECD990", VA = "0x181ECEB90", Slot = "6")]
get
{
return Curve25519FieldElement.Q.BitLength;
}
}
// Token: 0x0600A9EE RID: 43502 RVA: 0x002520E8 File Offset: 0x002502E8
[Token(Token = "0x600A9EE")]
[Address(RVA = "0x1ECDBD0", Offset = "0x1ECC9D0", VA = "0x181ECDBD0", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(Curve25519FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] p = Curve25519Field.P;
if (Nat256.Gte(array, p))
{
int num = Curve25519Field.SubPFrom(array);
}
new Curve25519FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A9EF RID: 43503 RVA: 0x00252148 File Offset: 0x00250348
[Token(Token = "0x600A9EF")]
[Address(RVA = "0x1ECDAB0", Offset = "0x1ECC8B0", VA = "0x181ECDAB0", Slot = "8")]
public override ECFieldElement AddOne()
{
/*
An exception occurred when decompiling this method (0600A9EF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::AddOne()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_32:
stfld:uint32[](Curve25519FieldElement::x, newobj:Curve25519FieldElement(Curve25519FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A9F0 RID: 43504 RVA: 0x00252194 File Offset: 0x00250394
[Token(Token = "0x600A9F0")]
[Address(RVA = "0x1ECE760", Offset = "0x1ECD560", VA = "0x181ECE760", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(Curve25519FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new Curve25519FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A9F1 RID: 43505 RVA: 0x002521DC File Offset: 0x002503DC
[Token(Token = "0x600A9F1")]
[Address(RVA = "0x1ECE1F0", Offset = "0x1ECCFF0", VA = "0x181ECE1F0", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(Curve25519FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new Curve25519FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A9F2 RID: 43506 RVA: 0x00252224 File Offset: 0x00250424
[Token(Token = "0x600A9F2")]
[Address(RVA = "0x1ECDDA0", Offset = "0x1ECCBA0", VA = "0x181ECDDA0", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] p = Curve25519Field.P;
if ("{il2cpp array field local3->}" == typeof(Curve25519FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
Curve25519Field.Multiply(array, array2, array);
new Curve25519FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A9F3 RID: 43507 RVA: 0x0025227C File Offset: 0x0025047C
[Token(Token = "0x600A9F3")]
[Address(RVA = "0x1ECE330", Offset = "0x1ECD130", VA = "0x181ECE330", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600A9F3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
call:void(Curve25519Field::Negate, ldfld:uint32[](Curve25519FieldElement::x, ldloc:Curve25519FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](Curve25519FieldElement::x, newobj:Curve25519FieldElement(Curve25519FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A9F4 RID: 43508 RVA: 0x002522A8 File Offset: 0x002504A8
[Token(Token = "0x600A9F4")]
[Address(RVA = "0x1ECE6D0", Offset = "0x1ECD4D0", VA = "0x181ECE6D0", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600A9F4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
call:void(Curve25519Field::Square, ldfld:uint32[](Curve25519FieldElement::x, ldloc:Curve25519FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](Curve25519FieldElement::x, newobj:Curve25519FieldElement(Curve25519FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A9F5 RID: 43509 RVA: 0x002522D4 File Offset: 0x002504D4
[Token(Token = "0x600A9F5")]
[Address(RVA = "0x1ECE120", Offset = "0x1ECCF20", VA = "0x181ECE120", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600A9F5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
stloc:uint32[](var_2_0E, ldfld:uint32[](Curve25519FieldElement::x, ldloc:Curve25519FieldElement(this)))
call:void(Mod::Invert, ldsfld:uint32[](Curve25519Field::P), ldloc:uint32[](var_2_0E), ldloc:uint32[](var_1_07))
stfld:uint32[](Curve25519FieldElement::x, newobj:Curve25519FieldElement(Curve25519FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A9F6 RID: 43510 RVA: 0x00252308 File Offset: 0x00250508
[Token(Token = "0x600A9F6")]
[Address(RVA = "0x1ECE3C0", Offset = "0x1ECD1C0", VA = "0x181ECE3C0", Slot = "15")]
public override ECFieldElement Sqrt()
{
/*
An exception occurred when decompiling this method (0600A9F6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::Sqrt()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_148:
stfld:uint32[](Curve25519FieldElement::x, newobj:Curve25519FieldElement(Curve25519FieldElement::.ctor), ldloc:uint32[](var_2_20))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A9F7 RID: 43511 RVA: 0x00252468 File Offset: 0x00250668
[Token(Token = "0x600A9F7")]
[Address(RVA = "0x1ECDF40", Offset = "0x1ECCD40", VA = "0x181ECDF40", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600A9F7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:Curve25519FieldElement[exp:ECFieldElement](this)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A9F8 RID: 43512 RVA: 0x00252484 File Offset: 0x00250684
[Token(Token = "0x600A9F8")]
[Address(RVA = "0x1ECDFD0", Offset = "0x1ECCDD0", VA = "0x181ECDFD0", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600A9F8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:Curve25519FieldElement[exp:ECFieldElement](this)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A9F9 RID: 43513 RVA: 0x002524A0 File Offset: 0x002506A0
[Token(Token = "0x600A9F9")]
[Address(RVA = "0x1ECDF20", Offset = "0x1ECCD20", VA = "0x181ECDF20", Slot = "27")]
public virtual bool Equals(Curve25519FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
return Nat256.Eq(this.x, array);
}
}
return true;
}
// Token: 0x0600A9FA RID: 43514 RVA: 0x002524CC File Offset: 0x002506CC
[Token(Token = "0x600A9FA")]
[Address(RVA = "0x1ECE060", Offset = "0x1ECCE60", VA = "0x181ECE060", Slot = "2")]
public override int GetHashCode()
{
Curve25519FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 8);
}
// Token: 0x0600A9FB RID: 43515 RVA: 0x002524FC File Offset: 0x002506FC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A9FB")]
[Address(RVA = "0x1ECE8D0", Offset = "0x1ECD6D0", VA = "0x181ECE8D0")]
static Curve25519FieldElement()
{
uint[] array = new uint[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6AAC0DB543C50F09E879F5B9F757319773564CE1).FieldHandle);
Curve25519FieldElement.PRECOMP_POW2 = array;
}
// Token: 0x04006C82 RID: 27778
[Token(Token = "0x4006C82")]
public static readonly BigInteger Q = Curve25519.q;
// Token: 0x04006C83 RID: 27779
[Token(Token = "0x4006C83")]
private static readonly uint[] PRECOMP_POW2;
// Token: 0x04006C84 RID: 27780
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006C84")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,406 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb
{
// Token: 0x02001ABE RID: 6846
[Token(Token = "0x2001ABE")]
internal class Curve25519Point : AbstractFpPoint
{
// Token: 0x0600A9FC RID: 43516 RVA: 0x0025252C File Offset: 0x0025072C
[Token(Token = "0x600A9FC")]
[Address(RVA = "0x1ED1510", Offset = "0x1ED0310", VA = "0x181ED1510")]
public Curve25519Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A9FD RID: 43517 RVA: 0x0025253C File Offset: 0x0025073C
[Token(Token = "0x600A9FD")]
[Address(RVA = "0x1ED1450", Offset = "0x1ED0250", VA = "0x181ED1450")]
public Curve25519Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A9FD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A9FE RID: 43518 RVA: 0x00252564 File Offset: 0x00250764
[Token(Token = "0x600A9FE")]
[Address(RVA = "0x1ECD350", Offset = "0x1ECC150", VA = "0x181ECD350")]
internal Curve25519Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A9FF RID: 43519 RVA: 0x00252574 File Offset: 0x00250774
[Token(Token = "0x600A9FF")]
[Address(RVA = "0x1ED0980", Offset = "0x1ECF780", VA = "0x181ED0980", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A9FF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:Curve25519Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:Curve25519Point[exp:ECPoint](this)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600AA00 RID: 43520 RVA: 0x00252590 File Offset: 0x00250790
[Token(Token = "0x600AA00")]
[Address(RVA = "0x1ED0BB0", Offset = "0x1ECF9B0", VA = "0x181ED0BB0", Slot = "13")]
public override ECFieldElement GetZCoord(int index)
{
/*
An exception occurred when decompiling this method (0600AA00)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519Point::GetZCoord(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_0C:
stloc:bool(var_0_12, call:bool(ECPoint::SatisfiesCurveEquation, ldloc:Curve25519Point[exp:ECPoint](this)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600AA01 RID: 43521 RVA: 0x002525B0 File Offset: 0x002507B0
[Token(Token = "0x600AA01")]
[Address(RVA = "0x1ECFFF0", Offset = "0x1ECEDF0", VA = "0x181ECFFF0", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this == b)
{
return b;
}
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat256.CreateExt();
uint[] array2 = Nat256.Create();
uint[] array3 = Nat256.Create();
uint[] array4 = Nat256.Create();
if (array4 == 0)
{
Curve25519Field.Square(array4, array3);
Curve25519Field.Multiply(array3, array3, array2);
Curve25519Field.Multiply(array3, array3, array3);
Curve25519Field.Multiply(array3, array3, array3);
}
Curve25519Field.Multiply(array4, array4, array);
Curve25519Field.Multiply(array4, array4, array4);
Curve25519Field.Multiply(array4, array4, array4);
uint[] array5 = Nat256.Create();
if (!Nat256.IsZero(array5))
{
uint[] array6 = Nat256.Create();
Curve25519Field.Square(array5, array6);
uint[] array7 = Nat256.Create();
Curve25519Field.Multiply(array6, array5, array7);
Curve25519Field.Negate(array7, array7);
Curve25519Field.Reduce27(Nat256.AddBothTo(array3, array3, array7), array7);
Curve25519FieldElement curve25519FieldElement = new Curve25519FieldElement();
curve25519FieldElement.x = array4;
Curve25519Field.Square(array2, array4);
uint[] x = curve25519FieldElement.x;
Curve25519Field.Subtract(x, array7, x);
Curve25519FieldElement curve25519FieldElement2 = new Curve25519FieldElement();
curve25519FieldElement2.x = array7;
uint[] x2 = curve25519FieldElement.x;
Curve25519Field.Subtract(array3, x2, array7);
uint[] x3 = curve25519FieldElement2.x;
uint num = Nat256.MulAddTo(x3, array2, array);
uint[] pext = Curve25519Field.PExt;
if (Nat.Gte(16, array, pext))
{
int num2 = Curve25519Field.SubPExtFrom(array);
}
uint[] x4 = curve25519FieldElement2.x;
Curve25519Field.Reduce(array, x4);
Curve25519FieldElement curve25519FieldElement3 = new Curve25519FieldElement();
curve25519FieldElement3.x = array5;
Curve25519Field.Multiply(array5, x3, array5);
uint[] x5 = curve25519FieldElement3.x;
Curve25519Field.Multiply(x5, array, x5);
ECPoint ecpoint = this.ThreeTimes();
ECFieldElement[] array8 = new ECFieldElement[2];
throw new ArrayTypeMismatchException();
}
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600AA02 RID: 43522 RVA: 0x002527CC File Offset: 0x002509CC
[Token(Token = "0x600AA02")]
[Address(RVA = "0x1ED13B0", Offset = "0x1ED01B0", VA = "0x181ED13B0", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
if (!this.m_y.IsOne)
{
bool flag2 = base.SatisfiesCurveEquation();
}
OVRMesh.JAAHPDGFADH jaahpdgfadh = ((OVRMesh.PJPHJNNOBBH)flag).POCDCJMHEGL();
}
throw new NullReferenceException();
}
// Token: 0x0600AA03 RID: 43523 RVA: 0x0025280C File Offset: 0x00250A0C
[Token(Token = "0x600AA03")]
[Address(RVA = "0x1ED12C0", Offset = "0x1ED00C0", VA = "0x181ED12C0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
BigInteger bigInteger = this.GetJacobianModifiedW().ToBigInteger();
}
bool flag = base.SatisfiesCurveEquation();
}
return b;
}
bool flag2 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600AA04 RID: 43524 RVA: 0x00252860 File Offset: 0x00250A60
[Token(Token = "0x600AA04")]
[Address(RVA = "0x1ED0CD0", Offset = "0x1ECFAD0", VA = "0x181ED0CD0", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
BigInteger bigInteger = this.GetJacobianModifiedW().ToBigInteger();
}
throw new NullReferenceException();
}
// Token: 0x0600AA05 RID: 43525 RVA: 0x00252898 File Offset: 0x00250A98
[Token(Token = "0x600AA05")]
[Address(RVA = "0x1ED0BD0", Offset = "0x1ECF9D0", VA = "0x181ED0BD0", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
// Token: 0x0600AA06 RID: 43526 RVA: 0x002528D0 File Offset: 0x00250AD0
[Token(Token = "0x600AA06")]
[Address(RVA = "0x1ED07D0", Offset = "0x1ECF5D0", VA = "0x181ED07D0", Slot = "34")]
protected virtual Curve25519FieldElement CalculateJacobianModifiedW(Curve25519FieldElement Z, uint[] ZSquared)
{
bool flag2;
do
{
bool flag = this.SatisfiesOrder();
if (!flag2)
{
}
}
while (!flag2);
if (Z.BitLength == 0)
{
Curve25519FieldElement curve25519FieldElement = new Curve25519FieldElement();
uint[] array = Nat256.Create();
curve25519FieldElement.x = array;
if (ZSquared == 0)
{
Curve25519Field.Square(Z.x, array);
}
uint[] x = curve25519FieldElement.x;
Curve25519Field.Square(array, x);
uint[] x2 = curve25519FieldElement.x;
Curve25519Field.Multiply(x2, x, x2);
return curve25519FieldElement;
}
throw new NullReferenceException();
}
// Token: 0x0600AA07 RID: 43527 RVA: 0x0025294C File Offset: 0x00250B4C
[Token(Token = "0x600AA07")]
[Address(RVA = "0x1ED0A20", Offset = "0x1ECF820", VA = "0x181ED0A20", Slot = "35")]
protected virtual Curve25519FieldElement GetJacobianModifiedW()
{
ECFieldElement[] zs;
for (;;)
{
zs = this.m_zs;
int length = zs.Length;
ECFieldElement ecfieldElement = zs[1];
if (ecfieldElement == 0 || ecfieldElement != 0)
{
ECFieldElement ecfieldElement2 = zs[0];
if (ecfieldElement2 == 0)
{
}
if (ecfieldElement2 != 0)
{
break;
}
}
}
ECPoint ecpoint = this.ThreeTimes();
if (ecpoint != 0)
{
}
zs[1] = ecpoint;
throw new NullReferenceException();
}
// Token: 0x0600AA08 RID: 43528 RVA: 0x002529AC File Offset: 0x00250BAC
[Token(Token = "0x600AA08")]
[Address(RVA = "0x1ED0D50", Offset = "0x1ECFB50", VA = "0x181ED0D50", Slot = "36")]
protected virtual Curve25519Point TwiceJacobianModified(bool calculateW)
{
for (;;)
{
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement y = this.m_y;
if (y == 0)
{
}
if (y != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
break;
}
}
}
}
uint[] array = Nat256.Create();
uint num = Nat256.AddBothTo(array, array, array);
Curve25519FieldElement curve25519FieldElement;
uint[] x2 = curve25519FieldElement.x;
uint num2 = Nat256.AddTo(x2, array);
Curve25519Field.Reduce27(x2, array);
uint[] array2 = Nat256.Create();
uint[] array3 = Nat256.Create();
Curve25519Field.Multiply(array2, array2, array3);
uint[] array4 = Nat256.Create();
Curve25519Field.Multiply(array3, array2, array4);
Curve25519Field.Twice(array4, array4);
uint[] array5 = Nat256.Create();
Curve25519Field.Square(array3, array5);
Curve25519Field.Twice(array5, array5);
Curve25519FieldElement curve25519FieldElement2 = new Curve25519FieldElement();
curve25519FieldElement2.x = array3;
Curve25519Field.Square(array, array3);
uint[] x3 = curve25519FieldElement2.x;
Curve25519Field.Subtract(x3, array4, x3);
uint[] x4 = curve25519FieldElement2.x;
Curve25519Field.Subtract(x4, array4, x4);
Curve25519FieldElement curve25519FieldElement3 = new Curve25519FieldElement();
curve25519FieldElement3.x = array4;
uint[] x5 = curve25519FieldElement2.x;
Curve25519Field.Subtract(array4, x5, array4);
uint[] x6 = curve25519FieldElement3.x;
Curve25519Field.Multiply(x6, array, x6);
uint[] x7 = curve25519FieldElement3.x;
Curve25519Field.Subtract(x7, array5, x7);
Curve25519FieldElement curve25519FieldElement4 = new Curve25519FieldElement();
curve25519FieldElement4.x = array2;
bool flag;
if (!flag)
{
uint[] x8 = curve25519FieldElement4.x;
}
Curve25519FieldElement curve25519FieldElement5;
if (calculateW)
{
curve25519FieldElement5 = new Curve25519FieldElement();
curve25519FieldElement5.x = array5;
uint[] x9 = curve25519FieldElement.x;
Curve25519Field.Multiply(array5, x9, array5);
uint[] x10 = curve25519FieldElement5.x;
Curve25519Field.Twice(x10, x10);
}
bool flag2 = this.SatisfiesOrder();
ECFieldElement[] array6 = new ECFieldElement[2];
array6[0] = curve25519FieldElement4;
if (curve25519FieldElement5 != 0)
{
}
array6[1] = curve25519FieldElement5;
bool withCompression = this.m_withCompression;
Curve25519Point curve25519Point;
return curve25519Point;
}
}
}