using System; using System.Threading; using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc; using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC { // Token: 0x02001AD3 RID: 6867 [Token(Token = "0x2001AD3")] public abstract class AbstractF2mCurve : ECCurve { // Token: 0x0600A439 RID: 42041 RVA: 0x0022D994 File Offset: 0x0022BB94 [Token(Token = "0x600A439")] [Address(RVA = "0x6E32A0", Offset = "0x6E22A0", VA = "0x1806E32A0")] public static BigInteger Inverse(int m, int[] ks, BigInteger x) { return new LongArray(x).ModInverse(m, ks).ToBigInteger(); } // Token: 0x0600A43A RID: 42042 RVA: 0x0022D9BC File Offset: 0x0022BBBC [Token(Token = "0x600A43A")] [Address(RVA = "0x6E2B40", Offset = "0x6E1B40", VA = "0x1806E2B40")] private static IFiniteField BuildField(int m, int k1, int k2, int k3) { /* An exception occurred when decompiling this method (0600A43A) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field.IFiniteField BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.AbstractF2mCurve::BuildField(System.Int32,System.Int32,System.Int32,System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_59: stloc:ArgumentException(var_3_63, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("k1 must be > 0"))) } 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: 0x0600A43B RID: 42043 RVA: 0x0022DA2C File Offset: 0x0022BC2C [Token(Token = "0x600A43B")] [Address(RVA = "0x6E3630", Offset = "0x6E2630", VA = "0x1806E3630")] protected AbstractF2mCurve(int m, int k1, int k2, int k3) { IFiniteField finiteField; base..ctor(finiteField); } // Token: 0x0600A43C RID: 42044 RVA: 0x0022DA40 File Offset: 0x0022BC40 [Token(Token = "0x600A43C")] [Address(RVA = "0x6E3340", Offset = "0x6E2340", VA = "0x1806E3340", Slot = "6")] public override bool IsValidFieldElement(BigInteger x) { if (x != 0) { int bitLength = x.BitLength; string text = this.ToString(); return bitLength <= text; } } // Token: 0x0600A43D RID: 42045 RVA: 0x0022DA68 File Offset: 0x0022BC68 [Token(Token = "0x600A43D")] [Address(RVA = "0x6E2DA0", Offset = "0x6E1DA0", VA = "0x1806E2DA0", Slot = "11")] [Obsolete] public override ECPoint CreatePoint(BigInteger x, BigInteger y, bool withCompression) { /* An exception occurred when decompiling this method (0600A43D) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.AbstractF2mCurve::CreatePoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger,System.Boolean) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_3F: stloc:ArgumentException(var_6_44, newobj:ArgumentException(ArgumentException::.ctor)) } at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663 */; } // Token: 0x0600A43E RID: 42046 RVA: 0x0022DABC File Offset: 0x0022BCBC [Token(Token = "0x600A43E")] [Address(RVA = "0x6E2F50", Offset = "0x6E1F50", VA = "0x1806E2F50", Slot = "34")] protected override ECPoint DecompressPoint(int yTilde, BigInteger X1) { /* An exception occurred when decompiling this method (0600A43E) ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.AbstractF2mCurve::DecompressPoint(System.Int32,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_5E: stloc:ArgumentException(var_13_68, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Invalid point compression"))) } 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: 0x0600A43F RID: 42047 RVA: 0x0022DB34 File Offset: 0x0022BD34 [Token(Token = "0x600A43F")] [Address(RVA = "0x6E33A0", Offset = "0x6E23A0", VA = "0x1806E33A0")] internal ECFieldElement SolveQuadraticEquation(ECFieldElement beta) { while (!beta.IsOne) { int fieldSize = this.FieldSize; string text = this.ToString(); int fieldSize2 = this.FieldSize; if (text > (uint)1) { ECFieldElement ecfieldElement = beta.Negate(); ushort num; TypeCode typeCode = num.GetTypeCode(); ushort num2; if (ecfieldElement.FieldSize == 0 || num2.GetTypeCode() == TypeCode.Empty) { break; } } } throw new NullReferenceException(); } // Token: 0x0600A440 RID: 42048 RVA: 0x0022DB90 File Offset: 0x0022BD90 [Token(Token = "0x600A440")] [Address(RVA = "0x6E31C0", Offset = "0x6E21C0", VA = "0x1806E31C0", Slot = "38")] internal virtual BigInteger[] GetSi() { int num; do { num = 0; if (this.si != num) { break; } if (this.si == num) { BigInteger[] array = Tnaf.GetSi(this); this.si = array; } Monitor.Exit(this); } while (num != 0); return this.si; } // Token: 0x170019E8 RID: 6632 // (get) Token: 0x0600A441 RID: 42049 RVA: 0x0022DBD0 File Offset: 0x0022BDD0 [Token(Token = "0x170019E8")] public virtual bool IsKoblitz { [Token(Token = "0x600A441")] [Address(RVA = "0x6E3680", Offset = "0x6E2680", VA = "0x1806E3680", Slot = "39")] get { if (this.m_b.BitLength != 0) { if (this.m_a.IsOne) { return true; } BigInteger bigInteger = this.m_a.ToBigInteger(); } throw new NullReferenceException(); } } // Token: 0x04006C34 RID: 27700 [FieldOffset(Offset = "0x50")] [Token(Token = "0x4006C34")] private BigInteger[] si; } }