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

785 lines
33 KiB
C#

using System;
using System.Collections;
using System.Text;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC
{
// Token: 0x02001ADC RID: 6876
[Token(Token = "0x2001ADC")]
public abstract class ECPoint
{
// Token: 0x0600A4BB RID: 42171 RVA: 0x0022F854 File Offset: 0x0022DA54
[Token(Token = "0x600A4BB")]
[Address(RVA = "0x7D6780", Offset = "0x7D5780", VA = "0x1807D6780")]
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: 0x0600A4BC RID: 42172 RVA: 0x0022F910 File Offset: 0x0022DB10
[Token(Token = "0x600A4BC")]
[Address(RVA = "0x7D7630", Offset = "0x7D6630", VA = "0x1807D7630")]
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: 0x0600A4BD RID: 42173 RVA: 0x0022F950 File Offset: 0x0022DB50
[Token(Token = "0x600A4BD")]
[Address(RVA = "0x7D75D0", Offset = "0x7D65D0", VA = "0x1807D75D0")]
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: 0x0600A4BE RID: 42174
[Token(Token = "0x600A4BE")]
[Address(Slot = "4")]
protected abstract bool SatisfiesCurveEquation();
// Token: 0x0600A4BF RID: 42175 RVA: 0x0022F988 File Offset: 0x0022DB88
[Token(Token = "0x600A4BF")]
[Address(RVA = "0x7D6F90", Offset = "0x7D5F90", VA = "0x1807D6F90", 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: 0x0600A4C0 RID: 42176 RVA: 0x0022F9FC File Offset: 0x0022DBFC
[Token(Token = "0x600A4C0")]
[Address(RVA = "0x7D6630", Offset = "0x7D5630", VA = "0x1807D6630")]
public ECPoint GetDetachedPoint()
{
TypeCode typeCode = ((IConvertible)this.IsNormalized()).GetTypeCode();
throw new NullReferenceException();
}
// Token: 0x17001A03 RID: 6659
// (get) Token: 0x0600A4C1 RID: 42177 RVA: 0x0022FA1C File Offset: 0x0022DC1C
[Token(Token = "0x17001A03")]
public virtual ECCurve Curve
{
[Token(Token = "0x600A4C1")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "6")]
get
{
return this.m_curve;
}
}
// Token: 0x0600A4C2 RID: 42178
[Token(Token = "0x600A4C2")]
[Address(Slot = "7")]
protected abstract ECPoint Detach();
// Token: 0x17001A04 RID: 6660
// (get) Token: 0x0600A4C3 RID: 42179 RVA: 0x0022FA30 File Offset: 0x0022DC30
[Token(Token = "0x17001A04")]
protected virtual int CurveCoordinateSystem
{
[Token(Token = "0x600A4C3")]
[Address(RVA = "0x7D7760", Offset = "0x7D6760", VA = "0x1807D7760", Slot = "8")]
get
{
ECCurve curve = this.m_curve;
if (curve == 0)
{
return 0;
}
return curve.FieldSize;
}
}
// Token: 0x17001A05 RID: 6661
// (get) Token: 0x0600A4C4 RID: 42180 RVA: 0x0022FA50 File Offset: 0x0022DC50
[Token(Token = "0x17001A05")]
public virtual ECFieldElement AffineXCoord
{
[Token(Token = "0x600A4C4")]
[Address(RVA = "0x7D76E0", Offset = "0x7D66E0", VA = "0x1807D76E0", Slot = "9")]
get
{
/*
An exception occurred when decompiling this method (0600A4C4)
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: 0x17001A06 RID: 6662
// (get) Token: 0x0600A4C5 RID: 42181 RVA: 0x0022FA6C File Offset: 0x0022DC6C
[Token(Token = "0x17001A06")]
public virtual ECFieldElement AffineYCoord
{
[Token(Token = "0x600A4C5")]
[Address(RVA = "0x7D7720", Offset = "0x7D6720", VA = "0x1807D7720", Slot = "10")]
get
{
/*
An exception occurred when decompiling this method (0600A4C5)
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: 0x17001A07 RID: 6663
// (get) Token: 0x0600A4C6 RID: 42182 RVA: 0x0022FA88 File Offset: 0x0022DC88
[Token(Token = "0x17001A07")]
public virtual ECFieldElement XCoord
{
[Token(Token = "0x600A4C6")]
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "11")]
get
{
return this.m_x;
}
}
// Token: 0x17001A08 RID: 6664
// (get) Token: 0x0600A4C7 RID: 42183 RVA: 0x0022FA9C File Offset: 0x0022DC9C
[Token(Token = "0x17001A08")]
public virtual ECFieldElement YCoord
{
[Token(Token = "0x600A4C7")]
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0", Slot = "12")]
get
{
return this.m_y;
}
}
// Token: 0x0600A4C8 RID: 42184 RVA: 0x0022FAB0 File Offset: 0x0022DCB0
[Token(Token = "0x600A4C8")]
[Address(RVA = "0x7D6A70", Offset = "0x7D5A70", VA = "0x1807D6A70", 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: 0x0600A4C9 RID: 42185 RVA: 0x0022FAE0 File Offset: 0x0022DCE0
[Token(Token = "0x600A4C9")]
[Address(RVA = "0x7D6AC0", Offset = "0x7D5AC0", VA = "0x1807D6AC0", 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: 0x17001A09 RID: 6665
// (get) Token: 0x0600A4CA RID: 42186 RVA: 0x0022FB28 File Offset: 0x0022DD28
[Token(Token = "0x17001A09")]
protected internal ECFieldElement RawXCoord
{
[Token(Token = "0x600A4CA")]
[Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0")]
get
{
return this.m_x;
}
}
// Token: 0x17001A0A RID: 6666
// (get) Token: 0x0600A4CB RID: 42187 RVA: 0x0022FB3C File Offset: 0x0022DD3C
[Token(Token = "0x17001A0A")]
protected internal ECFieldElement RawYCoord
{
[Token(Token = "0x600A4CB")]
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0")]
get
{
return this.m_y;
}
}
// Token: 0x17001A0B RID: 6667
// (get) Token: 0x0600A4CC RID: 42188 RVA: 0x0022FB50 File Offset: 0x0022DD50
[Token(Token = "0x17001A0B")]
protected internal ECFieldElement[] RawZCoords
{
[Token(Token = "0x600A4CC")]
[Address(RVA = "0x4157D0", Offset = "0x4147D0", VA = "0x1804157D0")]
get
{
return this.m_zs;
}
}
// Token: 0x0600A4CD RID: 42189 RVA: 0x0022FB64 File Offset: 0x0022DD64
[Token(Token = "0x600A4CD")]
[Address(RVA = "0x7D6150", Offset = "0x7D5150", VA = "0x1807D6150", Slot = "15")]
protected virtual void CheckNormalized()
{
this.CheckNormalized();
}
// Token: 0x0600A4CE RID: 42190 RVA: 0x0022FB84 File Offset: 0x0022DD84
[Token(Token = "0x600A4CE")]
[Address(RVA = "0x7D6CF0", Offset = "0x7D5CF0", VA = "0x1807D6CF0", 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: 0x0600A4CF RID: 42191 RVA: 0x0022FBD4 File Offset: 0x0022DDD4
[Token(Token = "0x600A4CF")]
[Address(RVA = "0x7D6ED0", Offset = "0x7D5ED0", VA = "0x1807D6ED0", 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: 0x0600A4D0 RID: 42192 RVA: 0x0022FC34 File Offset: 0x0022DE34
[Token(Token = "0x600A4D0")]
[Address(RVA = "0x7D6D90", Offset = "0x7D5D90", VA = "0x1807D6D90", Slot = "18")]
internal virtual ECPoint Normalize(ECFieldElement zInv)
{
/*
An exception occurred when decompiling this method (0600A4D0)
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: 0x0600A4D1 RID: 42193 RVA: 0x0022FC74 File Offset: 0x0022DE74
[Token(Token = "0x600A4D1")]
[Address(RVA = "0x7D61D0", Offset = "0x7D51D0", VA = "0x1807D61D0", 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: 0x17001A0C RID: 6668
// (get) Token: 0x0600A4D2 RID: 42194 RVA: 0x0022FCA8 File Offset: 0x0022DEA8
[Token(Token = "0x17001A0C")]
public bool IsInfinity
{
[Token(Token = "0x600A4D2")]
[Address(RVA = "0x7D7780", Offset = "0x7D6780", VA = "0x1807D7780")]
get
{
if (this.m_x != (ulong)0L)
{
}
return this.m_y == (ulong)0L;
}
}
// Token: 0x17001A0D RID: 6669
// (get) Token: 0x0600A4D3 RID: 42195 RVA: 0x0022FCD0 File Offset: 0x0022DED0
[Token(Token = "0x17001A0D")]
public bool IsCompressed
{
[Token(Token = "0x600A4D3")]
[Address(RVA = "0x5AB2E0", Offset = "0x5AA2E0", VA = "0x1805AB2E0")]
get
{
return this.m_withCompression;
}
}
// Token: 0x0600A4D4 RID: 42196 RVA: 0x0022FCE4 File Offset: 0x0022DEE4
[Token(Token = "0x600A4D4")]
[Address(RVA = "0x7D6D80", Offset = "0x7D5D80", VA = "0x1807D6D80")]
public bool IsValid()
{
int num = 0;
return this.ImplIsValid(num != 0, true);
}
// Token: 0x0600A4D5 RID: 42197 RVA: 0x0022FCFC File Offset: 0x0022DEFC
[Token(Token = "0x600A4D5")]
[Address(RVA = "0x7D6D70", Offset = "0x7D5D70", VA = "0x1807D6D70")]
internal bool IsValidPartial()
{
int num = 0;
int num2 = 0;
return this.ImplIsValid(num2 != 0, num != 0);
}
// Token: 0x0600A4D6 RID: 42198 RVA: 0x0022FD18 File Offset: 0x0022DF18
[Token(Token = "0x600A4D6")]
[Address(RVA = "0x7D6B50", Offset = "0x7D5B50", VA = "0x1807D6B50")]
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: 0x0600A4D7 RID: 42199 RVA: 0x0022FD70 File Offset: 0x0022DF70
[Token(Token = "0x600A4D7")]
[Address(RVA = "0x7D71C0", Offset = "0x7D61C0", VA = "0x1807D71C0", 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: 0x0600A4D8 RID: 42200 RVA: 0x0022FDB8 File Offset: 0x0022DFB8
[Token(Token = "0x600A4D8")]
[Address(RVA = "0x7D7270", Offset = "0x7D6270", VA = "0x1807D7270", 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: 0x0600A4D9 RID: 42201 RVA: 0x0022FE00 File Offset: 0x0022E000
[Token(Token = "0x600A4D9")]
[Address(RVA = "0x7D65A0", Offset = "0x7D55A0", VA = "0x1807D65A0", Slot = "0")]
public override bool Equals(object obj)
{
if (obj == 0)
{
}
return this.SatisfiesCurveEquation();
}
// Token: 0x0600A4DA RID: 42202 RVA: 0x0022FE1C File Offset: 0x0022E01C
[Token(Token = "0x600A4DA")]
[Address(RVA = "0x7D6290", Offset = "0x7D5290", VA = "0x1807D6290", 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: 0x0600A4DB RID: 42203 RVA: 0x0022FEF4 File Offset: 0x0022E0F4
[Token(Token = "0x600A4DB")]
[Address(RVA = "0x7D6690", Offset = "0x7D5690", VA = "0x1807D6690", 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: 0x0600A4DC RID: 42204 RVA: 0x0022FF4C File Offset: 0x0022E14C
[Token(Token = "0x600A4DC")]
[Address(RVA = "0x7D73F0", Offset = "0x7D63F0", VA = "0x1807D73F0", 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: 0x0600A4DD RID: 42205 RVA: 0x0022FFE0 File Offset: 0x0022E1E0
[Token(Token = "0x600A4DD")]
[Address(RVA = "0x7D6670", Offset = "0x7D5670", VA = "0x1807D6670", Slot = "23")]
public virtual byte[] GetEncoded()
{
/*
An exception occurred when decompiling this method (0600A4DD)
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: 0x0600A4DE RID: 42206
[Token(Token = "0x600A4DE")]
[Address(Slot = "24")]
public abstract byte[] GetEncoded(bool compressed);
// Token: 0x17001A0E RID: 6670
// (get) Token: 0x0600A4DF RID: 42207
[Token(Token = "0x17001A0E")]
protected internal abstract bool CompressionYTilde
{
[Token(Token = "0x600A4DF")]
[Address(Slot = "25")]
get;
}
// Token: 0x0600A4E0 RID: 42208
[Token(Token = "0x600A4E0")]
[Address(Slot = "26")]
public abstract ECPoint Add(ECPoint b);
// Token: 0x0600A4E1 RID: 42209
[Token(Token = "0x600A4E1")]
[Address(Slot = "27")]
public abstract ECPoint Subtract(ECPoint b);
// Token: 0x0600A4E2 RID: 42210
[Token(Token = "0x600A4E2")]
[Address(Slot = "28")]
public abstract ECPoint Negate();
// Token: 0x0600A4E3 RID: 42211 RVA: 0x0022FFF4 File Offset: 0x0022E1F4
[Token(Token = "0x600A4E3")]
[Address(RVA = "0x7D7350", Offset = "0x7D6350", VA = "0x1807D7350", Slot = "29")]
public virtual ECPoint TimesPow2(int e)
{
ECPoint ecpoint;
return ecpoint;
}
// Token: 0x0600A4E4 RID: 42212
[Token(Token = "0x600A4E4")]
[Address(Slot = "30")]
public abstract ECPoint Twice();
// Token: 0x0600A4E5 RID: 42213
[Token(Token = "0x600A4E5")]
[Address(Slot = "31")]
public abstract ECPoint Multiply(BigInteger b);
// Token: 0x0600A4E6 RID: 42214 RVA: 0x00230014 File Offset: 0x0022E214
[Token(Token = "0x600A4E6")]
[Address(RVA = "0x7D7540", Offset = "0x7D6540", VA = "0x1807D7540", Slot = "32")]
public virtual ECPoint TwicePlus(ECPoint b)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600A4E7 RID: 42215 RVA: 0x00230030 File Offset: 0x0022E230
[Token(Token = "0x600A4E7")]
[Address(RVA = "0x7D7330", Offset = "0x7D6330", VA = "0x1807D7330", Slot = "33")]
public virtual ECPoint ThreeTimes()
{
/*
An exception occurred when decompiling this method (0600A4E7)
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: 0x04006C48 RID: 27720
[Token(Token = "0x4006C48")]
protected static ECFieldElement[] EMPTY_ZS = new ECFieldElement[0];
// Token: 0x04006C49 RID: 27721
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006C49")]
protected internal readonly ECCurve m_curve;
// Token: 0x04006C4A RID: 27722
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006C4A")]
protected internal readonly ECFieldElement m_x;
// Token: 0x04006C4B RID: 27723
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006C4B")]
protected internal readonly ECFieldElement m_y;
// Token: 0x04006C4C RID: 27724
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006C4C")]
protected internal readonly ECFieldElement[] m_zs;
// Token: 0x04006C4D RID: 27725
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006C4D")]
protected internal readonly bool m_withCompression;
// Token: 0x04006C4E RID: 27726
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4006C4E")]
protected internal IDictionary m_preCompTable;
// Token: 0x02001ADD RID: 6877
[Token(Token = "0x2001ADD")]
private class ValidityCallback : IPreCompCallback
{
// Token: 0x0600A4E9 RID: 42217 RVA: 0x0023005C File Offset: 0x0022E25C
[Token(Token = "0x600A4E9")]
[Address(RVA = "0x7E4C10", Offset = "0x7E3C10", VA = "0x1807E4C10")]
internal ValidityCallback(ECPoint outer, bool decompressed, bool checkOrder)
{
this.m_outer = outer;
this.m_decompressed = decompressed;
this.m_checkOrder = checkOrder;
}
// Token: 0x0600A4EA RID: 42218 RVA: 0x00230084 File Offset: 0x0022E284
[Token(Token = "0x600A4EA")]
[Address(RVA = "0x7E4AD0", Offset = "0x7E3AD0", VA = "0x1807E4AD0", 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: 0x04006C4F RID: 27727
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006C4F")]
private readonly ECPoint m_outer;
// Token: 0x04006C50 RID: 27728
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006C50")]
private readonly bool m_decompressed;
// Token: 0x04006C51 RID: 27729
[FieldOffset(Offset = "0x19")]
[Token(Token = "0x4006C51")]
private readonly bool m_checkOrder;
}
}
}