This commit is contained in:
niko
2026-04-12 16:51:38 +02:00
parent 1b6f6d81d0
commit c12fbe3fc6
17828 changed files with 2994770 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: 0x02001B9A RID: 7066
[Token(Token = "0x2001B9A")]
internal class Curve25519 : AbstractFpCurve
{
// Token: 0x0600AD90 RID: 44432 RVA: 0x0025A7D8 File Offset: 0x002589D8
[Token(Token = "0x600AD90")]
[Address(RVA = "0x6E94F0", Offset = "0x6E84F0", VA = "0x1806E94F0")]
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: 0x0600AD91 RID: 44433 RVA: 0x0025A88C File Offset: 0x00258A8C
[Token(Token = "0x600AD91")]
[Address(RVA = "0x6E8EC0", Offset = "0x6E7EC0", VA = "0x1806E8EC0", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600AD91)
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: 0x0600AD92 RID: 44434 RVA: 0x0025A8A0 File Offset: 0x00258AA0
[Token(Token = "0x600AD92")]
[Address(RVA = "0x6E9470", Offset = "0x6E8470", VA = "0x1806E9470", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 4;
}
// Token: 0x17001BA1 RID: 7073
// (get) Token: 0x0600AD93 RID: 44435 RVA: 0x0025A8B4 File Offset: 0x00258AB4
[Token(Token = "0x17001BA1")]
public virtual BigInteger Q
{
[Token(Token = "0x600AD93")]
[Address(RVA = "0x6E9780", Offset = "0x6E8780", VA = "0x1806E9780", Slot = "38")]
get
{
return Curve25519.q;
}
}
// Token: 0x17001BA2 RID: 7074
// (get) Token: 0x0600AD94 RID: 44436 RVA: 0x0025A8C8 File Offset: 0x00258AC8
[Token(Token = "0x17001BA2")]
public override ECPoint Infinity
{
[Token(Token = "0x600AD94")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600AD94)
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: 0x17001BA3 RID: 7075
// (get) Token: 0x0600AD95 RID: 44437 RVA: 0x0025A8DC File Offset: 0x00258ADC
[Token(Token = "0x17001BA3")]
public override int FieldSize
{
[Token(Token = "0x600AD95")]
[Address(RVA = "0x6E9710", Offset = "0x6E8710", VA = "0x1806E9710", Slot = "4")]
get
{
return Curve25519.q.BitLength;
}
}
// Token: 0x0600AD96 RID: 44438 RVA: 0x0025A8FC File Offset: 0x00258AFC
[Token(Token = "0x600AD96")]
[Address(RVA = "0x6E92A0", Offset = "0x6E82A0", VA = "0x1806E92A0", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AD96)
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: 0x0600AD97 RID: 44439 RVA: 0x0025A960 File Offset: 0x00258B60
[Token(Token = "0x600AD97")]
[Address(RVA = "0x6E9170", Offset = "0x6E8170", VA = "0x1806E9170", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AD97)
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: 0x0600AD98 RID: 44440 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AD98")]
[Address(RVA = "0x6E9200", Offset = "0x6E8200", VA = "0x1806E9200", 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: 0x0600AD99 RID: 44441 RVA: 0x0025A978 File Offset: 0x00258B78
[Token(Token = "0x600AD99")]
[Address(RVA = "0x6E8F10", Offset = "0x6E7F10", VA = "0x1806E8F10", 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: 0x04006E30 RID: 28208
[Token(Token = "0x4006E30")]
public static readonly BigInteger q = Nat256.ToBigInteger(Curve25519Field.P);
// Token: 0x04006E31 RID: 28209
[Token(Token = "0x4006E31")]
private const int Curve25519_DEFAULT_COORDS = 4;
// Token: 0x04006E32 RID: 28210
[Token(Token = "0x4006E32")]
private const int CURVE25519_FE_INTS = 8;
// Token: 0x04006E33 RID: 28211
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006E33")]
protected readonly Curve25519Point m_infinity;
// Token: 0x02001B9B RID: 7067
[Token(Token = "0x2001B9B")]
private class Curve25519LookupTable : ECLookupTable
{
// Token: 0x0600AD9B RID: 44443 RVA: 0x0025AA08 File Offset: 0x00258C08
[Token(Token = "0x600AD9B")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal Curve25519LookupTable(Curve25519 outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001BA4 RID: 7076
// (get) Token: 0x0600AD9C RID: 44444 RVA: 0x0025AA30 File Offset: 0x00258C30
[Token(Token = "0x17001BA4")]
public virtual int Size
{
[Token(Token = "0x600AD9C")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600AD9D RID: 44445 RVA: 0x0025AA44 File Offset: 0x00258C44
[Token(Token = "0x600AD9D")]
[Address(RVA = "0x6E7760", Offset = "0x6E6760", VA = "0x1806E7760", 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: 0x04006E34 RID: 28212
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006E34")]
private readonly Curve25519 m_outer;
// Token: 0x04006E35 RID: 28213
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006E35")]
private readonly uint[] m_table;
// Token: 0x04006E36 RID: 28214
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006E36")]
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: 0x02001B9C RID: 7068
[Token(Token = "0x2001B9C")]
internal class Curve25519Field
{
// Token: 0x0600AD9E RID: 44446 RVA: 0x0025AAC4 File Offset: 0x00258CC4
[Token(Token = "0x600AD9E")]
[Address(RVA = "0x6E6970", Offset = "0x6E5970", VA = "0x1806E6970")]
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: 0x0600AD9F RID: 44447 RVA: 0x0025AAF4 File Offset: 0x00258CF4
[Token(Token = "0x600AD9F")]
[Address(RVA = "0x6E6560", Offset = "0x6E5560", VA = "0x1806E6560")]
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: 0x0600ADA0 RID: 44448 RVA: 0x0025AB28 File Offset: 0x00258D28
[Token(Token = "0x600ADA0")]
[Address(RVA = "0x6E6630", Offset = "0x6E5630", VA = "0x1806E6630")]
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: 0x0600ADA1 RID: 44449 RVA: 0x0025AB58 File Offset: 0x00258D58
[Token(Token = "0x600ADA1")]
[Address(RVA = "0x6E6A30", Offset = "0x6E5A30", VA = "0x1806E6A30")]
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: 0x0600ADA2 RID: 44450 RVA: 0x0025AB8C File Offset: 0x00258D8C
[Token(Token = "0x600ADA2")]
[Address(RVA = "0x6E6B00", Offset = "0x6E5B00", VA = "0x1806E6B00")]
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: 0x0600ADA3 RID: 44451 RVA: 0x0025ABD4 File Offset: 0x00258DD4
[Token(Token = "0x600ADA3")]
[Address(RVA = "0x6E6CB0", Offset = "0x6E5CB0", VA = "0x1806E6CB0")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Mul(x, y, array);
Curve25519Field.Reduce(array, z);
}
// Token: 0x0600ADA4 RID: 44452 RVA: 0x0025ABF8 File Offset: 0x00258DF8
[Token(Token = "0x600ADA4")]
[Address(RVA = "0x6E6BE0", Offset = "0x6E5BE0", VA = "0x1806E6BE0")]
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: 0x0600ADA5 RID: 44453 RVA: 0x0025AC28 File Offset: 0x00258E28
[Token(Token = "0x600ADA5")]
[Address(RVA = "0x6E6D50", Offset = "0x6E5D50", VA = "0x1806E6D50")]
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: 0x0600ADA6 RID: 44454 RVA: 0x0025AC54 File Offset: 0x00258E54
[Token(Token = "0x600ADA6")]
[Address(RVA = "0x6E6F10", Offset = "0x6E5F10", VA = "0x1806E6F10")]
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: 0x0600ADA7 RID: 44455 RVA: 0x0025ACD4 File Offset: 0x00258ED4
[Token(Token = "0x600ADA7")]
[Address(RVA = "0x6E6DF0", Offset = "0x6E5DF0", VA = "0x1806E6DF0")]
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: 0x0600ADA8 RID: 44456 RVA: 0x0025AD24 File Offset: 0x00258F24
[Token(Token = "0x600ADA8")]
[Address(RVA = "0x6E7170", Offset = "0x6E6170", VA = "0x1806E7170")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Square(x, array);
Curve25519Field.Reduce(array, z);
}
// Token: 0x0600ADA9 RID: 44457 RVA: 0x0025AD48 File Offset: 0x00258F48
[Token(Token = "0x600ADA9")]
[Address(RVA = "0x6E7090", Offset = "0x6E6090", VA = "0x1806E7090")]
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: 0x0600ADAA RID: 44458 RVA: 0x0025AD80 File Offset: 0x00258F80
[Token(Token = "0x600ADAA")]
[Address(RVA = "0x6E7510", Offset = "0x6E6510", VA = "0x1806E7510")]
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: 0x0600ADAB RID: 44459 RVA: 0x0025ADD4 File Offset: 0x00258FD4
[Token(Token = "0x600ADAB")]
[Address(RVA = "0x6E7480", Offset = "0x6E6480", VA = "0x1806E7480")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(16, xx, yy, zz) != 0)
{
uint num = Curve25519Field.AddPExtTo(zz);
}
}
// Token: 0x0600ADAC RID: 44460 RVA: 0x0025ADF8 File Offset: 0x00258FF8
[Token(Token = "0x600ADAC")]
[Address(RVA = "0x6E7600", Offset = "0x6E6600", VA = "0x1806E7600")]
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: 0x0600ADAD RID: 44461 RVA: 0x0025AE2C File Offset: 0x0025902C
[Token(Token = "0x600ADAD")]
[Address(RVA = "0x6E68E0", Offset = "0x6E58E0", VA = "0x1806E68E0")]
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: 0x0600ADAE RID: 44462 RVA: 0x0025AE78 File Offset: 0x00259078
[Token(Token = "0x600ADAE")]
[Address(RVA = "0x6E66F0", Offset = "0x6E56F0", VA = "0x1806E66F0")]
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: 0x0600ADAF RID: 44463 RVA: 0x0025AF04 File Offset: 0x00259104
[Token(Token = "0x600ADAF")]
[Address(RVA = "0x6E73F0", Offset = "0x6E63F0", VA = "0x1806E73F0")]
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: 0x0600ADB0 RID: 44464 RVA: 0x0025AF5C File Offset: 0x0025915C
[Token(Token = "0x600ADB0")]
[Address(RVA = "0x6E7200", Offset = "0x6E6200", VA = "0x1806E7200")]
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: 0x0600ADB1 RID: 44465 RVA: 0x0025AFFC File Offset: 0x002591FC
[Token(Token = "0x600ADB1")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public Curve25519Field()
{
}
// Token: 0x0600ADB2 RID: 44466 RVA: 0x0025B010 File Offset: 0x00259210
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600ADB2")]
[Address(RVA = "0x6E76C0", Offset = "0x6E66C0", VA = "0x1806E76C0")]
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: 0x04006E37 RID: 28215
[Token(Token = "0x4006E37")]
internal static readonly uint[] P;
// Token: 0x04006E38 RID: 28216
[Token(Token = "0x4006E38")]
private const uint P7 = 2147483647U;
// Token: 0x04006E39 RID: 28217
[Token(Token = "0x4006E39")]
private static readonly uint[] PExt;
// Token: 0x04006E3A RID: 28218
[Token(Token = "0x4006E3A")]
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: 0x02001B9D RID: 7069
[Token(Token = "0x2001B9D")]
internal class Curve25519FieldElement : AbstractFpFieldElement
{
// Token: 0x0600ADB3 RID: 44467 RVA: 0x0025B050 File Offset: 0x00259250
[Token(Token = "0x600ADB3")]
[Address(RVA = "0x6E62C0", Offset = "0x6E52C0", VA = "0x1806E62C0")]
public Curve25519FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600ADB3)
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: 0x0600ADB4 RID: 44468 RVA: 0x0025B0B4 File Offset: 0x002592B4
[Token(Token = "0x600ADB4")]
[Address(RVA = "0x6E6470", Offset = "0x6E5470", VA = "0x1806E6470")]
public Curve25519FieldElement()
{
uint[] array = Nat256.Create();
this.x = array;
}
// Token: 0x0600ADB5 RID: 44469 RVA: 0x0025B0D8 File Offset: 0x002592D8
[Token(Token = "0x600ADB5")]
[Address(RVA = "0x681CA0", Offset = "0x680CA0", VA = "0x180681CA0")]
protected internal Curve25519FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001BA5 RID: 7077
// (get) Token: 0x0600ADB6 RID: 44470 RVA: 0x0025B0F4 File Offset: 0x002592F4
[Token(Token = "0x17001BA5")]
public override bool IsZero
{
[Token(Token = "0x600ADB6")]
[Address(RVA = "0x6E6550", Offset = "0x6E5550", VA = "0x1806E6550", Slot = "18")]
get
{
return Nat256.IsZero(this.x);
}
}
// Token: 0x17001BA6 RID: 7078
// (get) Token: 0x0600ADB7 RID: 44471 RVA: 0x0025B10C File Offset: 0x0025930C
[Token(Token = "0x17001BA6")]
public override bool IsOne
{
[Token(Token = "0x600ADB7")]
[Address(RVA = "0x6E6540", Offset = "0x6E5540", VA = "0x1806E6540", Slot = "17")]
get
{
return Nat256.IsOne(this.x);
}
}
// Token: 0x0600ADB8 RID: 44472 RVA: 0x0025B124 File Offset: 0x00259324
[Token(Token = "0x600ADB8")]
[Address(RVA = "0x6E61E0", Offset = "0x6E51E0", VA = "0x1806E61E0", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat256.GetBit(array, num) == (uint)1;
}
// Token: 0x0600ADB9 RID: 44473 RVA: 0x0025B148 File Offset: 0x00259348
[Token(Token = "0x600ADB9")]
[Address(RVA = "0x6E6200", Offset = "0x6E5200", VA = "0x1806E6200", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat256.ToBigInteger(this.x);
}
// Token: 0x17001BA7 RID: 7079
// (get) Token: 0x0600ADBA RID: 44474 RVA: 0x0025B160 File Offset: 0x00259360
[Token(Token = "0x17001BA7")]
public override string FieldName
{
[Token(Token = "0x600ADBA")]
[Address(RVA = "0x6E64A0", Offset = "0x6E54A0", VA = "0x1806E64A0", Slot = "5")]
get
{
return "Curve25519Field";
}
}
// Token: 0x17001BA8 RID: 7080
// (get) Token: 0x0600ADBB RID: 44475 RVA: 0x0025B174 File Offset: 0x00259374
[Token(Token = "0x17001BA8")]
public override int FieldSize
{
[Token(Token = "0x600ADBB")]
[Address(RVA = "0x6E64D0", Offset = "0x6E54D0", VA = "0x1806E64D0", Slot = "6")]
get
{
return Curve25519FieldElement.Q.BitLength;
}
}
// Token: 0x0600ADBC RID: 44476 RVA: 0x0025B194 File Offset: 0x00259394
[Token(Token = "0x600ADBC")]
[Address(RVA = "0x6E5510", Offset = "0x6E4510", VA = "0x1806E5510", 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: 0x0600ADBD RID: 44477 RVA: 0x0025B1F4 File Offset: 0x002593F4
[Token(Token = "0x600ADBD")]
[Address(RVA = "0x6E53F0", Offset = "0x6E43F0", VA = "0x1806E53F0", Slot = "8")]
public override ECFieldElement AddOne()
{
/*
An exception occurred when decompiling this method (0600ADBD)
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: 0x0600ADBE RID: 44478 RVA: 0x0025B240 File Offset: 0x00259440
[Token(Token = "0x600ADBE")]
[Address(RVA = "0x6E60A0", Offset = "0x6E50A0", VA = "0x1806E60A0", 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: 0x0600ADBF RID: 44479 RVA: 0x0025B288 File Offset: 0x00259488
[Token(Token = "0x600ADBF")]
[Address(RVA = "0x6E5B30", Offset = "0x6E4B30", VA = "0x1806E5B30", 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: 0x0600ADC0 RID: 44480 RVA: 0x0025B2D0 File Offset: 0x002594D0
[Token(Token = "0x600ADC0")]
[Address(RVA = "0x6E56E0", Offset = "0x6E46E0", VA = "0x1806E56E0", 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: 0x0600ADC1 RID: 44481 RVA: 0x0025B328 File Offset: 0x00259528
[Token(Token = "0x600ADC1")]
[Address(RVA = "0x6E5C70", Offset = "0x6E4C70", VA = "0x1806E5C70", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600ADC1)
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: 0x0600ADC2 RID: 44482 RVA: 0x0025B354 File Offset: 0x00259554
[Token(Token = "0x600ADC2")]
[Address(RVA = "0x6E6010", Offset = "0x6E5010", VA = "0x1806E6010", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600ADC2)
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: 0x0600ADC3 RID: 44483 RVA: 0x0025B380 File Offset: 0x00259580
[Token(Token = "0x600ADC3")]
[Address(RVA = "0x6E5A60", Offset = "0x6E4A60", VA = "0x1806E5A60", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600ADC3)
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: 0x0600ADC4 RID: 44484 RVA: 0x0025B3B4 File Offset: 0x002595B4
[Token(Token = "0x600ADC4")]
[Address(RVA = "0x6E5D00", Offset = "0x6E4D00", VA = "0x1806E5D00", Slot = "15")]
public override ECFieldElement Sqrt()
{
/*
An exception occurred when decompiling this method (0600ADC4)
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: 0x0600ADC5 RID: 44485 RVA: 0x0025B514 File Offset: 0x00259714
[Token(Token = "0x600ADC5")]
[Address(RVA = "0x6E5880", Offset = "0x6E4880", VA = "0x1806E5880", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600ADC5)
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: 0x0600ADC6 RID: 44486 RVA: 0x0025B530 File Offset: 0x00259730
[Token(Token = "0x600ADC6")]
[Address(RVA = "0x6E5910", Offset = "0x6E4910", VA = "0x1806E5910", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600ADC6)
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: 0x0600ADC7 RID: 44487 RVA: 0x0025B54C File Offset: 0x0025974C
[Token(Token = "0x600ADC7")]
[Address(RVA = "0x6E5860", Offset = "0x6E4860", VA = "0x1806E5860", 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: 0x0600ADC8 RID: 44488 RVA: 0x0025B578 File Offset: 0x00259778
[Token(Token = "0x600ADC8")]
[Address(RVA = "0x6E59A0", Offset = "0x6E49A0", VA = "0x1806E59A0", Slot = "2")]
public override int GetHashCode()
{
Curve25519FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 8);
}
// Token: 0x0600ADC9 RID: 44489 RVA: 0x0025B5A8 File Offset: 0x002597A8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600ADC9")]
[Address(RVA = "0x6E6210", Offset = "0x6E5210", VA = "0x1806E6210")]
static Curve25519FieldElement()
{
uint[] array = new uint[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6AAC0DB543C50F09E879F5B9F757319773564CE1).FieldHandle);
Curve25519FieldElement.PRECOMP_POW2 = array;
}
// Token: 0x04006E3B RID: 28219
[Token(Token = "0x4006E3B")]
public static readonly BigInteger Q = Curve25519.q;
// Token: 0x04006E3C RID: 28220
[Token(Token = "0x4006E3C")]
private static readonly uint[] PRECOMP_POW2;
// Token: 0x04006E3D RID: 28221
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006E3D")]
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: 0x02001B9E RID: 7070
[Token(Token = "0x2001B9E")]
internal class Curve25519Point : AbstractFpPoint
{
// Token: 0x0600ADCA RID: 44490 RVA: 0x0025B5D8 File Offset: 0x002597D8
[Token(Token = "0x600ADCA")]
[Address(RVA = "0x6E8EA0", Offset = "0x6E7EA0", VA = "0x1806E8EA0")]
public Curve25519Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600ADCB RID: 44491 RVA: 0x0025B5E8 File Offset: 0x002597E8
[Token(Token = "0x600ADCB")]
[Address(RVA = "0x6E8DE0", Offset = "0x6E7DE0", VA = "0x1806E8DE0")]
public Curve25519Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600ADCB)
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: 0x0600ADCC RID: 44492 RVA: 0x0025B610 File Offset: 0x00259810
[Token(Token = "0x600ADCC")]
[Address(RVA = "0x6E4C90", Offset = "0x6E3C90", VA = "0x1806E4C90")]
internal Curve25519Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600ADCD RID: 44493 RVA: 0x0025B620 File Offset: 0x00259820
[Token(Token = "0x600ADCD")]
[Address(RVA = "0x6E8310", Offset = "0x6E7310", VA = "0x1806E8310", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600ADCD)
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: 0x0600ADCE RID: 44494 RVA: 0x0025B63C File Offset: 0x0025983C
[Token(Token = "0x600ADCE")]
[Address(RVA = "0x6E8540", Offset = "0x6E7540", VA = "0x1806E8540", Slot = "13")]
public override ECFieldElement GetZCoord(int index)
{
/*
An exception occurred when decompiling this method (0600ADCE)
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: 0x0600ADCF RID: 44495 RVA: 0x0025B65C File Offset: 0x0025985C
[Token(Token = "0x600ADCF")]
[Address(RVA = "0x6E7980", Offset = "0x6E6980", VA = "0x1806E7980", 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: 0x0600ADD0 RID: 44496 RVA: 0x0025B878 File Offset: 0x00259A78
[Token(Token = "0x600ADD0")]
[Address(RVA = "0x6E8D40", Offset = "0x6E7D40", VA = "0x1806E8D40", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
if (!this.m_y.IsOne)
{
bool flag2 = base.SatisfiesCurveEquation();
}
TypeCode typeCode = ((IConvertible)flag).GetTypeCode();
}
throw new NullReferenceException();
}
// Token: 0x0600ADD1 RID: 44497 RVA: 0x0025B8B8 File Offset: 0x00259AB8
[Token(Token = "0x600ADD1")]
[Address(RVA = "0x6E8C50", Offset = "0x6E7C50", VA = "0x1806E8C50", 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: 0x0600ADD2 RID: 44498 RVA: 0x0025B90C File Offset: 0x00259B0C
[Token(Token = "0x600ADD2")]
[Address(RVA = "0x6E8660", Offset = "0x6E7660", VA = "0x1806E8660", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
BigInteger bigInteger = this.GetJacobianModifiedW().ToBigInteger();
}
throw new NullReferenceException();
}
// Token: 0x0600ADD3 RID: 44499 RVA: 0x0025B944 File Offset: 0x00259B44
[Token(Token = "0x600ADD3")]
[Address(RVA = "0x6E8560", Offset = "0x6E7560", VA = "0x1806E8560", 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: 0x0600ADD4 RID: 44500 RVA: 0x0025B97C File Offset: 0x00259B7C
[Token(Token = "0x600ADD4")]
[Address(RVA = "0x6E8160", Offset = "0x6E7160", VA = "0x1806E8160", 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: 0x0600ADD5 RID: 44501 RVA: 0x0025B9F8 File Offset: 0x00259BF8
[Token(Token = "0x600ADD5")]
[Address(RVA = "0x6E83B0", Offset = "0x6E73B0", VA = "0x1806E83B0", 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: 0x0600ADD6 RID: 44502 RVA: 0x0025BA58 File Offset: 0x00259C58
[Token(Token = "0x600ADD6")]
[Address(RVA = "0x6E86E0", Offset = "0x6E76E0", VA = "0x1806E86E0", 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;
}
}
}