201 lines
12 KiB
C#
201 lines
12 KiB
C#
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: 0x020019F3 RID: 6643
|
|
[Token(Token = "0x20019F3")]
|
|
public abstract class AbstractF2mCurve : ECCurve
|
|
{
|
|
// Token: 0x0600A06B RID: 41067 RVA: 0x002248F8 File Offset: 0x00222AF8
|
|
[Token(Token = "0x600A06B")]
|
|
[Address(RVA = "0x1ECB960", Offset = "0x1ECA760", VA = "0x181ECB960")]
|
|
public static BigInteger Inverse(int m, int[] ks, BigInteger x)
|
|
{
|
|
return new LongArray(x).ModInverse(m, ks).ToBigInteger();
|
|
}
|
|
|
|
// Token: 0x0600A06C RID: 41068 RVA: 0x00224920 File Offset: 0x00222B20
|
|
[Token(Token = "0x600A06C")]
|
|
[Address(RVA = "0x1ECB200", Offset = "0x1ECA000", VA = "0x181ECB200")]
|
|
private static IFiniteField BuildField(int m, int k1, int k2, int k3)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600A06C)
|
|
|
|
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: 0x0600A06D RID: 41069 RVA: 0x00224990 File Offset: 0x00222B90
|
|
[Token(Token = "0x600A06D")]
|
|
[Address(RVA = "0x1ECBCF0", Offset = "0x1ECAAF0", VA = "0x181ECBCF0")]
|
|
protected AbstractF2mCurve(int m, int k1, int k2, int k3)
|
|
{
|
|
IFiniteField finiteField;
|
|
base..ctor(finiteField);
|
|
}
|
|
|
|
// Token: 0x0600A06E RID: 41070 RVA: 0x002249A4 File Offset: 0x00222BA4
|
|
[Token(Token = "0x600A06E")]
|
|
[Address(RVA = "0x1ECBA00", Offset = "0x1ECA800", VA = "0x181ECBA00", Slot = "6")]
|
|
public override bool IsValidFieldElement(BigInteger x)
|
|
{
|
|
if (x != 0)
|
|
{
|
|
int bitLength = x.BitLength;
|
|
string text = this.ToString();
|
|
return bitLength <= text;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600A06F RID: 41071 RVA: 0x002249CC File Offset: 0x00222BCC
|
|
[Token(Token = "0x600A06F")]
|
|
[Address(RVA = "0x1ECB460", Offset = "0x1ECA260", VA = "0x181ECB460", Slot = "11")]
|
|
[Obsolete]
|
|
public override ECPoint CreatePoint(BigInteger x, BigInteger y, bool withCompression)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600A06F)
|
|
|
|
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: 0x0600A070 RID: 41072 RVA: 0x00224A20 File Offset: 0x00222C20
|
|
[Token(Token = "0x600A070")]
|
|
[Address(RVA = "0x1ECB610", Offset = "0x1ECA410", VA = "0x181ECB610", Slot = "34")]
|
|
protected override ECPoint DecompressPoint(int yTilde, BigInteger X1)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600A070)
|
|
|
|
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: 0x0600A071 RID: 41073 RVA: 0x00224A98 File Offset: 0x00222C98
|
|
[Token(Token = "0x600A071")]
|
|
[Address(RVA = "0x1ECBA60", Offset = "0x1ECA860", VA = "0x181ECBA60")]
|
|
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: 0x0600A072 RID: 41074 RVA: 0x00224AF4 File Offset: 0x00222CF4
|
|
[Token(Token = "0x600A072")]
|
|
[Address(RVA = "0x1ECB880", Offset = "0x1ECA680", VA = "0x181ECB880", 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: 0x1700194B RID: 6475
|
|
// (get) Token: 0x0600A073 RID: 41075 RVA: 0x00224B34 File Offset: 0x00222D34
|
|
[Token(Token = "0x1700194B")]
|
|
public virtual bool IsKoblitz
|
|
{
|
|
[Token(Token = "0x600A073")]
|
|
[Address(RVA = "0x1ECBD40", Offset = "0x1ECAB40", VA = "0x181ECBD40", 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: 0x04006A7B RID: 27259
|
|
[FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x4006A7B")]
|
|
private BigInteger[] si;
|
|
}
|
|
}
|