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; } } }