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

786 lines
33 KiB
C#

using System;
using System.Collections;
using System.Runtime.InteropServices;
using System.Text;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC
{
// Token: 0x0200141F RID: 5151
[Token(Token = "0x200141F")]
[StructLayout(3)]
public abstract class ECPoint
{
// Token: 0x06008513 RID: 34067 RVA: 0x001CF21C File Offset: 0x001CD41C
[Token(Token = "0x6008513")]
[Address(RVA = "0x21A4A20", Offset = "0x21A3420", VA = "0x1821A4A20")]
protected static ECFieldElement[] GetInitialZCoords(ECCurve curve)
{
while (curve != 0)
{
BigInteger cofactor = curve.Cofactor;
if (cofactor == 0 || cofactor == (ulong)5L)
{
break;
}
BigInteger one = BigInteger.One;
int fieldSize = curve.FieldSize;
if (cofactor <= (ulong)5L)
{
ECFieldElement[] array = new ECFieldElement[3];
throw new ArrayTypeMismatchException();
}
}
return ECPoint.EMPTY_ZS;
}
// Token: 0x06008514 RID: 34068 RVA: 0x001CF2D8 File Offset: 0x001CD4D8
[Token(Token = "0x6008514")]
[Address(RVA = "0x21A58D0", Offset = "0x21A42D0", VA = "0x1821A58D0")]
protected ECPoint(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
ECFieldElement[] initialZCoords = ECPoint.GetInitialZCoords(curve);
base..ctor();
this.m_curve = curve;
this.m_y = y;
this.m_zs = initialZCoords;
this.m_withCompression = false;
this.m_x = x;
}
// Token: 0x06008515 RID: 34069 RVA: 0x001CF318 File Offset: 0x001CD518
[Token(Token = "0x6008515")]
[Address(RVA = "0x21A5870", Offset = "0x21A4270", VA = "0x1821A5870")]
internal ECPoint(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
this.m_zs = 0;
this.m_curve = curve;
this.m_y = y;
this.m_withCompression = false;
this.m_x = x;
}
// Token: 0x06008516 RID: 34070
[Token(Token = "0x6008516")]
[Address(Slot = "4")]
protected abstract bool SatisfiesCurveEquation();
// Token: 0x06008517 RID: 34071 RVA: 0x001CF350 File Offset: 0x001CD550
[Token(Token = "0x6008517")]
[Address(RVA = "0x21A5230", Offset = "0x21A3C30", VA = "0x1821A5230", Slot = "5")]
protected virtual bool SatisfiesOrder()
{
BigInteger one = BigInteger.One;
if (!this.SatisfiesOrder() && this.SatisfiesOrder())
{
bool flag = this.SatisfiesOrder();
BigInteger bigInteger;
int bitLength = bigInteger.BitLength;
if (bitLength > 0)
{
int num = 0;
bool flag2 = bigInteger.TestBit(num);
if (bitLength > 1 && bigInteger.TestBit(1))
{
bool compressionYTilde = this.CompressionYTilde;
}
}
ECPoint ecpoint;
if (ecpoint.m_x != (ulong)0L)
{
}
}
throw new NullReferenceException();
}
// Token: 0x06008518 RID: 34072 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x6008518")]
[Address(RVA = "0x21A48D0", Offset = "0x21A32D0", VA = "0x1821A48D0")]
public ECPoint GetDetachedPoint()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001565 RID: 5477
// (get) Token: 0x06008519 RID: 34073 RVA: 0x001CF3C4 File Offset: 0x001CD5C4
[Token(Token = "0x17001565")]
public virtual ECCurve Curve
{
[Token(Token = "0x6008519")]
[Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "6")]
get
{
return this.m_curve;
}
}
// Token: 0x0600851A RID: 34074
[Token(Token = "0x600851A")]
[Address(Slot = "7")]
protected abstract ECPoint Detach();
// Token: 0x17001566 RID: 5478
// (get) Token: 0x0600851B RID: 34075 RVA: 0x001CF3D8 File Offset: 0x001CD5D8
[Token(Token = "0x17001566")]
protected virtual int CurveCoordinateSystem
{
[Token(Token = "0x600851B")]
[Address(RVA = "0x21A5A00", Offset = "0x21A4400", VA = "0x1821A5A00", Slot = "8")]
get
{
ECCurve curve = this.m_curve;
if (curve == 0)
{
return 0;
}
return curve.FieldSize;
}
}
// Token: 0x17001567 RID: 5479
// (get) Token: 0x0600851C RID: 34076 RVA: 0x001CF3F8 File Offset: 0x001CD5F8
[Token(Token = "0x17001567")]
public virtual ECFieldElement AffineXCoord
{
[Token(Token = "0x600851C")]
[Address(RVA = "0x21A5980", Offset = "0x21A4380", VA = "0x1821A5980", Slot = "9")]
get
{
/*
An exception occurred when decompiling this method (0600851C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint::get_AffineXCoord()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:class BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement[](var_0_06, callvirt:class BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement[](ECPoint::GetZCoords, ldloc:ECPoint(this)))
stloc:bool(var_1_0D, call:bool(ECPoint::SatisfiesCurveEquation, ldloc: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: 0x17001568 RID: 5480
// (get) Token: 0x0600851D RID: 34077 RVA: 0x001CF414 File Offset: 0x001CD614
[Token(Token = "0x17001568")]
public virtual ECFieldElement AffineYCoord
{
[Token(Token = "0x600851D")]
[Address(RVA = "0x21A59C0", Offset = "0x21A43C0", VA = "0x1821A59C0", Slot = "10")]
get
{
/*
An exception occurred when decompiling this method (0600851D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint::get_AffineYCoord()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:class BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement[](var_0_06, callvirt:class BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement[](ECPoint::GetZCoords, ldloc:ECPoint(this)))
stloc:bool(var_1_0D, call:bool(ECPoint::SatisfiesCurveEquation, ldloc: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: 0x17001569 RID: 5481
// (get) Token: 0x0600851E RID: 34078 RVA: 0x001CF430 File Offset: 0x001CD630
[Token(Token = "0x17001569")]
public virtual ECFieldElement XCoord
{
[Token(Token = "0x600851E")]
[Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240", Slot = "11")]
get
{
return this.m_x;
}
}
// Token: 0x1700156A RID: 5482
// (get) Token: 0x0600851F RID: 34079 RVA: 0x001CF444 File Offset: 0x001CD644
[Token(Token = "0x1700156A")]
public virtual ECFieldElement YCoord
{
[Token(Token = "0x600851F")]
[Address(RVA = "0x3C1220", Offset = "0x3BFC20", VA = "0x1803C1220", Slot = "12")]
get
{
return this.m_y;
}
}
// Token: 0x06008520 RID: 34080 RVA: 0x001CF458 File Offset: 0x001CD658
[Token(Token = "0x6008520")]
[Address(RVA = "0x21A4D10", Offset = "0x21A3710", VA = "0x1821A4D10", Slot = "13")]
public virtual ECFieldElement GetZCoord(int index)
{
ECFieldElement[] zs = this.m_zs;
int length = zs.Length;
if (index < length)
{
return zs[index];
}
throw new IndexOutOfRangeException();
}
// Token: 0x06008521 RID: 34081 RVA: 0x001CF488 File Offset: 0x001CD688
[Token(Token = "0x6008521")]
[Address(RVA = "0x21A4D60", Offset = "0x21A3760", VA = "0x1821A4D60", Slot = "14")]
public virtual ECFieldElement[] GetZCoords()
{
ECFieldElement[] zs = this.m_zs;
int length = zs.Length;
if (length != 0)
{
ECFieldElement[] array = new ECFieldElement[length];
ECFieldElement[] zs2 = this.m_zs;
int num = 0;
int num2 = 0;
Array.Copy(zs2, num2, array, num, length);
}
return zs;
}
// Token: 0x1700156B RID: 5483
// (get) Token: 0x06008522 RID: 34082 RVA: 0x001CF4D0 File Offset: 0x001CD6D0
[Token(Token = "0x1700156B")]
protected internal ECFieldElement RawXCoord
{
[Token(Token = "0x6008522")]
[Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240")]
get
{
return this.m_x;
}
}
// Token: 0x1700156C RID: 5484
// (get) Token: 0x06008523 RID: 34083 RVA: 0x001CF4E4 File Offset: 0x001CD6E4
[Token(Token = "0x1700156C")]
protected internal ECFieldElement RawYCoord
{
[Token(Token = "0x6008523")]
[Address(RVA = "0x3C1220", Offset = "0x3BFC20", VA = "0x1803C1220")]
get
{
return this.m_y;
}
}
// Token: 0x1700156D RID: 5485
// (get) Token: 0x06008524 RID: 34084 RVA: 0x001CF4F8 File Offset: 0x001CD6F8
[Token(Token = "0x1700156D")]
protected internal ECFieldElement[] RawZCoords
{
[Token(Token = "0x6008524")]
[Address(RVA = "0x3C1230", Offset = "0x3BFC30", VA = "0x1803C1230")]
get
{
return this.m_zs;
}
}
// Token: 0x06008525 RID: 34085 RVA: 0x001CF50C File Offset: 0x001CD70C
[Token(Token = "0x6008525")]
[Address(RVA = "0x21A43F0", Offset = "0x21A2DF0", VA = "0x1821A43F0", Slot = "15")]
protected virtual void CheckNormalized()
{
this.CheckNormalized();
}
// Token: 0x06008526 RID: 34086 RVA: 0x001CF52C File Offset: 0x001CD72C
[Token(Token = "0x6008526")]
[Address(RVA = "0x21A4F90", Offset = "0x21A3990", VA = "0x1821A4F90", Slot = "16")]
public virtual bool IsNormalized()
{
ECPoint ecpoint = this.Detach();
if (ecpoint != 0 && ecpoint != (ulong)5L && (this.m_x != (ulong)0L || this.m_y != (ulong)0L))
{
BigInteger bigInteger = this.m_zs[0].ToBigInteger();
}
return true;
}
// Token: 0x06008527 RID: 34087 RVA: 0x001CF57C File Offset: 0x001CD77C
[Token(Token = "0x6008527")]
[Address(RVA = "0x21A5170", Offset = "0x21A3B70", VA = "0x1821A5170", Slot = "17")]
public virtual ECPoint Normalize()
{
if (this.m_x != (ulong)0L || this.m_y != (ulong)0L)
{
ECPoint ecpoint = this.Detach();
if (ecpoint != 0 && ecpoint != (ulong)5L)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement.BitLength == 0)
{
ECFieldElement ecfieldElement2 = ecfieldElement.Square();
bool flag = this.SatisfiesCurveEquation();
}
}
}
return this;
}
// Token: 0x06008528 RID: 34088 RVA: 0x001CF5DC File Offset: 0x001CD7DC
[Token(Token = "0x6008528")]
[Address(RVA = "0x21A5030", Offset = "0x21A3A30", VA = "0x1821A5030", Slot = "18")]
internal virtual ECPoint Normalize(ECFieldElement zInv)
{
/*
An exception occurred when decompiling this method (06008528)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint::Normalize(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_26:
stloc:InvalidOperationException(var_3_30, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("not a projective coordinate system")))
}
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: 0x06008529 RID: 34089 RVA: 0x001CF61C File Offset: 0x001CD81C
[Token(Token = "0x6008529")]
[Address(RVA = "0x21A4470", Offset = "0x21A2E70", VA = "0x1821A4470", Slot = "19")]
protected virtual ECPoint CreateScaledPoint(ECFieldElement sx, ECFieldElement sy)
{
bool flag = this.SatisfiesOrder();
ECFieldElement ecfieldElement = this.m_x.Subtract(sx);
ECFieldElement ecfieldElement2 = this.m_y.Subtract(sy);
throw new NullReferenceException();
}
// Token: 0x1700156E RID: 5486
// (get) Token: 0x0600852A RID: 34090 RVA: 0x001CF650 File Offset: 0x001CD850
[Token(Token = "0x1700156E")]
public bool IsInfinity
{
[Token(Token = "0x600852A")]
[Address(RVA = "0x21A5A20", Offset = "0x21A4420", VA = "0x1821A5A20")]
get
{
if (this.m_x != (ulong)0L)
{
}
return this.m_y == (ulong)0L;
}
}
// Token: 0x1700156F RID: 5487
// (get) Token: 0x0600852B RID: 34091 RVA: 0x001CF678 File Offset: 0x001CD878
[Token(Token = "0x1700156F")]
public bool IsCompressed
{
[Token(Token = "0x600852B")]
[Address(RVA = "0x4CB2D0", Offset = "0x4C9CD0", VA = "0x1804CB2D0")]
get
{
return this.m_withCompression;
}
}
// Token: 0x0600852C RID: 34092 RVA: 0x001CF68C File Offset: 0x001CD88C
[Token(Token = "0x600852C")]
[Address(RVA = "0x21A5020", Offset = "0x21A3A20", VA = "0x1821A5020")]
public bool IsValid()
{
int num = 0;
return this.ImplIsValid(num != 0, true);
}
// Token: 0x0600852D RID: 34093 RVA: 0x001CF6A4 File Offset: 0x001CD8A4
[Token(Token = "0x600852D")]
[Address(RVA = "0x21A5010", Offset = "0x21A3A10", VA = "0x1821A5010")]
internal bool IsValidPartial()
{
int num = 0;
int num2 = 0;
return this.ImplIsValid(num2 != 0, num != 0);
}
// Token: 0x0600852E RID: 34094 RVA: 0x001CF6C0 File Offset: 0x001CD8C0
[Token(Token = "0x600852E")]
[Address(RVA = "0x21A4DF0", Offset = "0x21A37F0", VA = "0x1821A4DF0")]
internal bool ImplIsValid(bool decompressed, bool checkOrder)
{
if (this.m_x == (ulong)0L && this.m_y == (ulong)0L)
{
return true;
}
ECPoint.ValidityCallback validityCallback;
validityCallback.m_outer = this;
validityCallback.m_decompressed = decompressed;
validityCallback.m_checkOrder = checkOrder;
bool flag = this.SatisfiesOrder();
return "{il2cpp field on System.Boolean.System.IConvertible.ToDecimal, offset 0x10}" == (ulong)0L;
}
// Token: 0x0600852F RID: 34095 RVA: 0x001CF718 File Offset: 0x001CD918
[Token(Token = "0x600852F")]
[Address(RVA = "0x21A5460", Offset = "0x21A3E60", VA = "0x1821A5460", Slot = "20")]
public virtual ECPoint ScaleX(ECFieldElement scale)
{
if (this.m_x == (ulong)0L && this.m_y == (ulong)0L)
{
return this;
}
bool flag = this.SatisfiesOrder();
ECFieldElement ecfieldElement = this.m_x.Subtract(scale);
bool withCompression = this.m_withCompression;
throw new NullReferenceException();
}
// Token: 0x06008530 RID: 34096 RVA: 0x001CF760 File Offset: 0x001CD960
[Token(Token = "0x6008530")]
[Address(RVA = "0x21A5510", Offset = "0x21A3F10", VA = "0x1821A5510", Slot = "21")]
public virtual ECPoint ScaleY(ECFieldElement scale)
{
if (this.m_x == (ulong)0L && this.m_y == (ulong)0L)
{
return this;
}
bool flag = this.SatisfiesOrder();
ECFieldElement ecfieldElement = this.m_y.Subtract(scale);
bool withCompression = this.m_withCompression;
throw new NullReferenceException();
}
// Token: 0x06008531 RID: 34097 RVA: 0x001CF7A8 File Offset: 0x001CD9A8
[Token(Token = "0x6008531")]
[Address(RVA = "0x21A4840", Offset = "0x21A3240", VA = "0x1821A4840", Slot = "0")]
public override bool Equals(object obj)
{
if (obj == 0)
{
}
return this.SatisfiesCurveEquation();
}
// Token: 0x06008532 RID: 34098 RVA: 0x001CF7C4 File Offset: 0x001CD9C4
[Token(Token = "0x6008532")]
[Address(RVA = "0x21A4530", Offset = "0x21A2F30", VA = "0x1821A4530", Slot = "22")]
public virtual bool Equals(ECPoint other)
{
if (this != other && other != 0)
{
bool flag = this.SatisfiesOrder();
bool flag2 = !flag;
bool flag3 = !flag;
if (this.m_x != (ulong)0L)
{
}
if (other.m_x != (ulong)0L)
{
}
if (other.m_y == (ulong)0L)
{
if (flag2 == flag3)
{
if (!flag2)
{
if (!flag3)
{
ECPoint[] array = new ECPoint[2];
throw new ArrayTypeMismatchException();
}
ECPoint ecpoint;
bool flag4 = ecpoint.IsNormalized();
}
ECPoint ecpoint2;
bool flag5 = ecpoint2.IsNormalized();
}
short num;
short num2;
if (num.Equals(num2))
{
ushort num3;
ushort num4;
return num3.Equals(num4);
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x06008533 RID: 34099 RVA: 0x001CF89C File Offset: 0x001CDA9C
[Token(Token = "0x6008533")]
[Address(RVA = "0x21A4930", Offset = "0x21A3330", VA = "0x1821A4930", Slot = "2")]
public override int GetHashCode()
{
bool flag = this.SatisfiesOrder();
if (!flag)
{
}
flag.Finalize();
if (this.m_x != (ulong)0L || this.m_y != (ulong)0L)
{
bool flag2 = this.IsNormalized();
short num;
num.Finalize();
ushort num2;
num2.Finalize();
long num3 = (long)((uint)num2 * (uint)257);
}
throw new NullReferenceException();
}
// Token: 0x06008534 RID: 34100 RVA: 0x001CF8F4 File Offset: 0x001CDAF4
[Token(Token = "0x6008534")]
[Address(RVA = "0x21A5690", Offset = "0x21A4090", VA = "0x1821A5690", Slot = "3")]
public override string ToString()
{
if (this.m_x == (ulong)0L && this.m_y == (ulong)0L)
{
return "INF";
}
StringBuilder stringBuilder = new StringBuilder();
ECFieldElement x = this.m_x;
StringBuilder stringBuilder2 = stringBuilder.Append(x);
ECFieldElement y = this.m_y;
StringBuilder stringBuilder3 = stringBuilder.Append(y);
ECFieldElement[] zs = this.m_zs;
int num = 0;
if (num < zs.Length)
{
ECFieldElement ecfieldElement = this.m_zs[num];
StringBuilder stringBuilder4 = stringBuilder.Append(ecfieldElement);
ECFieldElement[] zs2 = this.m_zs;
num++;
}
throw new NullReferenceException();
}
// Token: 0x06008535 RID: 34101 RVA: 0x001CF988 File Offset: 0x001CDB88
[Token(Token = "0x6008535")]
[Address(RVA = "0x21A4910", Offset = "0x21A3310", VA = "0x1821A4910", Slot = "23")]
public virtual byte[] GetEncoded()
{
/*
An exception occurred when decompiling this method (06008535)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte[] BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint::GetEncoded()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:bool(var_0_06, call:bool(ECPoint::SatisfiesCurveEquation, ldloc: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: 0x06008536 RID: 34102
[Token(Token = "0x6008536")]
[Address(Slot = "24")]
public abstract byte[] GetEncoded(bool compressed);
// Token: 0x17001570 RID: 5488
// (get) Token: 0x06008537 RID: 34103
[Token(Token = "0x17001570")]
protected internal abstract bool CompressionYTilde
{
[Token(Token = "0x6008537")]
[Address(Slot = "25")]
get;
}
// Token: 0x06008538 RID: 34104
[Token(Token = "0x6008538")]
[Address(Slot = "26")]
public abstract ECPoint Add(ECPoint b);
// Token: 0x06008539 RID: 34105
[Token(Token = "0x6008539")]
[Address(Slot = "27")]
public abstract ECPoint Subtract(ECPoint b);
// Token: 0x0600853A RID: 34106
[Token(Token = "0x600853A")]
[Address(Slot = "28")]
public abstract ECPoint Negate();
// Token: 0x0600853B RID: 34107 RVA: 0x001CF99C File Offset: 0x001CDB9C
[Token(Token = "0x600853B")]
[Address(RVA = "0x21A55F0", Offset = "0x21A3FF0", VA = "0x1821A55F0", Slot = "29")]
public virtual ECPoint TimesPow2(int e)
{
ECPoint ecpoint;
return ecpoint;
}
// Token: 0x0600853C RID: 34108
[Token(Token = "0x600853C")]
[Address(Slot = "30")]
public abstract ECPoint Twice();
// Token: 0x0600853D RID: 34109
[Token(Token = "0x600853D")]
[Address(Slot = "31")]
public abstract ECPoint Multiply(BigInteger b);
// Token: 0x0600853E RID: 34110 RVA: 0x001CF9BC File Offset: 0x001CDBBC
[Token(Token = "0x600853E")]
[Address(RVA = "0x21A57E0", Offset = "0x21A41E0", VA = "0x1821A57E0", Slot = "32")]
public virtual ECPoint TwicePlus(ECPoint b)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600853F RID: 34111 RVA: 0x001CF9D8 File Offset: 0x001CDBD8
[Token(Token = "0x600853F")]
[Address(RVA = "0x21A55D0", Offset = "0x21A3FD0", VA = "0x1821A55D0", Slot = "33")]
public virtual ECPoint ThreeTimes()
{
/*
An exception occurred when decompiling this method (0600853F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint::ThreeTimes()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:bool(var_0_06, call:bool(ECPoint::SatisfiesCurveEquation, ldloc: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: 0x04005C4C RID: 23628
[Token(Token = "0x4005C4C")]
protected static ECFieldElement[] EMPTY_ZS = new ECFieldElement[0];
// Token: 0x04005C4D RID: 23629
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4005C4D")]
protected internal readonly ECCurve m_curve;
// Token: 0x04005C4E RID: 23630
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4005C4E")]
protected internal readonly ECFieldElement m_x;
// Token: 0x04005C4F RID: 23631
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4005C4F")]
protected internal readonly ECFieldElement m_y;
// Token: 0x04005C50 RID: 23632
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4005C50")]
protected internal readonly ECFieldElement[] m_zs;
// Token: 0x04005C51 RID: 23633
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4005C51")]
protected internal readonly bool m_withCompression;
// Token: 0x04005C52 RID: 23634
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4005C52")]
protected internal IDictionary m_preCompTable;
// Token: 0x02001420 RID: 5152
[Token(Token = "0x2001420")]
private class ValidityCallback : IPreCompCallback
{
// Token: 0x06008541 RID: 34113 RVA: 0x001CFA04 File Offset: 0x001CDC04
[Token(Token = "0x6008541")]
[Address(RVA = "0x21B2FF0", Offset = "0x21B19F0", VA = "0x1821B2FF0")]
internal ValidityCallback(ECPoint outer, bool decompressed, bool checkOrder)
{
this.m_outer = outer;
this.m_decompressed = decompressed;
this.m_checkOrder = checkOrder;
}
// Token: 0x06008542 RID: 34114 RVA: 0x001CFA2C File Offset: 0x001CDC2C
[Token(Token = "0x6008542")]
[Address(RVA = "0x21B2EB0", Offset = "0x21B18B0", VA = "0x1821B2EB0", Slot = "4")]
public PreCompInfo Precompute(PreCompInfo existing)
{
ValidityPreCompInfo validityPreCompInfo;
if (existing == 0 || existing == 0)
{
validityPreCompInfo = new ValidityPreCompInfo();
}
if (!validityPreCompInfo.failed)
{
if (!validityPreCompInfo.curveEquationPassed)
{
if (!this.m_decompressed && this.m_outer.ToString() == 0)
{
goto IL_65;
}
validityPreCompInfo.ReportCurveEquationPassed();
}
if (this.m_checkOrder && !validityPreCompInfo.orderPassed && this.m_outer.SatisfiesCurveEquation())
{
validityPreCompInfo.ReportOrderPassed();
}
}
IL_65:
throw new NullReferenceException();
}
// Token: 0x04005C53 RID: 23635
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x4005C53")]
private readonly ECPoint m_outer;
// Token: 0x04005C54 RID: 23636
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x4005C54")]
private readonly bool m_decompressed;
// Token: 0x04005C55 RID: 23637
[global::Cpp2IlInjected.FieldOffset(Offset = "0x19")]
[Token(Token = "0x4005C55")]
private readonly bool m_checkOrder;
}
}
}