This commit is contained in:
niko
2026-04-12 16:51:38 +02:00
parent 1b6f6d81d0
commit c12fbe3fc6
17828 changed files with 2994770 additions and 0 deletions
@@ -0,0 +1,3245 @@
using System;
using System.Collections;
using System.Text;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math
{
// Token: 0x02001AB4 RID: 6836
[Token(Token = "0x2001AB4")]
[Serializable]
public class BigInteger
{
// Token: 0x0600A1CB RID: 41419 RVA: 0x0021B228 File Offset: 0x00219428
[Token(Token = "0x600A1CB")]
[Address(RVA = "0x459230", Offset = "0x458230", VA = "0x180459230")]
static BigInteger()
{
/*
An exception occurred when decompiling this method (0600A1CB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::.cctor()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_7FA:
stelem:int32[]([mscorlib]System.Int32, ldloc:int32[][](var_0_07), ldc.i4:int32(58), ldloc:int32[](var_59_7E7))
}
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: 0x0600A1CC RID: 41420 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A1CC")]
[Address(RVA = "0x451C60", Offset = "0x450C60", VA = "0x180451C60")]
private static int GetByteLength(int nBits)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A1CD RID: 41421 RVA: 0x0021BA38 File Offset: 0x00219C38
[Token(Token = "0x600A1CD")]
[Address(RVA = "0x44F980", Offset = "0x44E980", VA = "0x18044F980")]
internal static BigInteger Arbitrary(int sizeInBits)
{
SecureRandom randomSource = BigInteger.RandomSource;
return new BigInteger(sizeInBits, randomSource);
}
// Token: 0x0600A1CE RID: 41422 RVA: 0x0021BA54 File Offset: 0x00219C54
[Token(Token = "0x600A1CE")]
[Address(RVA = "0x45BE80", Offset = "0x45AE80", VA = "0x18045BE80")]
private BigInteger(int signum, int[] mag, bool checkMag)
{
this.nBits = (int)((ulong)(-1L));
base..ctor();
if (!checkMag)
{
this.sign = signum;
this.magnitude = mag;
return;
}
int num = 0;
int num2 = 0;
int length = mag.Length;
if (num2 < length && "{il2cpp array field mag->}" == (ulong)0L)
{
num++;
}
if (num != length)
{
this.sign = signum;
while (num == 0)
{
}
int num3 = mag.Length;
num3 -= num;
int[] array = new int[num3];
this.magnitude = array;
int length2 = array.Length;
int num4 = 0;
Array.Copy(mag, num, array, num4, length2);
}
this.sign = (int)((ulong)0L);
int[] zeroMagnitude = BigInteger.ZeroMagnitude;
this.magnitude = zeroMagnitude;
throw new NullReferenceException();
}
// Token: 0x0600A1CF RID: 41423 RVA: 0x0021BB04 File Offset: 0x00219D04
[Token(Token = "0x600A1CF")]
[Address(RVA = "0x45C190", Offset = "0x45B190", VA = "0x18045C190")]
public BigInteger(string value)
{
}
// Token: 0x0600A1D0 RID: 41424 RVA: 0x0021BB14 File Offset: 0x00219D14
[Token(Token = "0x600A1D0")]
[Address(RVA = "0x45B850", Offset = "0x45A850", VA = "0x18045B850")]
public BigInteger(string str, int radix)
{
/*
An exception occurred when decompiling this method (0600A1D0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::.ctor(System.String,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1F3:
stloc:FormatException(var_43_1FA, newobj:FormatException(FormatException::.ctor, ldloc:string(var_42)))
}
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: 0x0600A1D1 RID: 41425 RVA: 0x0021BD1C File Offset: 0x00219F1C
[Token(Token = "0x600A1D1")]
[Address(RVA = "0x45C430", Offset = "0x45B430", VA = "0x18045C430")]
public BigInteger(byte[] bytes)
{
int length = bytes.Length;
}
// Token: 0x0600A1D2 RID: 41426 RVA: 0x0021BD38 File Offset: 0x00219F38
[Token(Token = "0x600A1D2")]
[Address(RVA = "0x45C1A0", Offset = "0x45B1A0", VA = "0x18045C1A0")]
public BigInteger(byte[] bytes, int offset, int length)
{
/*
An exception occurred when decompiling this method (0600A1D2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::.ctor(System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_8F:
stloc:FormatException(var_11_99, newobj:FormatException(FormatException::.ctor, ldstr:string("Zero length BigInteger")))
}
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: 0x0600A1D3 RID: 41427 RVA: 0x0021BDE0 File Offset: 0x00219FE0
[Token(Token = "0x600A1D3")]
[Address(RVA = "0x452740", Offset = "0x451740", VA = "0x180452740")]
private static int[] MakeMagnitude(byte[] bytes, int offset, int length)
{
return BigInteger.ZeroMagnitude;
}
// Token: 0x0600A1D4 RID: 41428 RVA: 0x0021BE20 File Offset: 0x0021A020
[Token(Token = "0x600A1D4")]
[Address(RVA = "0x45B710", Offset = "0x45A710", VA = "0x18045B710")]
public BigInteger(int sign, byte[] bytes)
{
/*
An exception occurred when decompiling this method (0600A1D4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::.ctor(System.Int32,System.Byte[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_58:
stloc:FormatException(var_5_62, newobj:FormatException(FormatException::.ctor, ldstr:string("Invalid sign value")))
}
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: 0x0600A1D5 RID: 41429 RVA: 0x0021BE90 File Offset: 0x0021A090
[Token(Token = "0x600A1D5")]
[Address(RVA = "0x45B5E0", Offset = "0x45A5E0", VA = "0x18045B5E0")]
public BigInteger(int sign, byte[] bytes, int offset, int length)
{
/*
An exception occurred when decompiling this method (0600A1D5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::.ctor(System.Int32,System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_3E:
stloc:FormatException(var_3_48, newobj:FormatException(FormatException::.ctor, ldstr:string("Invalid sign value")))
}
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: 0x0600A1D6 RID: 41430 RVA: 0x0021BEE8 File Offset: 0x0021A0E8
[Token(Token = "0x600A1D6")]
[Address(RVA = "0x45BFC0", Offset = "0x45AFC0", VA = "0x18045BFC0")]
public BigInteger(int sizeInBits, Random random)
{
int num = 0;
this.nBits = (int)((ulong)(-1L));
base..ctor();
this.nBits = (int)((ulong)(-1L));
if (sizeInBits != 0)
{
byte[] array = new byte[num];
double num2 = random.NextDouble();
int num3 = 0;
int length = array.Length;
int[] array2 = BigInteger.MakeMagnitude(array, num3, length);
this.magnitude = array2;
bool flag = array2.Length >= 1;
this.sign = (flag ? 1 : 0);
return;
}
int num4 = 0;
this.sign = num4;
int[] zeroMagnitude = BigInteger.ZeroMagnitude;
this.magnitude = zeroMagnitude;
}
// Token: 0x0600A1D7 RID: 41431 RVA: 0x0021BF7C File Offset: 0x0021A17C
[Token(Token = "0x600A1D7")]
[Address(RVA = "0x45C460", Offset = "0x45B460", VA = "0x18045C460")]
public BigInteger(int bitLength, int certainty, Random random)
{
int num = 0;
base..ctor();
this.nBitLength = bitLength;
if (bitLength != 2)
{
byte[] array = new byte[num];
num -= bitLength;
uint num2;
num2 -= (uint)num;
int num3 = 0;
byte b = array[0];
array[0] = b;
array[0] = b;
int length = array.Length;
int num4 = 0;
int[] array2 = BigInteger.MakeMagnitude(array, num4, length);
this.magnitude = array2;
this.mQuote = num3;
ulong num5;
if (this.CheckProbablePrime(certainty, random, num5 != 0UL))
{
return;
}
int num6 = this.magnitude.Length - 1;
uint num7;
if (num7 < (uint)num6)
{
double num8 = random.Sample();
ulong num9;
if (this.CheckProbablePrime(certainty, random, num9 != 0UL))
{
return;
}
num7 += (uint)1;
}
}
int num10;
if (num10 == 0)
{
}
int[] array3 = BigInteger.Three.magnitude;
this.magnitude = array3;
}
// Token: 0x0600A1D8 RID: 41432 RVA: 0x0021C05C File Offset: 0x0021A25C
[Token(Token = "0x600A1D8")]
[Address(RVA = "0x44F110", Offset = "0x44E110", VA = "0x18044F110")]
public BigInteger Abs()
{
int num = this.sign;
int num2 = this.sign;
if (num2 != 0)
{
int[] array = this.magnitude;
BigInteger bigInteger;
bigInteger.nBits = (int)((ulong)(-1L));
bigInteger.magnitude = array;
bigInteger.sign = num2;
}
return this;
}
// Token: 0x0600A1D9 RID: 41433 RVA: 0x0021C09C File Offset: 0x0021A29C
[Token(Token = "0x600A1D9")]
[Address(RVA = "0x44F1B0", Offset = "0x44E1B0", VA = "0x18044F1B0")]
private static int[] AddMagnitudes(int[] a, int[] b)
{
int length = a.Length;
int length2 = b.Length;
int num = a[length];
int num2 = b[length2];
uint num3;
num3 += (uint)num;
num3 += (uint)num2;
a[0] = (int)num3;
if (num3 != (uint)0)
{
num2 = length;
while (num2 == a.Length)
{
}
}
return a;
}
// Token: 0x0600A1DA RID: 41434 RVA: 0x0021C0F4 File Offset: 0x0021A2F4
[Token(Token = "0x600A1DA")]
[Address(RVA = "0x44F440", Offset = "0x44E440", VA = "0x18044F440")]
public BigInteger Add(BigInteger value)
{
int num = this.sign;
if (num == 0)
{
return value;
}
int num2 = value.sign;
if (num == num2)
{
int[] array = value.magnitude;
return this.AddToMagnitude(array);
}
if (num2 != 0)
{
BigInteger bigInteger = this.Negate();
return value.Subtract(bigInteger);
}
return this;
}
// Token: 0x0600A1DB RID: 41435 RVA: 0x0021C14C File Offset: 0x0021A34C
[Token(Token = "0x600A1DB")]
[Address(RVA = "0x44F290", Offset = "0x44E290", VA = "0x18044F290")]
private BigInteger AddToMagnitude(int[] magToAdd)
{
int[] array;
int length3;
do
{
array = this.magnitude;
int length = magToAdd.Length;
int length2 = magToAdd.Length;
length3 = array.Length;
if (length2 == length3)
{
}
if ("{il2cpp array field magToAdd->}" >= (uint)(-1))
{
break;
}
if (length3 == 0)
{
}
}
while (length3 == 0);
int[] array2 = new int[0];
int num = 0;
int[] array3 = BigInteger.AddMagnitudes(array2, array);
return new BigInteger(this.sign, array3, num != 0);
}
// Token: 0x0600A1DC RID: 41436 RVA: 0x0021C1B4 File Offset: 0x0021A3B4
[Token(Token = "0x600A1DC")]
[Address(RVA = "0x44F540", Offset = "0x44E540", VA = "0x18044F540")]
public BigInteger And(BigInteger value)
{
int num = this.sign;
if (num != 0 && value.sign != 0)
{
if (num > 0)
{
}
BigInteger one = BigInteger.One;
int[] array = this.Add(one).magnitude;
if (value.sign > 0)
{
}
BigInteger one2 = BigInteger.One;
int[] array2 = value.Add(one2).magnitude;
int num2 = value.sign;
int num3 = array2.Length;
num3 = Math.Max(array.Length, num3);
int[] array3 = new int[num3];
int num4 = array3.Length;
int num5 = 0;
int num6 = 0;
num4 -= num4;
int length = array3.Length;
if (num6 < length)
{
num6 += num5;
int num7 = 0;
array3[0] = num7;
if (num2 != 0)
{
array3[0] = num7;
}
num5++;
}
uint num8;
ulong num9;
BigInteger bigInteger = new BigInteger((int)num8, array3, num9 != 0UL);
if (num2 != 0)
{
BigInteger bigInteger2 = bigInteger.Inc();
int num10 = bigInteger2.sign;
if (num10 != 0)
{
int[] array4 = bigInteger2.magnitude;
BigInteger bigInteger3;
bigInteger3.nBits = (int)((ulong)(-1L));
bigInteger3.sign = num10;
bigInteger3.magnitude = array4;
}
}
}
return BigInteger.Zero;
}
// Token: 0x0600A1DD RID: 41437 RVA: 0x0021C2E0 File Offset: 0x0021A4E0
[Token(Token = "0x600A1DD")]
[Address(RVA = "0x44F4F0", Offset = "0x44E4F0", VA = "0x18044F4F0")]
public BigInteger AndNot(BigInteger val)
{
BigInteger bigInteger = val.Inc().Negate();
return this.And(bigInteger);
}
// Token: 0x170019C3 RID: 6595
// (get) Token: 0x0600A1DE RID: 41438 RVA: 0x0021C308 File Offset: 0x0021A508
[Token(Token = "0x170019C3")]
public int BitCount
{
[Token(Token = "0x600A1DE")]
[Address(RVA = "0x45C8C0", Offset = "0x45B8C0", VA = "0x18045C8C0")]
get
{
int num = this.nBits;
if (num == -1)
{
int[] array = this.magnitude;
int num2 = 0;
if (num2 < array.Length)
{
int num3 = array[num2];
int[] array2 = this.magnitude;
num2++;
num3 -= num3;
num3 += num3;
num3 += num3;
num3 += num3;
num3 += num3;
num2 += num3;
}
this.nBits = num2;
}
return num;
}
}
// Token: 0x0600A1DF RID: 41439 RVA: 0x0021C388 File Offset: 0x0021A588
[Token(Token = "0x600A1DF")]
[Address(RVA = "0x44FA10", Offset = "0x44EA10", VA = "0x18044FA10")]
public static int BitCnt(int i)
{
return i;
}
// Token: 0x0600A1E0 RID: 41440 RVA: 0x0021C398 File Offset: 0x0021A598
[Token(Token = "0x600A1E0")]
[Address(RVA = "0x44FC20", Offset = "0x44EC20", VA = "0x18044FC20")]
private static int CalcBitLength(int sign, int indx, int[] mag)
{
int num = mag.Length;
if (indx < num)
{
int num2 = mag[indx];
if (num2 == 0)
{
}
num -= indx;
int num3 = 0;
int num4 = BigInteger.BitLen(num2);
num4 = num2;
if (num4 == num2)
{
int length = mag.Length;
if (indx < length)
{
while ("{il2cpp array field mag->}" == (ulong)0L)
{
}
}
}
return num3;
}
throw new NullReferenceException();
}
// Token: 0x170019C4 RID: 6596
// (get) Token: 0x0600A1E1 RID: 41441 RVA: 0x0021C3F0 File Offset: 0x0021A5F0
[Token(Token = "0x170019C4")]
public int BitLength
{
[Token(Token = "0x600A1E1")]
[Address(RVA = "0x45CA20", Offset = "0x45BA20", VA = "0x18045CA20")]
get
{
int num = this.nBitLength;
if (num == -1)
{
int num2 = this.sign;
if (num2 == 0)
{
int num3 = 0;
this.nBitLength = num3;
return num3;
}
int[] array = this.magnitude;
int num4 = 0;
int num5 = BigInteger.CalcBitLength(num2, num4, array);
this.nBitLength = num5;
}
return num;
}
}
// Token: 0x0600A1E2 RID: 41442 RVA: 0x0021C43C File Offset: 0x0021A63C
[Token(Token = "0x600A1E2")]
[Address(RVA = "0x44FA50", Offset = "0x44EA50", VA = "0x18044FA50")]
internal static int BitLen(int w)
{
if (w == 0)
{
if (w == 0)
{
if (w == 0)
{
byte[] bitLengthTable = BigInteger.BitLengthTable;
}
byte[] bitLengthTable2 = BigInteger.BitLengthTable;
}
byte[] bitLengthTable3 = BigInteger.BitLengthTable;
}
byte[] bitLengthTable4 = BigInteger.BitLengthTable;
throw new NullReferenceException();
}
// Token: 0x0600A1E3 RID: 41443 RVA: 0x0021C474 File Offset: 0x0021A674
[Token(Token = "0x600A1E3")]
[Address(RVA = "0x455640", Offset = "0x454640", VA = "0x180455640")]
private bool QuickPow2Check()
{
return this.nBits == 1;
}
// Token: 0x0600A1E4 RID: 41444 RVA: 0x0021C48C File Offset: 0x0021A68C
[Token(Token = "0x600A1E4")]
[Address(RVA = "0x450170", Offset = "0x44F170", VA = "0x180450170")]
public int CompareTo(object obj)
{
do
{
if (obj == 0)
{
}
}
while (obj == 0);
int num;
return num;
}
// Token: 0x0600A1E5 RID: 41445 RVA: 0x0021C4A4 File Offset: 0x0021A6A4
[Token(Token = "0x600A1E5")]
[Address(RVA = "0x4502F0", Offset = "0x44F2F0", VA = "0x1804502F0")]
private static int CompareTo(int xIndx, int[] x, int yIndx, int[] y)
{
int length = x.Length;
if (xIndx == length || "{il2cpp array field x->}" == (ulong)0L)
{
}
int length2 = y.Length;
if (yIndx == length2 || "{il2cpp array field y->}" == (ulong)0L)
{
}
return BigInteger.CompareNoLeadingZeroes(xIndx, x, yIndx, y);
}
// Token: 0x0600A1E6 RID: 41446 RVA: 0x0021C4EC File Offset: 0x0021A6EC
[Token(Token = "0x600A1E6")]
[Address(RVA = "0x4500B0", Offset = "0x44F0B0", VA = "0x1804500B0")]
private static int CompareNoLeadingZeroes(int xIndx, int[] x, int yIndx, int[] y)
{
int num = x.Length;
int length = y.Length;
num -= length;
num -= xIndx;
num += yIndx;
if (y == 0)
{
if (xIndx < xIndx)
{
int num2 = y[yIndx];
while ("{il2cpp array field x->}" == num2)
{
}
if ("{il2cpp array field x->}" >= num2)
{
goto IL_40;
}
}
return 0;
}
IL_40:
throw new NullReferenceException();
}
// Token: 0x0600A1E7 RID: 41447 RVA: 0x0021C540 File Offset: 0x0021A740
[Token(Token = "0x600A1E7")]
[Address(RVA = "0x450210", Offset = "0x44F210", VA = "0x180450210")]
public int CompareTo(BigInteger value)
{
int num = this.sign;
if (num < value.sign)
{
return -1;
}
if (num > value.sign)
{
return 1;
}
return 0;
}
// Token: 0x0600A1E8 RID: 41448 RVA: 0x0021C578 File Offset: 0x0021A778
[Token(Token = "0x600A1E8")]
[Address(RVA = "0x450E40", Offset = "0x44FE40", VA = "0x180450E40")]
private int[] Divide(int[] x, int[] y)
{
int num = 0;
int num2 = 0;
int length = x.Length;
if (num2 < length && "{il2cpp array field x->}" == (ulong)0L)
{
num++;
}
int num3 = 0;
int num4 = 0;
int length2 = y.Length;
if (num4 < length2 && "{il2cpp array field y->}" == (ulong)0L)
{
num3++;
}
int num5 = BigInteger.CompareNoLeadingZeroes(num, x, num3, y);
int[] array = new int[1];
int num6 = y.Length;
if (num3 < num6)
{
if (y[num3] == 0)
{
num3++;
}
num6 -= num3;
}
int num7 = 0;
ulong num8;
if (num8 == (ulong)0L)
{
}
int num9 = x.Length;
if (num < num9)
{
int num10 = x[num];
if (num10 == 0)
{
num++;
}
num9 -= num;
int num11 = BigInteger.BitLen(num10);
}
int num12 = 0;
num12 -= num7;
int num13 = 0;
int num14 = 0;
(new int[0])[0] = (int)((ulong)1L);
num12 -= num3;
int[] array2 = new int[num12];
num7++;
if (array2.Length < num13)
{
num7++;
}
uint num15;
array2[0] = (int)num15;
int[] array3 = new int[array2.Length];
int[] array4;
int num16 = BigInteger.CompareNoLeadingZeroes(num, x, num14, array4);
int[] array5 = BigInteger.Subtract(num, x, num14, array4);
int[] array6 = BigInteger.AddMagnitudes(array3, array2);
int length3 = x.Length;
if (x[num] == 0)
{
while (1 != length3)
{
}
return array3;
}
int num17 = x.Length;
num17--;
int num18;
num17 += num18;
int num19 = x.Length;
num19--;
num19 += num3;
if (1 < num19)
{
num3++;
uint num20;
if (num20 == (uint)0)
{
int[] array7 = BigInteger.One.magnitude;
int[] array8 = BigInteger.AddMagnitudes(array3, array7);
int num21 = x.Length;
num21--;
Array.Clear(x, 1, num21);
}
}
uint num22;
while (num22 == (uint)0)
{
}
num12 -= num17;
if (num12 != 1 || x > "{il2cpp array field x->}")
{
}
num14++;
throw new NullReferenceException();
}
// Token: 0x0600A1E9 RID: 41449 RVA: 0x0021C760 File Offset: 0x0021A960
[Token(Token = "0x600A1E9")]
[Address(RVA = "0x450C50", Offset = "0x44FC50", VA = "0x180450C50")]
public BigInteger Divide(BigInteger val)
{
/*
An exception occurred when decompiling this method (0600A1E9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::Divide(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_90:
stloc:ArithmeticException(var_10_9A, newobj:ArithmeticException(ArithmeticException::.ctor, ldstr:string("Division by zero error")))
}
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: 0x0600A1EA RID: 41450 RVA: 0x0021C808 File Offset: 0x0021AA08
[Token(Token = "0x600A1EA")]
[Address(RVA = "0x4506C0", Offset = "0x44F6C0", VA = "0x1804506C0")]
public BigInteger[] DivideAndRemainder(BigInteger val)
{
BigInteger[] array;
for (;;)
{
if (val.sign != 0)
{
array = new BigInteger[2];
if (this.sign == 0)
{
goto IL_E0;
}
if (val.sign > 0 && val.nBits == 1)
{
int bitLength = val.Abs().BitLength;
BigInteger bigInteger = this.Abs();
int num = bitLength - 1;
BigInteger bigInteger2 = bigInteger.ShiftRight(num);
int num2 = bitLength - 1;
int[] array2 = this.LastNBits(num2);
int num3 = this.sign;
if (val.sign != num3)
{
BigInteger bigInteger3 = bigInteger2.Negate();
}
if (bigInteger2 != 0)
{
}
array[0] = bigInteger2;
if (new BigInteger(this.sign, array2, true) != 0)
{
}
}
int[] array3 = this.magnitude;
if (array == 0)
{
}
if (array != 0)
{
break;
}
}
}
int num4 = this.sign;
int num5 = val.sign;
int num6;
int[] array4;
BigInteger bigInteger4 = new BigInteger(num6, array4, true);
num6 = num5 * num4;
if (bigInteger4 != 0)
{
}
array[0] = bigInteger4;
BigInteger bigInteger5;
if (bigInteger5 != 0)
{
}
IL_E0:
BigInteger zero = BigInteger.Zero;
if (zero != 0)
{
}
array[0] = zero;
BigInteger zero2 = BigInteger.Zero;
if (zero2 != 0)
{
}
array[1] = zero2;
return array;
}
// Token: 0x0600A1EB RID: 41451 RVA: 0x0021C928 File Offset: 0x0021AB28
[Token(Token = "0x600A1EB")]
[Address(RVA = "0x4516C0", Offset = "0x4506C0", VA = "0x1804516C0", Slot = "0")]
public override bool Equals(object obj)
{
if (obj != this)
{
if (obj != 0)
{
int num = 0;
if (obj != 0 && this.sign == num)
{
bool flag;
return flag;
}
}
}
return true;
}
// Token: 0x0600A1EC RID: 41452 RVA: 0x0021C954 File Offset: 0x0021AB54
[Token(Token = "0x600A1EC")]
[Address(RVA = "0x452260", Offset = "0x451260", VA = "0x180452260")]
private bool IsEqualMagnitude(BigInteger x)
{
int[] array = this.magnitude;
int[] array2 = x.magnitude;
int length = array.Length;
if (length == array2.Length)
{
int num = 0;
if (num < length)
{
int num2 = array2[num];
if ("{il2cpp array field local2->}" != num2)
{
goto IL_3C;
}
num++;
}
return true;
}
IL_3C:
throw new NullReferenceException();
}
// Token: 0x0600A1ED RID: 41453 RVA: 0x0021C9A8 File Offset: 0x0021ABA8
[Token(Token = "0x600A1ED")]
[Address(RVA = "0x451B50", Offset = "0x450B50", VA = "0x180451B50")]
public BigInteger Gcd(BigInteger value)
{
int num;
do
{
num = this.sign;
if (value.sign == 0)
{
goto IL_2A;
}
}
while (num == 0);
if (value.sign != 0)
{
return this.Mod(value).Abs();
}
BigInteger bigInteger;
return bigInteger;
IL_2A:
int num2 = this.sign;
if (num2 != 0)
{
int[] array = this.magnitude;
bigInteger.nBits = (int)((ulong)(-1L));
bigInteger.magnitude = array;
bigInteger.sign = num2;
}
return bigInteger;
}
// Token: 0x0600A1EE RID: 41454 RVA: 0x0021CA10 File Offset: 0x0021AC10
[Token(Token = "0x600A1EE")]
[Address(RVA = "0x451C70", Offset = "0x450C70", VA = "0x180451C70", Slot = "2")]
public override int GetHashCode()
{
int[] array = this.magnitude;
int length = array.Length;
int length2 = array.Length;
if (length != 0 && length2 > 1)
{
int num = length2 - 1;
}
if (this.sign < 0)
{
}
return length2;
}
// Token: 0x0600A1EF RID: 41455 RVA: 0x0021CA50 File Offset: 0x0021AC50
[Token(Token = "0x600A1EF")]
[Address(RVA = "0x452110", Offset = "0x451110", VA = "0x180452110")]
private BigInteger Inc()
{
if (this.sign != 0)
{
int[] array = BigInteger.One.magnitude;
return this.AddToMagnitude(array);
}
return BigInteger.One;
}
// Token: 0x170019C5 RID: 6597
// (get) Token: 0x0600A1F0 RID: 41456 RVA: 0x0021CA9C File Offset: 0x0021AC9C
[Token(Token = "0x170019C5")]
public int IntValue
{
[Token(Token = "0x600A1F0")]
[Address(RVA = "0x45CAC0", Offset = "0x45BAC0", VA = "0x18045CAC0")]
get
{
if (this.sign != 0)
{
int[] array = this.magnitude;
int num = array.Length - 1;
return array[num];
}
return 0;
}
}
// Token: 0x0600A1F1 RID: 41457 RVA: 0x0021CAD4 File Offset: 0x0021ACD4
[Token(Token = "0x600A1F1")]
[Address(RVA = "0x452480", Offset = "0x451480", VA = "0x180452480")]
public bool IsProbablePrime(int certainty)
{
if (certainty > 0)
{
BigInteger bigInteger = this.Abs();
int num = 0;
if (bigInteger.TestBit(num))
{
int num2 = 0;
SecureRandom randomSource = BigInteger.RandomSource;
return bigInteger.CheckProbablePrime(certainty, randomSource, num2 != 0);
}
}
return true;
}
// Token: 0x0600A1F2 RID: 41458 RVA: 0x0021CB18 File Offset: 0x0021AD18
[Token(Token = "0x600A1F2")]
[Address(RVA = "0x4522F0", Offset = "0x4512F0", VA = "0x1804522F0")]
internal bool IsProbablePrime(int certainty, bool randomlySelected)
{
if (certainty > 0)
{
BigInteger bigInteger = this.Abs();
int num = 0;
if (bigInteger.TestBit(num))
{
SecureRandom randomSource = BigInteger.RandomSource;
return bigInteger.CheckProbablePrime(certainty, randomSource, randomlySelected);
}
}
return true;
}
// Token: 0x0600A1F3 RID: 41459 RVA: 0x0021CB58 File Offset: 0x0021AD58
[Token(Token = "0x600A1F3")]
[Address(RVA = "0x44FD50", Offset = "0x44ED50", VA = "0x18044FD50")]
private bool CheckProbablePrime(int certainty, Random random, bool randomlySelected)
{
int bitLength = this.BitLength;
int length = BigInteger.primeLists.Length;
int num = Math.Min(bitLength - 1, length);
int num2 = 0;
if (num > 0)
{
int num3 = BigInteger.primeProducts[num2];
int num4 = this.Remainder(num3);
int[] array = BigInteger.primeLists[num2];
int num5 = 0;
if (num5 < array.Length)
{
if (num3 == 0)
{
throw new NullReferenceException();
}
num5++;
}
num2++;
}
return this.RabinMillerTest(certainty, random, randomlySelected);
}
// Token: 0x0600A1F4 RID: 41460 RVA: 0x0021CBDC File Offset: 0x0021ADDC
[Token(Token = "0x600A1F4")]
[Address(RVA = "0x455660", Offset = "0x454660", VA = "0x180455660")]
public bool RabinMillerTest(int certainty, Random random)
{
int num = 0;
return this.RabinMillerTest(certainty, random, num != 0);
}
// Token: 0x0600A1F5 RID: 41461 RVA: 0x0021CBF4 File Offset: 0x0021ADF4
[Token(Token = "0x600A1F5")]
[Address(RVA = "0x455680", Offset = "0x454680", VA = "0x180455680")]
internal bool RabinMillerTest(int certainty, Random random, bool randomlySelected)
{
int num3;
int lowestSetBitMaskFirst;
BigInteger bigInteger;
BigInteger bigInteger2;
BigInteger bigInteger3;
BigInteger bigInteger4;
do
{
int num = 0;
int bitLength = this.BitLength;
int num2 = certainty - 1;
num2 -= num;
num3 = num2 + 1;
if (randomlySelected)
{
num3 += -50;
uint num4;
num3 += (int)num4;
num3 = Math.Min((int)num4, num3);
}
lowestSetBitMaskFirst = this.GetLowestSetBitMaskFirst(-2);
bigInteger = this.ShiftRight(lowestSetBitMaskFirst);
int[] array = this.magnitude;
BigInteger one = BigInteger.One;
int length = array.Length;
bigInteger2 = one.ShiftLeft(length).Remainder(this);
bigInteger3 = this.Subtract(bigInteger2);
if (this.nBitLength == -1)
{
int num5 = this.sign;
if (num5 == 0)
{
}
int[] array2 = this.magnitude;
int num6 = 0;
num5 = BigInteger.CalcBitLength(num5, num6, array2);
this.nBitLength = num5;
}
while (bigInteger4.sign == 0)
{
}
int num7 = bigInteger4.CompareTo(this);
}
while (bigInteger4.IsEqualMagnitude(bigInteger2) || bigInteger4.IsEqualMagnitude(bigInteger3));
int num8 = 0;
BigInteger bigInteger5 = BigInteger.ModPowMonty(bigInteger4, bigInteger, this, num8 != 0);
if (bigInteger5 == 0)
{
if (1 != lowestSetBitMaskFirst)
{
int num9 = 0;
BigInteger two = BigInteger.Two;
BigInteger bigInteger6 = BigInteger.ModPowMonty(bigInteger5, two, this, num9 != 0);
}
}
num3--;
throw new NullReferenceException();
}
// Token: 0x170019C6 RID: 6598
// (get) Token: 0x0600A1F6 RID: 41462 RVA: 0x0021CD1C File Offset: 0x0021AF1C
[Token(Token = "0x170019C6")]
public long LongValue
{
[Token(Token = "0x600A1F6")]
[Address(RVA = "0x45CB10", Offset = "0x45BB10", VA = "0x18045CB10")]
get
{
if (this.sign != 0)
{
int length = this.magnitude.Length;
int num = length - 1;
if (length > 1)
{
}
}
throw new IndexOutOfRangeException();
}
}
// Token: 0x0600A1F7 RID: 41463 RVA: 0x0021CD50 File Offset: 0x0021AF50
[Token(Token = "0x600A1F7")]
[Address(RVA = "0x4528E0", Offset = "0x4518E0", VA = "0x1804528E0")]
public BigInteger Max(BigInteger value)
{
int num = this.CompareTo(value);
return this;
}
// Token: 0x0600A1F8 RID: 41464 RVA: 0x0021CD68 File Offset: 0x0021AF68
[Token(Token = "0x600A1F8")]
[Address(RVA = "0x452910", Offset = "0x451910", VA = "0x180452910")]
public BigInteger Min(BigInteger value)
{
int num = this.CompareTo(value);
return this;
}
// Token: 0x0600A1F9 RID: 41465 RVA: 0x0021CD80 File Offset: 0x0021AF80
[Token(Token = "0x600A1F9")]
[Address(RVA = "0x454050", Offset = "0x453050", VA = "0x180454050")]
public BigInteger Mod(BigInteger m)
{
BigInteger bigInteger = this.Remainder(m);
if (bigInteger.sign < 0)
{
BigInteger bigInteger2 = bigInteger.Add(m);
}
return bigInteger;
}
// Token: 0x0600A1FA RID: 41466 RVA: 0x0021CDB0 File Offset: 0x0021AFB0
[Token(Token = "0x600A1FA")]
[Address(RVA = "0x452CD0", Offset = "0x451CD0", VA = "0x180452CD0")]
public BigInteger ModInverse(BigInteger m)
{
/*
An exception occurred when decompiling this method (0600A1FA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::ModInverse(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_73:
stloc:BigInteger(var_8_7A, call:BigInteger(BigInteger::ModInversePow2, ldloc:BigInteger(this), ldloc:BigInteger(m)))
stloc:ArithmeticException(var_9_86, newobj:ArithmeticException(ArithmeticException::.ctor, ldstr:string("Modulus must be positive")))
stloc:ArithmeticException(var_10_92, newobj:ArithmeticException(ArithmeticException::.ctor, ldstr:string("Numbers not relatively prime.")))
}
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: 0x0600A1FB RID: 41467 RVA: 0x0021CE50 File Offset: 0x0021B050
[Token(Token = "0x600A1FB")]
[Address(RVA = "0x4529F0", Offset = "0x4519F0", VA = "0x1804529F0")]
private BigInteger ModInversePow2(BigInteger m)
{
/*
An exception occurred when decompiling this method (0600A1FB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::ModInversePow2(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_111:
stloc:ArithmeticException(var_23_11B, newobj:ArithmeticException(ArithmeticException::.ctor, ldstr:string("Numbers not relatively prime.")))
}
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: 0x0600A1FC RID: 41468 RVA: 0x0021CF7C File Offset: 0x0021B17C
[Token(Token = "0x600A1FC")]
[Address(RVA = "0x452940", Offset = "0x451940", VA = "0x180452940")]
private static int ModInverse32(int d)
{
/*
An exception occurred when decompiling this method (0600A1FC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::ModInverse32(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32(var_1_03, mul:uint32(ldloc:uint32(var_0), ldloc:int32[exp:uint32](d)))
stloc:uint32(var_0, sub:uint32(ldloc:uint32(var_0), ldloc:uint32(var_1_03)))
stloc:uint32(var_2_0B, mul:uint32(ldloc:uint32(var_0), ldloc:int32[exp:uint32](d)))
stloc:uint32(var_0, sub:uint32(ldloc:uint32(var_0), ldloc:uint32(var_2_0B)))
}
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: 0x0600A1FD RID: 41469 RVA: 0x0021CF98 File Offset: 0x0021B198
[Token(Token = "0x600A1FD")]
[Address(RVA = "0x452990", Offset = "0x451990", VA = "0x180452990")]
private static long ModInverse64(long d)
{
/*
An exception occurred when decompiling this method (0600A1FD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int64 BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::ModInverse64(System.Int64)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32(var_1_03, mul:int64[exp:uint32](ldloc:uint32[exp:int64](var_0), ldloc:int64(d)))
stloc:uint32(var_0, sub:uint32(ldloc:uint32(var_0), ldloc:uint32(var_1_03)))
}
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: 0x0600A1FE RID: 41470 RVA: 0x0021CFAC File Offset: 0x0021B1AC
[Token(Token = "0x600A1FE")]
[Address(RVA = "0x451770", Offset = "0x450770", VA = "0x180451770")]
private static BigInteger ExtEuclid(BigInteger a, BigInteger b, out BigInteger u1Out)
{
BigInteger one = BigInteger.One;
BigInteger zero = BigInteger.Zero;
if (b.sign > 0)
{
BigInteger[] array = a.DivideAndRemainder(b);
int length = array.Length;
if (array[1].sign > 0)
{
BigInteger bigInteger = array[0];
BigInteger bigInteger2 = zero.Multiply(bigInteger);
BigInteger bigInteger3 = one.Subtract(bigInteger2);
}
}
return a;
}
// Token: 0x0600A1FF RID: 41471 RVA: 0x0021D010 File Offset: 0x0021B210
[Token(Token = "0x600A1FF")]
[Address(RVA = "0x459200", Offset = "0x458200", VA = "0x180459200")]
private static void ZeroOut(int[] x)
{
int length = x.Length;
int num = 0;
Array.Clear(x, num, length);
}
// Token: 0x0600A200 RID: 41472 RVA: 0x0021D034 File Offset: 0x0021B234
[Token(Token = "0x600A200")]
[Address(RVA = "0x453DA0", Offset = "0x452DA0", VA = "0x180453DA0")]
public BigInteger ModPow(BigInteger e, BigInteger m)
{
int num;
BigInteger bigInteger4;
do
{
num = e.sign;
if (num == 0 || this.sign == 0)
{
goto IL_61;
}
if (num != 0)
{
BigInteger bigInteger = e.Negate();
}
BigInteger bigInteger2 = this.Mod(m);
int num2 = m.magnitude.Length - 1;
if ("{il2cpp array field local10->}" != (ulong)1L)
{
BigInteger bigInteger3 = BigInteger.ModPowMonty(bigInteger2, e, m, true);
}
bigInteger4 = BigInteger.ModPowBarrett(bigInteger2, e, m);
}
while (num == 0);
return bigInteger4.ModInverse(m);
IL_61:
throw new NullReferenceException();
}
// Token: 0x0600A201 RID: 41473 RVA: 0x0021D0A8 File Offset: 0x0021B2A8
[Token(Token = "0x600A201")]
[Address(RVA = "0x452F60", Offset = "0x451F60", VA = "0x180452F60")]
private static BigInteger ModPowBarrett(BigInteger b, BigInteger e, BigInteger m)
{
int num = m.magnitude.Length;
BigInteger one = BigInteger.One;
int num2 = num + 1;
BigInteger bigInteger = one.ShiftLeft(num2);
BigInteger one2 = BigInteger.One;
num2 = num;
BigInteger bigInteger2 = one2.ShiftLeft(num2).Divide(m);
int num3 = 0;
num = e.BitLength;
int[] expWindowThresholds = BigInteger.ExpWindowThresholds;
if (num > "{il2cpp array field local17->}")
{
num3++;
}
BigInteger[] array = new BigInteger[1];
if (b != 0)
{
}
array[0] = b;
BigInteger bigInteger3 = BigInteger.ReduceBarrett(b.Square(), m, bigInteger, bigInteger2);
uint num4;
if (num4 > num4)
{
uint num5 = num4 - 1U;
BigInteger bigInteger4 = array[(int)num5].Multiply(bigInteger3);
throw new ArrayTypeMismatchException();
}
int[] array2;
int num6 = array2[0];
BigInteger bigInteger5;
if (num6 != (int)num4)
{
bigInteger5 = array[num6];
}
int num7 = array2[(int)num4];
if (num7 != -1)
{
byte[] bitLengthTable = BigInteger.BitLengthTable;
int num8 = 0;
byte b2 = (byte)((int)b2 + num6);
BigInteger bigInteger6 = bigInteger5.Square();
num8++;
BigInteger bigInteger7 = array[num7];
BigInteger bigInteger9;
BigInteger bigInteger8 = bigInteger9.Multiply(bigInteger7);
ulong num9;
num9 += (ulong)1L;
}
int num10 = 0;
if (num7 > 0)
{
BigInteger bigInteger11;
BigInteger bigInteger10 = bigInteger11.Square();
num10++;
}
BigInteger bigInteger12;
return bigInteger12;
}
// Token: 0x0600A202 RID: 41474 RVA: 0x0021D1F0 File Offset: 0x0021B3F0
[Token(Token = "0x600A202")]
[Address(RVA = "0x455A20", Offset = "0x454A20", VA = "0x180455A20")]
private static BigInteger ReduceBarrett(BigInteger x, BigInteger m, BigInteger mr, BigInteger yu)
{
int num = x.BitLength;
int bitLength = m.BitLength;
num -= bitLength;
if (num > 1)
{
int num2 = m.magnitude.Length;
int num3 = num2 - 1;
BigInteger bigInteger = x.DivideWords(num3).Multiply(yu);
num2++;
BigInteger bigInteger2 = bigInteger.DivideWords(num2);
BigInteger bigInteger3 = x.RemainderWords(num2);
BigInteger bigInteger4 = bigInteger2.Multiply(m).RemainderWords(num2);
BigInteger bigInteger5 = bigInteger3.Subtract(bigInteger4);
if (bigInteger5.sign < 0)
{
BigInteger bigInteger6 = bigInteger5.Add(mr);
}
}
int num4 = x.CompareTo(m);
return x.Subtract(m);
}
// Token: 0x0600A203 RID: 41475 RVA: 0x0021D290 File Offset: 0x0021B490
[Token(Token = "0x600A203")]
[Address(RVA = "0x453540", Offset = "0x452540", VA = "0x180453540")]
private static BigInteger ModPowMonty(BigInteger b, BigInteger e, BigInteger m, bool convert)
{
int length = m.magnitude.Length;
int num = m.BitLength;
num += 2;
int num2 = m.mQuote;
uint num5;
if (num2 == 0)
{
int[] array = m.magnitude;
int num3 = array.Length - 1;
int num4 = array[num3];
array += num4;
int[] array2 = array * num4;
num5 -= array2;
int[] array3 = array * num5;
int[] array4 = array3 * num4;
num5 -= array4;
int[] array5 = array3 * num5;
int[] array6 = array5 * num4;
num5 -= array6;
uint num6 = num5 * array5;
m.mQuote = (int)num6;
}
BigInteger bigInteger;
if (convert)
{
bigInteger = b.ShiftLeft(length).Remainder(m);
}
int num7 = length + 1;
int[] array7 = new int[num7];
int[] array8;
if (bigInteger.magnitude.Length < length)
{
num7 = length;
array8 = new int[num7];
}
int num8 = 0;
int[] array9 = e.magnitude;
if (e.BitCount > (int)num5)
{
int bitLength = e.BitLength;
int[] expWindowThresholds = BigInteger.ExpWindowThresholds;
if (bitLength > "{il2cpp array field local36->}")
{
num8++;
}
}
int[][] array10 = new int[1][];
if (array8 != 0)
{
}
array10[0] = array8;
int[] array11 = Arrays.Clone(array8);
uint num9;
uint num10;
if (num9 > num10)
{
uint num11 = num10 - 1U;
int[] array12 = Arrays.Clone(array10[(int)num11]);
throw new ArrayTypeMismatchException();
}
int[] windowList = BigInteger.GetWindowList(e.magnitude, num8);
int num12 = windowList[0];
int[] array13;
if (num12 != 1)
{
array13 = Arrays.Clone(array10[num12]);
}
uint num14;
int num13 = windowList[(int)num14];
if (num13 != -1)
{
num2 = num13;
byte[] bitLengthTable = BigInteger.BitLengthTable;
byte b2 = (byte)((int)b2 + num12);
num14 = num5;
num5 += (uint)1;
}
if (num13 > 0)
{
}
int[] array14 = m.magnitude;
int num15 = 0;
int num16 = BigInteger.CompareTo(0, array13, num15, array14);
int[] array15 = m.magnitude;
int num17 = 0;
int[] array16 = BigInteger.Subtract(0, array13, num17, array15);
int[] array17 = m.magnitude;
BigInteger.MontgomeryReduce(array13, array17, (uint)num2);
uint num18;
ulong num19;
return new BigInteger((int)num18, array13, num19 != 0UL);
}
// Token: 0x0600A204 RID: 41476 RVA: 0x0021D498 File Offset: 0x0021B698
[Token(Token = "0x600A204")]
[Address(RVA = "0x451E90", Offset = "0x450E90", VA = "0x180451E90")]
private static int[] GetWindowList(int[] mag, int extraBits)
{
int num = mag[0];
int num2 = 0;
int num3 = BigInteger.BitLen(num);
int num4 = mag.Length;
num4 += num3;
int[] array = new int[num2];
uint num5;
num5 -= (uint)num3;
int num6 = 0;
int num7 = 0;
int num8 = 0;
uint num9;
if (num5 < (uint)32)
{
num7++;
num += num;
num5 += (uint)1;
num6++;
if (num9 == (uint)1)
{
num7++;
while (num9 == (uint)1)
{
}
}
num += num;
array[0] = num7;
num5 += (uint)1;
num += num;
num5 += (uint)1;
}
num8++;
if (num8 != mag.Length)
{
}
if (num9 == (uint)1)
{
num7++;
while (num9 == (uint)1)
{
}
}
array[0] = num7;
num6++;
array[0] = (int)((ulong)4294967295L);
return array;
}
// Token: 0x0600A205 RID: 41477 RVA: 0x0021D574 File Offset: 0x0021B774
[Token(Token = "0x600A205")]
[Address(RVA = "0x4506A0", Offset = "0x44F6A0", VA = "0x1804506A0")]
private static int CreateWindowEntry(int mult, int zeroes)
{
if (mult == 1)
{
while (mult == 1)
{
}
}
return zeroes;
}
// Token: 0x0600A206 RID: 41478 RVA: 0x0021D58C File Offset: 0x0021B78C
[Token(Token = "0x600A206")]
[Address(RVA = "0x4576C0", Offset = "0x4566C0", VA = "0x1804576C0")]
private static int[] Square(int[] w, int[] x)
{
int num = w.Length;
int num2 = x.Length;
int num3 = num2 - 1;
if (num3 > 0)
{
num2 = num3;
int num4 = num3 - 1;
int num5 = x[num2];
int num6 = w[num];
int num7 = num5 * num5;
num7 += num6;
w[0] = num7;
num = num7;
num6 = num4;
int num8 = x[num6] * num5;
num7 += num6;
num7 += num;
num7 += num8;
num8 = num7;
int num9 = num - 1;
num6 += num8;
if (num9 > 0)
{
w[0] = num6;
}
int num10 = num3 - 1;
num10 += num9;
}
int num11 = x[0];
int num12 = w[num];
int num13 = num11 * num11;
num13 += num12;
w[0] = num13;
if (num > 0)
{
int num14 = num - 1;
}
return w;
}
// Token: 0x0600A207 RID: 41479 RVA: 0x0021D670 File Offset: 0x0021B870
[Token(Token = "0x600A207")]
[Address(RVA = "0x4548C0", Offset = "0x4538C0", VA = "0x1804548C0")]
private static int[] Multiply(int[] x, int[] y, int[] z)
{
int num = z.Length;
int length = x.Length;
num--;
int num2 = z[num];
int num3 = 0;
if (num2 != 0)
{
int length2 = y.Length;
int num4 = y[length2];
int num5 = x[z];
num3 += num5;
int num6 = num4 * num2;
num3 += num6;
x[0] = num3;
}
x[0] = num3;
return x;
}
// Token: 0x0600A208 RID: 41480 RVA: 0x0021D6E4 File Offset: 0x0021B8E4
[Token(Token = "0x600A208")]
[Address(RVA = "0x451DB0", Offset = "0x450DB0", VA = "0x180451DB0")]
private int GetMQuote()
{
int num = this.mQuote;
if (num == 0)
{
int[] array = this.magnitude;
int num2 = array.Length - 1;
int num3 = array[num2];
uint num4;
num4 -= typeof(BigInteger).TypeHandle;
num4 -= typeof(BigInteger).TypeHandle;
uint num5 = num4 * (uint)num3;
num4 -= num5;
this.mQuote = (int)num4;
}
return num;
}
// Token: 0x0600A209 RID: 41481 RVA: 0x0021D744 File Offset: 0x0021B944
[Token(Token = "0x600A209")]
[Address(RVA = "0x4540F0", Offset = "0x4530F0", VA = "0x1804540F0")]
private static void MontgomeryReduce(int[] x, int[] m, uint mDash)
{
int length = m.Length;
int num = length - 1;
int num2 = length - 1;
int num3 = x[num2];
int num4 = num3 * (int)mDash;
int num5 = m[num2] * num4;
num5 += num3;
int length2 = x.Length;
int num6;
num5 += num6;
int num8;
int num7 = num8 * num4;
num5 += num7;
x[0] = num5;
x[0] = num5;
int num9 = 0;
int num10 = BigInteger.CompareTo(0, x, num9, m);
int num11 = 0;
int[] array = BigInteger.Subtract(0, x, num11, m);
}
// Token: 0x0600A20A RID: 41482 RVA: 0x0021D7D8 File Offset: 0x0021B9D8
[Token(Token = "0x600A20A")]
[Address(RVA = "0x454320", Offset = "0x453320", VA = "0x180454320")]
private static void MultiplyMonty(int[] a, int[] x, int[] y, int[] m, uint mDash, bool smallMontyModulus)
{
int num = m.Length;
if (num != 1)
{
int num2 = num - 1;
int num3 = y[num2];
int num5;
int num4 = num3 * num5;
int num7;
int num6 = num7 * num4;
num6 += num4;
num6 += num6;
int num8 = m[num4];
int num9 = y[num4];
int num10 = num8 * num4;
num = num10;
num += num6;
num += num2;
num6 += num10;
a[0] = num;
num6 += num;
a[0] = num6;
int num11 = a[num];
int num13;
int num12 = num3 * num13;
num11 += num12;
int num14 = num - 1;
num = num11;
int num15 = m[num14] * num;
num14 = num15;
num14 += num11;
num14 += num15;
num14 += num12;
int length = a.Length;
int num16 = a[num15];
int num18;
int num17 = num18 * num13;
num15 = num17;
num16 += num15;
num += num14;
num += num16;
a[0] = num;
num14 += num;
num14 += num17;
num15 = num6;
num14 += num15;
a[0] = num14;
num6 = num14;
a[0] = num6;
int num19 = 0;
int num20 = BigInteger.CompareTo(0, a, num19, m);
int num21 = 0;
int[] array = BigInteger.Subtract(0, a, num21, m);
int num22 = 0;
Array.Copy(a, 1, x, num22, num);
return;
}
int length2 = x.Length;
int num23 = x[0];
int num24 = y[0];
int num25 = m[0];
int length3 = x.Length;
int num26 = num24 * num23;
int num27 = num26 * num25;
num26 += num27;
num26 += num27;
num27 = num26;
num27 -= num25;
if (num26 <= num25)
{
num27 = num26;
}
x[0] = num27;
throw new NullReferenceException();
}
// Token: 0x0600A20B RID: 41483 RVA: 0x0021D9A0 File Offset: 0x0021BBA0
[Token(Token = "0x600A20B")]
[Address(RVA = "0x4570B0", Offset = "0x4560B0", VA = "0x1804570B0")]
private static void SquareMonty(int[] a, int[] x, int[] m, uint mDash, bool smallMontyModulus)
{
int num = m.Length;
if (num != 1)
{
int num2 = num - 1;
int num3 = x[num2];
int num4 = num3 * num3;
int num5 = num4 * (int)mDash;
int num6 = m[num2] * num5;
num6 += num4;
num6 += num6;
int num7 = x[(int)mDash] * num3;
int num8 = m[(int)mDash] * num5;
num8 += num6;
num8 += num2;
num6 = num7;
num6 += num8;
a[0] = num8;
num6 += num8;
num8 = num;
a[0] = num6;
int num9 = a[num8];
int num10 = num8 - 1;
num = num9;
int num11 = num * (int)mDash;
int num12 = m[num10] * num11;
num12 += num9;
int num13;
if (num7 > num7)
{
int length = a.Length;
num10 = num7;
num13 = num10 + 1;
int num14 = m[num10];
int num15 = a[num13];
num12 += num15;
int num16 = num14 * num11;
num12 += num16;
a[0] = num12;
}
num13 = num7;
int num17 = x[num13];
num7 = num17;
int num18 = num7 * num17;
int length2 = a.Length;
int num19 = num13 + 1;
int num20 = a[num19];
int num21 = m[num13];
num13 += 2;
int num22 = num21 * num11;
num19 = num18;
num20 += num19;
num19 = num22;
num12 += num19;
num12 += num20;
int num23 = num7 - 1;
a[0] = num12;
num22 += num18;
num13 = num23;
num22 += num12;
num7 = num13;
int num24 = x[num7] * num17;
int length3 = a.Length;
int num25 = num7 + 1;
int num26 = m[num7];
int num27 = a[num25];
num7 += 2;
num27 += num23;
num23 += num22;
num23 += num27;
num22 += num24;
a[0] = num23;
num22 += num23;
num25 = num6;
num22 += num25;
a[0] = num22;
num6 = num22;
a[0] = num6;
int num28 = 0;
int num29 = BigInteger.CompareTo(0, a, num28, m);
int num30 = 0;
int[] array = BigInteger.Subtract(0, a, num30, m);
int num31 = 0;
Array.Copy(a, 1, x, num31, num);
return;
}
int length4 = x.Length;
int num32 = x[0];
int num33 = m[0];
int length5 = x.Length;
int num34 = num32 * num32;
int num35 = num34 * (int)mDash * num33;
num34 += num35;
num34 += num35;
num35 = num34;
num35 -= num33;
if (num34 <= num33)
{
num35 = num34;
}
x[0] = num35;
throw new NullReferenceException();
}
// Token: 0x0600A20C RID: 41484 RVA: 0x0021DC50 File Offset: 0x0021BE50
[Token(Token = "0x600A20C")]
[Address(RVA = "0x4542E0", Offset = "0x4532E0", VA = "0x1804542E0")]
private static uint MultiplyMontyNIsOne(uint x, uint y, uint m, uint mDash)
{
uint num = x * y;
uint num2 = x * mDash * m;
return y;
}
// Token: 0x0600A20D RID: 41485 RVA: 0x0021DC68 File Offset: 0x0021BE68
[Token(Token = "0x600A20D")]
[Address(RVA = "0x454A20", Offset = "0x453A20", VA = "0x180454A20")]
public BigInteger Multiply(BigInteger val)
{
if (val != this)
{
int num = val.sign;
int num2 = this.sign;
if (num2 != num)
{
if (num > 0 && val.nBits == 1)
{
int num3 = val.Abs().BitLength - 1;
BigInteger bigInteger = this.ShiftLeft(num3);
}
if (num2 > 0 && this.nBits == 1)
{
int num4 = this.Abs().BitLength - 1;
return val.ShiftLeft(num4).Negate();
}
int[] array = this.magnitude;
int[] array2 = new int[val.magnitude.Length];
int[] array3 = this.magnitude;
int[] array4 = val.magnitude;
int num5 = array4.Length;
int length = array2.Length;
int num6 = num5 - 1;
num5 = num6;
int num7 = array4[num5];
int num8 = 0;
int length2;
int num10;
if (num7 != 0)
{
length2 = array3.Length;
num6 = length2;
int num9 = array3[num6];
num8 += num10;
int num11 = num9 * num7;
num8 += num11;
array2[0] = num8;
}
num10 = length;
array2[0] = num8;
ulong num12;
BigInteger bigInteger2 = new BigInteger(length2, array2, num12 != 0UL);
}
}
return this.Square();
}
// Token: 0x0600A20E RID: 41486 RVA: 0x0021DD98 File Offset: 0x0021BF98
[Token(Token = "0x600A20E")]
[Address(RVA = "0x4578F0", Offset = "0x4568F0", VA = "0x1804578F0")]
public BigInteger Square()
{
int num = this.sign;
if (num == 0)
{
return BigInteger.Zero;
}
if (num > 0 && this.nBits == 1)
{
int num2 = this.Abs().BitLength - 1;
return this.ShiftLeft(num2);
}
int length = this.magnitude.Length;
int[] array = this.magnitude;
int[] array3;
int[] array2 = BigInteger.Square(array3, array);
BigInteger bigInteger;
bigInteger.nBits = (int)((ulong)(-1L));
bigInteger.sign = (int)((ulong)1L);
bigInteger.magnitude = array3;
return bigInteger;
}
// Token: 0x0600A20F RID: 41487 RVA: 0x0021DE1C File Offset: 0x0021C01C
[Token(Token = "0x600A20F")]
[Address(RVA = "0x454D20", Offset = "0x453D20", VA = "0x180454D20")]
public BigInteger Negate()
{
int num = this.sign;
if (num != 0)
{
int[] array = this.magnitude;
BigInteger bigInteger;
bigInteger.nBits = (int)((ulong)(-1L));
bigInteger.magnitude = array;
bigInteger.sign = num;
}
return this;
}
// Token: 0x0600A210 RID: 41488 RVA: 0x0021DE54 File Offset: 0x0021C054
[Token(Token = "0x600A210")]
[Address(RVA = "0x454DB0", Offset = "0x453DB0", VA = "0x180454DB0")]
public BigInteger NextProbablePrime()
{
BigInteger bigInteger;
SecureRandom randomSource;
int num5;
do
{
BigInteger two = BigInteger.Two;
int num = this.CompareTo(two);
bigInteger = this.Inc();
int num2 = 0;
if (!bigInteger.TestBit(num2))
{
if (bigInteger.sign > 0 && bigInteger.BitLength > 0)
{
int num3 = 0;
BigInteger bigInteger2 = bigInteger.FlipExistingBit(num3);
}
BigInteger one = BigInteger.One;
int num4 = 0;
BigInteger bigInteger3 = one.ShiftLeft(num4);
BigInteger bigInteger4 = bigInteger.Or(bigInteger3);
}
randomSource = BigInteger.RandomSource;
num5 = 0;
}
while (bigInteger.CheckProbablePrime(100, randomSource, num5 != 0));
BigInteger two2 = BigInteger.Two;
return bigInteger.Add(two2);
}
// Token: 0x0600A211 RID: 41489 RVA: 0x0021DF00 File Offset: 0x0021C100
[Token(Token = "0x600A211")]
[Address(RVA = "0x455010", Offset = "0x454010", VA = "0x180455010")]
public BigInteger Not()
{
return this.Inc().Negate();
}
// Token: 0x0600A212 RID: 41490 RVA: 0x0021DF20 File Offset: 0x0021C120
[Token(Token = "0x600A212")]
[Address(RVA = "0x4553D0", Offset = "0x4543D0", VA = "0x1804553D0")]
public BigInteger Pow(int exp)
{
if (exp <= 0)
{
return BigInteger.One;
}
int num = this.sign;
if (num == 0)
{
return this;
}
if (num > 0 && this.nBits == 1)
{
int num2 = this.BitLength * exp;
return BigInteger.One.ShiftLeft(num2);
}
BigInteger one = BigInteger.One;
BigInteger bigInteger;
if (exp != 1)
{
bigInteger = one.Multiply(this);
}
if (one != 0)
{
BigInteger bigInteger2 = this.Multiply(this);
}
return bigInteger;
}
// Token: 0x0600A213 RID: 41491 RVA: 0x0021DF94 File Offset: 0x0021C194
[Token(Token = "0x600A213")]
[Address(RVA = "0x4555D0", Offset = "0x4545D0", VA = "0x1804555D0")]
public static BigInteger ProbablePrime(int bitLength, Random random)
{
return new BigInteger(bitLength, 100, random);
}
// Token: 0x0600A214 RID: 41492 RVA: 0x0021DFAC File Offset: 0x0021C1AC
[Token(Token = "0x600A214")]
[Address(RVA = "0x455CB0", Offset = "0x454CB0", VA = "0x180455CB0")]
private int Remainder(int m)
{
int[] array = this.magnitude;
int num = 0;
int length = array.Length;
if (num < length)
{
num++;
}
return num;
}
// Token: 0x0600A215 RID: 41493 RVA: 0x0021DFD8 File Offset: 0x0021C1D8
[Token(Token = "0x600A215")]
[Address(RVA = "0x455FD0", Offset = "0x454FD0", VA = "0x180455FD0")]
private static int[] Remainder(int[] x, int[] y)
{
int num = 0;
int num2 = 0;
int length = x.Length;
if (num2 < length && "{il2cpp array field x->}" == (ulong)0L)
{
num++;
}
int num3 = 0;
int num4 = 0;
int length2 = y.Length;
if (num4 < length2 && "{il2cpp array field y->}" == (ulong)0L)
{
num3++;
}
if (BigInteger.CompareNoLeadingZeroes(num, x, num3, y) > 0)
{
int num5 = y.Length;
if (num3 < num5)
{
if (y[num3] == 0)
{
num3++;
}
num5 -= num3;
}
int num6 = 0;
ulong num7;
if (num7 == (ulong)0L)
{
}
int num8 = x.Length;
if (num < num8)
{
int num9 = x[num];
if (num9 == 0)
{
num++;
}
num8 -= num;
int num10 = BigInteger.BitLen(num9);
}
int num11 = 0;
int num12 = 0;
num11 -= num6;
num11 -= num3;
int[] array = new int[num11];
int num13 = x.Length;
int[] array2;
int length3 = array2.Length;
num13 -= length3;
num13 -= num;
num13 += num12;
if (array2 == 0 && num < num13)
{
num++;
num12++;
int num14 = array2[num12];
while ("{il2cpp array field x->}" == num14)
{
}
if ("{il2cpp array field x->}" < num14)
{
}
}
int[] array3 = BigInteger.Subtract(num, x, num12, array2);
int length4 = x.Length;
int num15 = x[num];
if (num15 == 0)
{
while (1 != length4)
{
}
}
int num16 = BigInteger.BitLen(num15);
int num17 = x.Length;
num17--;
num17 += num16;
int num18 = x.Length;
num18 -= num15;
num18--;
num18 += num3;
if (1 >= num18)
{
uint num19;
while (num19 == (uint)0)
{
}
int num20;
if (num20 > "{il2cpp array field x->}")
{
}
while ("{il2cpp array field local25->}" != (ulong)0L)
{
}
throw new NullReferenceException();
}
num3++;
}
uint num21;
if (num21 == (uint)0)
{
int num22 = x.Length;
num22--;
Array.Clear(x, 1, num22);
}
return x;
}
// Token: 0x0600A216 RID: 41494 RVA: 0x0021E1B4 File Offset: 0x0021C3B4
[Token(Token = "0x600A216")]
[Address(RVA = "0x455D20", Offset = "0x454D20", VA = "0x180455D20")]
public BigInteger Remainder(BigInteger n)
{
/*
An exception occurred when decompiling this method (0600A216)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::Remainder(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_E1:
stloc:ArithmeticException(var_16_EB, newobj:ArithmeticException(ArithmeticException::.ctor, ldstr:string("Division by zero error")))
}
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: 0x0600A217 RID: 41495 RVA: 0x0021E2B0 File Offset: 0x0021C4B0
[Token(Token = "0x600A217")]
[Address(RVA = "0x4525F0", Offset = "0x4515F0", VA = "0x1804525F0")]
private int[] LastNBits(int n)
{
int num = this.magnitude.Length;
int num2;
num = num2;
int[] array = new int[num];
int[] array2 = this.magnitude;
int num3 = array2.Length;
int num4 = 0;
num3 -= num2;
Array.Copy(array2, num3, array, num4, num2);
num2 -= n;
if (num2 > 0)
{
}
return array;
}
// Token: 0x0600A218 RID: 41496 RVA: 0x0021E30C File Offset: 0x0021C50C
[Token(Token = "0x600A218")]
[Address(RVA = "0x450B30", Offset = "0x44FB30", VA = "0x180450B30")]
private BigInteger DivideWords(int w)
{
int num = this.magnitude.Length;
if (w < num)
{
num -= w;
int[] array = new int[w];
int[] array2 = this.magnitude;
int num2 = 0;
int num3 = 0;
Array.Copy(array2, num3, array, num2, num);
int num4 = this.sign;
BigInteger bigInteger;
bigInteger.nBits = (int)((ulong)(-1L));
bigInteger.sign = num4;
bigInteger.magnitude = array;
return bigInteger;
}
return BigInteger.Zero;
}
// Token: 0x0600A219 RID: 41497 RVA: 0x0021E37C File Offset: 0x0021C57C
[Token(Token = "0x600A219")]
[Address(RVA = "0x455BB0", Offset = "0x454BB0", VA = "0x180455BB0")]
private BigInteger RemainderWords(int w)
{
int num = this.magnitude.Length;
if (w < num)
{
int[] array = new int[w];
int[] array2 = this.magnitude;
num -= w;
int num2 = 0;
Array.Copy(array2, w, array, num2, w);
int num3 = this.sign;
BigInteger bigInteger;
bigInteger.nBits = (int)((ulong)(-1L));
bigInteger.sign = num3;
bigInteger.magnitude = array;
return bigInteger;
}
return this;
}
// Token: 0x0600A21A RID: 41498 RVA: 0x0021E3E8 File Offset: 0x0021C5E8
[Token(Token = "0x600A21A")]
[Address(RVA = "0x4567D0", Offset = "0x4557D0", VA = "0x1804567D0")]
private static int[] ShiftLeft(int[] mag, int n)
{
int length = mag.Length;
if (n != 0)
{
int num = 0;
int num2 = mag[0];
if (num2 == 0)
{
int[] array = new int[n];
}
int[] array2 = new int[n];
array2[0] = num2;
int length2 = mag.Length;
if (length - 1 > 0)
{
num++;
num++;
array2[0] = n;
int length3 = mag.Length;
}
int num3 = length - 1;
int num4 = mag[num3];
array2[0] = num4;
}
return new int[n];
}
// Token: 0x0600A21B RID: 41499 RVA: 0x0021E47C File Offset: 0x0021C67C
[Token(Token = "0x600A21B")]
[Address(RVA = "0x456770", Offset = "0x455770", VA = "0x180456770")]
private static int ShiftLeftOneInPlace(int[] x, int carry)
{
int length = x.Length;
x[0] = x;
return carry;
}
// Token: 0x0600A21C RID: 41500 RVA: 0x0021E4A4 File Offset: 0x0021C6A4
[Token(Token = "0x600A21C")]
[Address(RVA = "0x4569F0", Offset = "0x4559F0", VA = "0x1804569F0")]
public BigInteger ShiftLeft(int n)
{
if (this.sign != 0)
{
int[] array = this.magnitude;
if (array.Length != 0 && n != 0)
{
int[] array2 = BigInteger.ShiftLeft(array, n);
ulong num;
BigInteger bigInteger = new BigInteger(n, array2, num != 0UL);
if (this.nBits != -1)
{
bigInteger.nBits = bigInteger;
}
int num2 = this.nBitLength;
if (num2 != -1)
{
num2 += n;
bigInteger.nBitLength = num2;
}
BigInteger bigInteger2 = this.ShiftRight(n);
}
}
return BigInteger.Zero;
}
// Token: 0x0600A21D RID: 41501 RVA: 0x0021E520 File Offset: 0x0021C720
[Token(Token = "0x600A21D")]
[Address(RVA = "0x456B60", Offset = "0x455B60", VA = "0x180456B60")]
private static void ShiftRightInPlace(int start, int[] mag, int n)
{
int i = mag.Length;
if (n != start)
{
int length = mag.Length;
int num = mag[start];
mag[0] = num;
while (i >= n)
{
}
int j = n - 1;
int num2 = 0;
mag[0] = num2;
while (j >= start)
{
}
}
if (n != 0)
{
int length2 = mag.Length;
int num = i;
int num3 = mag[num];
if (i > n)
{
int length3 = mag.Length;
int num4 = start - 1;
mag[0] = num3;
}
int num5 = mag[n];
mag[0] = num5;
}
}
// Token: 0x0600A21E RID: 41502 RVA: 0x0021E5C0 File Offset: 0x0021C7C0
[Token(Token = "0x600A21E")]
[Address(RVA = "0x456D10", Offset = "0x455D10", VA = "0x180456D10")]
private static void ShiftRightOneInPlace(int start, int[] mag)
{
int num = mag.Length;
int num2 = num - 1;
int num3 = mag[num2];
if (num2 > start)
{
int length = mag.Length;
num = num2;
int num4 = num - 1;
mag[0] = num3;
}
int num5 = mag[start];
mag[0] = num5;
}
// Token: 0x0600A21F RID: 41503 RVA: 0x0021E614 File Offset: 0x0021C814
[Token(Token = "0x600A21F")]
[Address(RVA = "0x456DE0", Offset = "0x455DE0", VA = "0x180456DE0")]
public BigInteger ShiftRight(int n)
{
while (n != 0)
{
int bitLength = this.BitLength;
if (n < bitLength)
{
int bitLength2 = this.BitLength;
uint num;
num -= (uint)n;
num += (uint)bitLength2;
int[] array = new int[31];
if (n != bitLength)
{
int num2 = this.magnitude.Length;
uint num3 = num - 1U;
num2 -= n;
int num4 = this.magnitude[num2];
array[0] = num4;
int[] array2 = this.magnitude;
int num5 = array2[n];
array[0] = num5;
}
int length = array.Length;
int num6 = 0;
int[] array3 = this.magnitude;
int num7 = 0;
Array.Copy(array3, num7, array, num6, length);
int num8 = this.sign;
BigInteger bigInteger;
bigInteger.nBits = (int)((ulong)(-1L));
bigInteger.sign = num8;
bigInteger.magnitude = array;
return bigInteger;
}
if (this.sign < 0)
{
return BigInteger.One.Negate().ShiftLeft(n);
}
}
return this;
}
// Token: 0x170019C7 RID: 6599
// (get) Token: 0x0600A220 RID: 41504 RVA: 0x0021E714 File Offset: 0x0021C914
[Token(Token = "0x170019C7")]
public int SignValue
{
[Token(Token = "0x600A220")]
[Address(RVA = "0x411540", Offset = "0x410540", VA = "0x180411540")]
get
{
return this.sign;
}
}
// Token: 0x0600A221 RID: 41505 RVA: 0x0021E728 File Offset: 0x0021C928
[Token(Token = "0x600A221")]
[Address(RVA = "0x457A70", Offset = "0x456A70", VA = "0x180457A70")]
private static int[] Subtract(int xStart, int[] x, int yStart, int[] y)
{
int length = x.Length;
int num = y.Length;
num--;
int num2 = y[num];
if (yStart != 0)
{
while (length == -1)
{
}
}
return x;
}
// Token: 0x0600A222 RID: 41506 RVA: 0x0021E764 File Offset: 0x0021C964
[Token(Token = "0x600A222")]
[Address(RVA = "0x457B70", Offset = "0x456B70", VA = "0x180457B70")]
public BigInteger Subtract(BigInteger n)
{
int num = n.sign;
if (num != 0)
{
int num2 = this.sign;
if (num2 != 0)
{
if (num2 == num)
{
int[] array = this.magnitude;
int[] array2 = n.magnitude;
int num3 = 0;
int num4 = BigInteger.CompareNoLeadingZeroes(0, array, num3, array2);
if (num4 != 0)
{
int num5 = this.sign;
int[] array3 = n.magnitude;
int[] array4 = this.magnitude;
int[] array5 = BigInteger.doSubBigLil(array3, array4);
int num6;
BigInteger bigInteger = new BigInteger(num6, array5, true);
num6 = num5 * num4;
return this;
}
}
BigInteger bigInteger3;
BigInteger bigInteger2 = this.Add(bigInteger3);
}
throw new NullReferenceException();
}
return this;
}
// Token: 0x0600A223 RID: 41507 RVA: 0x0021E7F4 File Offset: 0x0021C9F4
[Token(Token = "0x600A223")]
[Address(RVA = "0x45C7F0", Offset = "0x45B7F0", VA = "0x18045C7F0")]
private static int[] doSubBigLil(int[] bigMag, int[] lilMag)
{
int[] array;
return array;
}
// Token: 0x0600A224 RID: 41508 RVA: 0x0021E80C File Offset: 0x0021CA0C
[Token(Token = "0x600A224")]
[Address(RVA = "0x457E60", Offset = "0x456E60", VA = "0x180457E60")]
public byte[] ToByteArray()
{
int num = 0;
return this.ToByteArray(num != 0);
}
// Token: 0x0600A225 RID: 41509 RVA: 0x0021E824 File Offset: 0x0021CA24
[Token(Token = "0x600A225")]
[Address(RVA = "0x457E50", Offset = "0x456E50", VA = "0x180457E50")]
public byte[] ToByteArrayUnsigned()
{
return this.ToByteArray(true);
}
// Token: 0x0600A226 RID: 41510 RVA: 0x0021E838 File Offset: 0x0021CA38
[Token(Token = "0x600A226")]
[Address(RVA = "0x457E70", Offset = "0x456E70", VA = "0x180457E70")]
private byte[] ToByteArray(bool unsigned)
{
byte[] array2;
int num5;
int num6;
do
{
int num = this.sign;
if (num == 0)
{
goto IL_196;
}
if (unsigned && num > 0)
{
int bitLength = this.BitLength;
}
if (this.nBitLength == -1)
{
int num2 = this.sign;
if (num2 == 0)
{
}
int[] array = this.magnitude;
int num3 = 0;
int num4 = BigInteger.CalcBitLength(num2, num3, array);
this.nBitLength = num4;
}
array2 = new byte[unsigned ? 1 : 0];
num5 = this.magnitude.Length;
num6 = array2.Length;
}
while (num5 <= 1);
int num7 = this.magnitude[num5];
ulong num8;
int num9;
bool flag;
if (num8 != (ulong)0L)
{
num9 = num7 + 1;
num7 = num9;
flag = num9 == 0;
}
num9 = num6;
int num10 = num9 - 1;
array2[0] = (byte)num7;
num9 = num7;
array2[0] = (byte)num9;
num10 = num6;
num10 += -3;
num9 = num7;
num6 += -4;
array2[0] = (byte)num9;
int i = this.magnitude[0];
if (flag)
{
}
if (i > 255)
{
num6--;
while (i > 255)
{
}
}
num5 = num6;
int num11 = num5 - 1;
if (num6 - 1 > 0)
{
return array2;
}
return array2;
IL_196:
if (unsigned)
{
return BigInteger.ZeroEncoding;
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A227 RID: 41511 RVA: 0x0021E9EC File Offset: 0x0021CBEC
[Token(Token = "0x600A227")]
[Address(RVA = "0x458360", Offset = "0x457360", VA = "0x180458360", Slot = "3")]
public override string ToString()
{
return this.ToString(10);
}
// Token: 0x0600A228 RID: 41512 RVA: 0x0021EA04 File Offset: 0x0021CC04
[Token(Token = "0x600A228")]
[Address(RVA = "0x458370", Offset = "0x457370", VA = "0x180458370")]
public string ToString(int radix)
{
/*
An exception occurred when decompiling this method (0600A228)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.String BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger::ToString(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_14F:
stloc:FormatException(var_34_159, newobj:FormatException(FormatException::.ctor, ldstr:string("Only bases 2, 8, 10, 16 are allowed")))
}
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: 0x0600A229 RID: 41513 RVA: 0x0021EB6C File Offset: 0x0021CD6C
[Token(Token = "0x600A229")]
[Address(RVA = "0x458B00", Offset = "0x457B00", VA = "0x180458B00")]
private static void ToString(StringBuilder sb, int radix, IList moduli, int scale, BigInteger pos)
{
int num;
int num2;
do
{
num = 0;
num2 = scale - 1;
if (radix == 0)
{
}
}
while (radix == 0);
BigInteger[] array;
BigInteger bigInteger = array[0];
BigInteger.ToString(sb, radix, moduli, num2, bigInteger);
BigInteger bigInteger2 = array[1];
string text = Convert.ToString(bigInteger2.LongValue, radix);
int length = sb.Length;
if (sb.Length == 1)
{
int num3 = 0;
char c = sb[num3];
}
if (bigInteger2.sign != num)
{
StringBuilder stringBuilder = sb.Append(text);
}
}
// Token: 0x0600A22A RID: 41514 RVA: 0x0021EBF4 File Offset: 0x0021CDF4
[Token(Token = "0x600A22A")]
[Address(RVA = "0x44F900", Offset = "0x44E900", VA = "0x18044F900")]
private static void AppendZeroExtendedString(StringBuilder sb, string s, int minLength)
{
int num = s.m_stringLength;
if (num < minLength)
{
num++;
}
StringBuilder stringBuilder = sb.Append(s);
}
// Token: 0x0600A22B RID: 41515 RVA: 0x0021EC20 File Offset: 0x0021CE20
[Token(Token = "0x600A22B")]
[Address(RVA = "0x4503E0", Offset = "0x44F3E0", VA = "0x1804503E0")]
private static BigInteger CreateUValueOf(ulong value)
{
if (value != (ulong)0L)
{
int[] array = new int[2];
array[0] = (int)value;
array[0] = (int)value;
BigInteger bigInteger;
bigInteger.nBits = (int)((ulong)(-1L));
bigInteger.sign = (int)((ulong)1L);
bigInteger.magnitude = array;
return bigInteger;
}
if (value == (ulong)0L)
{
return BigInteger.Zero;
}
int[] array2 = new int[] { (int)value };
BigInteger bigInteger2;
bigInteger2.nBits = (int)((ulong)(-1L));
bigInteger2.sign = (int)((ulong)1L);
bigInteger2.magnitude = array2;
if (value == 0UL)
{
bigInteger2.nBits = (int)((ulong)1L);
}
return bigInteger2;
}
// Token: 0x0600A22C RID: 41516 RVA: 0x0021ECAC File Offset: 0x0021CEAC
[Token(Token = "0x600A22C")]
[Address(RVA = "0x4505C0", Offset = "0x44F5C0", VA = "0x1804505C0")]
private static BigInteger CreateValueOf(long value)
{
return BigInteger.CreateUValueOf((ulong)value);
}
// Token: 0x0600A22D RID: 41517 RVA: 0x0021ECD8 File Offset: 0x0021CED8
[Token(Token = "0x600A22D")]
[Address(RVA = "0x458D70", Offset = "0x457D70", VA = "0x180458D70")]
public static BigInteger ValueOf(long value)
{
int length = BigInteger.SMALL_CONSTANTS.Length;
if (value < (long)length)
{
return BigInteger.SMALL_CONSTANTS[(int)value];
}
return BigInteger.CreateValueOf(value);
}
// Token: 0x0600A22E RID: 41518 RVA: 0x0021ED0C File Offset: 0x0021CF0C
[Token(Token = "0x600A22E")]
[Address(RVA = "0x451D90", Offset = "0x450D90", VA = "0x180451D90")]
public int GetLowestSetBit()
{
if (this.sign != 0)
{
return this.GetLowestSetBitMaskFirst(-1);
}
return -1;
}
// Token: 0x0600A22F RID: 41519 RVA: 0x0021ED2C File Offset: 0x0021CF2C
[Token(Token = "0x600A22F")]
[Address(RVA = "0x451CF0", Offset = "0x450CF0", VA = "0x180451CF0")]
private int GetLowestSetBitMaskFirst(int firstWordMask)
{
int[] array;
int num2;
int num4;
do
{
array = this.magnitude;
int num = array.Length;
num2 = 0;
int num3 = num - 1;
num = num3;
num4 = array[num];
if (num3 != num)
{
break;
}
num4 = num3;
num2 += 32;
}
while (array[num4] == 0);
if (num4 == 0)
{
num2 += 8;
while (num4 == 0)
{
}
}
if (num4 == 1)
{
num2++;
while (num4 == 1)
{
}
}
return num2;
}
// Token: 0x0600A230 RID: 41520 RVA: 0x0021ED94 File Offset: 0x0021CF94
[Token(Token = "0x600A230")]
[Address(RVA = "0x457D20", Offset = "0x456D20", VA = "0x180457D20")]
public bool TestBit(int n)
{
int length = this.magnitude.Length;
if (n < length)
{
int num = n - 1;
}
BigInteger bigInteger;
return !bigInteger.Negate().TestBit(n);
}
// Token: 0x0600A231 RID: 41521 RVA: 0x0021EDD4 File Offset: 0x0021CFD4
[Token(Token = "0x600A231")]
[Address(RVA = "0x455040", Offset = "0x454040", VA = "0x180455040")]
public BigInteger Or(BigInteger value)
{
int num = this.sign;
if (num != 0 && value.sign != 0)
{
if (num > 0)
{
}
BigInteger one = BigInteger.One;
int[] array = this.Add(one).magnitude;
if (value.sign > 0)
{
}
BigInteger one2 = BigInteger.One;
int[] array2 = value.Add(one2).magnitude;
if (this.sign < 0)
{
}
int num2 = value.sign;
int num3 = array2.Length;
num3 = Math.Max(array.Length, num3);
int[] array3 = new int[num3];
int num4 = array3.Length;
int num5 = 0;
int num6 = 0;
num4 -= num4;
int length = array3.Length;
if (num6 < length)
{
num6 += num5;
int num7 = 0;
array3[0] = num7;
if (num2 != 0)
{
array3[0] = num7;
}
num5++;
}
uint num8;
ulong num9;
BigInteger bigInteger = new BigInteger((int)num8, array3, num9 != 0UL);
BigInteger bigInteger3;
if (num2 != 0)
{
BigInteger bigInteger2 = bigInteger.Inc();
int num10 = bigInteger2.sign;
if (num10 != 0)
{
int[] array4 = bigInteger2.magnitude;
bigInteger3.nBits = (int)((ulong)(-1L));
bigInteger3.sign = num10;
bigInteger3.magnitude = array4;
}
}
return bigInteger3;
}
return value;
}
// Token: 0x0600A232 RID: 41522 RVA: 0x0021EF08 File Offset: 0x0021D108
[Token(Token = "0x600A232")]
[Address(RVA = "0x458E60", Offset = "0x457E60", VA = "0x180458E60")]
public BigInteger Xor(BigInteger value)
{
int num = this.sign;
if (num != 0 && value.sign != 0)
{
if (num > 0)
{
}
BigInteger one = BigInteger.One;
int[] array = this.Add(one).magnitude;
if (value.sign > 0)
{
}
BigInteger one2 = BigInteger.One;
int[] array2 = value.Add(one2).magnitude;
int num2 = value.sign;
if (this.sign < 0)
{
}
int num3 = array2.Length;
num3 = Math.Max(array.Length, num3);
int[] array3 = new int[num3];
int num4 = array3.Length;
int num5 = 0;
int num6 = 0;
num4 -= num4;
int length = array3.Length;
if (num6 < length)
{
num6 += num5;
int num7 = 0;
array3[0] = num7;
if (num2 != 0)
{
array3[0] = num7;
}
num5++;
}
uint num8;
ulong num9;
BigInteger bigInteger = new BigInteger((int)num8, array3, num9 != 0UL);
BigInteger bigInteger3;
if (num2 != 0)
{
BigInteger bigInteger2 = bigInteger.Inc();
int num10 = bigInteger2.sign;
if (num10 != 0)
{
int[] array4 = bigInteger2.magnitude;
bigInteger3.nBits = (int)((ulong)(-1L));
bigInteger3.sign = num10;
bigInteger3.magnitude = array4;
}
}
return bigInteger3;
}
return value;
}
// Token: 0x0600A233 RID: 41523 RVA: 0x0021F03C File Offset: 0x0021D23C
[Token(Token = "0x600A233")]
[Address(RVA = "0x456650", Offset = "0x455650", VA = "0x180456650")]
public BigInteger SetBit(int n)
{
if (!this.TestBit(n))
{
if (this.sign > 0)
{
int bitLength = this.BitLength;
if (n < bitLength)
{
return this.FlipExistingBit(n);
}
}
BigInteger bigInteger = BigInteger.One.ShiftLeft(n);
return this.Or(bigInteger);
}
return this;
}
// Token: 0x0600A234 RID: 41524 RVA: 0x0021F090 File Offset: 0x0021D290
[Token(Token = "0x600A234")]
[Address(RVA = "0x44FF70", Offset = "0x44EF70", VA = "0x18044FF70")]
public BigInteger ClearBit(int n)
{
if (this.TestBit(n))
{
if (this.sign > 0)
{
int bitLength = this.BitLength;
if (n < bitLength)
{
return this.FlipExistingBit(n);
}
}
BigInteger bigInteger = BigInteger.One.ShiftLeft(n).Inc().Negate();
return this.And(bigInteger);
}
return this;
}
// Token: 0x0600A235 RID: 41525 RVA: 0x0021F0F0 File Offset: 0x0021D2F0
[Token(Token = "0x600A235")]
[Address(RVA = "0x4518C0", Offset = "0x4508C0", VA = "0x1804518C0")]
public BigInteger FlipBit(int n)
{
if (this.sign > 0)
{
int num = this.nBitLength;
if (num == -1)
{
int num2 = this.sign;
if (num2 == 0)
{
}
int[] array = this.magnitude;
int num3 = 0;
int num4 = BigInteger.CalcBitLength(num2, num3, array);
this.nBitLength = num4;
}
if (n < num)
{
return this.FlipExistingBit(n);
}
}
BigInteger bigInteger = BigInteger.One.ShiftLeft(n);
return this.Xor(bigInteger);
}
// Token: 0x0600A236 RID: 41526 RVA: 0x0021F164 File Offset: 0x0021D364
[Token(Token = "0x600A236")]
[Address(RVA = "0x451A20", Offset = "0x450A20", VA = "0x180451A20")]
private BigInteger FlipExistingBit(int n)
{
int[] array = this.magnitude;
array -= n;
int num = this.sign;
BigInteger bigInteger;
bigInteger.nBits = (int)((ulong)(-1L));
bigInteger.sign = num;
return bigInteger;
}
// Token: 0x04006BDD RID: 27613
[Token(Token = "0x4006BDD")]
internal static readonly int[][] primeLists;
// Token: 0x04006BDE RID: 27614
[Token(Token = "0x4006BDE")]
internal static readonly int[] primeProducts;
// Token: 0x04006BDF RID: 27615
[Token(Token = "0x4006BDF")]
private const long IMASK = 4294967295L;
// Token: 0x04006BE0 RID: 27616
[Token(Token = "0x4006BE0")]
private const ulong UIMASK = 4294967295UL;
// Token: 0x04006BE1 RID: 27617
[Token(Token = "0x4006BE1")]
private static readonly int[] ZeroMagnitude;
// Token: 0x04006BE2 RID: 27618
[Token(Token = "0x4006BE2")]
private static readonly byte[] ZeroEncoding;
// Token: 0x04006BE3 RID: 27619
[Token(Token = "0x4006BE3")]
private static readonly BigInteger[] SMALL_CONSTANTS;
// Token: 0x04006BE4 RID: 27620
[Token(Token = "0x4006BE4")]
public static readonly BigInteger Zero;
// Token: 0x04006BE5 RID: 27621
[Token(Token = "0x4006BE5")]
public static readonly BigInteger One;
// Token: 0x04006BE6 RID: 27622
[Token(Token = "0x4006BE6")]
public static readonly BigInteger Two;
// Token: 0x04006BE7 RID: 27623
[Token(Token = "0x4006BE7")]
public static readonly BigInteger Three;
// Token: 0x04006BE8 RID: 27624
[Token(Token = "0x4006BE8")]
public static readonly BigInteger Ten;
// Token: 0x04006BE9 RID: 27625
[Token(Token = "0x4006BE9")]
private static readonly byte[] BitLengthTable;
// Token: 0x04006BEA RID: 27626
[Token(Token = "0x4006BEA")]
private const int chunk2 = 1;
// Token: 0x04006BEB RID: 27627
[Token(Token = "0x4006BEB")]
private const int chunk8 = 1;
// Token: 0x04006BEC RID: 27628
[Token(Token = "0x4006BEC")]
private const int chunk10 = 19;
// Token: 0x04006BED RID: 27629
[Token(Token = "0x4006BED")]
private const int chunk16 = 16;
// Token: 0x04006BEE RID: 27630
[Token(Token = "0x4006BEE")]
private static readonly BigInteger radix2;
// Token: 0x04006BEF RID: 27631
[Token(Token = "0x4006BEF")]
private static readonly BigInteger radix2E;
// Token: 0x04006BF0 RID: 27632
[Token(Token = "0x4006BF0")]
private static readonly BigInteger radix8;
// Token: 0x04006BF1 RID: 27633
[Token(Token = "0x4006BF1")]
private static readonly BigInteger radix8E;
// Token: 0x04006BF2 RID: 27634
[Token(Token = "0x4006BF2")]
private static readonly BigInteger radix10;
// Token: 0x04006BF3 RID: 27635
[Token(Token = "0x4006BF3")]
private static readonly BigInteger radix10E;
// Token: 0x04006BF4 RID: 27636
[Token(Token = "0x4006BF4")]
private static readonly BigInteger radix16;
// Token: 0x04006BF5 RID: 27637
[Token(Token = "0x4006BF5")]
private static readonly BigInteger radix16E;
// Token: 0x04006BF6 RID: 27638
[Token(Token = "0x4006BF6")]
private static readonly SecureRandom RandomSource;
// Token: 0x04006BF7 RID: 27639
[Token(Token = "0x4006BF7")]
private static readonly int[] ExpWindowThresholds;
// Token: 0x04006BF8 RID: 27640
[Token(Token = "0x4006BF8")]
private const int BitsPerByte = 8;
// Token: 0x04006BF9 RID: 27641
[Token(Token = "0x4006BF9")]
private const int BitsPerInt = 32;
// Token: 0x04006BFA RID: 27642
[Token(Token = "0x4006BFA")]
private const int BytesPerInt = 4;
// Token: 0x04006BFB RID: 27643
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006BFB")]
private int[] magnitude;
// Token: 0x04006BFC RID: 27644
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006BFC")]
private int sign;
// Token: 0x04006BFD RID: 27645
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4006BFD")]
private int nBits;
// Token: 0x04006BFE RID: 27646
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006BFE")]
private int nBitLength;
// Token: 0x04006BFF RID: 27647
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4006BFF")]
private int mQuote;
}
}
@@ -0,0 +1,392 @@
using System;
using System.Text;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc
{
// Token: 0x02001B9F RID: 7071
[Token(Token = "0x2001B9F")]
internal class SimpleBigDecimal
{
// Token: 0x0600ADD7 RID: 44503 RVA: 0x0025BC48 File Offset: 0x00259E48
[Token(Token = "0x600ADD7")]
[Address(RVA = "0x6F6BB0", Offset = "0x6F5BB0", VA = "0x1806F6BB0")]
public static SimpleBigDecimal GetInstance(BigInteger val, int scale)
{
return new SimpleBigDecimal(val.ShiftLeft(scale), scale);
}
// Token: 0x0600ADD8 RID: 44504 RVA: 0x0025BC68 File Offset: 0x00259E68
[Token(Token = "0x600ADD8")]
[Address(RVA = "0x6F7500", Offset = "0x6F6500", VA = "0x1806F7500")]
public SimpleBigDecimal(BigInteger bigInt, int scale)
{
this.bigInt = bigInt;
this.scale = scale;
}
// Token: 0x0600ADD9 RID: 44505 RVA: 0x0025BC94 File Offset: 0x00259E94
[Token(Token = "0x600ADD9")]
[Address(RVA = "0x6F74C0", Offset = "0x6F64C0", VA = "0x1806F74C0")]
private SimpleBigDecimal(SimpleBigDecimal limBigDec)
{
BigInteger bigInteger = limBigDec.bigInt;
this.bigInt = bigInteger;
int num = limBigDec.scale;
this.scale = num;
}
// Token: 0x0600ADDA RID: 44506 RVA: 0x0025BCCC File Offset: 0x00259ECC
[Token(Token = "0x600ADDA")]
[Address(RVA = "0x6F6810", Offset = "0x6F5810", VA = "0x1806F6810")]
private void CheckScale(SimpleBigDecimal b)
{
/*
An exception occurred when decompiling this method (0600ADDA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc.SimpleBigDecimal::CheckScale(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc.SimpleBigDecimal)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_1_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Only SimpleBigDecimal of same scale allowed in arithmetic operations")))
}
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: 0x0600ADDB RID: 44507 RVA: 0x0025BCF4 File Offset: 0x00259EF4
[Token(Token = "0x600ADDB")]
[Address(RVA = "0x6F6740", Offset = "0x6F5740", VA = "0x1806F6740")]
public SimpleBigDecimal AdjustScale(int newScale)
{
int num = this.scale;
if (newScale != num)
{
return new SimpleBigDecimal(this.bigInt.ShiftLeft(newScale), newScale);
}
return this;
}
// Token: 0x0600ADDC RID: 44508 RVA: 0x0025BD2C File Offset: 0x00259F2C
[Token(Token = "0x600ADDC")]
[Address(RVA = "0x6F6600", Offset = "0x6F5600", VA = "0x1806F6600")]
public SimpleBigDecimal Add(SimpleBigDecimal b)
{
this.CheckScale(b);
BigInteger bigInteger = this.bigInt;
BigInteger bigInteger2 = b.bigInt;
BigInteger bigInteger3 = bigInteger.Add(bigInteger2);
int num = this.scale;
return new SimpleBigDecimal(bigInteger3, num);
}
// Token: 0x0600ADDD RID: 44509 RVA: 0x0025BD6C File Offset: 0x00259F6C
[Token(Token = "0x600ADDD")]
[Address(RVA = "0x6F66A0", Offset = "0x6F56A0", VA = "0x1806F66A0")]
public SimpleBigDecimal Add(BigInteger b)
{
BigInteger bigInteger = this.bigInt;
int num = this.scale;
BigInteger bigInteger2 = b.ShiftLeft(num);
BigInteger bigInteger3 = bigInteger.Add(bigInteger2);
int num2 = this.scale;
return new SimpleBigDecimal(bigInteger3, num2);
}
// Token: 0x0600ADDE RID: 44510 RVA: 0x0025BDB0 File Offset: 0x00259FB0
[Token(Token = "0x600ADDE")]
[Address(RVA = "0x6F6D60", Offset = "0x6F5D60", VA = "0x1806F6D60")]
public SimpleBigDecimal Negate()
{
BigInteger bigInteger = this.bigInt.Negate();
int num = this.scale;
return new SimpleBigDecimal(bigInteger, num);
}
// Token: 0x0600ADDF RID: 44511 RVA: 0x0025BDE0 File Offset: 0x00259FE0
[Token(Token = "0x600ADDF")]
[Address(RVA = "0x6F7090", Offset = "0x6F6090", VA = "0x1806F7090")]
public SimpleBigDecimal Subtract(SimpleBigDecimal b)
{
BigInteger bigInteger = b.bigInt.Negate();
int num = b.scale;
SimpleBigDecimal simpleBigDecimal = new SimpleBigDecimal(bigInteger, num);
this.CheckScale(simpleBigDecimal);
BigInteger bigInteger2 = this.bigInt;
BigInteger bigInteger3 = simpleBigDecimal.bigInt;
BigInteger bigInteger4 = bigInteger2.Add(bigInteger3);
int num2 = this.scale;
return new SimpleBigDecimal(bigInteger4, num2);
}
// Token: 0x0600ADE0 RID: 44512 RVA: 0x0025BE40 File Offset: 0x0025A040
[Token(Token = "0x600ADE0")]
[Address(RVA = "0x6F6FF0", Offset = "0x6F5FF0", VA = "0x1806F6FF0")]
public SimpleBigDecimal Subtract(BigInteger b)
{
BigInteger bigInteger = this.bigInt;
int num = this.scale;
BigInteger bigInteger2 = b.ShiftLeft(num);
BigInteger bigInteger3 = bigInteger.Subtract(bigInteger2);
int num2 = this.scale;
return new SimpleBigDecimal(bigInteger3, num2);
}
// Token: 0x0600ADE1 RID: 44513 RVA: 0x0025BE84 File Offset: 0x0025A084
[Token(Token = "0x600ADE1")]
[Address(RVA = "0x6F6CC0", Offset = "0x6F5CC0", VA = "0x1806F6CC0")]
public SimpleBigDecimal Multiply(SimpleBigDecimal b)
{
this.CheckScale(b);
BigInteger bigInteger = this.bigInt;
BigInteger bigInteger2 = b.bigInt;
int num = 0;
return new SimpleBigDecimal(bigInteger.Multiply(bigInteger2), num);
}
// Token: 0x0600ADE2 RID: 44514 RVA: 0x0025BEBC File Offset: 0x0025A0BC
[Token(Token = "0x600ADE2")]
[Address(RVA = "0x6F6C30", Offset = "0x6F5C30", VA = "0x1806F6C30")]
public SimpleBigDecimal Multiply(BigInteger b)
{
BigInteger bigInteger = this.bigInt.Multiply(b);
int num = this.scale;
return new SimpleBigDecimal(bigInteger, num);
}
// Token: 0x0600ADE3 RID: 44515 RVA: 0x0025BEEC File Offset: 0x0025A0EC
[Token(Token = "0x600ADE3")]
[Address(RVA = "0x6F69B0", Offset = "0x6F59B0", VA = "0x1806F69B0")]
public SimpleBigDecimal Divide(SimpleBigDecimal b)
{
this.CheckScale(b);
BigInteger bigInteger = this.bigInt;
int num = this.scale;
BigInteger bigInteger2 = bigInteger.ShiftLeft(num);
BigInteger bigInteger3 = b.bigInt;
BigInteger bigInteger4 = bigInteger2.Divide(bigInteger3);
int num2 = this.scale;
return new SimpleBigDecimal(bigInteger4, num2);
}
// Token: 0x0600ADE4 RID: 44516 RVA: 0x0025BF40 File Offset: 0x0025A140
[Token(Token = "0x600ADE4")]
[Address(RVA = "0x6F6920", Offset = "0x6F5920", VA = "0x1806F6920")]
public SimpleBigDecimal Divide(BigInteger b)
{
BigInteger bigInteger = this.bigInt.Divide(b);
int num = this.scale;
return new SimpleBigDecimal(bigInteger, num);
}
// Token: 0x0600ADE5 RID: 44517 RVA: 0x0025BF70 File Offset: 0x0025A170
[Token(Token = "0x600ADE5")]
[Address(RVA = "0x6F6F60", Offset = "0x6F5F60", VA = "0x1806F6F60")]
public SimpleBigDecimal ShiftLeft(int n)
{
BigInteger bigInteger = this.bigInt.ShiftLeft(n);
int num = this.scale;
return new SimpleBigDecimal(bigInteger, num);
}
// Token: 0x0600ADE6 RID: 44518 RVA: 0x0025BFA0 File Offset: 0x0025A1A0
[Token(Token = "0x600ADE6")]
[Address(RVA = "0x6F68D0", Offset = "0x6F58D0", VA = "0x1806F68D0")]
public int CompareTo(SimpleBigDecimal val)
{
this.CheckScale(val);
BigInteger bigInteger = this.bigInt;
BigInteger bigInteger2 = val.bigInt;
return bigInteger.CompareTo(bigInteger2);
}
// Token: 0x0600ADE7 RID: 44519 RVA: 0x0025BFD0 File Offset: 0x0025A1D0
[Token(Token = "0x600ADE7")]
[Address(RVA = "0x6F6890", Offset = "0x6F5890", VA = "0x1806F6890")]
public int CompareTo(BigInteger val)
{
BigInteger bigInteger = this.bigInt;
int num = this.scale;
BigInteger bigInteger2 = val.ShiftLeft(num);
return bigInteger.CompareTo(bigInteger2);
}
// Token: 0x0600ADE8 RID: 44520 RVA: 0x0025C000 File Offset: 0x0025A200
[Token(Token = "0x600ADE8")]
[Address(RVA = "0x6F6B40", Offset = "0x6F5B40", VA = "0x1806F6B40")]
public BigInteger Floor()
{
BigInteger bigInteger = this.bigInt;
int num = this.scale;
return bigInteger.ShiftRight(num);
}
// Token: 0x0600ADE9 RID: 44521 RVA: 0x0025C028 File Offset: 0x0025A228
[Token(Token = "0x600ADE9")]
[Address(RVA = "0x6F6DE0", Offset = "0x6F5DE0", VA = "0x1806F6DE0")]
public BigInteger Round()
{
BigInteger one = BigInteger.One;
SimpleBigDecimal simpleBigDecimal;
simpleBigDecimal.bigInt = one;
simpleBigDecimal.scale = (int)((ulong)1L);
int num = this.scale;
int num2 = simpleBigDecimal.scale;
if (num != num2)
{
BigInteger bigInteger = simpleBigDecimal.bigInt;
num -= num2;
SimpleBigDecimal simpleBigDecimal2 = new SimpleBigDecimal(bigInteger.ShiftLeft(num), num);
}
SimpleBigDecimal simpleBigDecimal3 = this.Add(simpleBigDecimal);
BigInteger bigInteger2 = simpleBigDecimal3.bigInt;
int num3 = simpleBigDecimal3.scale;
return bigInteger2.ShiftRight(num3);
}
// Token: 0x17001BA9 RID: 7081
// (get) Token: 0x0600ADEA RID: 44522 RVA: 0x0025C0AC File Offset: 0x0025A2AC
[Token(Token = "0x17001BA9")]
public int IntValue
{
[Token(Token = "0x600ADEA")]
[Address(RVA = "0x6F7590", Offset = "0x6F6590", VA = "0x1806F7590")]
get
{
BigInteger bigInteger = this.bigInt;
int num = this.scale;
return bigInteger.ShiftRight(num).IntValue;
}
}
// Token: 0x17001BAA RID: 7082
// (get) Token: 0x0600ADEB RID: 44523 RVA: 0x0025C0DC File Offset: 0x0025A2DC
[Token(Token = "0x17001BAA")]
public long LongValue
{
[Token(Token = "0x600ADEB")]
[Address(RVA = "0x6F75D0", Offset = "0x6F65D0", VA = "0x1806F75D0")]
get
{
BigInteger bigInteger = this.bigInt;
int num = this.scale;
return bigInteger.ShiftRight(num).LongValue;
}
}
// Token: 0x17001BAB RID: 7083
// (get) Token: 0x0600ADEC RID: 44524 RVA: 0x0025C10C File Offset: 0x0025A30C
[Token(Token = "0x17001BAB")]
public int Scale
{
[Token(Token = "0x600ADEC")]
[Address(RVA = "0x411540", Offset = "0x410540", VA = "0x180411540")]
get
{
return this.scale;
}
}
// Token: 0x0600ADED RID: 44525 RVA: 0x0025C120 File Offset: 0x0025A320
[Token(Token = "0x600ADED")]
[Address(RVA = "0x6F7190", Offset = "0x6F6190", VA = "0x1806F7190", Slot = "3")]
public override string ToString()
{
BigInteger bigInteger2;
BigInteger bigInteger5;
do
{
int num = this.scale;
BigInteger bigInteger = this.bigInt;
if (num == 0)
{
goto IL_111;
}
bigInteger2 = bigInteger.ShiftRight(num);
BigInteger bigInteger3 = this.bigInt;
int num2 = this.scale;
BigInteger bigInteger4 = bigInteger2.ShiftLeft(num2);
bigInteger5 = bigInteger3.Subtract(bigInteger4);
if (this.bigInt.sign < 0)
{
BigInteger one = BigInteger.One;
int num3 = this.scale;
BigInteger bigInteger6 = one.ShiftLeft(num3).Subtract(bigInteger5);
}
}
while (bigInteger2.sign != -1);
BigInteger one2 = BigInteger.One;
int hashCode = bigInteger2.Add(one2).GetHashCode();
char[] array = new char[this.scale];
string text = bigInteger5.ToString(2);
int num4 = this.scale;
int num5 = 0;
int stringLength = text.m_stringLength;
num4 -= stringLength;
if (num4 > 0)
{
num5++;
array[0] = '0';
}
if (stringLength > 0)
{
char c = text[num5];
num5++;
array[0] = c;
}
StringBuilder stringBuilder2;
StringBuilder stringBuilder = stringBuilder2.Append(".");
string text2;
StringBuilder stringBuilder3 = stringBuilder2.Append(text2);
IL_111:
throw new NullReferenceException();
}
// Token: 0x0600ADEE RID: 44526 RVA: 0x0025C244 File Offset: 0x0025A444
[Token(Token = "0x600ADEE")]
[Address(RVA = "0x6F6A60", Offset = "0x6F5A60", VA = "0x1806F6A60", Slot = "0")]
public override bool Equals(object obj)
{
if (this != obj)
{
if (obj != 0 && obj != 0)
{
BigInteger bigInteger = this.bigInt;
bool flag;
return flag;
}
}
return true;
}
// Token: 0x0600ADEF RID: 44527 RVA: 0x0025C274 File Offset: 0x0025A474
[Token(Token = "0x600ADEF")]
[Address(RVA = "0x6F6B70", Offset = "0x6F5B70", VA = "0x1806F6B70", Slot = "2")]
public override int GetHashCode()
{
this.bigInt.Finalize();
throw new NullReferenceException();
}
// Token: 0x04006E3E RID: 28222
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006E3E")]
private readonly BigInteger bigInt;
// Token: 0x04006E3F RID: 28223
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006E3F")]
private readonly int scale;
}
}
@@ -0,0 +1,638 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc
{
// Token: 0x02001BA0 RID: 7072
[Token(Token = "0x2001BA0")]
internal class Tnaf
{
// Token: 0x0600ADF0 RID: 44528 RVA: 0x0025C294 File Offset: 0x0025A494
[Token(Token = "0x600ADF0")]
[Address(RVA = "0x6F8DD0", Offset = "0x6F7DD0", VA = "0x1806F8DD0")]
public static BigInteger Norm(sbyte mu, ZTauElement lambda)
{
BigInteger u = lambda.u;
BigInteger bigInteger = u.Multiply(u);
BigInteger u2 = lambda.u;
BigInteger v = lambda.v;
BigInteger bigInteger2 = u2.Multiply(v);
BigInteger v2 = lambda.v;
BigInteger bigInteger3 = v2.Multiply(v2).ShiftLeft(1);
BigInteger bigInteger4 = bigInteger.Subtract(bigInteger2);
return bigInteger.Add(bigInteger2).Add(bigInteger3);
}
// Token: 0x0600ADF1 RID: 44529 RVA: 0x0025C30C File Offset: 0x0025A50C
[Token(Token = "0x600ADF1")]
[Address(RVA = "0x6F8C50", Offset = "0x6F7C50", VA = "0x1806F8C50")]
public static SimpleBigDecimal Norm(sbyte mu, SimpleBigDecimal u, SimpleBigDecimal v)
{
SimpleBigDecimal simpleBigDecimal = u.Multiply(u);
SimpleBigDecimal simpleBigDecimal2 = u.Multiply(v);
SimpleBigDecimal simpleBigDecimal3 = v.Multiply(v);
BigInteger bigInteger = simpleBigDecimal3.bigInt.ShiftLeft(1);
int scale = simpleBigDecimal3.scale;
SimpleBigDecimal simpleBigDecimal4 = new SimpleBigDecimal(bigInteger, scale);
SimpleBigDecimal simpleBigDecimal5 = simpleBigDecimal.Subtract(simpleBigDecimal2);
return simpleBigDecimal.Add(simpleBigDecimal2).Add(simpleBigDecimal4);
}
// Token: 0x0600ADF2 RID: 44530 RVA: 0x0025C37C File Offset: 0x0025A57C
[Token(Token = "0x600ADF2")]
[Address(RVA = "0x6F92A0", Offset = "0x6F82A0", VA = "0x1806F92A0")]
public static ZTauElement Round(SimpleBigDecimal lambda0, SimpleBigDecimal lambda1, sbyte mu)
{
/*
An exception occurred when decompiling this method (0600ADF2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc.ZTauElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc.Tnaf::Round(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc.SimpleBigDecimal,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc.SimpleBigDecimal,System.SByte)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1AF:
stloc:ArgumentException(var_46_1B9, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("lambda0 and lambda1 do not have same scale")))
}
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: 0x0600ADF3 RID: 44531 RVA: 0x0025C544 File Offset: 0x0025A744
[Token(Token = "0x600ADF3")]
[Address(RVA = "0x6F7610", Offset = "0x6F6610", VA = "0x1806F7610")]
public static SimpleBigDecimal ApproximateDivisionByN(BigInteger k, BigInteger s, BigInteger vm, sbyte a, int m, int c)
{
BigInteger bigInteger2;
BigInteger bigInteger = s.Multiply(bigInteger2);
BigInteger bigInteger4;
BigInteger bigInteger3 = vm.Multiply(bigInteger4);
BigInteger bigInteger5 = bigInteger.Add(bigInteger3);
bool flag;
if (flag)
{
BigInteger one = BigInteger.One;
BigInteger bigInteger7;
BigInteger bigInteger6 = bigInteger7.Add(one);
}
SimpleBigDecimal simpleBigDecimal;
return simpleBigDecimal;
}
// Token: 0x0600ADF4 RID: 44532 RVA: 0x0025C58C File Offset: 0x0025A78C
[Token(Token = "0x600ADF4")]
[Address(RVA = "0x6F97F0", Offset = "0x6F87F0", VA = "0x1806F97F0")]
public static sbyte[] TauAdicNaf(sbyte mu, ZTauElement lambda)
{
sbyte b = mu + 1;
int bitLength = Tnaf.Norm(mu, lambda).BitLength;
sbyte[] array = new sbyte[34];
int num = 0;
BigInteger u = lambda.u;
BigInteger v = lambda.v;
int num2 = 0;
if (!u.TestBit(num2))
{
}
BigInteger two = BigInteger.Two;
BigInteger bigInteger = v.ShiftLeft(1);
BigInteger bigInteger2 = u.Subtract(bigInteger);
BigInteger four = Tnaf.Four;
BigInteger bigInteger3 = bigInteger2.Mod(four);
if (two.Subtract(bigInteger3).IntValue != 1)
{
BigInteger one = BigInteger.One;
BigInteger bigInteger4 = u.Add(one);
}
int num3 = 0;
BigInteger bigInteger5 = u.ClearBit(num3);
BigInteger bigInteger6 = bigInteger5.ShiftRight(1);
BigInteger bigInteger7 = v.Subtract(bigInteger6);
BigInteger bigInteger8 = v.Add(bigInteger6);
BigInteger bigInteger9 = bigInteger5.ShiftRight(1).Negate();
num++;
num++;
sbyte[] array2 = new sbyte[num];
int num4 = 0;
int num5 = 0;
Array.Copy(array, num5, array2, num4, num);
return array2;
}
// Token: 0x0600ADF5 RID: 44533 RVA: 0x0025C694 File Offset: 0x0025A894
[Token(Token = "0x600ADF5")]
[Address(RVA = "0x6FA090", Offset = "0x6F9090", VA = "0x1806FA090")]
public static AbstractF2mPoint Tau(AbstractF2mPoint p)
{
bool flag = p.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600ADF6 RID: 44534 RVA: 0x0025C6B0 File Offset: 0x0025A8B0
[Token(Token = "0x600ADF6")]
[Address(RVA = "0x6F79C0", Offset = "0x6F69C0", VA = "0x1806F79C0")]
public static sbyte GetMu(AbstractF2mCurve curve)
{
IFiniteField field = curve.Field;
throw new NullReferenceException();
}
// Token: 0x0600ADF7 RID: 44535 RVA: 0x0025C6D4 File Offset: 0x0025A8D4
[Token(Token = "0x600ADF7")]
[Address(RVA = "0x6F7AC0", Offset = "0x6F6AC0", VA = "0x1806F7AC0")]
public static sbyte GetMu(ECFieldElement curveA)
{
bool isOne = curveA.IsOne;
throw new NullReferenceException();
}
// Token: 0x0600ADF8 RID: 44536 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600ADF8")]
[Address(RVA = "0x6F7B00", Offset = "0x6F6B00", VA = "0x1806F7B00")]
public static sbyte GetMu(int curveA)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600ADF9 RID: 44537 RVA: 0x0025C6F0 File Offset: 0x0025A8F0
[Token(Token = "0x600ADF9")]
[Address(RVA = "0x6F7790", Offset = "0x6F6790", VA = "0x1806F7790")]
public static BigInteger[] GetLucas(sbyte mu, int k, bool doV)
{
sbyte b = mu + 1;
if (!doV)
{
}
BigInteger two = BigInteger.Two;
BigInteger bigInteger2;
BigInteger bigInteger4;
if (k > 1)
{
BigInteger bigInteger = bigInteger2.Negate();
BigInteger bigInteger3 = two.ShiftLeft(1);
bigInteger4 = bigInteger2.Subtract(bigInteger3);
}
BigInteger[] array = new BigInteger[2];
if (bigInteger2 != 0)
{
}
array[0] = bigInteger2;
if (bigInteger4 != 0)
{
}
array[1] = bigInteger4;
return array;
}
// Token: 0x0600ADFA RID: 44538 RVA: 0x0025C75C File Offset: 0x0025A95C
[Token(Token = "0x600ADFA")]
[Address(RVA = "0x6F8530", Offset = "0x6F7530", VA = "0x1806F8530")]
public static BigInteger GetTw(sbyte mu, int w)
{
if (w != 4)
{
int num = 0;
BigInteger[] lucas = Tnaf.GetLucas(mu, w, num != 0);
BigInteger bigInteger = BigInteger.Zero.SetBit(w);
BigInteger bigInteger2 = lucas[1].ModInverse(bigInteger);
BigInteger two = BigInteger.Two;
BigInteger bigInteger3 = lucas[0];
return two.Multiply(bigInteger3).Multiply(bigInteger2).Mod(bigInteger);
}
BigInteger bigInteger4;
return bigInteger4;
}
// Token: 0x0600ADFB RID: 44539 RVA: 0x0025C7C4 File Offset: 0x0025A9C4
[Token(Token = "0x600ADFB")]
[Address(RVA = "0x6F7DC0", Offset = "0x6F6DC0", VA = "0x1806F7DC0")]
public static BigInteger[] GetSi(AbstractF2mCurve curve)
{
while (curve.GetSi() == 0)
{
}
string text = curve.ToString();
IFiniteField field = curve.Field;
BigInteger order = curve.Order;
int num = 0;
int shiftsForCofactor = Tnaf.GetShiftsForCofactor(order);
int num2;
text -= num2;
int num3 = 0;
uint num4;
BigInteger[] lucas = Tnaf.GetLucas((sbyte)num4, num, num3 != 0);
if (num4 == (uint)1)
{
BigInteger bigInteger = lucas[0].Negate();
if (bigInteger != 0)
{
}
lucas[0] = bigInteger;
BigInteger bigInteger2 = lucas[1].Negate();
if (bigInteger2 != 0)
{
}
lucas[1] = bigInteger2;
}
BigInteger one = BigInteger.One;
BigInteger bigInteger3 = lucas[1];
BigInteger bigInteger4 = one.Add(bigInteger3).ShiftRight(shiftsForCofactor);
BigInteger one2 = BigInteger.One;
BigInteger bigInteger5 = lucas[0];
BigInteger bigInteger6 = one2.Add(bigInteger5).ShiftRight(shiftsForCofactor).Negate();
BigInteger[] array = new BigInteger[2];
if (bigInteger4 != 0)
{
}
array[0] = bigInteger4;
if (bigInteger6 != 0)
{
}
array[1] = bigInteger6;
return array;
}
// Token: 0x0600ADFC RID: 44540 RVA: 0x0025C8CC File Offset: 0x0025AACC
[Token(Token = "0x600ADFC")]
[Address(RVA = "0x6F81E0", Offset = "0x6F71E0", VA = "0x1806F81E0")]
public static BigInteger[] GetSi(int fieldSize, int curveA, BigInteger cofactor)
{
int num = 0;
int shiftsForCofactor = Tnaf.GetShiftsForCofactor(cofactor);
int num2 = 0;
uint num3;
BigInteger[] lucas = Tnaf.GetLucas((sbyte)num3, num, num2 != 0);
if (curveA != 0)
{
BigInteger bigInteger = lucas[0].Negate();
if (bigInteger != 0)
{
}
lucas[0] = bigInteger;
BigInteger bigInteger2 = lucas[1].Negate();
if (bigInteger2 != 0)
{
}
lucas[1] = bigInteger2;
}
BigInteger one = BigInteger.One;
BigInteger bigInteger3 = lucas[1];
BigInteger bigInteger4 = one.Add(bigInteger3).ShiftRight(shiftsForCofactor);
BigInteger one2 = BigInteger.One;
BigInteger bigInteger5 = lucas[0];
BigInteger bigInteger6 = one2.Add(bigInteger5).ShiftRight(shiftsForCofactor).Negate();
BigInteger[] array = new BigInteger[2];
if (bigInteger4 != 0)
{
}
array[0] = bigInteger4;
if (bigInteger6 != 0)
{
}
array[1] = bigInteger6;
return array;
}
// Token: 0x0600ADFD RID: 44541 RVA: 0x0025C9A8 File Offset: 0x0025ABA8
[Token(Token = "0x600ADFD")]
[Address(RVA = "0x6F7D20", Offset = "0x6F6D20", VA = "0x1806F7D20")]
protected static int GetShiftsForCofactor(BigInteger h)
{
/*
An exception occurred when decompiling this method (0600ADFD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc.Tnaf::GetShiftsForCofactor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_20:
stloc:ArgumentException(var_1_2A, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("h (Cofactor) must be 2 or 4")))
}
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: 0x0600ADFE RID: 44542 RVA: 0x0025C9E0 File Offset: 0x0025ABE0
[Token(Token = "0x600ADFE")]
[Address(RVA = "0x6F8F10", Offset = "0x6F7F10", VA = "0x1806F8F10")]
public static ZTauElement PartModReduction(BigInteger k, int m, sbyte a, BigInteger[] s, sbyte mu, sbyte c)
{
int length = s.Length;
BigInteger bigInteger = s[0];
BigInteger bigInteger2 = s[1];
BigInteger bigInteger3 = bigInteger.Subtract(bigInteger2);
BigInteger bigInteger4 = s[0];
BigInteger bigInteger5 = s[1];
BigInteger bigInteger6 = bigInteger4.Add(bigInteger5);
ZTauElement ztauElement;
BigInteger u = ztauElement.u;
BigInteger bigInteger7 = bigInteger6.Multiply(u);
BigInteger bigInteger8 = k.Subtract(bigInteger7);
BigInteger bigInteger9 = s[1];
BigInteger bigInteger11;
BigInteger bigInteger10 = bigInteger11.Multiply(bigInteger9);
BigInteger v = ztauElement.v;
BigInteger bigInteger12 = bigInteger10.Multiply(v);
BigInteger bigInteger13 = bigInteger8.Subtract(bigInteger12);
BigInteger bigInteger14 = s[1];
BigInteger u2 = ztauElement.u;
BigInteger bigInteger15 = bigInteger14.Multiply(u2);
BigInteger bigInteger16 = s[0];
BigInteger v2 = ztauElement.v;
BigInteger bigInteger17 = bigInteger16.Multiply(v2);
BigInteger bigInteger18 = bigInteger15.Subtract(bigInteger17);
ZTauElement ztauElement2;
ztauElement2.u = bigInteger13;
ztauElement2.v = bigInteger18;
return ztauElement2;
}
// Token: 0x0600ADFF RID: 44543 RVA: 0x0025CADC File Offset: 0x0025ACDC
[Token(Token = "0x600ADFF")]
[Address(RVA = "0x6F8940", Offset = "0x6F7940", VA = "0x1806F8940")]
public static AbstractF2mPoint MultiplyRTnaf(AbstractF2mPoint p, BigInteger k)
{
bool flag;
do
{
flag = p.SatisfiesOrder();
}
while (!flag);
string text = flag.ToString();
bool flag2;
flag = flag2;
string text2 = flag.ToString();
ZTauElement ztauElement;
return Tnaf.MultiplyTnaf(p, ztauElement);
}
// Token: 0x0600AE00 RID: 44544 RVA: 0x0025CB18 File Offset: 0x0025AD18
[Token(Token = "0x600AE00")]
[Address(RVA = "0x6F8AE0", Offset = "0x6F7AE0", VA = "0x1806F8AE0")]
public static AbstractF2mPoint MultiplyTnaf(AbstractF2mPoint p, ZTauElement lambda)
{
bool flag;
do
{
flag = p.SatisfiesOrder();
}
while (!flag || !flag);
sbyte[] array;
return Tnaf.MultiplyFromTnaf(p, array);
}
// Token: 0x0600AE01 RID: 44545 RVA: 0x0025CB48 File Offset: 0x0025AD48
[Token(Token = "0x600AE01")]
[Address(RVA = "0x6F8710", Offset = "0x6F7710", VA = "0x1806F8710")]
public static AbstractF2mPoint MultiplyFromTnaf(AbstractF2mPoint p, sbyte[] u)
{
for (;;)
{
bool flag = p.SatisfiesOrder();
object obj;
if (obj == 0)
{
}
if (obj != 0)
{
ECPoint ecpoint;
if (ecpoint == 0)
{
}
if (ecpoint != 0)
{
break;
}
}
}
int num = 0;
int length = u.Length;
num++;
if (0 > 0)
{
}
throw new NullReferenceException();
}
// Token: 0x0600AE02 RID: 44546 RVA: 0x0025CB8C File Offset: 0x0025AD8C
[Token(Token = "0x600AE02")]
[Address(RVA = "0x6F9C10", Offset = "0x6F8C10", VA = "0x1806F9C10")]
public static sbyte[] TauAdicWNaf(sbyte mu, ZTauElement lambda, sbyte width, BigInteger pow2w, BigInteger tw, ZTauElement[] alpha)
{
sbyte b = mu + 1;
BigInteger bigInteger = Tnaf.Norm(mu, lambda);
int num = 0;
int bitLength = bigInteger.BitLength;
if (bitLength > 30)
{
num += 4;
num += bitLength;
}
num += 34;
sbyte[] array = new sbyte[num];
BigInteger bigInteger2 = pow2w.ShiftRight(1);
BigInteger u = lambda.u;
int num2 = 0;
BigInteger v = lambda.v;
int num3 = 0;
if (!u.TestBit(num3))
{
}
BigInteger bigInteger4;
BigInteger bigInteger3 = u.Add(bigInteger4).Mod(pow2w);
int num4 = bigInteger3.CompareTo(bigInteger2);
int intValue = bigInteger3.IntValue;
int num5 = 0;
BigInteger bigInteger5;
int intValue2 = bigInteger5.IntValue;
BigInteger bigInteger6 = u.Add(num5);
BigInteger bigInteger7 = v.Add(num5);
BigInteger bigInteger8 = bigInteger6.Subtract(num5);
BigInteger bigInteger9 = v.Subtract(num5);
BigInteger bigInteger10 = bigInteger8.ShiftRight(1);
BigInteger bigInteger11 = bigInteger9.Subtract(bigInteger10);
BigInteger bigInteger12 = bigInteger9.Add(bigInteger11);
BigInteger bigInteger13 = bigInteger8.ShiftRight(1).Negate();
num2++;
return array;
}
// Token: 0x0600AE03 RID: 44547 RVA: 0x0025CC94 File Offset: 0x0025AE94
[Token(Token = "0x600AE03")]
[Address(RVA = "0x6F7B20", Offset = "0x6F6B20", VA = "0x1806F7B20")]
public static AbstractF2mPoint[] GetPreComp(AbstractF2mPoint p, sbyte a)
{
sbyte[][] alpha1Tnaf = Tnaf.Alpha1Tnaf;
int num = alpha1Tnaf.Length;
num++;
AbstractF2mPoint[] array = new AbstractF2mPoint[num];
if (p != 0)
{
}
array[0] = p;
uint num2;
if (alpha1Tnaf.Length > (int)num2)
{
sbyte[] array2 = alpha1Tnaf[(int)num2];
AbstractF2mPoint abstractF2mPoint = Tnaf.MultiplyFromTnaf(p, array2);
throw new ArrayTypeMismatchException();
}
bool flag = p.SatisfiesOrder();
return array;
}
// Token: 0x0600AE04 RID: 44548 RVA: 0x0025CD04 File Offset: 0x0025AF04
[Token(Token = "0x600AE04")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public Tnaf()
{
}
// Token: 0x0600AE05 RID: 44549 RVA: 0x0025CD18 File Offset: 0x0025AF18
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600AE05")]
[Address(RVA = "0x6FA0C0", Offset = "0x6F90C0", VA = "0x1806FA0C0")]
static Tnaf()
{
BigInteger bigInteger;
Tnaf.Four = bigInteger;
ZTauElement[] array = new ZTauElement[9];
BigInteger one = BigInteger.One;
BigInteger zero = BigInteger.Zero;
ZTauElement ztauElement;
ztauElement.u = one;
ztauElement.v = zero;
array[1] = ztauElement;
BigInteger minusThree = Tnaf.MinusThree;
BigInteger minusOne = Tnaf.MinusOne;
ZTauElement ztauElement2;
ztauElement2.u = minusThree;
ztauElement2.v = minusOne;
array[3] = ztauElement2;
BigInteger minusOne2 = Tnaf.MinusOne;
ZTauElement ztauElement3;
ztauElement3.u = minusOne2;
ztauElement3.v = minusOne2;
array[5] = ztauElement3;
BigInteger one2 = BigInteger.One;
BigInteger minusOne3 = Tnaf.MinusOne;
ZTauElement ztauElement4;
ztauElement4.u = one2;
ztauElement4.v = minusOne3;
array[7] = ztauElement4;
Tnaf.Alpha0 = array;
sbyte[][] array2 = new sbyte[8][];
array2[1] = new sbyte[] { (sbyte)((ulong)1L) };
sbyte[] array3 = new sbyte[3];
array3[0] = (sbyte)((ulong)255L);
array3[0] = (sbyte)((ulong)1L);
array2[3] = array3;
sbyte[] array4 = new sbyte[3];
array4[0] = (sbyte)((ulong)1L);
array4[0] = (sbyte)((ulong)1L);
array2[5] = array4;
sbyte[] array5 = new sbyte[4];
array5[0] = (sbyte)((ulong)255L);
array5[0] = (sbyte)((ulong)1L);
array2[7] = array5;
Tnaf.Alpha0Tnaf = array2;
ZTauElement[] array6 = new ZTauElement[9];
BigInteger one3 = BigInteger.One;
BigInteger zero2 = BigInteger.Zero;
ZTauElement ztauElement5;
ztauElement5.u = one3;
ztauElement5.v = zero2;
array6[1] = ztauElement5;
BigInteger minusThree2 = Tnaf.MinusThree;
BigInteger one4 = BigInteger.One;
ZTauElement ztauElement6;
ztauElement6.u = minusThree2;
ztauElement6.v = one4;
array6[3] = ztauElement6;
BigInteger minusOne4 = Tnaf.MinusOne;
BigInteger one5 = BigInteger.One;
ZTauElement ztauElement7;
ztauElement7.u = minusOne4;
ztauElement7.v = one5;
array6[5] = ztauElement7;
BigInteger one6 = BigInteger.One;
ZTauElement ztauElement8;
ztauElement8.u = one6;
ztauElement8.v = one6;
array6[7] = ztauElement8;
Tnaf.Alpha1 = array6;
sbyte[][] array7 = new sbyte[8][];
array7[1] = new sbyte[] { (sbyte)((ulong)1L) };
sbyte[] array8 = new sbyte[3];
array8[0] = (sbyte)((ulong)255L);
array8[0] = (sbyte)((ulong)1L);
array7[3] = array8;
sbyte[] array9 = new sbyte[3];
array9[0] = (sbyte)((ulong)1L);
array9[0] = (sbyte)((ulong)1L);
array7[5] = array9;
sbyte[] array10 = new sbyte[4];
array10[0] = (sbyte)((ulong)255L);
array10[0] = (sbyte)((ulong)255L);
array7[7] = array10;
Tnaf.Alpha1Tnaf = array7;
}
// Token: 0x04006E40 RID: 28224
[Token(Token = "0x4006E40")]
private static readonly BigInteger MinusOne = BigInteger.One.Negate();
// Token: 0x04006E41 RID: 28225
[Token(Token = "0x4006E41")]
private static readonly BigInteger MinusTwo = BigInteger.Two.Negate();
// Token: 0x04006E42 RID: 28226
[Token(Token = "0x4006E42")]
private static readonly BigInteger MinusThree = BigInteger.Three.Negate();
// Token: 0x04006E43 RID: 28227
[Token(Token = "0x4006E43")]
private static readonly BigInteger Four;
// Token: 0x04006E44 RID: 28228
[Token(Token = "0x4006E44")]
public const sbyte Width = 4;
// Token: 0x04006E45 RID: 28229
[Token(Token = "0x4006E45")]
public const sbyte Pow2Width = 16;
// Token: 0x04006E46 RID: 28230
[Token(Token = "0x4006E46")]
public static readonly ZTauElement[] Alpha0;
// Token: 0x04006E47 RID: 28231
[Token(Token = "0x4006E47")]
public static readonly sbyte[][] Alpha0Tnaf;
// Token: 0x04006E48 RID: 28232
[Token(Token = "0x4006E48")]
public static readonly ZTauElement[] Alpha1;
// Token: 0x04006E49 RID: 28233
[Token(Token = "0x4006E49")]
public static readonly sbyte[][] Alpha1Tnaf;
}
}
@@ -0,0 +1,29 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Abc
{
// Token: 0x02001BA1 RID: 7073
[Token(Token = "0x2001BA1")]
internal class ZTauElement
{
// Token: 0x0600AE06 RID: 44550 RVA: 0x0025D014 File Offset: 0x0025B214
[Token(Token = "0x600AE06")]
[Address(RVA = "0x417DD0", Offset = "0x416DD0", VA = "0x180417DD0")]
public ZTauElement(BigInteger u, BigInteger v)
{
this.u = u;
this.v = v;
}
// Token: 0x04006E4A RID: 28234
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006E4A")]
public readonly BigInteger u;
// Token: 0x04006E4B RID: 28235
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006E4B")]
public readonly BigInteger v;
}
}
@@ -0,0 +1,200 @@
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;
}
}
@@ -0,0 +1,72 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC
{
// Token: 0x02001AD9 RID: 6873
[Token(Token = "0x2001AD9")]
public abstract class AbstractF2mFieldElement : ECFieldElement
{
// Token: 0x0600A495 RID: 42133 RVA: 0x0022F030 File Offset: 0x0022D230
[Token(Token = "0x600A495")]
[Address(RVA = "0x6E3710", Offset = "0x6E2710", VA = "0x1806E3710", Slot = "27")]
public virtual ECFieldElement HalfTrace()
{
/*
An exception occurred when decompiling this method (0600A495)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.AbstractF2mFieldElement::HalfTrace()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1D:
stloc:InvalidOperationException(var_4_27, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Half-trace only defined for odd m")))
}
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: 0x0600A496 RID: 42134 RVA: 0x0022F068 File Offset: 0x0022D268
[Token(Token = "0x600A496")]
[Address(RVA = "0x6E3800", Offset = "0x6E2800", VA = "0x1806E3800", Slot = "28")]
public virtual int Trace()
{
/*
An exception occurred when decompiling this method (0600A496)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.AbstractF2mFieldElement::Trace()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_26:
stloc:InvalidOperationException(var_4_30, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Internal error in trace calculation")))
}
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: 0x0600A497 RID: 42135 RVA: 0x0022F0A8 File Offset: 0x0022D2A8
[Token(Token = "0x600A497")]
[Address(RVA = "0x42BA20", Offset = "0x42AA20", VA = "0x18042BA20")]
protected AbstractF2mFieldElement()
{
}
}
}
@@ -0,0 +1,249 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC
{
// Token: 0x02001AE1 RID: 6881
[Token(Token = "0x2001AE1")]
public abstract class AbstractF2mPoint : ECPointBase
{
// Token: 0x0600A507 RID: 42247 RVA: 0x00230EF8 File Offset: 0x0022F0F8
[Token(Token = "0x600A507")]
[Address(RVA = "0x6E4CB0", Offset = "0x6E3CB0", VA = "0x1806E4CB0")]
protected AbstractF2mPoint(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
}
// Token: 0x0600A508 RID: 42248 RVA: 0x00230F08 File Offset: 0x0022F108
[Token(Token = "0x600A508")]
[Address(RVA = "0x6E4C90", Offset = "0x6E3C90", VA = "0x1806E4C90")]
protected AbstractF2mPoint(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A509 RID: 42249 RVA: 0x00230F18 File Offset: 0x0022F118
[Token(Token = "0x600A509")]
[Address(RVA = "0x6E3920", Offset = "0x6E2920", VA = "0x1806E3920", Slot = "4")]
protected override bool SatisfiesCurveEquation()
{
/*
An exception occurred when decompiling this method (0600A509)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.AbstractF2mPoint::SatisfiesCurveEquation()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_105:
stloc:InvalidOperationException(var_30_10F, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported 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.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.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.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: 0x0600A50A RID: 42250 RVA: 0x00231038 File Offset: 0x0022F238
[Token(Token = "0x600A50A")]
[Address(RVA = "0x6E3E50", Offset = "0x6E2E50", VA = "0x1806E3E50", Slot = "5")]
protected override bool SatisfiesOrder()
{
bool flag;
for (;;)
{
flag = this.SatisfiesOrder();
BigInteger two = BigInteger.Two;
BigInteger bigInteger;
if (bigInteger == 0)
{
bool flag2 = base.SatisfiesOrder();
}
bool flag3 = this.IsNormalized();
sbyte b;
TypeCode typeCode = b.GetTypeCode();
if (flag && flag)
{
ECFieldElement ecfieldElement;
if (ecfieldElement != 0)
{
break;
}
bool flag4 = this.IsNormalized();
sbyte b2;
TypeCode typeCode2 = b2.GetTypeCode();
if (0 != 0)
{
}
if (typeCode2 != TypeCode.Empty && typeCode2 != TypeCode.Empty)
{
goto Block_5;
}
}
}
sbyte b3;
TypeCode typeCode3 = b3.GetTypeCode();
byte b4;
bool flag5 = flag.Equals(b4 != 0);
TypeCode typeCode4 = typeCode3.GetTypeCode();
if (typeCode4 == TypeCode.Empty)
{
}
TypeCode typeCode5 = typeCode4.GetTypeCode();
return typeCode5 == TypeCode.Empty;
Block_5:
throw new NullReferenceException();
}
// Token: 0x0600A50B RID: 42251 RVA: 0x002310EC File Offset: 0x0022F2EC
[Token(Token = "0x600A50B")]
[Address(RVA = "0x6E42C0", Offset = "0x6E32C0", VA = "0x1806E42C0", Slot = "20")]
public override ECPoint ScaleX(ECFieldElement scale)
{
if (!base.IsInfinity)
{
ECPoint ecpoint = this.Detach();
if (ecpoint == (ulong)5L)
{
ECFieldElement x = this.m_x;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = x.Subtract(scale);
int fieldSize = y.FieldSize;
byte b;
TypeCode typeCode = b.GetTypeCode();
bool flag = this.SatisfiesOrder();
bool withCompression = this.m_withCompression;
}
ECFieldElement[] array;
if (ecpoint == (ulong)6L)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement x2 = this.m_x;
ECFieldElement y2 = this.m_y;
ECFieldElement ecfieldElement2 = zs[0];
ECFieldElement ecfieldElement3 = scale.Negate();
ECFieldElement ecfieldElement4 = x2.Subtract(ecfieldElement3);
TypeCode typeCode2 = y2.FieldSize.GetTypeCode();
ECFieldElement ecfieldElement5 = ecfieldElement2.Subtract(scale);
bool flag2 = this.SatisfiesOrder();
array = new ECFieldElement[1];
if (ecfieldElement5 != 0)
{
}
array[0] = ecfieldElement5;
bool withCompression2 = this.m_withCompression;
}
ECPoint ecpoint2 = base.ScaleX(array);
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A50C RID: 42252 RVA: 0x002311D8 File Offset: 0x0022F3D8
[Token(Token = "0x600A50C")]
[Address(RVA = "0x6E45D0", Offset = "0x6E35D0", VA = "0x1806E45D0", Slot = "21")]
public override ECPoint ScaleY(ECFieldElement scale)
{
if (!base.IsInfinity)
{
if (this.Detach() > (ulong)1L)
{
return base.ScaleY(scale);
}
int fieldSize = this.m_y.FieldSize;
sbyte b;
TypeCode typeCode = b.GetTypeCode();
bool flag = this.SatisfiesOrder();
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
// Token: 0x0600A50D RID: 42253 RVA: 0x00231228 File Offset: 0x0022F428
[Token(Token = "0x600A50D")]
[Address(RVA = "0x6E4700", Offset = "0x6E3700", VA = "0x1806E4700", Slot = "27")]
public override ECPoint Subtract(ECPoint b)
{
if (!b.IsInfinity)
{
bool flag = base.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600A50E RID: 42254 RVA: 0x0023124C File Offset: 0x0022F44C
[Token(Token = "0x600A50E")]
[Address(RVA = "0x6E4A00", Offset = "0x6E3A00", VA = "0x1806E4A00", Slot = "34")]
public virtual AbstractF2mPoint Tau()
{
/*
An exception occurred when decompiling this method (0600A50E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.AbstractF2mPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.AbstractF2mPoint::Tau()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_85:
stloc:InvalidOperationException(var_15_8F, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported 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.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.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: 0x0600A50F RID: 42255 RVA: 0x002312EC File Offset: 0x0022F4EC
[Token(Token = "0x600A50F")]
[Address(RVA = "0x6E4770", Offset = "0x6E3770", VA = "0x1806E4770", Slot = "35")]
public virtual AbstractF2mPoint TauPow(int pow)
{
/*
An exception occurred when decompiling this method (0600A50F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.AbstractF2mPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.AbstractF2mPoint::TauPow(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_64:
stloc:InvalidOperationException(var_15_6E, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported 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.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.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
*/;
}
}
}
@@ -0,0 +1,67 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC
{
// Token: 0x02001AD1 RID: 6865
[Token(Token = "0x2001AD1")]
public abstract class AbstractFpCurve : ECCurve
{
// Token: 0x0600A429 RID: 42025 RVA: 0x0022D5B8 File Offset: 0x0022B7B8
[Token(Token = "0x600A429")]
[Address(RVA = "0x6E4FA0", Offset = "0x6E3FA0", VA = "0x1806E4FA0")]
protected AbstractFpCurve(BigInteger q)
{
IFiniteField primeField = FiniteFields.GetPrimeField(q);
base..ctor(primeField);
}
// Token: 0x0600A42A RID: 42026 RVA: 0x0022D5D4 File Offset: 0x0022B7D4
[Token(Token = "0x600A42A")]
[Address(RVA = "0x6E4EA0", Offset = "0x6E3EA0", VA = "0x1806E4EA0", Slot = "6")]
public override bool IsValidFieldElement(BigInteger x)
{
if (x != 0)
{
ECPoint ecpoint = this.Infinity;
int num = 0;
num += num;
num++;
ecpoint += ecpoint;
int num2;
num2 += 19;
}
throw new NullReferenceException();
}
// Token: 0x0600A42B RID: 42027 RVA: 0x0022D608 File Offset: 0x0022B808
[Token(Token = "0x600A42B")]
[Address(RVA = "0x6E4CD0", Offset = "0x6E3CD0", VA = "0x1806E4CD0", Slot = "34")]
protected override ECPoint DecompressPoint(int yTilde, BigInteger X1)
{
/*
An exception occurred when decompiling this method (0600A42B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.AbstractFpCurve::DecompressPoint(System.Int32,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_49:
stloc:ArgumentException(var_12_53, 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.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
*/;
}
}
}
@@ -0,0 +1,17 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC
{
// Token: 0x02001AD7 RID: 6871
[Token(Token = "0x2001AD7")]
public abstract class AbstractFpFieldElement : ECFieldElement
{
// Token: 0x0600A473 RID: 42099 RVA: 0x0022E374 File Offset: 0x0022C574
[Token(Token = "0x600A473")]
[Address(RVA = "0x42BA20", Offset = "0x42AA20", VA = "0x18042BA20")]
protected AbstractFpFieldElement()
{
}
}
}
@@ -0,0 +1,85 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC
{
// Token: 0x02001ADF RID: 6879
[Token(Token = "0x2001ADF")]
public abstract class AbstractFpPoint : ECPointBase
{
// Token: 0x0600A4EF RID: 42223 RVA: 0x00230208 File Offset: 0x0022E408
[Token(Token = "0x600A4EF")]
[Address(RVA = "0x6E4CB0", Offset = "0x6E3CB0", VA = "0x1806E4CB0")]
protected AbstractFpPoint(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
}
// Token: 0x0600A4F0 RID: 42224 RVA: 0x00230218 File Offset: 0x0022E418
[Token(Token = "0x600A4F0")]
[Address(RVA = "0x6E4C90", Offset = "0x6E3C90", VA = "0x1806E4C90")]
protected AbstractFpPoint(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x17001A0F RID: 6671
// (get) Token: 0x0600A4F1 RID: 42225 RVA: 0x00230228 File Offset: 0x0022E428
[Token(Token = "0x17001A0F")]
protected internal override bool CompressionYTilde
{
[Token(Token = "0x600A4F1")]
[Address(RVA = "0x6E53B0", Offset = "0x6E43B0", VA = "0x1806E53B0", Slot = "25")]
get
{
BigInteger bigInteger = this.AffineXCoord.ToBigInteger();
throw new NullReferenceException();
}
}
// Token: 0x0600A4F2 RID: 42226 RVA: 0x00230248 File Offset: 0x0022E448
[Token(Token = "0x600A4F2")]
[Address(RVA = "0x6E5010", Offset = "0x6E4010", VA = "0x1806E5010", Slot = "4")]
protected override bool SatisfiesCurveEquation()
{
/*
An exception occurred when decompiling this method (0600A4F2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.AbstractFpPoint::SatisfiesCurveEquation()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_E6:
stloc:InvalidOperationException(var_21_F0, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("unsupported 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.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.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.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: 0x0600A4F3 RID: 42227 RVA: 0x00230348 File Offset: 0x0022E548
[Token(Token = "0x600A4F3")]
[Address(RVA = "0x6E4700", Offset = "0x6E3700", VA = "0x1806E4700", Slot = "27")]
public override ECPoint Subtract(ECPoint b)
{
if (!b.IsInfinity)
{
bool flag = base.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,314 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb
{
// Token: 0x02001B9A RID: 7066
[Token(Token = "0x2001B9A")]
internal class Curve25519 : AbstractFpCurve
{
// Token: 0x0600AD90 RID: 44432 RVA: 0x0025A7D8 File Offset: 0x002589D8
[Token(Token = "0x600AD90")]
[Address(RVA = "0x6E94F0", Offset = "0x6E84F0", VA = "0x1806E94F0")]
public Curve25519()
{
IFiniteField primeField = FiniteFields.GetPrimeField(Curve25519.q);
base..ctor(primeField);
int num;
int num2;
ulong num3;
Curve25519Point curve25519Point = new Curve25519Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = curve25519Point;
byte[] array = Hex.Decode("2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA984914A144");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("7B425ED097B425ED097B425ED097B425ED097B425ED097B4260B5E9C7710C864");
BigInteger bigInteger2 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("1000000000000000000000000000000014DEF9DEA2F79CD65812631A5CF5D3ED");
BigInteger bigInteger3 = new BigInteger(1, array3);
this.m_order = bigInteger3;
BigInteger bigInteger4;
this.m_cofactor = bigInteger4;
this.m_coord = (int)((ulong)4L);
}
// Token: 0x0600AD91 RID: 44433 RVA: 0x0025A88C File Offset: 0x00258A8C
[Token(Token = "0x600AD91")]
[Address(RVA = "0x6E8EC0", Offset = "0x6E7EC0", VA = "0x1806E8EC0", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600AD91)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Curve25519(var_0_05, newobj:Curve25519(Curve25519::.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.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: 0x0600AD92 RID: 44434 RVA: 0x0025A8A0 File Offset: 0x00258AA0
[Token(Token = "0x600AD92")]
[Address(RVA = "0x6E9470", Offset = "0x6E8470", VA = "0x1806E9470", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 4;
}
// Token: 0x17001BA1 RID: 7073
// (get) Token: 0x0600AD93 RID: 44435 RVA: 0x0025A8B4 File Offset: 0x00258AB4
[Token(Token = "0x17001BA1")]
public virtual BigInteger Q
{
[Token(Token = "0x600AD93")]
[Address(RVA = "0x6E9780", Offset = "0x6E8780", VA = "0x1806E9780", Slot = "38")]
get
{
return Curve25519.q;
}
}
// Token: 0x17001BA2 RID: 7074
// (get) Token: 0x0600AD94 RID: 44436 RVA: 0x0025A8C8 File Offset: 0x00258AC8
[Token(Token = "0x17001BA2")]
public override ECPoint Infinity
{
[Token(Token = "0x600AD94")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600AD94)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Curve25519Point(var_0_06, ldfld:Curve25519Point(Curve25519::m_infinity, ldloc:Curve25519(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: 0x17001BA3 RID: 7075
// (get) Token: 0x0600AD95 RID: 44437 RVA: 0x0025A8DC File Offset: 0x00258ADC
[Token(Token = "0x17001BA3")]
public override int FieldSize
{
[Token(Token = "0x600AD95")]
[Address(RVA = "0x6E9710", Offset = "0x6E8710", VA = "0x1806E9710", Slot = "4")]
get
{
return Curve25519.q.BitLength;
}
}
// Token: 0x0600AD96 RID: 44438 RVA: 0x0025A8FC File Offset: 0x00258AFC
[Token(Token = "0x600AD96")]
[Address(RVA = "0x6E92A0", Offset = "0x6E82A0", VA = "0x1806E92A0", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AD96)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_45:
stloc:ArgumentException(var_6_54, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for Curve25519FieldElement"), ldstr:string("x")))
}
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: 0x0600AD97 RID: 44439 RVA: 0x0025A960 File Offset: 0x00258B60
[Token(Token = "0x600AD97")]
[Address(RVA = "0x6E9170", Offset = "0x6E8170", VA = "0x1806E9170", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AD97)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Curve25519Point(var_0_09, newobj:Curve25519Point(Curve25519Point::.ctor, ldloc:Curve25519[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600AD98 RID: 44440 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AD98")]
[Address(RVA = "0x6E9200", Offset = "0x6E8200", VA = "0x1806E9200", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AD99 RID: 44441 RVA: 0x0025A978 File Offset: 0x00258B78
[Token(Token = "0x600AD99")]
[Address(RVA = "0x6E8F10", Offset = "0x6E7F10", VA = "0x1806E8F10", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[len];
num = 0;
if (len <= 0)
{
goto IL_4A;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 16;
IL_4A:
Curve25519.Curve25519LookupTable curve25519LookupTable;
curve25519LookupTable.m_outer = 0;
curve25519LookupTable.m_table = array;
curve25519LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006E30 RID: 28208
[Token(Token = "0x4006E30")]
public static readonly BigInteger q = Nat256.ToBigInteger(Curve25519Field.P);
// Token: 0x04006E31 RID: 28209
[Token(Token = "0x4006E31")]
private const int Curve25519_DEFAULT_COORDS = 4;
// Token: 0x04006E32 RID: 28210
[Token(Token = "0x4006E32")]
private const int CURVE25519_FE_INTS = 8;
// Token: 0x04006E33 RID: 28211
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006E33")]
protected readonly Curve25519Point m_infinity;
// Token: 0x02001B9B RID: 7067
[Token(Token = "0x2001B9B")]
private class Curve25519LookupTable : ECLookupTable
{
// Token: 0x0600AD9B RID: 44443 RVA: 0x0025AA08 File Offset: 0x00258C08
[Token(Token = "0x600AD9B")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal Curve25519LookupTable(Curve25519 outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001BA4 RID: 7076
// (get) Token: 0x0600AD9C RID: 44444 RVA: 0x0025AA30 File Offset: 0x00258C30
[Token(Token = "0x17001BA4")]
public virtual int Size
{
[Token(Token = "0x600AD9C")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600AD9D RID: 44445 RVA: 0x0025AA44 File Offset: 0x00258C44
[Token(Token = "0x600AD9D")]
[Address(RVA = "0x6E7760", Offset = "0x6E6760", VA = "0x1806E7760", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat256.Create();
uint[] array2 = Nat256.Create();
int num = 0;
int num2 = 0;
if (this.m_size > num2)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 16;
num2++;
}
Curve25519 outer = this.m_outer;
new Curve25519FieldElement().x = array;
new Curve25519FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006E34 RID: 28212
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006E34")]
private readonly Curve25519 m_outer;
// Token: 0x04006E35 RID: 28213
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006E35")]
private readonly uint[] m_table;
// Token: 0x04006E36 RID: 28214
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006E36")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,360 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb
{
// Token: 0x02001B9C RID: 7068
[Token(Token = "0x2001B9C")]
internal class Curve25519Field
{
// Token: 0x0600AD9E RID: 44446 RVA: 0x0025AAC4 File Offset: 0x00258CC4
[Token(Token = "0x600AD9E")]
[Address(RVA = "0x6E6970", Offset = "0x6E5970", VA = "0x1806E6970")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
uint num = Nat256.Add(x, y, z);
uint[] p = Curve25519Field.P;
if (Nat256.Gte(z, p))
{
int num2 = Curve25519Field.SubPFrom(z);
}
}
// Token: 0x0600AD9F RID: 44447 RVA: 0x0025AAF4 File Offset: 0x00258CF4
[Token(Token = "0x600AD9F")]
[Address(RVA = "0x6E6560", Offset = "0x6E5560", VA = "0x1806E6560")]
public static void AddExt(uint[] xx, uint[] yy, uint[] zz)
{
uint num = Nat.Add(16, xx, yy, zz);
uint[] pext = Curve25519Field.PExt;
if (Nat.Gte(16, zz, pext))
{
int num2 = Curve25519Field.SubPExtFrom(zz);
}
}
// Token: 0x0600ADA0 RID: 44448 RVA: 0x0025AB28 File Offset: 0x00258D28
[Token(Token = "0x600ADA0")]
[Address(RVA = "0x6E6630", Offset = "0x6E5630", VA = "0x1806E6630")]
public static void AddOne(uint[] x, uint[] z)
{
uint num = Nat.Inc(8, x, z);
uint[] p = Curve25519Field.P;
if (Nat256.Gte(z, p))
{
int num2 = Curve25519Field.SubPFrom(z);
}
}
// Token: 0x0600ADA1 RID: 44449 RVA: 0x0025AB58 File Offset: 0x00258D58
[Token(Token = "0x600ADA1")]
[Address(RVA = "0x6E6A30", Offset = "0x6E5A30", VA = "0x1806E6A30")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat256.FromBigInteger(x);
uint[] p = Curve25519Field.P;
if (Nat256.Gte(array, p))
{
int num = Nat256.SubFrom(Curve25519Field.P, array);
}
return array;
}
// Token: 0x0600ADA2 RID: 44450 RVA: 0x0025AB8C File Offset: 0x00258D8C
[Token(Token = "0x600ADA2")]
[Address(RVA = "0x6E6B00", Offset = "0x6E5B00", VA = "0x1806E6B00")]
public static void Half(uint[] x, uint[] z)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
uint[] p = Curve25519Field.P;
uint num = Nat256.Add(x, p, z);
int num2 = 0;
uint num3 = Nat.ShiftDownBit(8, z, (uint)num2);
return;
}
int num4 = 0;
uint num5 = Nat.ShiftDownBit(8, x, (uint)num4, z);
}
// Token: 0x0600ADA3 RID: 44451 RVA: 0x0025ABD4 File Offset: 0x00258DD4
[Token(Token = "0x600ADA3")]
[Address(RVA = "0x6E6CB0", Offset = "0x6E5CB0", VA = "0x1806E6CB0")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Mul(x, y, array);
Curve25519Field.Reduce(array, z);
}
// Token: 0x0600ADA4 RID: 44452 RVA: 0x0025ABF8 File Offset: 0x00258DF8
[Token(Token = "0x600ADA4")]
[Address(RVA = "0x6E6BE0", Offset = "0x6E5BE0", VA = "0x1806E6BE0")]
public static void MultiplyAddToExt(uint[] x, uint[] y, uint[] zz)
{
uint num = Nat256.MulAddTo(x, y, zz);
uint[] pext = Curve25519Field.PExt;
if (Nat.Gte(16, zz, pext))
{
int num2 = Curve25519Field.SubPExtFrom(zz);
}
}
// Token: 0x0600ADA5 RID: 44453 RVA: 0x0025AC28 File Offset: 0x00258E28
[Token(Token = "0x600ADA5")]
[Address(RVA = "0x6E6D50", Offset = "0x6E5D50", VA = "0x1806E6D50")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat256.IsZero(x))
{
int num = Nat256.Sub(Curve25519Field.P, x, z);
return;
}
Nat256.Zero(z);
}
// Token: 0x0600ADA6 RID: 44454 RVA: 0x0025AC54 File Offset: 0x00258E54
[Token(Token = "0x600ADA6")]
[Address(RVA = "0x6E6F10", Offset = "0x6E5F10", VA = "0x1806E6F10")]
public static void Reduce(uint[] xx, uint[] z)
{
uint num = xx[3];
int num2 = 0;
uint num4;
uint num3 = Nat.ShiftUpBit((int)num4, xx, (int)num4, num, z, num2);
uint num5 = Nat256.MulByWordAddTo((uint)19, xx, z);
uint num6 = z[3];
long num7 = (long)((uint)19 * (uint)19);
uint num8 = Nat.AddWordTo(7, (uint)num7, z);
num8 += num6;
z[3] = num8;
uint[] p = Curve25519Field.P;
if (Nat256.Gte(z, p))
{
int num9 = Curve25519Field.SubPFrom(z);
}
}
// Token: 0x0600ADA7 RID: 44455 RVA: 0x0025ACD4 File Offset: 0x00258ED4
[Token(Token = "0x600ADA7")]
[Address(RVA = "0x6E6DF0", Offset = "0x6E5DF0", VA = "0x1806E6DF0")]
public static void Reduce27(uint x, uint[] z)
{
uint num = z[3];
long num2 = (long)(num * (uint)19);
uint num3 = Nat.AddWordTo(7, (uint)num2, z);
num3 += num;
z[3] = num3;
uint[] p = Curve25519Field.P;
if (Nat256.Gte(z, p))
{
int num4 = Curve25519Field.SubPFrom(z);
}
}
// Token: 0x0600ADA8 RID: 44456 RVA: 0x0025AD24 File Offset: 0x00258F24
[Token(Token = "0x600ADA8")]
[Address(RVA = "0x6E7170", Offset = "0x6E6170", VA = "0x1806E7170")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Square(x, array);
Curve25519Field.Reduce(array, z);
}
// Token: 0x0600ADA9 RID: 44457 RVA: 0x0025AD48 File Offset: 0x00258F48
[Token(Token = "0x600ADA9")]
[Address(RVA = "0x6E7090", Offset = "0x6E6090", VA = "0x1806E7090")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Square(x, array);
Curve25519Field.Reduce(array, z);
if (n > 0)
{
Nat256.Square(z, array);
Curve25519Field.Reduce(array, z);
}
}
// Token: 0x0600ADAA RID: 44458 RVA: 0x0025AD80 File Offset: 0x00258F80
[Token(Token = "0x600ADAA")]
[Address(RVA = "0x6E7510", Offset = "0x6E6510", VA = "0x1806E7510")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
if (Nat256.Sub(x, y, z) != 0)
{
uint num = z[0];
z[0] = num;
if (num != (uint)0)
{
int num2 = Nat.DecAt(7, z, 1);
}
uint num3 = z[3];
uint num4;
num3 += num4;
num += num3;
z[3] = num;
}
}
// Token: 0x0600ADAB RID: 44459 RVA: 0x0025ADD4 File Offset: 0x00258FD4
[Token(Token = "0x600ADAB")]
[Address(RVA = "0x6E7480", Offset = "0x6E6480", VA = "0x1806E7480")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(16, xx, yy, zz) != 0)
{
uint num = Curve25519Field.AddPExtTo(zz);
}
}
// Token: 0x0600ADAC RID: 44460 RVA: 0x0025ADF8 File Offset: 0x00258FF8
[Token(Token = "0x600ADAC")]
[Address(RVA = "0x6E7600", Offset = "0x6E6600", VA = "0x1806E7600")]
public static void Twice(uint[] x, uint[] z)
{
int num = 0;
uint num2 = Nat.ShiftUpBit(8, x, (uint)num, z);
uint[] p = Curve25519Field.P;
if (Nat256.Gte(z, p))
{
int num3 = Curve25519Field.SubPFrom(z);
}
}
// Token: 0x0600ADAD RID: 44461 RVA: 0x0025AE2C File Offset: 0x0025902C
[Token(Token = "0x600ADAD")]
[Address(RVA = "0x6E68E0", Offset = "0x6E58E0", VA = "0x1806E68E0")]
private static uint AddPTo(uint[] z)
{
uint num = z[0];
z[0] = num;
if (num != (uint)0)
{
int num2 = Nat.DecAt(7, z, 1);
}
uint num3 = z[3];
uint num4;
num4 += num;
num4 += num3;
z[3] = num4;
return num4;
}
// Token: 0x0600ADAE RID: 44462 RVA: 0x0025AE78 File Offset: 0x00259078
[Token(Token = "0x600ADAE")]
[Address(RVA = "0x6E66F0", Offset = "0x6E56F0", VA = "0x1806E66F0")]
private static uint AddPExtTo(uint[] zz)
{
uint num = zz[0];
uint num2 = Curve25519Field.PExt[0];
num2 += num;
zz[0] = num2;
if (num2 != (uint)0)
{
uint num3 = Nat.IncAt(8, zz, 1);
}
uint num4 = zz[4];
num4 += (uint)(-19);
num4 += num2;
zz[4] = num4;
if (num4 != (uint)0)
{
int num5 = Nat.DecAt(15, zz, 9);
}
uint num6 = Curve25519Field.PExt[7];
num6 += (uint)1;
zz[7] = zz;
return zz;
}
// Token: 0x0600ADAF RID: 44463 RVA: 0x0025AF04 File Offset: 0x00259104
[Token(Token = "0x600ADAF")]
[Address(RVA = "0x6E73F0", Offset = "0x6E63F0", VA = "0x1806E73F0")]
private static int SubPFrom(uint[] z)
{
uint num = z[0];
num += (uint)19;
z[0] = num;
if (num != (uint)0)
{
uint num2 = Nat.IncAt(7, z, 1);
}
uint num3 = z[3];
num3 += (uint)int.MinValue;
num += num3;
z[3] = num;
throw new NullReferenceException();
}
// Token: 0x0600ADB0 RID: 44464 RVA: 0x0025AF5C File Offset: 0x0025915C
[Token(Token = "0x600ADB0")]
[Address(RVA = "0x6E7200", Offset = "0x6E6200", VA = "0x1806E7200")]
private static int SubPExtFrom(uint[] zz)
{
uint num = zz[0];
uint num2 = Curve25519Field.PExt[0];
num -= num2;
zz[0] = num;
if (num != (uint)0)
{
int num3 = Nat.DecAt(8, zz, 1);
}
uint num4 = zz[4];
num4 += (uint)19;
num4 += num;
zz[4] = num4;
if (num4 != (uint)0)
{
num4 = Nat.IncAt(15, zz, 9);
}
uint num5 = zz[7];
uint num6 = Curve25519Field.PExt[7];
num6 += (uint)1;
num5 -= num6;
num4 += num5;
zz[7] = num4;
throw new NullReferenceException();
}
// Token: 0x0600ADB1 RID: 44465 RVA: 0x0025AFFC File Offset: 0x002591FC
[Token(Token = "0x600ADB1")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public Curve25519Field()
{
}
// Token: 0x0600ADB2 RID: 44466 RVA: 0x0025B010 File Offset: 0x00259210
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600ADB2")]
[Address(RVA = "0x6E76C0", Offset = "0x6E66C0", VA = "0x1806E76C0")]
static Curve25519Field()
{
uint[] array = new uint[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.86B0F85AC13B58F88DEFFD8FD6EE095438B98F10).FieldHandle);
Curve25519Field.P = array;
uint[] array2 = new uint[16];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.EAEB85AB6D40E0AB7CE0F65EF7EDF588A4DD81C9).FieldHandle);
Curve25519Field.PExt = array2;
}
// Token: 0x04006E37 RID: 28215
[Token(Token = "0x4006E37")]
internal static readonly uint[] P;
// Token: 0x04006E38 RID: 28216
[Token(Token = "0x4006E38")]
private const uint P7 = 2147483647U;
// Token: 0x04006E39 RID: 28217
[Token(Token = "0x4006E39")]
private static readonly uint[] PExt;
// Token: 0x04006E3A RID: 28218
[Token(Token = "0x4006E3A")]
private const uint PInv = 19U;
}
}
@@ -0,0 +1,452 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb
{
// Token: 0x02001B9D RID: 7069
[Token(Token = "0x2001B9D")]
internal class Curve25519FieldElement : AbstractFpFieldElement
{
// Token: 0x0600ADB3 RID: 44467 RVA: 0x0025B050 File Offset: 0x00259250
[Token(Token = "0x600ADB3")]
[Address(RVA = "0x6E62C0", Offset = "0x6E52C0", VA = "0x1806E62C0")]
public Curve25519FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600ADB3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_44:
stloc:ArgumentException(var_5_53, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for Curve25519FieldElement"), ldstr:string("x")))
}
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: 0x0600ADB4 RID: 44468 RVA: 0x0025B0B4 File Offset: 0x002592B4
[Token(Token = "0x600ADB4")]
[Address(RVA = "0x6E6470", Offset = "0x6E5470", VA = "0x1806E6470")]
public Curve25519FieldElement()
{
uint[] array = Nat256.Create();
this.x = array;
}
// Token: 0x0600ADB5 RID: 44469 RVA: 0x0025B0D8 File Offset: 0x002592D8
[Token(Token = "0x600ADB5")]
[Address(RVA = "0x681CA0", Offset = "0x680CA0", VA = "0x180681CA0")]
protected internal Curve25519FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001BA5 RID: 7077
// (get) Token: 0x0600ADB6 RID: 44470 RVA: 0x0025B0F4 File Offset: 0x002592F4
[Token(Token = "0x17001BA5")]
public override bool IsZero
{
[Token(Token = "0x600ADB6")]
[Address(RVA = "0x6E6550", Offset = "0x6E5550", VA = "0x1806E6550", Slot = "18")]
get
{
return Nat256.IsZero(this.x);
}
}
// Token: 0x17001BA6 RID: 7078
// (get) Token: 0x0600ADB7 RID: 44471 RVA: 0x0025B10C File Offset: 0x0025930C
[Token(Token = "0x17001BA6")]
public override bool IsOne
{
[Token(Token = "0x600ADB7")]
[Address(RVA = "0x6E6540", Offset = "0x6E5540", VA = "0x1806E6540", Slot = "17")]
get
{
return Nat256.IsOne(this.x);
}
}
// Token: 0x0600ADB8 RID: 44472 RVA: 0x0025B124 File Offset: 0x00259324
[Token(Token = "0x600ADB8")]
[Address(RVA = "0x6E61E0", Offset = "0x6E51E0", VA = "0x1806E61E0", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat256.GetBit(array, num) == (uint)1;
}
// Token: 0x0600ADB9 RID: 44473 RVA: 0x0025B148 File Offset: 0x00259348
[Token(Token = "0x600ADB9")]
[Address(RVA = "0x6E6200", Offset = "0x6E5200", VA = "0x1806E6200", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat256.ToBigInteger(this.x);
}
// Token: 0x17001BA7 RID: 7079
// (get) Token: 0x0600ADBA RID: 44474 RVA: 0x0025B160 File Offset: 0x00259360
[Token(Token = "0x17001BA7")]
public override string FieldName
{
[Token(Token = "0x600ADBA")]
[Address(RVA = "0x6E64A0", Offset = "0x6E54A0", VA = "0x1806E64A0", Slot = "5")]
get
{
return "Curve25519Field";
}
}
// Token: 0x17001BA8 RID: 7080
// (get) Token: 0x0600ADBB RID: 44475 RVA: 0x0025B174 File Offset: 0x00259374
[Token(Token = "0x17001BA8")]
public override int FieldSize
{
[Token(Token = "0x600ADBB")]
[Address(RVA = "0x6E64D0", Offset = "0x6E54D0", VA = "0x1806E64D0", Slot = "6")]
get
{
return Curve25519FieldElement.Q.BitLength;
}
}
// Token: 0x0600ADBC RID: 44476 RVA: 0x0025B194 File Offset: 0x00259394
[Token(Token = "0x600ADBC")]
[Address(RVA = "0x6E5510", Offset = "0x6E4510", VA = "0x1806E5510", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(Curve25519FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] p = Curve25519Field.P;
if (Nat256.Gte(array, p))
{
int num = Curve25519Field.SubPFrom(array);
}
new Curve25519FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600ADBD RID: 44477 RVA: 0x0025B1F4 File Offset: 0x002593F4
[Token(Token = "0x600ADBD")]
[Address(RVA = "0x6E53F0", Offset = "0x6E43F0", VA = "0x1806E53F0", Slot = "8")]
public override ECFieldElement AddOne()
{
/*
An exception occurred when decompiling this method (0600ADBD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::AddOne()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_32:
stfld:uint32[](Curve25519FieldElement::x, newobj:Curve25519FieldElement(Curve25519FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600ADBE RID: 44478 RVA: 0x0025B240 File Offset: 0x00259440
[Token(Token = "0x600ADBE")]
[Address(RVA = "0x6E60A0", Offset = "0x6E50A0", VA = "0x1806E60A0", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(Curve25519FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new Curve25519FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600ADBF RID: 44479 RVA: 0x0025B288 File Offset: 0x00259488
[Token(Token = "0x600ADBF")]
[Address(RVA = "0x6E5B30", Offset = "0x6E4B30", VA = "0x1806E5B30", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(Curve25519FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new Curve25519FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600ADC0 RID: 44480 RVA: 0x0025B2D0 File Offset: 0x002594D0
[Token(Token = "0x600ADC0")]
[Address(RVA = "0x6E56E0", Offset = "0x6E46E0", VA = "0x1806E56E0", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] p = Curve25519Field.P;
if ("{il2cpp array field local3->}" == typeof(Curve25519FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
Curve25519Field.Multiply(array, array2, array);
new Curve25519FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600ADC1 RID: 44481 RVA: 0x0025B328 File Offset: 0x00259528
[Token(Token = "0x600ADC1")]
[Address(RVA = "0x6E5C70", Offset = "0x6E4C70", VA = "0x1806E5C70", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600ADC1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
call:void(Curve25519Field::Negate, ldfld:uint32[](Curve25519FieldElement::x, ldloc:Curve25519FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](Curve25519FieldElement::x, newobj:Curve25519FieldElement(Curve25519FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600ADC2 RID: 44482 RVA: 0x0025B354 File Offset: 0x00259554
[Token(Token = "0x600ADC2")]
[Address(RVA = "0x6E6010", Offset = "0x6E5010", VA = "0x1806E6010", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600ADC2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
call:void(Curve25519Field::Square, ldfld:uint32[](Curve25519FieldElement::x, ldloc:Curve25519FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](Curve25519FieldElement::x, newobj:Curve25519FieldElement(Curve25519FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600ADC3 RID: 44483 RVA: 0x0025B380 File Offset: 0x00259580
[Token(Token = "0x600ADC3")]
[Address(RVA = "0x6E5A60", Offset = "0x6E4A60", VA = "0x1806E5A60", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600ADC3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
stloc:uint32[](var_2_0E, ldfld:uint32[](Curve25519FieldElement::x, ldloc:Curve25519FieldElement(this)))
call:void(Mod::Invert, ldsfld:uint32[](Curve25519Field::P), ldloc:uint32[](var_2_0E), ldloc:uint32[](var_1_07))
stfld:uint32[](Curve25519FieldElement::x, newobj:Curve25519FieldElement(Curve25519FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600ADC4 RID: 44484 RVA: 0x0025B3B4 File Offset: 0x002595B4
[Token(Token = "0x600ADC4")]
[Address(RVA = "0x6E5D00", Offset = "0x6E4D00", VA = "0x1806E5D00", Slot = "15")]
public override ECFieldElement Sqrt()
{
/*
An exception occurred when decompiling this method (0600ADC4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::Sqrt()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_148:
stfld:uint32[](Curve25519FieldElement::x, newobj:Curve25519FieldElement(Curve25519FieldElement::.ctor), ldloc:uint32[](var_2_20))
}
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: 0x0600ADC5 RID: 44485 RVA: 0x0025B514 File Offset: 0x00259714
[Token(Token = "0x600ADC5")]
[Address(RVA = "0x6E5880", Offset = "0x6E4880", VA = "0x1806E5880", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600ADC5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:Curve25519FieldElement[exp:ECFieldElement](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: 0x0600ADC6 RID: 44486 RVA: 0x0025B530 File Offset: 0x00259730
[Token(Token = "0x600ADC6")]
[Address(RVA = "0x6E5910", Offset = "0x6E4910", VA = "0x1806E5910", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600ADC6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:Curve25519FieldElement[exp:ECFieldElement](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: 0x0600ADC7 RID: 44487 RVA: 0x0025B54C File Offset: 0x0025974C
[Token(Token = "0x600ADC7")]
[Address(RVA = "0x6E5860", Offset = "0x6E4860", VA = "0x1806E5860", Slot = "27")]
public virtual bool Equals(Curve25519FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
return Nat256.Eq(this.x, array);
}
}
return true;
}
// Token: 0x0600ADC8 RID: 44488 RVA: 0x0025B578 File Offset: 0x00259778
[Token(Token = "0x600ADC8")]
[Address(RVA = "0x6E59A0", Offset = "0x6E49A0", VA = "0x1806E59A0", Slot = "2")]
public override int GetHashCode()
{
Curve25519FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 8);
}
// Token: 0x0600ADC9 RID: 44489 RVA: 0x0025B5A8 File Offset: 0x002597A8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600ADC9")]
[Address(RVA = "0x6E6210", Offset = "0x6E5210", VA = "0x1806E6210")]
static Curve25519FieldElement()
{
uint[] array = new uint[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6AAC0DB543C50F09E879F5B9F757319773564CE1).FieldHandle);
Curve25519FieldElement.PRECOMP_POW2 = array;
}
// Token: 0x04006E3B RID: 28219
[Token(Token = "0x4006E3B")]
public static readonly BigInteger Q = Curve25519.q;
// Token: 0x04006E3C RID: 28220
[Token(Token = "0x4006E3C")]
private static readonly uint[] PRECOMP_POW2;
// Token: 0x04006E3D RID: 28221
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006E3D")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,406 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb
{
// Token: 0x02001B9E RID: 7070
[Token(Token = "0x2001B9E")]
internal class Curve25519Point : AbstractFpPoint
{
// Token: 0x0600ADCA RID: 44490 RVA: 0x0025B5D8 File Offset: 0x002597D8
[Token(Token = "0x600ADCA")]
[Address(RVA = "0x6E8EA0", Offset = "0x6E7EA0", VA = "0x1806E8EA0")]
public Curve25519Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600ADCB RID: 44491 RVA: 0x0025B5E8 File Offset: 0x002597E8
[Token(Token = "0x600ADCB")]
[Address(RVA = "0x6E8DE0", Offset = "0x6E7DE0", VA = "0x1806E8DE0")]
public Curve25519Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600ADCB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600ADCC RID: 44492 RVA: 0x0025B610 File Offset: 0x00259810
[Token(Token = "0x600ADCC")]
[Address(RVA = "0x6E4C90", Offset = "0x6E3C90", VA = "0x1806E4C90")]
internal Curve25519Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600ADCD RID: 44493 RVA: 0x0025B620 File Offset: 0x00259820
[Token(Token = "0x600ADCD")]
[Address(RVA = "0x6E8310", Offset = "0x6E7310", VA = "0x1806E8310", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600ADCD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:Curve25519Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:Curve25519Point[exp: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: 0x0600ADCE RID: 44494 RVA: 0x0025B63C File Offset: 0x0025983C
[Token(Token = "0x600ADCE")]
[Address(RVA = "0x6E8540", Offset = "0x6E7540", VA = "0x1806E8540", Slot = "13")]
public override ECFieldElement GetZCoord(int index)
{
/*
An exception occurred when decompiling this method (0600ADCE)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519Point::GetZCoord(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_0C:
stloc:bool(var_0_12, call:bool(ECPoint::SatisfiesCurveEquation, ldloc:Curve25519Point[exp: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.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: 0x0600ADCF RID: 44495 RVA: 0x0025B65C File Offset: 0x0025985C
[Token(Token = "0x600ADCF")]
[Address(RVA = "0x6E7980", Offset = "0x6E6980", VA = "0x1806E7980", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this == b)
{
return b;
}
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat256.CreateExt();
uint[] array2 = Nat256.Create();
uint[] array3 = Nat256.Create();
uint[] array4 = Nat256.Create();
if (array4 == 0)
{
Curve25519Field.Square(array4, array3);
Curve25519Field.Multiply(array3, array3, array2);
Curve25519Field.Multiply(array3, array3, array3);
Curve25519Field.Multiply(array3, array3, array3);
}
Curve25519Field.Multiply(array4, array4, array);
Curve25519Field.Multiply(array4, array4, array4);
Curve25519Field.Multiply(array4, array4, array4);
uint[] array5 = Nat256.Create();
if (!Nat256.IsZero(array5))
{
uint[] array6 = Nat256.Create();
Curve25519Field.Square(array5, array6);
uint[] array7 = Nat256.Create();
Curve25519Field.Multiply(array6, array5, array7);
Curve25519Field.Negate(array7, array7);
Curve25519Field.Reduce27(Nat256.AddBothTo(array3, array3, array7), array7);
Curve25519FieldElement curve25519FieldElement = new Curve25519FieldElement();
curve25519FieldElement.x = array4;
Curve25519Field.Square(array2, array4);
uint[] x = curve25519FieldElement.x;
Curve25519Field.Subtract(x, array7, x);
Curve25519FieldElement curve25519FieldElement2 = new Curve25519FieldElement();
curve25519FieldElement2.x = array7;
uint[] x2 = curve25519FieldElement.x;
Curve25519Field.Subtract(array3, x2, array7);
uint[] x3 = curve25519FieldElement2.x;
uint num = Nat256.MulAddTo(x3, array2, array);
uint[] pext = Curve25519Field.PExt;
if (Nat.Gte(16, array, pext))
{
int num2 = Curve25519Field.SubPExtFrom(array);
}
uint[] x4 = curve25519FieldElement2.x;
Curve25519Field.Reduce(array, x4);
Curve25519FieldElement curve25519FieldElement3 = new Curve25519FieldElement();
curve25519FieldElement3.x = array5;
Curve25519Field.Multiply(array5, x3, array5);
uint[] x5 = curve25519FieldElement3.x;
Curve25519Field.Multiply(x5, array, x5);
ECPoint ecpoint = this.ThreeTimes();
ECFieldElement[] array8 = new ECFieldElement[2];
throw new ArrayTypeMismatchException();
}
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600ADD0 RID: 44496 RVA: 0x0025B878 File Offset: 0x00259A78
[Token(Token = "0x600ADD0")]
[Address(RVA = "0x6E8D40", Offset = "0x6E7D40", VA = "0x1806E8D40", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
if (!this.m_y.IsOne)
{
bool flag2 = base.SatisfiesCurveEquation();
}
TypeCode typeCode = ((IConvertible)flag).GetTypeCode();
}
throw new NullReferenceException();
}
// Token: 0x0600ADD1 RID: 44497 RVA: 0x0025B8B8 File Offset: 0x00259AB8
[Token(Token = "0x600ADD1")]
[Address(RVA = "0x6E8C50", Offset = "0x6E7C50", VA = "0x1806E8C50", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
BigInteger bigInteger = this.GetJacobianModifiedW().ToBigInteger();
}
bool flag = base.SatisfiesCurveEquation();
}
return b;
}
bool flag2 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600ADD2 RID: 44498 RVA: 0x0025B90C File Offset: 0x00259B0C
[Token(Token = "0x600ADD2")]
[Address(RVA = "0x6E8660", Offset = "0x6E7660", VA = "0x1806E8660", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
BigInteger bigInteger = this.GetJacobianModifiedW().ToBigInteger();
}
throw new NullReferenceException();
}
// Token: 0x0600ADD3 RID: 44499 RVA: 0x0025B944 File Offset: 0x00259B44
[Token(Token = "0x600ADD3")]
[Address(RVA = "0x6E8560", Offset = "0x6E7560", VA = "0x1806E8560", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
// Token: 0x0600ADD4 RID: 44500 RVA: 0x0025B97C File Offset: 0x00259B7C
[Token(Token = "0x600ADD4")]
[Address(RVA = "0x6E8160", Offset = "0x6E7160", VA = "0x1806E8160", Slot = "34")]
protected virtual Curve25519FieldElement CalculateJacobianModifiedW(Curve25519FieldElement Z, uint[] ZSquared)
{
bool flag2;
do
{
bool flag = this.SatisfiesOrder();
if (!flag2)
{
}
}
while (!flag2);
if (Z.BitLength == 0)
{
Curve25519FieldElement curve25519FieldElement = new Curve25519FieldElement();
uint[] array = Nat256.Create();
curve25519FieldElement.x = array;
if (ZSquared == 0)
{
Curve25519Field.Square(Z.x, array);
}
uint[] x = curve25519FieldElement.x;
Curve25519Field.Square(array, x);
uint[] x2 = curve25519FieldElement.x;
Curve25519Field.Multiply(x2, x, x2);
return curve25519FieldElement;
}
throw new NullReferenceException();
}
// Token: 0x0600ADD5 RID: 44501 RVA: 0x0025B9F8 File Offset: 0x00259BF8
[Token(Token = "0x600ADD5")]
[Address(RVA = "0x6E83B0", Offset = "0x6E73B0", VA = "0x1806E83B0", Slot = "35")]
protected virtual Curve25519FieldElement GetJacobianModifiedW()
{
ECFieldElement[] zs;
for (;;)
{
zs = this.m_zs;
int length = zs.Length;
ECFieldElement ecfieldElement = zs[1];
if (ecfieldElement == 0 || ecfieldElement != 0)
{
ECFieldElement ecfieldElement2 = zs[0];
if (ecfieldElement2 == 0)
{
}
if (ecfieldElement2 != 0)
{
break;
}
}
}
ECPoint ecpoint = this.ThreeTimes();
if (ecpoint != 0)
{
}
zs[1] = ecpoint;
throw new NullReferenceException();
}
// Token: 0x0600ADD6 RID: 44502 RVA: 0x0025BA58 File Offset: 0x00259C58
[Token(Token = "0x600ADD6")]
[Address(RVA = "0x6E86E0", Offset = "0x6E76E0", VA = "0x1806E86E0", Slot = "36")]
protected virtual Curve25519Point TwiceJacobianModified(bool calculateW)
{
for (;;)
{
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement y = this.m_y;
if (y == 0)
{
}
if (y != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
break;
}
}
}
}
uint[] array = Nat256.Create();
uint num = Nat256.AddBothTo(array, array, array);
Curve25519FieldElement curve25519FieldElement;
uint[] x2 = curve25519FieldElement.x;
uint num2 = Nat256.AddTo(x2, array);
Curve25519Field.Reduce27(x2, array);
uint[] array2 = Nat256.Create();
uint[] array3 = Nat256.Create();
Curve25519Field.Multiply(array2, array2, array3);
uint[] array4 = Nat256.Create();
Curve25519Field.Multiply(array3, array2, array4);
Curve25519Field.Twice(array4, array4);
uint[] array5 = Nat256.Create();
Curve25519Field.Square(array3, array5);
Curve25519Field.Twice(array5, array5);
Curve25519FieldElement curve25519FieldElement2 = new Curve25519FieldElement();
curve25519FieldElement2.x = array3;
Curve25519Field.Square(array, array3);
uint[] x3 = curve25519FieldElement2.x;
Curve25519Field.Subtract(x3, array4, x3);
uint[] x4 = curve25519FieldElement2.x;
Curve25519Field.Subtract(x4, array4, x4);
Curve25519FieldElement curve25519FieldElement3 = new Curve25519FieldElement();
curve25519FieldElement3.x = array4;
uint[] x5 = curve25519FieldElement2.x;
Curve25519Field.Subtract(array4, x5, array4);
uint[] x6 = curve25519FieldElement3.x;
Curve25519Field.Multiply(x6, array, x6);
uint[] x7 = curve25519FieldElement3.x;
Curve25519Field.Subtract(x7, array5, x7);
Curve25519FieldElement curve25519FieldElement4 = new Curve25519FieldElement();
curve25519FieldElement4.x = array2;
bool flag;
if (!flag)
{
uint[] x8 = curve25519FieldElement4.x;
}
Curve25519FieldElement curve25519FieldElement5;
if (calculateW)
{
curve25519FieldElement5 = new Curve25519FieldElement();
curve25519FieldElement5.x = array5;
uint[] x9 = curve25519FieldElement.x;
Curve25519Field.Multiply(array5, x9, array5);
uint[] x10 = curve25519FieldElement5.x;
Curve25519Field.Twice(x10, x10);
}
bool flag2 = this.SatisfiesOrder();
ECFieldElement[] array6 = new ECFieldElement[2];
array6[0] = curve25519FieldElement4;
if (curve25519FieldElement5 != 0)
{
}
array6[1] = curve25519FieldElement5;
bool withCompression = this.m_withCompression;
Curve25519Point curve25519Point;
return curve25519Point;
}
}
}
@@ -0,0 +1,324 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM
{
// Token: 0x02001B95 RID: 7061
[Token(Token = "0x2001B95")]
internal class SM2P256V1Curve : AbstractFpCurve
{
// Token: 0x0600AD4F RID: 44367 RVA: 0x0025939C File Offset: 0x0025759C
[Token(Token = "0x600AD4F")]
[Address(RVA = "0x6E9CD0", Offset = "0x6E8CD0", VA = "0x1806E9CD0")]
public SM2P256V1Curve()
{
IFiniteField primeField = FiniteFields.GetPrimeField(SM2P256V1Curve.q);
base..ctor(primeField);
int num;
int num2;
ulong num3;
SM2P256V1Point sm2P256V1Point = new SM2P256V1Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = sm2P256V1Point;
byte[] array = Hex.Decode("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93");
BigInteger bigInteger2 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123");
BigInteger bigInteger3 = new BigInteger(1, array3);
this.m_order = bigInteger3;
BigInteger one = BigInteger.One;
this.m_cofactor = one;
this.m_coord = (int)((ulong)2L);
}
// Token: 0x0600AD50 RID: 44368 RVA: 0x00259458 File Offset: 0x00257658
[Token(Token = "0x600AD50")]
[Address(RVA = "0x6E97E0", Offset = "0x6E87E0", VA = "0x1806E97E0", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600AD50)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM.SM2P256V1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SM2P256V1Curve(var_0_05, newobj:SM2P256V1Curve(SM2P256V1Curve::.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.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: 0x0600AD51 RID: 44369 RVA: 0x0025946C File Offset: 0x0025766C
[Token(Token = "0x600AD51")]
[Address(RVA = "0x6E9C20", Offset = "0x6E8C20", VA = "0x1806E9C20", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 2;
}
// Token: 0x17001B99 RID: 7065
// (get) Token: 0x0600AD52 RID: 44370 RVA: 0x00259480 File Offset: 0x00257680
[Token(Token = "0x17001B99")]
public virtual BigInteger Q
{
[Token(Token = "0x600AD52")]
[Address(RVA = "0x6E9F60", Offset = "0x6E8F60", VA = "0x1806E9F60", Slot = "38")]
get
{
return SM2P256V1Curve.q;
}
}
// Token: 0x17001B9A RID: 7066
// (get) Token: 0x0600AD53 RID: 44371 RVA: 0x00259494 File Offset: 0x00257694
[Token(Token = "0x17001B9A")]
public override ECPoint Infinity
{
[Token(Token = "0x600AD53")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600AD53)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM.SM2P256V1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SM2P256V1Point(var_0_06, ldfld:SM2P256V1Point(SM2P256V1Curve::m_infinity, ldloc:SM2P256V1Curve(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: 0x17001B9B RID: 7067
// (get) Token: 0x0600AD54 RID: 44372 RVA: 0x002594A8 File Offset: 0x002576A8
[Token(Token = "0x17001B9B")]
public override int FieldSize
{
[Token(Token = "0x600AD54")]
[Address(RVA = "0x6E9EF0", Offset = "0x6E8EF0", VA = "0x1806E9EF0", Slot = "4")]
get
{
return SM2P256V1Curve.q.BitLength;
}
}
// Token: 0x0600AD55 RID: 44373 RVA: 0x002594C8 File Offset: 0x002576C8
[Token(Token = "0x600AD55")]
[Address(RVA = "0x6E9BC0", Offset = "0x6E8BC0", VA = "0x1806E9BC0", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AD55)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM.SM2P256V1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SM2P256V1FieldElement(var_0_06, newobj:SM2P256V1FieldElement(SM2P256V1FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600AD56 RID: 44374 RVA: 0x002594DC File Offset: 0x002576DC
[Token(Token = "0x600AD56")]
[Address(RVA = "0x6E9B30", Offset = "0x6E8B30", VA = "0x1806E9B30", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AD56)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM.SM2P256V1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SM2P256V1Point(var_0_09, newobj:SM2P256V1Point(SM2P256V1Point::.ctor, ldloc:SM2P256V1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600AD57 RID: 44375 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AD57")]
[Address(RVA = "0x6E9A90", Offset = "0x6E8A90", VA = "0x1806E9A90", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AD58 RID: 44376 RVA: 0x002594F4 File Offset: 0x002576F4
[Token(Token = "0x600AD58")]
[Address(RVA = "0x6E9830", Offset = "0x6E8830", VA = "0x1806E9830", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[len];
num = 0;
if (len <= 0)
{
goto IL_4A;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 16;
IL_4A:
SM2P256V1Curve.SM2P256V1LookupTable sm2P256V1LookupTable;
sm2P256V1LookupTable.m_outer = 0;
sm2P256V1LookupTable.m_table = array;
sm2P256V1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x0600AD59 RID: 44377 RVA: 0x00259568 File Offset: 0x00257768
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600AD59")]
[Address(RVA = "0x6E9C30", Offset = "0x6E8C30", VA = "0x1806E9C30")]
static SM2P256V1Curve()
{
byte[] array = Hex.Decode("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF");
SM2P256V1Curve.q = new BigInteger(1, array);
}
// Token: 0x04006E23 RID: 28195
[Token(Token = "0x4006E23")]
public static readonly BigInteger q;
// Token: 0x04006E24 RID: 28196
[Token(Token = "0x4006E24")]
private const int SM2P256V1_DEFAULT_COORDS = 2;
// Token: 0x04006E25 RID: 28197
[Token(Token = "0x4006E25")]
private const int SM2P256V1_FE_INTS = 8;
// Token: 0x04006E26 RID: 28198
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006E26")]
protected readonly SM2P256V1Point m_infinity;
// Token: 0x02001B96 RID: 7062
[Token(Token = "0x2001B96")]
private class SM2P256V1LookupTable : ECLookupTable
{
// Token: 0x0600AD5A RID: 44378 RVA: 0x0025958C File Offset: 0x0025778C
[Token(Token = "0x600AD5A")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SM2P256V1LookupTable(SM2P256V1Curve outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001B9C RID: 7068
// (get) Token: 0x0600AD5B RID: 44379 RVA: 0x002595B4 File Offset: 0x002577B4
[Token(Token = "0x17001B9C")]
public virtual int Size
{
[Token(Token = "0x600AD5B")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600AD5C RID: 44380 RVA: 0x002595C8 File Offset: 0x002577C8
[Token(Token = "0x600AD5C")]
[Address(RVA = "0x6EC430", Offset = "0x6EB430", VA = "0x1806EC430", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat256.Create();
uint[] array2 = Nat256.Create();
int num = 0;
int num2 = 0;
if (this.m_size > num2)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 16;
num2++;
}
SM2P256V1Curve outer = this.m_outer;
new SM2P256V1FieldElement().x = array;
new SM2P256V1FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006E27 RID: 28199
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006E27")]
private readonly SM2P256V1Curve m_outer;
// Token: 0x04006E28 RID: 28200
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006E28")]
private readonly uint[] m_table;
// Token: 0x04006E29 RID: 28201
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006E29")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,424 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM
{
// Token: 0x02001B97 RID: 7063
[Token(Token = "0x2001B97")]
internal class SM2P256V1Field
{
// Token: 0x0600AD5D RID: 44381 RVA: 0x00259648 File Offset: 0x00257848
[Token(Token = "0x600AD5D")]
[Address(RVA = "0x6EB350", Offset = "0x6EA350", VA = "0x1806EB350")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
if (Nat256.Add(x, y, z) == (uint)0)
{
uint[] p = SM2P256V1Field.P;
if (!Nat256.Gte(z, p))
{
return;
}
}
SM2P256V1Field.AddPInvTo(z);
}
// Token: 0x0600AD5E RID: 44382 RVA: 0x00259680 File Offset: 0x00257880
[Token(Token = "0x600AD5E")]
[Address(RVA = "0x6EAFD0", Offset = "0x6E9FD0", VA = "0x1806EAFD0")]
public static void AddExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Add(16, xx, yy, zz) == (uint)0)
{
uint[] pext = SM2P256V1Field.PExt;
if (!Nat.Gte(16, zz, pext))
{
return;
}
}
uint[] pext2 = SM2P256V1Field.PExt;
int num = Nat.SubFrom(16, pext2, zz);
}
// Token: 0x0600AD5F RID: 44383 RVA: 0x002596C4 File Offset: 0x002578C4
[Token(Token = "0x600AD5F")]
[Address(RVA = "0x6EB0F0", Offset = "0x6EA0F0", VA = "0x1806EB0F0")]
public static void AddOne(uint[] x, uint[] z)
{
if (Nat.Inc(8, x, z) == (uint)0)
{
uint[] p = SM2P256V1Field.P;
if (!Nat256.Gte(z, p))
{
return;
}
}
SM2P256V1Field.AddPInvTo(z);
}
// Token: 0x0600AD60 RID: 44384 RVA: 0x002596FC File Offset: 0x002578FC
[Token(Token = "0x600AD60")]
[Address(RVA = "0x6EB440", Offset = "0x6EA440", VA = "0x1806EB440")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat256.FromBigInteger(x);
uint[] p = SM2P256V1Field.P;
if (Nat256.Gte(array, p))
{
int num = Nat256.SubFrom(SM2P256V1Field.P, array);
}
return array;
}
// Token: 0x0600AD61 RID: 44385 RVA: 0x00259734 File Offset: 0x00257934
[Token(Token = "0x600AD61")]
[Address(RVA = "0x6EB530", Offset = "0x6EA530", VA = "0x1806EB530")]
public static void Half(uint[] x, uint[] z)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
uint[] p = SM2P256V1Field.P;
uint num = Nat256.Add(x, p, z);
uint num2 = Nat.ShiftDownBit(8, z, num);
return;
}
int num3 = 0;
uint num4 = Nat.ShiftDownBit(8, x, (uint)num3, z);
}
// Token: 0x0600AD62 RID: 44386 RVA: 0x00259778 File Offset: 0x00257978
[Token(Token = "0x600AD62")]
[Address(RVA = "0x6EB730", Offset = "0x6EA730", VA = "0x1806EB730")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Mul(x, y, array);
SM2P256V1Field.Reduce(array, z);
}
// Token: 0x0600AD63 RID: 44387 RVA: 0x0025979C File Offset: 0x0025799C
[Token(Token = "0x600AD63")]
[Address(RVA = "0x6EB610", Offset = "0x6EA610", VA = "0x1806EB610")]
public static void MultiplyAddToExt(uint[] x, uint[] y, uint[] zz)
{
if (Nat256.MulAddTo(x, y, zz) == (uint)0)
{
uint[] pext = SM2P256V1Field.PExt;
if (!Nat.Gte(16, zz, pext))
{
return;
}
}
uint[] pext2 = SM2P256V1Field.PExt;
int num = Nat.SubFrom(16, pext2, zz);
}
// Token: 0x0600AD64 RID: 44388 RVA: 0x002597E0 File Offset: 0x002579E0
[Token(Token = "0x600AD64")]
[Address(RVA = "0x6EB7D0", Offset = "0x6EA7D0", VA = "0x1806EB7D0")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat256.IsZero(x))
{
int num = Nat256.Sub(SM2P256V1Field.P, x, z);
return;
}
Nat256.Zero(z);
}
// Token: 0x0600AD65 RID: 44389 RVA: 0x0025980C File Offset: 0x00257A0C
[Token(Token = "0x600AD65")]
[Address(RVA = "0x6EBAA0", Offset = "0x6EAAA0", VA = "0x1806EBAA0")]
public static void Reduce(uint[] xx, uint[] z)
{
int length = xx.Length;
uint num = xx[4];
uint num2 = xx[4];
uint num3 = xx[5];
uint num4 = xx[5];
uint num5 = xx[6];
uint num6 = xx[6];
uint num7 = xx[7];
uint num8 = xx[7];
uint num9 = xx[0];
num9 += z;
num9 += num8;
num9 += num7;
num9 += num6;
z[0] = num9;
uint num10 = xx[0];
num10 += num9;
num10 -= num;
num10 += z;
num10 += num8;
num10 += num7;
z[0] = num10;
uint num11 = xx[1];
num11 += num10;
z[1] = num11;
uint num12 = xx[1];
num12 += num11;
num12 -= num3;
num12 -= num2;
num12 += z;
num12 += num6;
z[1] = num12;
uint num13 = xx[2];
num13 += num12;
num13 -= num12;
num13 -= num;
num13 += z;
num13 += num7;
z[2] = num13;
uint num14 = xx[2];
num13 += num14;
num13 += num3;
z[2] = num13;
uint num15 = xx[3];
num15 += num8;
num13 += num15;
num13 += num7;
num13 += num4;
z[3] = num13;
uint num16 = xx[3];
num16 += z;
num13 += num16;
num13 += num5;
z[3] = num13;
SM2P256V1Field.Reduce32(num13, z);
}
// Token: 0x0600AD66 RID: 44390 RVA: 0x002599C4 File Offset: 0x00257BC4
[Token(Token = "0x600AD66")]
[Address(RVA = "0x6EB870", Offset = "0x6EA870", VA = "0x1806EB870")]
public static void Reduce32(uint x, uint[] z)
{
if (x != (uint)0)
{
uint num = z[0];
num += x;
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
}
uint num3 = z[1];
num3 -= x;
num += num3;
z[1] = num;
uint num4 = z[1];
num4 += num3;
z[1] = num4;
if (num4 != (uint)0)
{
uint num5 = z[2];
num4 += num5;
z[2] = num4;
uint num6 = z[2];
num4 += num6;
z[2] = num4;
uint num7 = z[3];
num4 += num7;
z[3] = num4;
}
uint num8 = z[3];
num8 += x;
num4 += num8;
z[3] = num4;
if (num4 != (uint)0)
{
goto IL_DB;
}
}
uint[] p = SM2P256V1Field.P;
if (!Nat256.Gte(z, p))
{
return;
}
IL_DB:
SM2P256V1Field.AddPInvTo(z);
}
// Token: 0x0600AD67 RID: 44391 RVA: 0x00259AB8 File Offset: 0x00257CB8
[Token(Token = "0x600AD67")]
[Address(RVA = "0x6EBF70", Offset = "0x6EAF70", VA = "0x1806EBF70")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Square(x, array);
SM2P256V1Field.Reduce(array, z);
}
// Token: 0x0600AD68 RID: 44392 RVA: 0x00259ADC File Offset: 0x00257CDC
[Token(Token = "0x600AD68")]
[Address(RVA = "0x6EBE90", Offset = "0x6EAE90", VA = "0x1806EBE90")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Square(x, array);
SM2P256V1Field.Reduce(array, z);
if (n > 0)
{
Nat256.Square(z, array);
SM2P256V1Field.Reduce(array, z);
}
}
// Token: 0x0600AD69 RID: 44393 RVA: 0x00259B14 File Offset: 0x00257D14
[Token(Token = "0x600AD69")]
[Address(RVA = "0x6EC220", Offset = "0x6EB220", VA = "0x1806EC220")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
if (Nat256.Sub(x, y, z) != 0)
{
SM2P256V1Field.SubPInvFrom(z);
}
}
// Token: 0x0600AD6A RID: 44394 RVA: 0x00259B34 File Offset: 0x00257D34
[Token(Token = "0x600AD6A")]
[Address(RVA = "0x6EC170", Offset = "0x6EB170", VA = "0x1806EC170")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(16, xx, yy, zz) != 0)
{
uint[] pext = SM2P256V1Field.PExt;
uint num = Nat.AddTo(16, pext, zz);
}
}
// Token: 0x0600AD6B RID: 44395 RVA: 0x00259B60 File Offset: 0x00257D60
[Token(Token = "0x600AD6B")]
[Address(RVA = "0x6EC2A0", Offset = "0x6EB2A0", VA = "0x1806EC2A0")]
public static void Twice(uint[] x, uint[] z)
{
int num = 0;
if (Nat.ShiftUpBit(8, x, (uint)num, z) == (uint)0)
{
uint[] p = SM2P256V1Field.P;
if (!Nat256.Gte(z, p))
{
return;
}
}
SM2P256V1Field.AddPInvTo(z);
}
// Token: 0x0600AD6C RID: 44396 RVA: 0x00259B98 File Offset: 0x00257D98
[Token(Token = "0x600AD6C")]
[Address(RVA = "0x6EB1E0", Offset = "0x6EA1E0", VA = "0x1806EB1E0")]
private static void AddPInvTo(uint[] z)
{
uint num = z[0];
num += (uint)1;
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
}
uint num3 = z[1];
num3 += num;
z[1] = num3;
uint num4 = z[1];
num4 += (uint)1;
num4 += num3;
z[1] = num4;
if (num4 != (uint)0)
{
uint num5 = z[2];
num4 += num5;
z[2] = num4;
uint num6 = z[2];
num4 += num6;
z[2] = num4;
uint num7 = z[3];
num4 += num7;
z[3] = num4;
}
uint num8 = z[3];
num8 += (uint)1;
num4 += num8;
z[3] = num4;
}
// Token: 0x0600AD6D RID: 44397 RVA: 0x00259C6C File Offset: 0x00257E6C
[Token(Token = "0x600AD6D")]
[Address(RVA = "0x6EC000", Offset = "0x6EB000", VA = "0x1806EC000")]
private static void SubPInvFrom(uint[] z)
{
uint num = z[0];
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
}
uint num3 = z[1];
num3 += (uint)1;
num3 += num;
z[1] = num3;
uint num4 = z[1];
num4 += num3;
z[1] = num4;
if (num4 != (uint)0)
{
uint num5 = z[2];
num4 += num5;
z[2] = num4;
uint num6 = z[2];
num4 += num6;
z[2] = num4;
uint num7 = z[3];
num4 += num7;
z[3] = num4;
}
uint num8 = z[3];
num4 += num8;
z[3] = num4;
}
// Token: 0x0600AD6E RID: 44398 RVA: 0x00259D34 File Offset: 0x00257F34
[Token(Token = "0x600AD6E")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SM2P256V1Field()
{
}
// Token: 0x0600AD6F RID: 44399 RVA: 0x00259D48 File Offset: 0x00257F48
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600AD6F")]
[Address(RVA = "0x6EC390", Offset = "0x6EB390", VA = "0x1806EC390")]
static SM2P256V1Field()
{
uint[] array = new uint[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.B01915493E44597A78D21AC245268E65DDA920ED).FieldHandle);
SM2P256V1Field.P = array;
uint[] array2 = new uint[16];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.5AE32F75295B7AC2FB76118848B92F3987B949A0).FieldHandle);
SM2P256V1Field.PExt = array2;
}
// Token: 0x04006E2A RID: 28202
[Token(Token = "0x4006E2A")]
internal static readonly uint[] P;
// Token: 0x04006E2B RID: 28203
[Token(Token = "0x4006E2B")]
internal static readonly uint[] PExt;
// Token: 0x04006E2C RID: 28204
[Token(Token = "0x4006E2C")]
internal const uint P7 = 4294967294U;
// Token: 0x04006E2D RID: 28205
[Token(Token = "0x4006E2D")]
internal const uint PExt15 = 4294967294U;
}
}
@@ -0,0 +1,448 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM
{
// Token: 0x02001B98 RID: 7064
[Token(Token = "0x2001B98")]
internal class SM2P256V1FieldElement : AbstractFpFieldElement
{
// Token: 0x0600AD70 RID: 44400 RVA: 0x00259D88 File Offset: 0x00257F88
[Token(Token = "0x600AD70")]
[Address(RVA = "0x6EAD60", Offset = "0x6E9D60", VA = "0x1806EAD60")]
public SM2P256V1FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AD70)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM.SM2P256V1FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_44:
stloc:ArgumentException(var_5_53, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SM2P256V1FieldElement"), ldstr:string("x")))
}
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: 0x0600AD71 RID: 44401 RVA: 0x00259DEC File Offset: 0x00257FEC
[Token(Token = "0x600AD71")]
[Address(RVA = "0x6E6470", Offset = "0x6E5470", VA = "0x1806E6470")]
public SM2P256V1FieldElement()
{
uint[] array = Nat256.Create();
this.x = array;
}
// Token: 0x0600AD72 RID: 44402 RVA: 0x00259E10 File Offset: 0x00258010
[Token(Token = "0x600AD72")]
[Address(RVA = "0x681CA0", Offset = "0x680CA0", VA = "0x180681CA0")]
protected internal SM2P256V1FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001B9D RID: 7069
// (get) Token: 0x0600AD73 RID: 44403 RVA: 0x00259E2C File Offset: 0x0025802C
[Token(Token = "0x17001B9D")]
public override bool IsZero
{
[Token(Token = "0x600AD73")]
[Address(RVA = "0x6E6550", Offset = "0x6E5550", VA = "0x1806E6550", Slot = "18")]
get
{
return Nat256.IsZero(this.x);
}
}
// Token: 0x17001B9E RID: 7070
// (get) Token: 0x0600AD74 RID: 44404 RVA: 0x00259E44 File Offset: 0x00258044
[Token(Token = "0x17001B9E")]
public override bool IsOne
{
[Token(Token = "0x600AD74")]
[Address(RVA = "0x6E6540", Offset = "0x6E5540", VA = "0x1806E6540", Slot = "17")]
get
{
return Nat256.IsOne(this.x);
}
}
// Token: 0x0600AD75 RID: 44405 RVA: 0x00259E5C File Offset: 0x0025805C
[Token(Token = "0x600AD75")]
[Address(RVA = "0x6E61E0", Offset = "0x6E51E0", VA = "0x1806E61E0", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat256.GetBit(array, num) == (uint)1;
}
// Token: 0x0600AD76 RID: 44406 RVA: 0x00259E80 File Offset: 0x00258080
[Token(Token = "0x600AD76")]
[Address(RVA = "0x6E6200", Offset = "0x6E5200", VA = "0x1806E6200", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat256.ToBigInteger(this.x);
}
// Token: 0x17001B9F RID: 7071
// (get) Token: 0x0600AD77 RID: 44407 RVA: 0x00259E98 File Offset: 0x00258098
[Token(Token = "0x17001B9F")]
public override string FieldName
{
[Token(Token = "0x600AD77")]
[Address(RVA = "0x6EAF30", Offset = "0x6E9F30", VA = "0x1806EAF30", Slot = "5")]
get
{
return "SM2P256V1Field";
}
}
// Token: 0x17001BA0 RID: 7072
// (get) Token: 0x0600AD78 RID: 44408 RVA: 0x00259EAC File Offset: 0x002580AC
[Token(Token = "0x17001BA0")]
public override int FieldSize
{
[Token(Token = "0x600AD78")]
[Address(RVA = "0x6EAF60", Offset = "0x6E9F60", VA = "0x1806EAF60", Slot = "6")]
get
{
return SM2P256V1FieldElement.Q.BitLength;
}
}
// Token: 0x0600AD79 RID: 44409 RVA: 0x00259ECC File Offset: 0x002580CC
[Token(Token = "0x600AD79")]
[Address(RVA = "0x6EA110", Offset = "0x6E9110", VA = "0x1806EA110", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SM2P256V1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SM2P256V1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AD7A RID: 44410 RVA: 0x00259F14 File Offset: 0x00258114
[Token(Token = "0x600AD7A")]
[Address(RVA = "0x6E9FC0", Offset = "0x6E8FC0", VA = "0x1806E9FC0", Slot = "8")]
public override ECFieldElement AddOne()
{
uint[] array = Nat256.Create();
uint[] array2 = this.x;
if (Nat.Inc(8, array2, array) == (uint)0)
{
uint[] p = SM2P256V1Field.P;
if (!Nat256.Gte(array, p))
{
goto IL_31;
}
}
SM2P256V1Field.AddPInvTo(array);
IL_31:
new SM2P256V1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AD7B RID: 44411 RVA: 0x00259F64 File Offset: 0x00258164
[Token(Token = "0x600AD7B")]
[Address(RVA = "0x6EABB0", Offset = "0x6E9BB0", VA = "0x1806EABB0", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SM2P256V1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SM2P256V1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AD7C RID: 44412 RVA: 0x00259FAC File Offset: 0x002581AC
[Token(Token = "0x600AD7C")]
[Address(RVA = "0x6EA680", Offset = "0x6E9680", VA = "0x1806EA680", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SM2P256V1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SM2P256V1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AD7D RID: 44413 RVA: 0x00259FF4 File Offset: 0x002581F4
[Token(Token = "0x600AD7D")]
[Address(RVA = "0x6EA250", Offset = "0x6E9250", VA = "0x1806EA250", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] p = SM2P256V1Field.P;
if ("{il2cpp array field local3->}" == typeof(SM2P256V1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
SM2P256V1Field.Multiply(array, array2, array);
new SM2P256V1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AD7E RID: 44414 RVA: 0x0025A04C File Offset: 0x0025824C
[Token(Token = "0x600AD7E")]
[Address(RVA = "0x6EA7C0", Offset = "0x6E97C0", VA = "0x1806EA7C0", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600AD7E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM.SM2P256V1FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
call:void(SM2P256V1Field::Negate, ldfld:uint32[](SM2P256V1FieldElement::x, ldloc:SM2P256V1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SM2P256V1FieldElement::x, newobj:SM2P256V1FieldElement(SM2P256V1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600AD7F RID: 44415 RVA: 0x0025A078 File Offset: 0x00258278
[Token(Token = "0x600AD7F")]
[Address(RVA = "0x6EAB20", Offset = "0x6E9B20", VA = "0x1806EAB20", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600AD7F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM.SM2P256V1FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
call:void(SM2P256V1Field::Square, ldfld:uint32[](SM2P256V1FieldElement::x, ldloc:SM2P256V1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SM2P256V1FieldElement::x, newobj:SM2P256V1FieldElement(SM2P256V1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600AD80 RID: 44416 RVA: 0x0025A0A4 File Offset: 0x002582A4
[Token(Token = "0x600AD80")]
[Address(RVA = "0x6EA5B0", Offset = "0x6E95B0", VA = "0x1806EA5B0", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600AD80)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM.SM2P256V1FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
stloc:uint32[](var_2_0E, ldfld:uint32[](SM2P256V1FieldElement::x, ldloc:SM2P256V1FieldElement(this)))
call:void(Mod::Invert, ldsfld:uint32[](SM2P256V1Field::P), ldloc:uint32[](var_2_0E), ldloc:uint32[](var_1_07))
stfld:uint32[](SM2P256V1FieldElement::x, newobj:SM2P256V1FieldElement(SM2P256V1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600AD81 RID: 44417 RVA: 0x0025A0D8 File Offset: 0x002582D8
[Token(Token = "0x600AD81")]
[Address(RVA = "0x6EA850", Offset = "0x6E9850", VA = "0x1806EA850", Slot = "15")]
public override ECFieldElement Sqrt()
{
uint[] array;
do
{
array = this.x;
}
while (Nat256.IsZero(array) || Nat256.IsOne(array));
uint[] array2 = Nat256.Create();
SM2P256V1Field.Square(array, array2);
SM2P256V1Field.Multiply(array2, array, array2);
uint[] array3 = Nat256.Create();
SM2P256V1Field.SquareN(array2, 2, array3);
SM2P256V1Field.Multiply(array3, array2, array3);
uint[] array4 = Nat256.Create();
SM2P256V1Field.SquareN(array3, 2, array4);
SM2P256V1Field.Multiply(array4, array2, array4);
SM2P256V1Field.SquareN(array4, 6, array2);
SM2P256V1Field.Multiply(array2, array4, array2);
uint[] array5 = Nat256.Create();
SM2P256V1Field.SquareN(array2, 12, array5);
SM2P256V1Field.Multiply(array5, array2, array5);
SM2P256V1Field.SquareN(array5, 6, array2);
SM2P256V1Field.Multiply(array2, array4, array2);
SM2P256V1Field.Square(array2, array4);
SM2P256V1Field.Multiply(array4, array, array4);
SM2P256V1Field.SquareN(array4, 31, array5);
SM2P256V1Field.Multiply(array5, array4, array2);
SM2P256V1Field.SquareN(array5, 32, array5);
SM2P256V1Field.Multiply(array5, array2, array5);
SM2P256V1Field.SquareN(array5, 62, array5);
SM2P256V1Field.Multiply(array5, array2, array5);
SM2P256V1Field.SquareN(array5, 4, array5);
SM2P256V1Field.Multiply(array5, array3, array5);
SM2P256V1Field.SquareN(array5, 32, array5);
SM2P256V1Field.Multiply(array5, array, array5);
SM2P256V1Field.SquareN(array5, 62, array5);
SM2P256V1Field.Square(array5, array3);
if (Nat256.Eq(array, array3))
{
new SM2P256V1FieldElement().x = array5;
return;
}
}
// Token: 0x0600AD82 RID: 44418 RVA: 0x0025A23C File Offset: 0x0025843C
[Token(Token = "0x600AD82")]
[Address(RVA = "0x6EA460", Offset = "0x6E9460", VA = "0x1806EA460", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600AD82)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM.SM2P256V1FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SM2P256V1FieldElement[exp:ECFieldElement](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: 0x0600AD83 RID: 44419 RVA: 0x0025A258 File Offset: 0x00258458
[Token(Token = "0x600AD83")]
[Address(RVA = "0x6EA3D0", Offset = "0x6E93D0", VA = "0x1806EA3D0", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600AD83)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM.SM2P256V1FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SM2P256V1FieldElement[exp:ECFieldElement](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: 0x0600AD84 RID: 44420 RVA: 0x0025A274 File Offset: 0x00258474
[Token(Token = "0x600AD84")]
[Address(RVA = "0x6E5860", Offset = "0x6E4860", VA = "0x1806E5860", Slot = "27")]
public virtual bool Equals(SM2P256V1FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
return Nat256.Eq(this.x, array);
}
}
return true;
}
// Token: 0x0600AD85 RID: 44421 RVA: 0x0025A2A0 File Offset: 0x002584A0
[Token(Token = "0x600AD85")]
[Address(RVA = "0x6EA4F0", Offset = "0x6E94F0", VA = "0x1806EA4F0", Slot = "2")]
public override int GetHashCode()
{
SM2P256V1FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 8);
}
// Token: 0x04006E2E RID: 28206
[Token(Token = "0x4006E2E")]
public static readonly BigInteger Q = SM2P256V1Curve.q;
// Token: 0x04006E2F RID: 28207
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006E2F")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,292 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM
{
// Token: 0x02001B99 RID: 7065
[Token(Token = "0x2001B99")]
internal class SM2P256V1Point : AbstractFpPoint
{
// Token: 0x0600AD87 RID: 44423 RVA: 0x0025A2E8 File Offset: 0x002584E8
[Token(Token = "0x600AD87")]
[Address(RVA = "0x6ED820", Offset = "0x6EC820", VA = "0x1806ED820")]
public SM2P256V1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600AD88 RID: 44424 RVA: 0x0025A2F8 File Offset: 0x002584F8
[Token(Token = "0x600AD88")]
[Address(RVA = "0x6ED760", Offset = "0x6EC760", VA = "0x1806ED760")]
public SM2P256V1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AD88)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM.SM2P256V1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600AD89 RID: 44425 RVA: 0x0025A320 File Offset: 0x00258520
[Token(Token = "0x600AD89")]
[Address(RVA = "0x6E4C90", Offset = "0x6E3C90", VA = "0x1806E4C90")]
internal SM2P256V1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600AD8A RID: 44426 RVA: 0x0025A330 File Offset: 0x00258530
[Token(Token = "0x600AD8A")]
[Address(RVA = "0x6ECDC0", Offset = "0x6EBDC0", VA = "0x1806ECDC0", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600AD8A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.GM.SM2P256V1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SM2P256V1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SM2P256V1Point[exp: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: 0x0600AD8B RID: 44427 RVA: 0x0025A34C File Offset: 0x0025854C
[Token(Token = "0x600AD8B")]
[Address(RVA = "0x6EC600", Offset = "0x6EB600", VA = "0x1806EC600", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this == b)
{
return b;
}
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat256.CreateExt();
uint[] array2 = Nat256.Create();
uint[] array3 = Nat256.Create();
uint[] array4 = Nat256.Create();
if (array4 == 0)
{
SM2P256V1Field.Square(array4, array3);
SM2P256V1Field.Multiply(array3, array3, array2);
SM2P256V1Field.Multiply(array3, array3, array3);
SM2P256V1Field.Multiply(array3, array3, array3);
}
SM2P256V1Field.Multiply(array4, array4, array);
SM2P256V1Field.Multiply(array4, array4, array4);
SM2P256V1Field.Multiply(array4, array4, array4);
uint[] array5 = Nat256.Create();
if (!Nat256.IsZero(array5))
{
SM2P256V1Field.Square(array5, array3);
uint[] array6 = Nat256.Create();
SM2P256V1Field.Multiply(array3, array5, array6);
SM2P256V1Field.Negate(array6, array6);
SM2P256V1Field.Reduce32(Nat256.AddBothTo(array3, array3, array6), array6);
SM2P256V1FieldElement sm2P256V1FieldElement = new SM2P256V1FieldElement();
sm2P256V1FieldElement.x = array4;
SM2P256V1Field.Square(array2, array4);
uint[] x = sm2P256V1FieldElement.x;
SM2P256V1Field.Subtract(x, array6, x);
SM2P256V1FieldElement sm2P256V1FieldElement2 = new SM2P256V1FieldElement();
sm2P256V1FieldElement2.x = array6;
uint[] x2 = sm2P256V1FieldElement.x;
SM2P256V1Field.Subtract(array3, x2, array6);
if (Nat256.MulAddTo(sm2P256V1FieldElement2.x, array2, array) == (uint)0)
{
uint[] pext = SM2P256V1Field.PExt;
if (!Nat.Gte(16, array, pext))
{
goto IL_189;
}
}
uint[] pext2 = SM2P256V1Field.PExt;
int num = Nat.SubFrom(16, pext2, array);
IL_189:
uint[] x3 = sm2P256V1FieldElement2.x;
SM2P256V1Field.Reduce(array, x3);
SM2P256V1FieldElement sm2P256V1FieldElement3 = new SM2P256V1FieldElement();
sm2P256V1FieldElement3.x = array5;
SM2P256V1Field.Multiply(array5, array, array5);
uint[] x4 = sm2P256V1FieldElement3.x;
ECFieldElement[] array7 = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600AD8C RID: 44428 RVA: 0x0025A544 File Offset: 0x00258744
[Token(Token = "0x600AD8C")]
[Address(RVA = "0x6ED0D0", Offset = "0x6EC0D0", VA = "0x1806ED0D0", Slot = "30")]
public override ECPoint Twice()
{
while (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
if (y != 0)
{
if (y.IsOne)
{
break;
}
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
uint[] array = Nat256.Create();
uint[] array2 = Nat256.Create();
uint[] array3 = Nat256.Create();
uint[] array4 = Nat256.Create();
SM2P256V1Field.Square(array3, array4);
if (ecfieldElement.BitLength == 0)
{
}
SM2P256V1Field.Multiply(array2, array, array2);
SM2P256V1Field.Reduce32(Nat256.AddBothTo(array2, array2, array2), array2);
SM2P256V1Field.Multiply(array3, array2, array3);
int num = 0;
SM2P256V1Field.Reduce32(Nat.ShiftUpBits(8, array3, 2, (uint)num), array3);
int num2 = 0;
SM2P256V1Field.Reduce32(Nat.ShiftUpBits(8, array4, 3, (uint)num2, array), array);
SM2P256V1FieldElement sm2P256V1FieldElement = new SM2P256V1FieldElement();
sm2P256V1FieldElement.x = array4;
SM2P256V1Field.Square(array2, array4);
uint[] x2 = sm2P256V1FieldElement.x;
SM2P256V1Field.Subtract(x2, array3, x2);
uint[] x3 = sm2P256V1FieldElement.x;
SM2P256V1Field.Subtract(x3, array3, x3);
SM2P256V1FieldElement sm2P256V1FieldElement2 = new SM2P256V1FieldElement();
sm2P256V1FieldElement2.x = array3;
uint[] x4 = sm2P256V1FieldElement.x;
SM2P256V1Field.Subtract(array3, x4, array3);
uint[] x5 = sm2P256V1FieldElement2.x;
SM2P256V1Field.Multiply(x5, array2, x5);
uint[] x6 = sm2P256V1FieldElement2.x;
SM2P256V1Field.Subtract(x6, array, x6);
SM2P256V1FieldElement sm2P256V1FieldElement3 = new SM2P256V1FieldElement();
sm2P256V1FieldElement3.x = array2;
uint num3;
if (num3 == (uint)0)
{
uint[] p = SM2P256V1Field.P;
if (!Nat256.Gte(array2, p))
{
goto IL_1AB;
}
}
SM2P256V1Field.AddPInvTo(array2);
IL_1AB:
uint[] x7 = sm2P256V1FieldElement3.x;
(new ECFieldElement[1])[0] = sm2P256V1FieldElement3;
bool withCompression = this.m_withCompression;
break;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600AD8D RID: 44429 RVA: 0x0025A720 File Offset: 0x00258920
[Token(Token = "0x600AD8D")]
[Address(RVA = "0x6ECFE0", Offset = "0x6EBFE0", VA = "0x1806ECFE0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
bool flag2 = base.SatisfiesCurveEquation();
}
return b;
}
bool flag3 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600AD8E RID: 44430 RVA: 0x0025A770 File Offset: 0x00258970
[Token(Token = "0x600AD8E")]
[Address(RVA = "0x6ECF60", Offset = "0x6EBF60", VA = "0x1806ECF60", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600AD8F RID: 44431 RVA: 0x0025A7A0 File Offset: 0x002589A0
[Token(Token = "0x600AD8F")]
[Address(RVA = "0x6ECE60", Offset = "0x6EBE60", VA = "0x1806ECE60", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,324 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B13 RID: 6931
[Token(Token = "0x2001B13")]
internal class SecP128R1Curve : AbstractFpCurve
{
// Token: 0x0600A69A RID: 42650 RVA: 0x0023C11C File Offset: 0x0023A31C
[Token(Token = "0x600A69A")]
[Address(RVA = "0x6EDD20", Offset = "0x6ECD20", VA = "0x1806EDD20")]
public SecP128R1Curve()
{
IFiniteField primeField = FiniteFields.GetPrimeField(SecP128R1Curve.q);
base..ctor(primeField);
int num;
int num2;
ulong num3;
SecP128R1Point secP128R1Point = new SecP128R1Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = secP128R1Point;
byte[] array = Hex.Decode("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("E87579C11079F43DD824993C2CEE5ED3");
BigInteger bigInteger2 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("FFFFFFFE0000000075A30D1B9038A115");
BigInteger bigInteger3 = new BigInteger(1, array3);
this.m_order = bigInteger3;
BigInteger one = BigInteger.One;
this.m_cofactor = one;
this.m_coord = (int)((ulong)2L);
}
// Token: 0x0600A69B RID: 42651 RVA: 0x0023C1D8 File Offset: 0x0023A3D8
[Token(Token = "0x600A69B")]
[Address(RVA = "0x6ED840", Offset = "0x6EC840", VA = "0x1806ED840", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A69B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP128R1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP128R1Curve(var_0_05, newobj:SecP128R1Curve(SecP128R1Curve::.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.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: 0x0600A69C RID: 42652 RVA: 0x0023C1EC File Offset: 0x0023A3EC
[Token(Token = "0x600A69C")]
[Address(RVA = "0x6E9C20", Offset = "0x6E8C20", VA = "0x1806E9C20", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 2;
}
// Token: 0x17001A26 RID: 6694
// (get) Token: 0x0600A69D RID: 42653 RVA: 0x0023C200 File Offset: 0x0023A400
[Token(Token = "0x17001A26")]
public virtual BigInteger Q
{
[Token(Token = "0x600A69D")]
[Address(RVA = "0x6EDFB0", Offset = "0x6ECFB0", VA = "0x1806EDFB0", Slot = "38")]
get
{
return SecP128R1Curve.q;
}
}
// Token: 0x17001A27 RID: 6695
// (get) Token: 0x0600A69E RID: 42654 RVA: 0x0023C214 File Offset: 0x0023A414
[Token(Token = "0x17001A27")]
public override ECPoint Infinity
{
[Token(Token = "0x600A69E")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A69E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP128R1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP128R1Point(var_0_06, ldfld:SecP128R1Point(SecP128R1Curve::m_infinity, ldloc:SecP128R1Curve(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: 0x17001A28 RID: 6696
// (get) Token: 0x0600A69F RID: 42655 RVA: 0x0023C228 File Offset: 0x0023A428
[Token(Token = "0x17001A28")]
public override int FieldSize
{
[Token(Token = "0x600A69F")]
[Address(RVA = "0x6EDF40", Offset = "0x6ECF40", VA = "0x1806EDF40", Slot = "4")]
get
{
return SecP128R1Curve.q.BitLength;
}
}
// Token: 0x0600A6A0 RID: 42656 RVA: 0x0023C248 File Offset: 0x0023A448
[Token(Token = "0x600A6A0")]
[Address(RVA = "0x6EDC20", Offset = "0x6ECC20", VA = "0x1806EDC20", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A6A0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP128R1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP128R1FieldElement(var_0_06, newobj:SecP128R1FieldElement(SecP128R1FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600A6A1 RID: 42657 RVA: 0x0023C25C File Offset: 0x0023A45C
[Token(Token = "0x600A6A1")]
[Address(RVA = "0x6EDAF0", Offset = "0x6ECAF0", VA = "0x1806EDAF0", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A6A1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP128R1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP128R1Point(var_0_09, newobj:SecP128R1Point(SecP128R1Point::.ctor, ldloc:SecP128R1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A6A2 RID: 42658 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A6A2")]
[Address(RVA = "0x6EDB80", Offset = "0x6ECB80", VA = "0x1806EDB80", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A6A3 RID: 42659 RVA: 0x0023C274 File Offset: 0x0023A474
[Token(Token = "0x600A6A3")]
[Address(RVA = "0x6ED890", Offset = "0x6EC890", VA = "0x1806ED890", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[points];
num = 0;
if (len <= 0)
{
goto IL_49;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 8;
IL_49:
SecP128R1Curve.SecP128R1LookupTable secP128R1LookupTable;
secP128R1LookupTable.m_outer = 0;
secP128R1LookupTable.m_table = array;
secP128R1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x0600A6A4 RID: 42660 RVA: 0x0023C2E8 File Offset: 0x0023A4E8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A6A4")]
[Address(RVA = "0x6EDC80", Offset = "0x6ECC80", VA = "0x1806EDC80")]
static SecP128R1Curve()
{
byte[] array = Hex.Decode("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF");
SecP128R1Curve.q = new BigInteger(1, array);
}
// Token: 0x04006CF3 RID: 27891
[Token(Token = "0x4006CF3")]
public static readonly BigInteger q;
// Token: 0x04006CF4 RID: 27892
[Token(Token = "0x4006CF4")]
private const int SECP128R1_DEFAULT_COORDS = 2;
// Token: 0x04006CF5 RID: 27893
[Token(Token = "0x4006CF5")]
private const int SECP128R1_FE_INTS = 4;
// Token: 0x04006CF6 RID: 27894
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006CF6")]
protected readonly SecP128R1Point m_infinity;
// Token: 0x02001B14 RID: 6932
[Token(Token = "0x2001B14")]
private class SecP128R1LookupTable : ECLookupTable
{
// Token: 0x0600A6A5 RID: 42661 RVA: 0x0023C30C File Offset: 0x0023A50C
[Token(Token = "0x600A6A5")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecP128R1LookupTable(SecP128R1Curve outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A29 RID: 6697
// (get) Token: 0x0600A6A6 RID: 42662 RVA: 0x0023C334 File Offset: 0x0023A534
[Token(Token = "0x17001A29")]
public virtual int Size
{
[Token(Token = "0x600A6A6")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A6A7 RID: 42663 RVA: 0x0023C348 File Offset: 0x0023A548
[Token(Token = "0x600A6A7")]
[Address(RVA = "0x6F0090", Offset = "0x6EF090", VA = "0x1806F0090", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat128.Create();
uint[] array2 = Nat128.Create();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 8;
num2++;
}
SecP128R1Curve outer = this.m_outer;
new SecP128R1FieldElement().x = array;
new SecP128R1FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006CF7 RID: 27895
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006CF7")]
private readonly SecP128R1Curve m_outer;
// Token: 0x04006CF8 RID: 27896
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006CF8")]
private readonly uint[] m_table;
// Token: 0x04006CF9 RID: 27897
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006CF9")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,344 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B15 RID: 6933
[Token(Token = "0x2001B15")]
internal class SecP128R1Field
{
// Token: 0x0600A6A8 RID: 42664 RVA: 0x0023C3C8 File Offset: 0x0023A5C8
[Token(Token = "0x600A6A8")]
[Address(RVA = "0x6EF2C0", Offset = "0x6EE2C0", VA = "0x1806EF2C0")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
if (Nat128.Add(x, y, z) == (uint)0)
{
uint[] p = SecP128R1Field.P;
if (!Nat128.Gte(z, p))
{
return;
}
}
SecP128R1Field.AddPInvTo(z);
}
// Token: 0x0600A6A9 RID: 42665 RVA: 0x0023C400 File Offset: 0x0023A600
[Token(Token = "0x600A6A9")]
[Address(RVA = "0x6EF000", Offset = "0x6EE000", VA = "0x1806EF000")]
public static void AddExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat256.Add(xx, yy, zz) == (uint)0)
{
uint[] pext = SecP128R1Field.PExt;
if (!Nat256.Gte(zz, pext))
{
return;
}
}
uint[] pextInv = SecP128R1Field.PExtInv;
uint num = Nat.AddTo(pextInv.Length, pextInv, zz);
}
// Token: 0x0600A6AA RID: 42666 RVA: 0x0023C444 File Offset: 0x0023A644
[Token(Token = "0x600A6AA")]
[Address(RVA = "0x6EF120", Offset = "0x6EE120", VA = "0x1806EF120")]
public static void AddOne(uint[] x, uint[] z)
{
if (Nat.Inc(4, x, z) == (uint)0)
{
uint[] p = SecP128R1Field.P;
if (!Nat128.Gte(z, p))
{
return;
}
}
SecP128R1Field.AddPInvTo(z);
}
// Token: 0x0600A6AB RID: 42667 RVA: 0x0023C47C File Offset: 0x0023A67C
[Token(Token = "0x600A6AB")]
[Address(RVA = "0x6EF3B0", Offset = "0x6EE3B0", VA = "0x1806EF3B0")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat128.FromBigInteger(x);
uint[] p = SecP128R1Field.P;
if (Nat128.Gte(array, p))
{
int num = Nat128.SubFrom(SecP128R1Field.P, array);
}
return array;
}
// Token: 0x0600A6AC RID: 42668 RVA: 0x0023C4B4 File Offset: 0x0023A6B4
[Token(Token = "0x600A6AC")]
[Address(RVA = "0x6EF4A0", Offset = "0x6EE4A0", VA = "0x1806EF4A0")]
public static void Half(uint[] x, uint[] z)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
uint[] p = SecP128R1Field.P;
uint num = Nat128.Add(x, p, z);
uint num2 = Nat.ShiftDownBit(4, z, num);
return;
}
int num3 = 0;
uint num4 = Nat.ShiftDownBit(4, x, (uint)num3, z);
}
// Token: 0x0600A6AD RID: 42669 RVA: 0x0023C4F8 File Offset: 0x0023A6F8
[Token(Token = "0x600A6AD")]
[Address(RVA = "0x6EF6A0", Offset = "0x6EE6A0", VA = "0x1806EF6A0")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat128.CreateExt();
Nat128.Mul(x, y, array);
SecP128R1Field.Reduce(array, z);
}
// Token: 0x0600A6AE RID: 42670 RVA: 0x0023C51C File Offset: 0x0023A71C
[Token(Token = "0x600A6AE")]
[Address(RVA = "0x6EF580", Offset = "0x6EE580", VA = "0x1806EF580")]
public static void MultiplyAddToExt(uint[] x, uint[] y, uint[] zz)
{
if (Nat128.MulAddTo(x, y, zz) == (uint)0)
{
uint[] pext = SecP128R1Field.PExt;
if (!Nat256.Gte(zz, pext))
{
return;
}
}
uint[] pextInv = SecP128R1Field.PExtInv;
uint num = Nat.AddTo(pextInv.Length, pextInv, zz);
}
// Token: 0x0600A6AF RID: 42671 RVA: 0x0023C560 File Offset: 0x0023A760
[Token(Token = "0x600A6AF")]
[Address(RVA = "0x6EF740", Offset = "0x6EE740", VA = "0x1806EF740")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat128.IsZero(x))
{
int num = Nat128.Sub(SecP128R1Field.P, x, z);
return;
}
Nat128.Zero(z);
}
// Token: 0x0600A6B0 RID: 42672 RVA: 0x0023C58C File Offset: 0x0023A78C
[Token(Token = "0x600A6B0")]
[Address(RVA = "0x6EF8B0", Offset = "0x6EE8B0", VA = "0x1806EF8B0")]
public static void Reduce(uint[] xx, uint[] z)
{
int length = xx.Length;
uint num = xx[0];
uint num2 = xx[1];
uint num3 = xx[1];
uint num4 = xx[3];
uint num5 = xx[0];
z[0] = num5;
z[0] = z;
num += num2;
z[1] = num;
num += num4;
z[1] = xx;
SecP128R1Field.Reduce32(xx, z);
}
// Token: 0x0600A6B1 RID: 42673 RVA: 0x0023C604 File Offset: 0x0023A804
[Token(Token = "0x600A6B1")]
[Address(RVA = "0x6EF7E0", Offset = "0x6EE7E0", VA = "0x1806EF7E0")]
public static void Reduce32(uint x, uint[] z)
{
if (x != (uint)0)
{
uint num = z[0];
num += x;
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
uint num3 = z[1];
num += num3;
z[1] = num;
}
uint num4 = z[1];
num4 += num;
z[1] = num;
}
}
// Token: 0x0600A6B2 RID: 42674 RVA: 0x0023C674 File Offset: 0x0023A874
[Token(Token = "0x600A6B2")]
[Address(RVA = "0x6EFBB0", Offset = "0x6EEBB0", VA = "0x1806EFBB0")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat128.CreateExt();
Nat128.Square(x, array);
SecP128R1Field.Reduce(array, z);
}
// Token: 0x0600A6B3 RID: 42675 RVA: 0x0023C698 File Offset: 0x0023A898
[Token(Token = "0x600A6B3")]
[Address(RVA = "0x6EFAD0", Offset = "0x6EEAD0", VA = "0x1806EFAD0")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat128.CreateExt();
Nat128.Square(x, array);
SecP128R1Field.Reduce(array, z);
if (n > 0)
{
Nat128.Square(z, array);
SecP128R1Field.Reduce(array, z);
}
}
// Token: 0x0600A6B4 RID: 42676 RVA: 0x0023C6D0 File Offset: 0x0023A8D0
[Token(Token = "0x600A6B4")]
[Address(RVA = "0x6EFDB0", Offset = "0x6EEDB0", VA = "0x1806EFDB0")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
if (Nat128.Sub(x, y, z) != 0)
{
uint num = z[0];
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
uint num3 = z[1];
num += num3;
z[1] = num;
}
uint num4 = z[1];
num4 += (uint)(-2);
num += num4;
z[1] = num;
}
}
// Token: 0x0600A6B5 RID: 42677 RVA: 0x0023C748 File Offset: 0x0023A948
[Token(Token = "0x600A6B5")]
[Address(RVA = "0x6EFCF0", Offset = "0x6EECF0", VA = "0x1806EFCF0")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(10, xx, yy, zz) != 0)
{
uint[] pextInv = SecP128R1Field.PExtInv;
int num = Nat.SubFrom(pextInv.Length, pextInv, zz);
}
}
// Token: 0x0600A6B6 RID: 42678 RVA: 0x0023C77C File Offset: 0x0023A97C
[Token(Token = "0x600A6B6")]
[Address(RVA = "0x6EFED0", Offset = "0x6EEED0", VA = "0x1806EFED0")]
public static void Twice(uint[] x, uint[] z)
{
int num = 0;
if (Nat.ShiftUpBit(4, x, (uint)num, z) == (uint)0)
{
uint[] p = SecP128R1Field.P;
if (!Nat128.Gte(z, p))
{
return;
}
}
SecP128R1Field.AddPInvTo(z);
}
// Token: 0x0600A6B7 RID: 42679 RVA: 0x0023C7B4 File Offset: 0x0023A9B4
[Token(Token = "0x600A6B7")]
[Address(RVA = "0x6EF210", Offset = "0x6EE210", VA = "0x1806EF210")]
private static void AddPInvTo(uint[] z)
{
uint num = z[0];
num += (uint)1;
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num2 += num;
z[0] = num2;
uint num3 = z[1];
num3 += num2;
z[1] = num3;
}
uint num4 = z[1];
num4 += (uint)2;
num += num4;
z[1] = num;
}
// Token: 0x0600A6B8 RID: 42680 RVA: 0x0023C824 File Offset: 0x0023AA24
[Token(Token = "0x600A6B8")]
[Address(RVA = "0x6EFC40", Offset = "0x6EEC40", VA = "0x1806EFC40")]
private static void SubPInvFrom(uint[] z)
{
uint num = z[0];
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
uint num3 = z[1];
num += num3;
z[1] = num;
}
uint num4 = z[1];
num4 += (uint)(-2);
num += num4;
z[1] = num;
}
// Token: 0x0600A6B9 RID: 42681 RVA: 0x0023C890 File Offset: 0x0023AA90
[Token(Token = "0x600A6B9")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecP128R1Field()
{
}
// Token: 0x0600A6BA RID: 42682 RVA: 0x0023C8A4 File Offset: 0x0023AAA4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A6BA")]
[Address(RVA = "0x6EFFC0", Offset = "0x6EEFC0", VA = "0x1806EFFC0")]
static SecP128R1Field()
{
uint[] array = new uint[4];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.FAF70E8DF6971D7BABBCE9FEF83EDA1D5D095D05).FieldHandle);
SecP128R1Field.P = array;
uint[] array2 = new uint[8];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.068B2E17352B5B9FF693CAE83421B679E0342A5C).FieldHandle);
SecP128R1Field.PExt = array2;
uint[] array3 = new uint[8];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.F2842E2653F6C5E55959B5EC5E07ABAFC0191FB0).FieldHandle);
SecP128R1Field.PExtInv = array3;
}
// Token: 0x04006CFA RID: 27898
[Token(Token = "0x4006CFA")]
internal static readonly uint[] P;
// Token: 0x04006CFB RID: 27899
[Token(Token = "0x4006CFB")]
internal static readonly uint[] PExt;
// Token: 0x04006CFC RID: 27900
[Token(Token = "0x4006CFC")]
private static readonly uint[] PExtInv;
// Token: 0x04006CFD RID: 27901
[Token(Token = "0x4006CFD")]
private const uint P3 = 4294967293U;
// Token: 0x04006CFE RID: 27902
[Token(Token = "0x4006CFE")]
private const uint PExt7 = 4294967292U;
}
}
@@ -0,0 +1,437 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B16 RID: 6934
[Token(Token = "0x2001B16")]
internal class SecP128R1FieldElement : AbstractFpFieldElement
{
// Token: 0x0600A6BB RID: 42683 RVA: 0x0023C8FC File Offset: 0x0023AAFC
[Token(Token = "0x600A6BB")]
[Address(RVA = "0x6EED70", Offset = "0x6EDD70", VA = "0x1806EED70")]
public SecP128R1FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A6BB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP128R1FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_44:
stloc:ArgumentException(var_5_53, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecP128R1FieldElement"), ldstr:string("x")))
}
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: 0x0600A6BC RID: 42684 RVA: 0x0023C960 File Offset: 0x0023AB60
[Token(Token = "0x600A6BC")]
[Address(RVA = "0x6EED40", Offset = "0x6EDD40", VA = "0x1806EED40")]
public SecP128R1FieldElement()
{
uint[] array = Nat128.Create();
this.x = array;
}
// Token: 0x0600A6BD RID: 42685 RVA: 0x0023C984 File Offset: 0x0023AB84
[Token(Token = "0x600A6BD")]
[Address(RVA = "0x681CA0", Offset = "0x680CA0", VA = "0x180681CA0")]
protected internal SecP128R1FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001A2A RID: 6698
// (get) Token: 0x0600A6BE RID: 42686 RVA: 0x0023C9A0 File Offset: 0x0023ABA0
[Token(Token = "0x17001A2A")]
public override bool IsZero
{
[Token(Token = "0x600A6BE")]
[Address(RVA = "0x6EEFF0", Offset = "0x6EDFF0", VA = "0x1806EEFF0", Slot = "18")]
get
{
return Nat128.IsZero(this.x);
}
}
// Token: 0x17001A2B RID: 6699
// (get) Token: 0x0600A6BF RID: 42687 RVA: 0x0023C9B8 File Offset: 0x0023ABB8
[Token(Token = "0x17001A2B")]
public override bool IsOne
{
[Token(Token = "0x600A6BF")]
[Address(RVA = "0x6EEFE0", Offset = "0x6EDFE0", VA = "0x1806EEFE0", Slot = "17")]
get
{
return Nat128.IsOne(this.x);
}
}
// Token: 0x0600A6C0 RID: 42688 RVA: 0x0023C9D0 File Offset: 0x0023ABD0
[Token(Token = "0x600A6C0")]
[Address(RVA = "0x6EECA0", Offset = "0x6EDCA0", VA = "0x1806EECA0", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat128.GetBit(array, num) == (uint)1;
}
// Token: 0x0600A6C1 RID: 42689 RVA: 0x0023C9F4 File Offset: 0x0023ABF4
[Token(Token = "0x600A6C1")]
[Address(RVA = "0x6EECC0", Offset = "0x6EDCC0", VA = "0x1806EECC0", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat128.ToBigInteger(this.x);
}
// Token: 0x17001A2C RID: 6700
// (get) Token: 0x0600A6C2 RID: 42690 RVA: 0x0023CA0C File Offset: 0x0023AC0C
[Token(Token = "0x17001A2C")]
public override string FieldName
{
[Token(Token = "0x600A6C2")]
[Address(RVA = "0x6EEF40", Offset = "0x6EDF40", VA = "0x1806EEF40", Slot = "5")]
get
{
return "SecP128R1Field";
}
}
// Token: 0x17001A2D RID: 6701
// (get) Token: 0x0600A6C3 RID: 42691 RVA: 0x0023CA20 File Offset: 0x0023AC20
[Token(Token = "0x17001A2D")]
public override int FieldSize
{
[Token(Token = "0x600A6C3")]
[Address(RVA = "0x6EEF70", Offset = "0x6EDF70", VA = "0x1806EEF70", Slot = "6")]
get
{
return SecP128R1FieldElement.Q.BitLength;
}
}
// Token: 0x0600A6C4 RID: 42692 RVA: 0x0023CA40 File Offset: 0x0023AC40
[Token(Token = "0x600A6C4")]
[Address(RVA = "0x6EE160", Offset = "0x6ED160", VA = "0x1806EE160", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat128.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP128R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP128R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A6C5 RID: 42693 RVA: 0x0023CA88 File Offset: 0x0023AC88
[Token(Token = "0x600A6C5")]
[Address(RVA = "0x6EE010", Offset = "0x6ED010", VA = "0x1806EE010", Slot = "8")]
public override ECFieldElement AddOne()
{
uint[] array = Nat128.Create();
uint[] array2 = this.x;
if (Nat.Inc(4, array2, array) == (uint)0)
{
uint[] p = SecP128R1Field.P;
if (!Nat128.Gte(array, p))
{
goto IL_31;
}
}
SecP128R1Field.AddPInvTo(array);
IL_31:
new SecP128R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A6C6 RID: 42694 RVA: 0x0023CAD8 File Offset: 0x0023ACD8
[Token(Token = "0x600A6C6")]
[Address(RVA = "0x6EEB60", Offset = "0x6EDB60", VA = "0x1806EEB60", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat128.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP128R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP128R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A6C7 RID: 42695 RVA: 0x0023CB20 File Offset: 0x0023AD20
[Token(Token = "0x600A6C7")]
[Address(RVA = "0x6EE6F0", Offset = "0x6ED6F0", VA = "0x1806EE6F0", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat128.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP128R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP128R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A6C8 RID: 42696 RVA: 0x0023CB68 File Offset: 0x0023AD68
[Token(Token = "0x600A6C8")]
[Address(RVA = "0x6EE2A0", Offset = "0x6ED2A0", VA = "0x1806EE2A0", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat128.Create();
uint[] p = SecP128R1Field.P;
if ("{il2cpp array field local3->}" == typeof(SecP128R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
SecP128R1Field.Multiply(array, array2, array);
new SecP128R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A6C9 RID: 42697 RVA: 0x0023CBC0 File Offset: 0x0023ADC0
[Token(Token = "0x600A6C9")]
[Address(RVA = "0x6EE830", Offset = "0x6ED830", VA = "0x1806EE830", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600A6C9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP128R1FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat128::Create))
call:void(SecP128R1Field::Negate, ldfld:uint32[](SecP128R1FieldElement::x, ldloc:SecP128R1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP128R1FieldElement::x, newobj:SecP128R1FieldElement(SecP128R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A6CA RID: 42698 RVA: 0x0023CBEC File Offset: 0x0023ADEC
[Token(Token = "0x600A6CA")]
[Address(RVA = "0x6EEAD0", Offset = "0x6EDAD0", VA = "0x1806EEAD0", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600A6CA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP128R1FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat128::Create))
call:void(SecP128R1Field::Square, ldfld:uint32[](SecP128R1FieldElement::x, ldloc:SecP128R1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP128R1FieldElement::x, newobj:SecP128R1FieldElement(SecP128R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A6CB RID: 42699 RVA: 0x0023CC18 File Offset: 0x0023AE18
[Token(Token = "0x600A6CB")]
[Address(RVA = "0x6EE620", Offset = "0x6ED620", VA = "0x1806EE620", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600A6CB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP128R1FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat128::Create))
stloc:uint32[](var_2_0E, ldfld:uint32[](SecP128R1FieldElement::x, ldloc:SecP128R1FieldElement(this)))
call:void(Mod::Invert, ldsfld:uint32[](SecP128R1Field::P), ldloc:uint32[](var_2_0E), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP128R1FieldElement::x, newobj:SecP128R1FieldElement(SecP128R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A6CC RID: 42700 RVA: 0x0023CC4C File Offset: 0x0023AE4C
[Token(Token = "0x600A6CC")]
[Address(RVA = "0x6EE8C0", Offset = "0x6ED8C0", VA = "0x1806EE8C0", Slot = "15")]
public override ECFieldElement Sqrt()
{
uint[] array;
do
{
array = this.x;
}
while (Nat128.IsZero(array) || Nat128.IsOne(array));
uint[] array2 = Nat128.Create();
SecP128R1Field.Square(array, array2);
SecP128R1Field.Multiply(array2, array, array2);
uint[] array3 = Nat128.Create();
SecP128R1Field.SquareN(array2, 2, array3);
SecP128R1Field.Multiply(array3, array2, array3);
uint[] array4 = Nat128.Create();
SecP128R1Field.SquareN(array3, 4, array4);
SecP128R1Field.Multiply(array4, array3, array4);
SecP128R1Field.SquareN(array4, 2, array3);
SecP128R1Field.Multiply(array3, array2, array3);
SecP128R1Field.SquareN(array3, 10, array2);
SecP128R1Field.Multiply(array2, array3, array2);
SecP128R1Field.SquareN(array2, 10, array4);
SecP128R1Field.Multiply(array4, array3, array4);
SecP128R1Field.Square(array4, array3);
SecP128R1Field.Multiply(array3, array, array3);
SecP128R1Field.SquareN(array3, 95, array3);
SecP128R1Field.Square(array3, array4);
if (Nat128.Eq(array, array4))
{
new SecP128R1FieldElement().x = array3;
return;
}
}
// Token: 0x0600A6CD RID: 42701 RVA: 0x0023CD40 File Offset: 0x0023AF40
[Token(Token = "0x600A6CD")]
[Address(RVA = "0x6EE420", Offset = "0x6ED420", VA = "0x1806EE420", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600A6CD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP128R1FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP128R1FieldElement[exp:ECFieldElement](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: 0x0600A6CE RID: 42702 RVA: 0x0023CD5C File Offset: 0x0023AF5C
[Token(Token = "0x600A6CE")]
[Address(RVA = "0x6EE4B0", Offset = "0x6ED4B0", VA = "0x1806EE4B0", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600A6CE)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP128R1FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP128R1FieldElement[exp:ECFieldElement](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: 0x0600A6CF RID: 42703 RVA: 0x0023CD78 File Offset: 0x0023AF78
[Token(Token = "0x600A6CF")]
[Address(RVA = "0x6EE540", Offset = "0x6ED540", VA = "0x1806EE540", Slot = "27")]
public virtual bool Equals(SecP128R1FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
return Nat128.Eq(this.x, array);
}
}
return true;
}
// Token: 0x0600A6D0 RID: 42704 RVA: 0x0023CDA4 File Offset: 0x0023AFA4
[Token(Token = "0x600A6D0")]
[Address(RVA = "0x6EE560", Offset = "0x6ED560", VA = "0x1806EE560", Slot = "2")]
public override int GetHashCode()
{
SecP128R1FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 4);
}
// Token: 0x04006CFF RID: 27903
[Token(Token = "0x4006CFF")]
public static readonly BigInteger Q = SecP128R1Curve.q;
// Token: 0x04006D00 RID: 27904
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D00")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,292 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B17 RID: 6935
[Token(Token = "0x2001B17")]
internal class SecP128R1Point : AbstractFpPoint
{
// Token: 0x0600A6D2 RID: 42706 RVA: 0x0023CDEC File Offset: 0x0023AFEC
[Token(Token = "0x600A6D2")]
[Address(RVA = "0x6F1310", Offset = "0x6F0310", VA = "0x1806F1310")]
public SecP128R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A6D3 RID: 42707 RVA: 0x0023CDFC File Offset: 0x0023AFFC
[Token(Token = "0x600A6D3")]
[Address(RVA = "0x6F1250", Offset = "0x6F0250", VA = "0x1806F1250")]
public SecP128R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A6D3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP128R1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A6D4 RID: 42708 RVA: 0x0023CE24 File Offset: 0x0023B024
[Token(Token = "0x600A6D4")]
[Address(RVA = "0x6E4C90", Offset = "0x6E3C90", VA = "0x1806E4C90")]
internal SecP128R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A6D5 RID: 42709 RVA: 0x0023CE34 File Offset: 0x0023B034
[Token(Token = "0x600A6D5")]
[Address(RVA = "0x6F0A20", Offset = "0x6EFA20", VA = "0x1806F0A20", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A6D5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP128R1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecP128R1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecP128R1Point[exp: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: 0x0600A6D6 RID: 42710 RVA: 0x0023CE50 File Offset: 0x0023B050
[Token(Token = "0x600A6D6")]
[Address(RVA = "0x6F0260", Offset = "0x6EF260", VA = "0x1806F0260", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this == b)
{
return b;
}
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat128.CreateExt();
uint[] array2 = Nat128.Create();
uint[] array3 = Nat128.Create();
uint[] array4 = Nat128.Create();
if (array4 == 0)
{
SecP128R1Field.Square(array4, array3);
SecP128R1Field.Multiply(array3, array3, array2);
SecP128R1Field.Multiply(array3, array3, array3);
SecP128R1Field.Multiply(array3, array3, array3);
}
SecP128R1Field.Multiply(array4, array4, array);
SecP128R1Field.Multiply(array4, array4, array4);
SecP128R1Field.Multiply(array4, array4, array4);
uint[] array5 = Nat128.Create();
if (!Nat128.IsZero(array5))
{
SecP128R1Field.Square(array5, array3);
uint[] array6 = Nat128.Create();
SecP128R1Field.Multiply(array3, array5, array6);
SecP128R1Field.Negate(array6, array6);
SecP128R1Field.Reduce32(Nat128.AddBothTo(array3, array3, array6), array6);
SecP128R1FieldElement secP128R1FieldElement = new SecP128R1FieldElement();
secP128R1FieldElement.x = array4;
SecP128R1Field.Square(array2, array4);
uint[] x = secP128R1FieldElement.x;
SecP128R1Field.Subtract(x, array6, x);
SecP128R1FieldElement secP128R1FieldElement2 = new SecP128R1FieldElement();
secP128R1FieldElement2.x = array6;
uint[] x2 = secP128R1FieldElement.x;
SecP128R1Field.Subtract(array3, x2, array6);
if (Nat128.MulAddTo(secP128R1FieldElement2.x, array2, array) == (uint)0)
{
uint[] pext = SecP128R1Field.PExt;
if (!Nat256.Gte(array, pext))
{
goto IL_18C;
}
}
uint[] pextInv = SecP128R1Field.PExtInv;
uint num = Nat.AddTo(pextInv.Length, pextInv, array);
IL_18C:
uint[] x3 = secP128R1FieldElement2.x;
SecP128R1Field.Reduce(array, x3);
SecP128R1FieldElement secP128R1FieldElement3 = new SecP128R1FieldElement();
secP128R1FieldElement3.x = array5;
SecP128R1Field.Multiply(array5, array, array5);
uint[] x4 = secP128R1FieldElement3.x;
ECFieldElement[] array7 = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600A6D7 RID: 42711 RVA: 0x0023D04C File Offset: 0x0023B24C
[Token(Token = "0x600A6D7")]
[Address(RVA = "0x6F0BC0", Offset = "0x6EFBC0", VA = "0x1806F0BC0", Slot = "30")]
public override ECPoint Twice()
{
while (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
if (y != 0)
{
if (y.IsOne)
{
break;
}
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
uint[] array = Nat128.Create();
uint[] array2 = Nat128.Create();
uint[] array3 = Nat128.Create();
uint[] array4 = Nat128.Create();
SecP128R1Field.Square(array3, array4);
if (ecfieldElement.BitLength == 0)
{
}
SecP128R1Field.Multiply(array2, array, array2);
SecP128R1Field.Reduce32(Nat128.AddBothTo(array2, array2, array2), array2);
SecP128R1Field.Multiply(array3, array2, array3);
int num = 0;
SecP128R1Field.Reduce32(Nat.ShiftUpBits(4, array3, 2, (uint)num), array3);
int num2 = 0;
SecP128R1Field.Reduce32(Nat.ShiftUpBits(4, array4, 3, (uint)num2, array), array);
SecP128R1FieldElement secP128R1FieldElement = new SecP128R1FieldElement();
secP128R1FieldElement.x = array4;
SecP128R1Field.Square(array2, array4);
uint[] x2 = secP128R1FieldElement.x;
SecP128R1Field.Subtract(x2, array3, x2);
uint[] x3 = secP128R1FieldElement.x;
SecP128R1Field.Subtract(x3, array3, x3);
SecP128R1FieldElement secP128R1FieldElement2 = new SecP128R1FieldElement();
secP128R1FieldElement2.x = array3;
uint[] x4 = secP128R1FieldElement.x;
SecP128R1Field.Subtract(array3, x4, array3);
uint[] x5 = secP128R1FieldElement2.x;
SecP128R1Field.Multiply(x5, array2, x5);
uint[] x6 = secP128R1FieldElement2.x;
SecP128R1Field.Subtract(x6, array, x6);
SecP128R1FieldElement secP128R1FieldElement3 = new SecP128R1FieldElement();
secP128R1FieldElement3.x = array2;
uint num3;
if (num3 == (uint)0)
{
uint[] p = SecP128R1Field.P;
if (!Nat128.Gte(array2, p))
{
goto IL_1AB;
}
}
SecP128R1Field.AddPInvTo(array2);
IL_1AB:
uint[] x7 = secP128R1FieldElement3.x;
(new ECFieldElement[1])[0] = secP128R1FieldElement3;
bool withCompression = this.m_withCompression;
break;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A6D8 RID: 42712 RVA: 0x0023D228 File Offset: 0x0023B428
[Token(Token = "0x600A6D8")]
[Address(RVA = "0x6ECFE0", Offset = "0x6EBFE0", VA = "0x1806ECFE0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
bool flag2 = base.SatisfiesCurveEquation();
}
return b;
}
bool flag3 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600A6D9 RID: 42713 RVA: 0x0023D278 File Offset: 0x0023B478
[Token(Token = "0x600A6D9")]
[Address(RVA = "0x6ECF60", Offset = "0x6EBF60", VA = "0x1806ECF60", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600A6DA RID: 42714 RVA: 0x0023D2A8 File Offset: 0x0023B4A8
[Token(Token = "0x600A6DA")]
[Address(RVA = "0x6F0AC0", Offset = "0x6EFAC0", VA = "0x1806F0AC0", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,310 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B18 RID: 6936
[Token(Token = "0x2001B18")]
internal class SecP160K1Curve : AbstractFpCurve
{
// Token: 0x0600A6DB RID: 42715 RVA: 0x0023D2E0 File Offset: 0x0023B4E0
[Token(Token = "0x600A6DB")]
[Address(RVA = "0x6F17E0", Offset = "0x6F07E0", VA = "0x1806F17E0")]
public SecP160K1Curve()
{
IFiniteField primeField = FiniteFields.GetPrimeField(SecP160K1Curve.q);
base..ctor(primeField);
int num;
int num2;
ulong num3;
SecP160K1Point secP160K1Point = new SecP160K1Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = secP160K1Point;
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array = Hex.Decode("0100000000000000000001B8FA16DFAB9ACA16B6B3");
BigInteger bigInteger = new BigInteger(1, array);
this.m_order = bigInteger;
BigInteger one = BigInteger.One;
this.m_cofactor = one;
this.m_coord = (int)((ulong)2L);
}
// Token: 0x0600A6DC RID: 42716 RVA: 0x0023D370 File Offset: 0x0023B570
[Token(Token = "0x600A6DC")]
[Address(RVA = "0x6F1330", Offset = "0x6F0330", VA = "0x1806F1330", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A6DC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160K1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP160K1Curve(var_0_05, newobj:SecP160K1Curve(SecP160K1Curve::.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.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: 0x0600A6DD RID: 42717 RVA: 0x0023D384 File Offset: 0x0023B584
[Token(Token = "0x600A6DD")]
[Address(RVA = "0x6E9C20", Offset = "0x6E8C20", VA = "0x1806E9C20", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 2;
}
// Token: 0x17001A2E RID: 6702
// (get) Token: 0x0600A6DE RID: 42718 RVA: 0x0023D398 File Offset: 0x0023B598
[Token(Token = "0x17001A2E")]
public virtual BigInteger Q
{
[Token(Token = "0x600A6DE")]
[Address(RVA = "0x6F1A30", Offset = "0x6F0A30", VA = "0x1806F1A30", Slot = "38")]
get
{
return SecP160K1Curve.q;
}
}
// Token: 0x17001A2F RID: 6703
// (get) Token: 0x0600A6DF RID: 42719 RVA: 0x0023D3AC File Offset: 0x0023B5AC
[Token(Token = "0x17001A2F")]
public override ECPoint Infinity
{
[Token(Token = "0x600A6DF")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A6DF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160K1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP160K1Point(var_0_06, ldfld:SecP160K1Point(SecP160K1Curve::m_infinity, ldloc:SecP160K1Curve(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: 0x17001A30 RID: 6704
// (get) Token: 0x0600A6E0 RID: 42720 RVA: 0x0023D3C0 File Offset: 0x0023B5C0
[Token(Token = "0x17001A30")]
public override int FieldSize
{
[Token(Token = "0x600A6E0")]
[Address(RVA = "0x6F19C0", Offset = "0x6F09C0", VA = "0x1806F19C0", Slot = "4")]
get
{
return SecP160K1Curve.q.BitLength;
}
}
// Token: 0x0600A6E1 RID: 42721 RVA: 0x0023D3E0 File Offset: 0x0023B5E0
[Token(Token = "0x600A6E1")]
[Address(RVA = "0x6F1710", Offset = "0x6F0710", VA = "0x1806F1710", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A6E1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160K1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP160R2FieldElement(var_0_06, newobj:SecP160R2FieldElement(SecP160R2FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600A6E2 RID: 42722 RVA: 0x0023D3F4 File Offset: 0x0023B5F4
[Token(Token = "0x600A6E2")]
[Address(RVA = "0x6F15E0", Offset = "0x6F05E0", VA = "0x1806F15E0", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A6E2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160K1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP160K1Point(var_0_09, newobj:SecP160K1Point(SecP160K1Point::.ctor, ldloc:SecP160K1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A6E3 RID: 42723 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A6E3")]
[Address(RVA = "0x6F1670", Offset = "0x6F0670", VA = "0x1806F1670", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A6E4 RID: 42724 RVA: 0x0023D40C File Offset: 0x0023B60C
[Token(Token = "0x600A6E4")]
[Address(RVA = "0x6F1380", Offset = "0x6F0380", VA = "0x1806F1380", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[points];
num = 0;
if (len <= 0)
{
goto IL_4A;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 10;
IL_4A:
SecP160K1Curve.SecP160K1LookupTable secP160K1LookupTable;
secP160K1LookupTable.m_outer = 0;
secP160K1LookupTable.m_table = array;
secP160K1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006D01 RID: 27905
[Token(Token = "0x4006D01")]
public static readonly BigInteger q = SecP160R2Curve.q;
// Token: 0x04006D02 RID: 27906
[Token(Token = "0x4006D02")]
private const int SECP160K1_DEFAULT_COORDS = 2;
// Token: 0x04006D03 RID: 27907
[Token(Token = "0x4006D03")]
private const int SECP160K1_FE_INTS = 5;
// Token: 0x04006D04 RID: 27908
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006D04")]
protected readonly SecP160K1Point m_infinity;
// Token: 0x02001B19 RID: 6937
[Token(Token = "0x2001B19")]
private class SecP160K1LookupTable : ECLookupTable
{
// Token: 0x0600A6E6 RID: 42726 RVA: 0x0023D498 File Offset: 0x0023B698
[Token(Token = "0x600A6E6")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecP160K1LookupTable(SecP160K1Curve outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A31 RID: 6705
// (get) Token: 0x0600A6E7 RID: 42727 RVA: 0x0023D4C0 File Offset: 0x0023B6C0
[Token(Token = "0x17001A31")]
public virtual int Size
{
[Token(Token = "0x600A6E7")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A6E8 RID: 42728 RVA: 0x0023D4D4 File Offset: 0x0023B6D4
[Token(Token = "0x600A6E8")]
[Address(RVA = "0x6F1A90", Offset = "0x6F0A90", VA = "0x1806F1A90", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat256.Create();
uint[] array2 = Nat256.Create();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 10;
num2++;
}
SecP160K1Curve outer = this.m_outer;
SecP160R2FieldElement secP160R2FieldElement = new SecP160R2FieldElement(array);
SecP160R2FieldElement secP160R2FieldElement2 = new SecP160R2FieldElement(array2);
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006D05 RID: 27909
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D05")]
private readonly SecP160K1Curve m_outer;
// Token: 0x04006D06 RID: 27910
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006D06")]
private readonly uint[] m_table;
// Token: 0x04006D07 RID: 27911
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006D07")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,263 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B1A RID: 6938
[Token(Token = "0x2001B1A")]
internal class SecP160K1Point : AbstractFpPoint
{
// Token: 0x0600A6E9 RID: 42729 RVA: 0x0023D550 File Offset: 0x0023B750
[Token(Token = "0x600A6E9")]
[Address(RVA = "0x6F2AB0", Offset = "0x6F1AB0", VA = "0x1806F2AB0")]
public SecP160K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A6EA RID: 42730 RVA: 0x0023D560 File Offset: 0x0023B760
[Token(Token = "0x600A6EA")]
[Address(RVA = "0x6F29F0", Offset = "0x6F19F0", VA = "0x1806F29F0")]
public SecP160K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A6EA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160K1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A6EB RID: 42731 RVA: 0x0023D588 File Offset: 0x0023B788
[Token(Token = "0x600A6EB")]
[Address(RVA = "0x6E4C90", Offset = "0x6E3C90", VA = "0x1806E4C90")]
internal SecP160K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A6EC RID: 42732 RVA: 0x0023D598 File Offset: 0x0023B798
[Token(Token = "0x600A6EC")]
[Address(RVA = "0x6F2340", Offset = "0x6F1340", VA = "0x1806F2340", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A6EC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160K1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecP160K1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecP160K1Point[exp: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: 0x0600A6ED RID: 42733 RVA: 0x0023D5B4 File Offset: 0x0023B7B4
[Token(Token = "0x600A6ED")]
[Address(RVA = "0x6F1C60", Offset = "0x6F0C60", VA = "0x1806F1C60", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity && !b.IsInfinity && this != b)
{
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat160.CreateExt();
uint[] array2 = Nat160.Create();
uint[] array3 = Nat160.Create();
uint[] array4 = Nat160.Create();
if (array4 == 0)
{
SecP160R2Field.Square(array4, array3);
SecP160R2Field.Multiply(array3, array3, array2);
SecP160R2Field.Multiply(array3, array3, array3);
SecP160R2Field.Multiply(array3, array3, array3);
}
SecP160R2Field.Multiply(array4, array4, array);
SecP160R2Field.Multiply(array4, array4, array4);
SecP160R2Field.Multiply(array4, array4, array4);
uint[] array5 = Nat160.Create();
SecP160R2Field.Subtract(array, array4, array5);
if (!Nat160.IsZero(array5))
{
SecP160R2Field.Square(array5, array3);
uint[] array6 = Nat160.Create();
SecP160R2Field.Multiply(array3, array5, array6);
SecP160R2Field.Multiply(array3, array, array3);
SecP160R2Field.Negate(array6, array6);
SecP160R2Field.Reduce32(Nat160.AddBothTo(array3, array3, array6), array6);
SecP160R2FieldElement secP160R2FieldElement = new SecP160R2FieldElement(array4);
uint[] x = secP160R2FieldElement.x;
SecP160R2Field.Square(array2, x);
uint[] x2 = secP160R2FieldElement.x;
SecP160R2Field.Subtract(x2, array6, x2);
SecP160R2FieldElement secP160R2FieldElement2 = new SecP160R2FieldElement(array6);
uint[] x3 = secP160R2FieldElement2.x;
uint[] x4 = secP160R2FieldElement.x;
SecP160R2Field.Subtract(array3, x4, x3);
SecP160R2Field.MultiplyAddToExt(secP160R2FieldElement2.x, array2, array);
uint[] x5 = secP160R2FieldElement2.x;
SecP160R2Field.Reduce(array, x5);
SecP160R2FieldElement secP160R2FieldElement3 = new SecP160R2FieldElement(array5);
uint[] x6 = secP160R2FieldElement3.x;
uint[] x7 = secP160R2FieldElement3.x;
ECFieldElement[] array7 = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600A6EE RID: 42734 RVA: 0x0023D794 File Offset: 0x0023B994
[Token(Token = "0x600A6EE")]
[Address(RVA = "0x6F24E0", Offset = "0x6F14E0", VA = "0x1806F24E0", Slot = "30")]
public override ECPoint Twice()
{
while (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
if (y != 0)
{
if (y.IsOne)
{
break;
}
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
uint[] array = Nat160.Create();
uint[] array2 = Nat160.Create();
SecP160R2Field.Square(array, array2);
uint[] array3 = Nat160.Create();
SecP160R2Field.Reduce32(Nat160.AddBothTo(array3, array3, array3), array3);
SecP160R2Field.Multiply(array, array3, array);
int num = 0;
SecP160R2Field.Reduce32(Nat.ShiftUpBits(5, array, 2, (uint)num), array);
uint[] array4 = Nat160.Create();
int num2 = 0;
SecP160R2Field.Reduce32(Nat.ShiftUpBits(5, array2, 3, (uint)num2, array4), array4);
SecP160R2FieldElement secP160R2FieldElement = new SecP160R2FieldElement(array2);
uint[] x2 = secP160R2FieldElement.x;
SecP160R2Field.Square(array3, x2);
uint[] x3 = secP160R2FieldElement.x;
SecP160R2Field.Subtract(x3, array, x3);
uint[] x4 = secP160R2FieldElement.x;
SecP160R2Field.Subtract(x4, array, x4);
SecP160R2FieldElement secP160R2FieldElement2 = new SecP160R2FieldElement(array);
uint[] x5 = secP160R2FieldElement2.x;
uint[] x6 = secP160R2FieldElement.x;
SecP160R2Field.Subtract(array, x6, x5);
uint[] x7 = secP160R2FieldElement2.x;
SecP160R2Field.Multiply(x7, array3, x7);
uint[] x8 = secP160R2FieldElement2.x;
SecP160R2Field.Subtract(x8, array4, x8);
SecP160R2FieldElement secP160R2FieldElement3 = new SecP160R2FieldElement(array3);
if (ecfieldElement.BitLength == 0)
{
uint[] x9 = secP160R2FieldElement3.x;
}
(new ECFieldElement[1])[0] = secP160R2FieldElement3;
bool withCompression = this.m_withCompression;
break;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A6EF RID: 42735 RVA: 0x0023D93C File Offset: 0x0023BB3C
[Token(Token = "0x600A6EF")]
[Address(RVA = "0x6ECFE0", Offset = "0x6EBFE0", VA = "0x1806ECFE0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
bool flag2 = base.SatisfiesCurveEquation();
}
return b;
}
bool flag3 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600A6F0 RID: 42736 RVA: 0x0023D98C File Offset: 0x0023BB8C
[Token(Token = "0x600A6F0")]
[Address(RVA = "0x6ECF60", Offset = "0x6EBF60", VA = "0x1806ECF60", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600A6F1 RID: 42737 RVA: 0x0023D9BC File Offset: 0x0023BBBC
[Token(Token = "0x600A6F1")]
[Address(RVA = "0x6F23E0", Offset = "0x6F13E0", VA = "0x1806F23E0", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,324 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Field;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B1B RID: 6939
[Token(Token = "0x2001B1B")]
internal class SecP160R1Curve : AbstractFpCurve
{
// Token: 0x0600A6F2 RID: 42738 RVA: 0x0023D9F4 File Offset: 0x0023BBF4
[Token(Token = "0x600A6F2")]
[Address(RVA = "0x6F2FB0", Offset = "0x6F1FB0", VA = "0x1806F2FB0")]
public SecP160R1Curve()
{
IFiniteField primeField = FiniteFields.GetPrimeField(SecP160R1Curve.q);
base..ctor(primeField);
int num;
int num2;
ulong num3;
SecP160R1Point secP160R1Point = new SecP160R1Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = secP160R1Point;
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45");
BigInteger bigInteger2 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("0100000000000000000001F4C8F927AED3CA752257");
BigInteger bigInteger3 = new BigInteger(1, array3);
this.m_order = bigInteger3;
BigInteger one = BigInteger.One;
this.m_cofactor = one;
this.m_coord = (int)((ulong)2L);
}
// Token: 0x0600A6F3 RID: 42739 RVA: 0x0023DAB0 File Offset: 0x0023BCB0
[Token(Token = "0x600A6F3")]
[Address(RVA = "0x6F2AD0", Offset = "0x6F1AD0", VA = "0x1806F2AD0", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A6F3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP160R1Curve(var_0_05, newobj:SecP160R1Curve(SecP160R1Curve::.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.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: 0x0600A6F4 RID: 42740 RVA: 0x0023DAC4 File Offset: 0x0023BCC4
[Token(Token = "0x600A6F4")]
[Address(RVA = "0x6E9C20", Offset = "0x6E8C20", VA = "0x1806E9C20", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 2;
}
// Token: 0x17001A32 RID: 6706
// (get) Token: 0x0600A6F5 RID: 42741 RVA: 0x0023DAD8 File Offset: 0x0023BCD8
[Token(Token = "0x17001A32")]
public virtual BigInteger Q
{
[Token(Token = "0x600A6F5")]
[Address(RVA = "0x6F3240", Offset = "0x6F2240", VA = "0x1806F3240", Slot = "38")]
get
{
return SecP160R1Curve.q;
}
}
// Token: 0x17001A33 RID: 6707
// (get) Token: 0x0600A6F6 RID: 42742 RVA: 0x0023DAEC File Offset: 0x0023BCEC
[Token(Token = "0x17001A33")]
public override ECPoint Infinity
{
[Token(Token = "0x600A6F6")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A6F6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP160R1Point(var_0_06, ldfld:SecP160R1Point(SecP160R1Curve::m_infinity, ldloc:SecP160R1Curve(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: 0x17001A34 RID: 6708
// (get) Token: 0x0600A6F7 RID: 42743 RVA: 0x0023DB00 File Offset: 0x0023BD00
[Token(Token = "0x17001A34")]
public override int FieldSize
{
[Token(Token = "0x600A6F7")]
[Address(RVA = "0x6F31D0", Offset = "0x6F21D0", VA = "0x1806F31D0", Slot = "4")]
get
{
return SecP160R1Curve.q.BitLength;
}
}
// Token: 0x0600A6F8 RID: 42744 RVA: 0x0023DB20 File Offset: 0x0023BD20
[Token(Token = "0x600A6F8")]
[Address(RVA = "0x6F2EB0", Offset = "0x6F1EB0", VA = "0x1806F2EB0", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A6F8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP160R1FieldElement(var_0_06, newobj:SecP160R1FieldElement(SecP160R1FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600A6F9 RID: 42745 RVA: 0x0023DB34 File Offset: 0x0023BD34
[Token(Token = "0x600A6F9")]
[Address(RVA = "0x6F2E20", Offset = "0x6F1E20", VA = "0x1806F2E20", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A6F9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP160R1Point(var_0_09, newobj:SecP160R1Point(SecP160R1Point::.ctor, ldloc:SecP160R1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A6FA RID: 42746 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A6FA")]
[Address(RVA = "0x6F2D80", Offset = "0x6F1D80", VA = "0x1806F2D80", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A6FB RID: 42747 RVA: 0x0023DB4C File Offset: 0x0023BD4C
[Token(Token = "0x600A6FB")]
[Address(RVA = "0x6F2B20", Offset = "0x6F1B20", VA = "0x1806F2B20", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[points];
num = 0;
if (len <= 0)
{
goto IL_4A;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 10;
IL_4A:
SecP160R1Curve.SecP160R1LookupTable secP160R1LookupTable;
secP160R1LookupTable.m_outer = 0;
secP160R1LookupTable.m_table = array;
secP160R1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x0600A6FC RID: 42748 RVA: 0x0023DBC0 File Offset: 0x0023BDC0
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A6FC")]
[Address(RVA = "0x6F2F10", Offset = "0x6F1F10", VA = "0x1806F2F10")]
static SecP160R1Curve()
{
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF");
SecP160R1Curve.q = new BigInteger(1, array);
}
// Token: 0x04006D08 RID: 27912
[Token(Token = "0x4006D08")]
public static readonly BigInteger q;
// Token: 0x04006D09 RID: 27913
[Token(Token = "0x4006D09")]
private const int SECP160R1_DEFAULT_COORDS = 2;
// Token: 0x04006D0A RID: 27914
[Token(Token = "0x4006D0A")]
private const int SECP160R1_FE_INTS = 5;
// Token: 0x04006D0B RID: 27915
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006D0B")]
protected readonly SecP160R1Point m_infinity;
// Token: 0x02001B1C RID: 6940
[Token(Token = "0x2001B1C")]
private class SecP160R1LookupTable : ECLookupTable
{
// Token: 0x0600A6FD RID: 42749 RVA: 0x0023DBE4 File Offset: 0x0023BDE4
[Token(Token = "0x600A6FD")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecP160R1LookupTable(SecP160R1Curve outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A35 RID: 6709
// (get) Token: 0x0600A6FE RID: 42750 RVA: 0x0023DC0C File Offset: 0x0023BE0C
[Token(Token = "0x17001A35")]
public virtual int Size
{
[Token(Token = "0x600A6FE")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A6FF RID: 42751 RVA: 0x0023DC20 File Offset: 0x0023BE20
[Token(Token = "0x600A6FF")]
[Address(RVA = "0x6F5230", Offset = "0x6F4230", VA = "0x1806F5230", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat160.Create();
uint[] array2 = Nat160.Create();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 10;
num2++;
}
SecP160R1Curve outer = this.m_outer;
new SecP160R1FieldElement().x = array;
new SecP160R1FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006D0C RID: 27916
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D0C")]
private readonly SecP160R1Curve m_outer;
// Token: 0x04006D0D RID: 27917
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006D0D")]
private readonly uint[] m_table;
// Token: 0x04006D0E RID: 27918
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006D0E")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,348 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B1D RID: 6941
[Token(Token = "0x2001B1D")]
internal class SecP160R1Field
{
// Token: 0x0600A700 RID: 42752 RVA: 0x0023DCA0 File Offset: 0x0023BEA0
[Token(Token = "0x600A700")]
[Address(RVA = "0x6F4500", Offset = "0x6F3500", VA = "0x1806F4500")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
if (Nat160.Add(x, y, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP160R1Field.P;
if (!Nat160.Gte(z, p))
{
return;
}
}
uint num = Nat.AddWordTo(5, (uint)(-2147483647), z);
}
// Token: 0x0600A701 RID: 42753 RVA: 0x0023DCE8 File Offset: 0x0023BEE8
[Token(Token = "0x600A701")]
[Address(RVA = "0x6F42B0", Offset = "0x6F32B0", VA = "0x1806F42B0")]
public static void AddExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Add(10, xx, yy, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP160R1Field.PExt;
if (!Nat.Gte(10, zz, pext))
{
return;
}
}
uint[] pextInv = SecP160R1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP160R1Field.PExtInv.Length;
uint num = Nat.IncAt(10, zz, length);
}
}
// Token: 0x0600A702 RID: 42754 RVA: 0x0023DD54 File Offset: 0x0023BF54
[Token(Token = "0x600A702")]
[Address(RVA = "0x6F4430", Offset = "0x6F3430", VA = "0x1806F4430")]
public static void AddOne(uint[] x, uint[] z)
{
if (Nat.Inc(5, x, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP160R1Field.P;
if (!Nat160.Gte(z, p))
{
return;
}
}
uint num = Nat.AddWordTo(5, (uint)(-2147483647), z);
}
// Token: 0x0600A703 RID: 42755 RVA: 0x0023DD9C File Offset: 0x0023BF9C
[Token(Token = "0x600A703")]
[Address(RVA = "0x6F45E0", Offset = "0x6F35E0", VA = "0x1806F45E0")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat160.FromBigInteger(x);
if ("{il2cpp array field local2->}" == (ulong)(-1L))
{
uint[] p = SecP160R1Field.P;
if (Nat160.Gte(array, p))
{
int num = Nat160.SubFrom(SecP160R1Field.P, array);
}
}
return array;
}
// Token: 0x0600A704 RID: 42756 RVA: 0x0023DDE0 File Offset: 0x0023BFE0
[Token(Token = "0x600A704")]
[Address(RVA = "0x6F46D0", Offset = "0x6F36D0", VA = "0x1806F46D0")]
public static void Half(uint[] x, uint[] z)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
uint[] p = SecP160R1Field.P;
uint num = Nat160.Add(x, p, z);
uint num2 = Nat.ShiftDownBit(5, z, num);
return;
}
int num3 = 0;
uint num4 = Nat.ShiftDownBit(5, x, (uint)num3, z);
}
// Token: 0x0600A705 RID: 42757 RVA: 0x0023DE24 File Offset: 0x0023C024
[Token(Token = "0x600A705")]
[Address(RVA = "0x6F4920", Offset = "0x6F3920", VA = "0x1806F4920")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat160.CreateExt();
Nat160.Mul(x, y, array);
SecP160R1Field.Reduce(array, z);
}
// Token: 0x0600A706 RID: 42758 RVA: 0x0023DE48 File Offset: 0x0023C048
[Token(Token = "0x600A706")]
[Address(RVA = "0x6F47B0", Offset = "0x6F37B0", VA = "0x1806F47B0")]
public static void MultiplyAddToExt(uint[] x, uint[] y, uint[] zz)
{
if (Nat160.MulAddTo(x, y, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP160R1Field.PExt;
if (!Nat.Gte(10, zz, pext))
{
return;
}
}
uint[] pextInv = SecP160R1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP160R1Field.PExtInv.Length;
uint num = Nat.IncAt(10, zz, length);
}
}
// Token: 0x0600A707 RID: 42759 RVA: 0x0023DEB0 File Offset: 0x0023C0B0
[Token(Token = "0x600A707")]
[Address(RVA = "0x6F49C0", Offset = "0x6F39C0", VA = "0x1806F49C0")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat160.IsZero(x))
{
int num = Nat160.Sub(SecP160R1Field.P, x, z);
return;
}
Nat160.Zero(z);
}
// Token: 0x0600A708 RID: 42760 RVA: 0x0023DEDC File Offset: 0x0023C0DC
[Token(Token = "0x600A708")]
[Address(RVA = "0x6F4B40", Offset = "0x6F3B40", VA = "0x1806F4B40")]
public static void Reduce(uint[] xx, uint[] z)
{
int length = xx.Length;
uint num = xx[2];
uint num2 = xx[3];
uint num3 = xx[3];
uint num4 = xx[4];
uint num5 = xx[0];
uint num6 = xx[4];
num += num;
num5 += num;
z[0] = num5;
uint num7 = xx[0];
num = num2;
num7 += num2;
num7 += num;
num5 += num7;
z[0] = num5;
uint num8 = xx[1];
num = num3;
num8 += num3;
num8 += num;
num5 += num8;
z[1] = num5;
uint num9 = xx[1];
num = num4;
num9 += num4;
num9 += num;
num5 += num9;
z[1] = num5;
uint num10 = xx[2];
num = num6;
num10 += num6;
num10 += num;
num5 += num10;
z[2] = num5;
SecP160R1Field.Reduce32(num5, z);
}
// Token: 0x0600A709 RID: 42761 RVA: 0x0023DFE4 File Offset: 0x0023C1E4
[Token(Token = "0x600A709")]
[Address(RVA = "0x6F4A60", Offset = "0x6F3A60", VA = "0x1806F4A60")]
public static void Reduce32(uint x, uint[] z)
{
if (x != (uint)0)
{
int num = 0;
if (Nat160.MulWordsAdd((uint)(-2147483647), x, z, num) != (uint)0)
{
goto IL_33;
}
}
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP160R1Field.P;
if (!Nat160.Gte(z, p))
{
return;
}
IL_33:
uint num2 = Nat.AddWordTo(5, (uint)(-2147483647), z);
}
// Token: 0x0600A70A RID: 42762 RVA: 0x0023E038 File Offset: 0x0023C238
[Token(Token = "0x600A70A")]
[Address(RVA = "0x6F4EA0", Offset = "0x6F3EA0", VA = "0x1806F4EA0")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat160.CreateExt();
Nat160.Square(x, array);
SecP160R1Field.Reduce(array, z);
}
// Token: 0x0600A70B RID: 42763 RVA: 0x0023E05C File Offset: 0x0023C25C
[Token(Token = "0x600A70B")]
[Address(RVA = "0x6F4DC0", Offset = "0x6F3DC0", VA = "0x1806F4DC0")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat160.CreateExt();
Nat160.Square(x, array);
SecP160R1Field.Reduce(array, z);
if (n > 0)
{
Nat160.Square(z, array);
SecP160R1Field.Reduce(array, z);
}
}
// Token: 0x0600A70C RID: 42764 RVA: 0x0023E094 File Offset: 0x0023C294
[Token(Token = "0x600A70C")]
[Address(RVA = "0x6F5040", Offset = "0x6F4040", VA = "0x1806F5040")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
if (Nat160.Sub(x, y, z) != 0)
{
int num = Nat.SubWordFrom(5, (uint)(-2147483647), z);
return;
}
}
// Token: 0x0600A70D RID: 42765 RVA: 0x0023E0BC File Offset: 0x0023C2BC
[Token(Token = "0x600A70D")]
[Address(RVA = "0x6F4F30", Offset = "0x6F3F30", VA = "0x1806F4F30")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(10, xx, yy, zz) != 0)
{
uint[] pextInv = SecP160R1Field.PExtInv;
if (Nat.SubFrom(pextInv.Length, pextInv, zz) != 0)
{
int length = SecP160R1Field.PExtInv.Length;
int num = Nat.DecAt(10, zz, length);
}
}
}
// Token: 0x0600A70E RID: 42766 RVA: 0x0023E108 File Offset: 0x0023C308
[Token(Token = "0x600A70E")]
[Address(RVA = "0x6F5080", Offset = "0x6F4080", VA = "0x1806F5080")]
public static void Twice(uint[] x, uint[] z)
{
int num = 0;
if (Nat.ShiftUpBit(5, x, (uint)num, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP160R1Field.P;
if (!Nat160.Gte(z, p))
{
return;
}
}
uint num2 = Nat.AddWordTo(5, (uint)(-2147483647), z);
}
// Token: 0x0600A70F RID: 42767 RVA: 0x0023E154 File Offset: 0x0023C354
[Token(Token = "0x600A70F")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecP160R1Field()
{
}
// Token: 0x0600A710 RID: 42768 RVA: 0x0023E168 File Offset: 0x0023C368
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A710")]
[Address(RVA = "0x6F5160", Offset = "0x6F4160", VA = "0x1806F5160")]
static SecP160R1Field()
{
uint[] array = new uint[5];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.35D6BB00E88996CA4CA6EEB743BE1820C59C5FAD).FieldHandle);
SecP160R1Field.P = array;
uint[] array2 = new uint[10];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.310FB325A3EA3EA527B55C2F08544D1CB92C19F4).FieldHandle);
SecP160R1Field.PExt = array2;
uint[] array3 = new uint[7];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.C132685022CE310ACFD3A883E0A57033A482A959).FieldHandle);
SecP160R1Field.PExtInv = array3;
}
// Token: 0x04006D0F RID: 27919
[Token(Token = "0x4006D0F")]
internal static readonly uint[] P;
// Token: 0x04006D10 RID: 27920
[Token(Token = "0x4006D10")]
internal static readonly uint[] PExt;
// Token: 0x04006D11 RID: 27921
[Token(Token = "0x4006D11")]
private static readonly uint[] PExtInv;
// Token: 0x04006D12 RID: 27922
[Token(Token = "0x4006D12")]
private const uint P4 = 4294967295U;
// Token: 0x04006D13 RID: 27923
[Token(Token = "0x4006D13")]
private const uint PExt9 = 4294967295U;
// Token: 0x04006D14 RID: 27924
[Token(Token = "0x4006D14")]
private const uint PInv = 2147483649U;
}
}
@@ -0,0 +1,447 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B1E RID: 6942
[Token(Token = "0x2001B1E")]
internal class SecP160R1FieldElement : AbstractFpFieldElement
{
// Token: 0x0600A711 RID: 42769 RVA: 0x0023E1C0 File Offset: 0x0023C3C0
[Token(Token = "0x600A711")]
[Address(RVA = "0x6F4020", Offset = "0x6F3020", VA = "0x1806F4020")]
public SecP160R1FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A711)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R1FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4E:
stloc:ArgumentException(var_5_5D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecP160R1FieldElement"), ldstr:string("x")))
}
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: 0x0600A712 RID: 42770 RVA: 0x0023E22C File Offset: 0x0023C42C
[Token(Token = "0x600A712")]
[Address(RVA = "0x6F3FF0", Offset = "0x6F2FF0", VA = "0x1806F3FF0")]
public SecP160R1FieldElement()
{
uint[] array = Nat160.Create();
this.x = array;
}
// Token: 0x0600A713 RID: 42771 RVA: 0x0023E250 File Offset: 0x0023C450
[Token(Token = "0x600A713")]
[Address(RVA = "0x681CA0", Offset = "0x680CA0", VA = "0x180681CA0")]
protected internal SecP160R1FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001A36 RID: 6710
// (get) Token: 0x0600A714 RID: 42772 RVA: 0x0023E26C File Offset: 0x0023C46C
[Token(Token = "0x17001A36")]
public override bool IsZero
{
[Token(Token = "0x600A714")]
[Address(RVA = "0x6F42A0", Offset = "0x6F32A0", VA = "0x1806F42A0", Slot = "18")]
get
{
return Nat160.IsZero(this.x);
}
}
// Token: 0x17001A37 RID: 6711
// (get) Token: 0x0600A715 RID: 42773 RVA: 0x0023E284 File Offset: 0x0023C484
[Token(Token = "0x17001A37")]
public override bool IsOne
{
[Token(Token = "0x600A715")]
[Address(RVA = "0x6F4290", Offset = "0x6F3290", VA = "0x1806F4290", Slot = "17")]
get
{
return Nat160.IsOne(this.x);
}
}
// Token: 0x0600A716 RID: 42774 RVA: 0x0023E29C File Offset: 0x0023C49C
[Token(Token = "0x600A716")]
[Address(RVA = "0x6F3F50", Offset = "0x6F2F50", VA = "0x1806F3F50", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat160.GetBit(array, num) == (uint)1;
}
// Token: 0x0600A717 RID: 42775 RVA: 0x0023E2C0 File Offset: 0x0023C4C0
[Token(Token = "0x600A717")]
[Address(RVA = "0x6F3F70", Offset = "0x6F2F70", VA = "0x1806F3F70", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat160.ToBigInteger(this.x);
}
// Token: 0x17001A38 RID: 6712
// (get) Token: 0x0600A718 RID: 42776 RVA: 0x0023E2D8 File Offset: 0x0023C4D8
[Token(Token = "0x17001A38")]
public override string FieldName
{
[Token(Token = "0x600A718")]
[Address(RVA = "0x6F41F0", Offset = "0x6F31F0", VA = "0x1806F41F0", Slot = "5")]
get
{
return "SecP160R1Field";
}
}
// Token: 0x17001A39 RID: 6713
// (get) Token: 0x0600A719 RID: 42777 RVA: 0x0023E2EC File Offset: 0x0023C4EC
[Token(Token = "0x17001A39")]
public override int FieldSize
{
[Token(Token = "0x600A719")]
[Address(RVA = "0x6F4220", Offset = "0x6F3220", VA = "0x1806F4220", Slot = "6")]
get
{
return SecP160R1FieldElement.Q.BitLength;
}
}
// Token: 0x0600A71A RID: 42778 RVA: 0x0023E30C File Offset: 0x0023C50C
[Token(Token = "0x600A71A")]
[Address(RVA = "0x6F33E0", Offset = "0x6F23E0", VA = "0x1806F33E0", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat160.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP160R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP160R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A71B RID: 42779 RVA: 0x0023E354 File Offset: 0x0023C554
[Token(Token = "0x600A71B")]
[Address(RVA = "0x6F32A0", Offset = "0x6F22A0", VA = "0x1806F32A0", Slot = "8")]
public override ECFieldElement AddOne()
{
uint[] array = Nat160.Create();
uint[] array2 = this.x;
if (Nat.Inc(5, array2, array) == (uint)0)
{
if ("{il2cpp array field local2->}" != (ulong)(-1L))
{
goto IL_44;
}
uint[] p = SecP160R1Field.P;
if (!Nat160.Gte(array, p))
{
goto IL_44;
}
}
uint num = Nat.AddWordTo(5, (uint)(-2147483647), array);
IL_44:
new SecP160R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A71C RID: 42780 RVA: 0x0023E3B8 File Offset: 0x0023C5B8
[Token(Token = "0x600A71C")]
[Address(RVA = "0x6F3DF0", Offset = "0x6F2DF0", VA = "0x1806F3DF0", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat160.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP160R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
int num;
if (num != 0)
{
int num2 = Nat.SubWordFrom(5, (uint)(-2147483647), array);
}
new SecP160R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A71D RID: 42781 RVA: 0x0023E414 File Offset: 0x0023C614
[Token(Token = "0x600A71D")]
[Address(RVA = "0x6F3970", Offset = "0x6F2970", VA = "0x1806F3970", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat160.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP160R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP160R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A71E RID: 42782 RVA: 0x0023E45C File Offset: 0x0023C65C
[Token(Token = "0x600A71E")]
[Address(RVA = "0x6F3520", Offset = "0x6F2520", VA = "0x1806F3520", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat160.Create();
uint[] p = SecP160R1Field.P;
if ("{il2cpp array field local3->}" == typeof(SecP160R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
SecP160R1Field.Multiply(array, array2, array);
new SecP160R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A71F RID: 42783 RVA: 0x0023E4B4 File Offset: 0x0023C6B4
[Token(Token = "0x600A71F")]
[Address(RVA = "0x6F3AB0", Offset = "0x6F2AB0", VA = "0x1806F3AB0", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600A71F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R1FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat160::Create))
call:void(SecP160R1Field::Negate, ldfld:uint32[](SecP160R1FieldElement::x, ldloc:SecP160R1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP160R1FieldElement::x, newobj:SecP160R1FieldElement(SecP160R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A720 RID: 42784 RVA: 0x0023E4E0 File Offset: 0x0023C6E0
[Token(Token = "0x600A720")]
[Address(RVA = "0x6F3D60", Offset = "0x6F2D60", VA = "0x1806F3D60", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600A720)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R1FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat160::Create))
call:void(SecP160R1Field::Square, ldfld:uint32[](SecP160R1FieldElement::x, ldloc:SecP160R1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP160R1FieldElement::x, newobj:SecP160R1FieldElement(SecP160R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A721 RID: 42785 RVA: 0x0023E50C File Offset: 0x0023C70C
[Token(Token = "0x600A721")]
[Address(RVA = "0x6F38A0", Offset = "0x6F28A0", VA = "0x1806F38A0", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600A721)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R1FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat160::Create))
stloc:uint32[](var_2_0E, ldfld:uint32[](SecP160R1FieldElement::x, ldloc:SecP160R1FieldElement(this)))
call:void(Mod::Invert, ldsfld:uint32[](SecP160R1Field::P), ldloc:uint32[](var_2_0E), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP160R1FieldElement::x, newobj:SecP160R1FieldElement(SecP160R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A722 RID: 42786 RVA: 0x0023E540 File Offset: 0x0023C740
[Token(Token = "0x600A722")]
[Address(RVA = "0x6F3B40", Offset = "0x6F2B40", VA = "0x1806F3B40", Slot = "15")]
public override ECFieldElement Sqrt()
{
uint[] array;
do
{
array = this.x;
}
while (Nat160.IsZero(array) || Nat160.IsOne(array));
uint[] array2 = Nat160.Create();
SecP160R1Field.Square(array, array2);
SecP160R1Field.Multiply(array2, array, array2);
uint[] array3 = Nat160.Create();
SecP160R1Field.SquareN(array2, 2, array3);
SecP160R1Field.Multiply(array3, array2, array3);
SecP160R1Field.SquareN(array3, 4, array2);
SecP160R1Field.Multiply(array2, array3, array2);
SecP160R1Field.SquareN(array2, 8, array3);
SecP160R1Field.Multiply(array3, array2, array3);
SecP160R1Field.SquareN(array3, 16, array2);
SecP160R1Field.Multiply(array2, array3, array2);
SecP160R1Field.SquareN(array2, 32, array3);
SecP160R1Field.Multiply(array3, array2, array3);
SecP160R1Field.SquareN(array3, 64, array2);
SecP160R1Field.Multiply(array2, array3, array2);
SecP160R1Field.Square(array2, array3);
SecP160R1Field.Multiply(array3, array, array3);
SecP160R1Field.SquareN(array3, 29, array3);
SecP160R1Field.Square(array3, array2);
if (Nat160.Eq(array, array2))
{
new SecP160R1FieldElement().x = array3;
return;
}
}
// Token: 0x0600A723 RID: 42787 RVA: 0x0023E638 File Offset: 0x0023C838
[Token(Token = "0x600A723")]
[Address(RVA = "0x6F36C0", Offset = "0x6F26C0", VA = "0x1806F36C0", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600A723)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R1FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP160R1FieldElement[exp:ECFieldElement](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: 0x0600A724 RID: 42788 RVA: 0x0023E654 File Offset: 0x0023C854
[Token(Token = "0x600A724")]
[Address(RVA = "0x6F3750", Offset = "0x6F2750", VA = "0x1806F3750", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600A724)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R1FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP160R1FieldElement[exp:ECFieldElement](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: 0x0600A725 RID: 42789 RVA: 0x0023E670 File Offset: 0x0023C870
[Token(Token = "0x600A725")]
[Address(RVA = "0x6F36A0", Offset = "0x6F26A0", VA = "0x1806F36A0", Slot = "27")]
public virtual bool Equals(SecP160R1FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
return Nat160.Eq(this.x, array);
}
}
return true;
}
// Token: 0x0600A726 RID: 42790 RVA: 0x0023E69C File Offset: 0x0023C89C
[Token(Token = "0x600A726")]
[Address(RVA = "0x6F37E0", Offset = "0x6F27E0", VA = "0x1806F37E0", Slot = "2")]
public override int GetHashCode()
{
SecP160R1FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 5);
}
// Token: 0x04006D15 RID: 27925
[Token(Token = "0x4006D15")]
public static readonly BigInteger Q = SecP160R1Curve.q;
// Token: 0x04006D16 RID: 27926
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D16")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,333 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B1F RID: 6943
[Token(Token = "0x2001B1F")]
internal class SecP160R1Point : AbstractFpPoint
{
// Token: 0x0600A728 RID: 42792 RVA: 0x0023E6E4 File Offset: 0x0023C8E4
[Token(Token = "0x600A728")]
[Address(RVA = "0x6F6520", Offset = "0x6F5520", VA = "0x1806F6520")]
public SecP160R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A729 RID: 42793 RVA: 0x0023E6F4 File Offset: 0x0023C8F4
[Token(Token = "0x600A729")]
[Address(RVA = "0x6F6540", Offset = "0x6F5540", VA = "0x1806F6540")]
public SecP160R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A729)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A72A RID: 42794 RVA: 0x0023E71C File Offset: 0x0023C91C
[Token(Token = "0x600A72A")]
[Address(RVA = "0x6E4C90", Offset = "0x6E3C90", VA = "0x1806E4C90")]
internal SecP160R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A72B RID: 42795 RVA: 0x0023E72C File Offset: 0x0023C92C
[Token(Token = "0x600A72B")]
[Address(RVA = "0x6F5C80", Offset = "0x6F4C80", VA = "0x1806F5C80", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A72B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecP160R1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecP160R1Point[exp: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: 0x0600A72C RID: 42796 RVA: 0x0023E748 File Offset: 0x0023C948
[Token(Token = "0x600A72C")]
[Address(RVA = "0x6F5400", Offset = "0x6F4400", VA = "0x1806F5400", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity && !b.IsInfinity && this != b)
{
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat160.CreateExt();
uint[] array2 = Nat160.Create();
uint[] array3 = Nat160.Create();
uint[] array4 = Nat160.Create();
if (array4 == 0)
{
SecP160R1Field.Square(array4, array3);
SecP160R1Field.Multiply(array3, array3, array2);
SecP160R1Field.Multiply(array3, array3, array3);
SecP160R1Field.Multiply(array3, array3, array3);
}
SecP160R1Field.Multiply(array4, array4, array);
SecP160R1Field.Multiply(array4, array4, array4);
SecP160R1Field.Multiply(array4, array4, array4);
uint[] array5 = Nat160.Create();
int num;
if (num != 0)
{
int num2 = Nat.SubWordFrom(5, (uint)(-2147483647), array5);
}
int num3;
if (num3 != 0)
{
int num4 = Nat.SubWordFrom(5, (uint)(-2147483647), array2);
}
if (!Nat160.IsZero(array5))
{
SecP160R1Field.Square(array5, array3);
uint[] array6 = Nat160.Create();
SecP160R1Field.Multiply(array3, array5, array6);
SecP160R1Field.Negate(array6, array6);
SecP160R1Field.Reduce32(Nat160.AddBothTo(array3, array3, array6), array6);
SecP160R1FieldElement secP160R1FieldElement = new SecP160R1FieldElement();
secP160R1FieldElement.x = array4;
SecP160R1Field.Square(array2, array4);
uint[] x = secP160R1FieldElement.x;
if (Nat160.Sub(x, array6, x) != 0)
{
int num5 = Nat.SubWordFrom(5, (uint)(-2147483647), x);
}
SecP160R1FieldElement secP160R1FieldElement2 = new SecP160R1FieldElement();
secP160R1FieldElement2.x = array6;
uint[] x2 = secP160R1FieldElement.x;
if (Nat160.Sub(array3, x2, array6) != 0)
{
int num6 = Nat.SubWordFrom(5, (uint)(-2147483647), array6);
}
uint[] x3 = secP160R1FieldElement2.x;
if (Nat160.MulAddTo(x3, array2, array) == (uint)0)
{
if ("{il2cpp array field local16->}" != (ulong)(-1L))
{
goto IL_207;
}
uint[] pext = SecP160R1Field.PExt;
if (!Nat.Gte(10, array, pext))
{
goto IL_207;
}
}
uint[] pextInv = SecP160R1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, array) != (uint)0)
{
int length = SecP160R1Field.PExtInv.Length;
uint num7 = Nat.IncAt(10, array, length);
}
IL_207:
uint[] x4 = secP160R1FieldElement2.x;
SecP160R1Field.Reduce(array, x4);
SecP160R1FieldElement secP160R1FieldElement3 = new SecP160R1FieldElement();
secP160R1FieldElement3.x = array5;
SecP160R1Field.Multiply(array5, x3, array5);
uint[] x5 = secP160R1FieldElement3.x;
SecP160R1Field.Multiply(x5, array5, x5);
ECFieldElement[] array7 = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600A72D RID: 42797 RVA: 0x0023E9CC File Offset: 0x0023CBCC
[Token(Token = "0x600A72D")]
[Address(RVA = "0x6F5E20", Offset = "0x6F4E20", VA = "0x1806F5E20", Slot = "30")]
public override ECPoint Twice()
{
while (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
if (y != 0)
{
if (y.IsOne)
{
break;
}
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
uint[] array = Nat160.Create();
uint[] array2 = Nat160.Create();
uint[] array3 = Nat160.Create();
SecP160R1Field.Square(array3, array3);
uint[] array4 = Nat160.Create();
SecP160R1Field.Square(array3, array4);
if (ecfieldElement.BitLength == 0)
{
}
int num;
if (num != 0)
{
int num2 = Nat.SubWordFrom(5, (uint)(-2147483647), array);
}
SecP160R1Field.Multiply(array2, array, array2);
SecP160R1Field.Reduce32(Nat160.AddBothTo(array2, array2, array2), array2);
SecP160R1Field.Multiply(array3, array2, array3);
int num3 = 0;
SecP160R1Field.Reduce32(Nat.ShiftUpBits(5, array3, 2, (uint)num3), array3);
int num4 = 0;
SecP160R1Field.Reduce32(Nat.ShiftUpBits(5, array4, 3, (uint)num4, array), array);
SecP160R1FieldElement secP160R1FieldElement = new SecP160R1FieldElement();
secP160R1FieldElement.x = array4;
SecP160R1Field.Square(array2, array4);
uint[] x2 = secP160R1FieldElement.x;
if (Nat160.Sub(x2, array3, x2) != 0)
{
int num5 = Nat.SubWordFrom(5, (uint)(-2147483647), x2);
}
uint[] x3 = secP160R1FieldElement.x;
if (Nat160.Sub(x3, array3, x3) != 0)
{
int num6 = Nat.SubWordFrom(5, (uint)(-2147483647), x3);
}
SecP160R1FieldElement secP160R1FieldElement2 = new SecP160R1FieldElement();
secP160R1FieldElement2.x = array3;
uint[] x4 = secP160R1FieldElement.x;
if (Nat160.Sub(array3, x4, array3) != 0)
{
int num7 = Nat.SubWordFrom(5, (uint)(-2147483647), array3);
}
uint[] x5 = secP160R1FieldElement2.x;
SecP160R1Field.Multiply(x5, array2, x5);
uint[] x6 = secP160R1FieldElement2.x;
if (Nat160.Sub(x6, array, x6) != 0)
{
int num8 = Nat.SubWordFrom(5, (uint)(-2147483647), x6);
}
SecP160R1FieldElement secP160R1FieldElement3 = new SecP160R1FieldElement();
secP160R1FieldElement3.x = array2;
uint num9;
if (num9 == (uint)0)
{
if ("{il2cpp array field local20->}" != (ulong)(-1L))
{
goto IL_228;
}
uint[] p = SecP160R1Field.P;
if (!Nat160.Gte(array2, p))
{
goto IL_228;
}
}
uint num10 = Nat.AddWordTo(5, (uint)(-2147483647), array2);
IL_228:
uint[] x7 = secP160R1FieldElement3.x;
(new ECFieldElement[1])[0] = secP160R1FieldElement3;
bool withCompression = this.m_withCompression;
break;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A72E RID: 42798 RVA: 0x0023EC28 File Offset: 0x0023CE28
[Token(Token = "0x600A72E")]
[Address(RVA = "0x6ECFE0", Offset = "0x6EBFE0", VA = "0x1806ECFE0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
bool flag2 = base.SatisfiesCurveEquation();
}
return b;
}
bool flag3 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600A72F RID: 42799 RVA: 0x0023EC78 File Offset: 0x0023CE78
[Token(Token = "0x600A72F")]
[Address(RVA = "0x6ECF60", Offset = "0x6EBF60", VA = "0x1806ECF60", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600A730 RID: 42800 RVA: 0x0023ECA8 File Offset: 0x0023CEA8
[Token(Token = "0x600A730")]
[Address(RVA = "0x6F5D20", Offset = "0x6F4D20", VA = "0x1806F5D20", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,323 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B20 RID: 6944
[Token(Token = "0x2001B20")]
internal class SecP160R2Curve : AbstractFpCurve
{
// Token: 0x0600A731 RID: 42801 RVA: 0x0023ECE0 File Offset: 0x0023CEE0
[Token(Token = "0x600A731")]
[Address(RVA = "0x6FB050", Offset = "0x6FA050", VA = "0x1806FB050")]
public SecP160R2Curve()
{
BigInteger bigInteger = SecP160R2Curve.q;
base..ctor(bigInteger);
int num;
int num2;
ulong num3;
SecP160R2Point secP160R2Point = new SecP160R2Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = secP160R2Point;
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC70");
BigInteger bigInteger2 = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("B4E134D3FB59EB8BAB57274904664D5AF50388BA");
BigInteger bigInteger3 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("0100000000000000000000351EE786A818F3A1A16B");
BigInteger bigInteger4 = new BigInteger(1, array3);
this.m_order = bigInteger4;
BigInteger one = BigInteger.One;
this.m_cofactor = one;
this.m_coord = (int)((ulong)2L);
}
// Token: 0x0600A732 RID: 42802 RVA: 0x0023ED94 File Offset: 0x0023CF94
[Token(Token = "0x600A732")]
[Address(RVA = "0x6FAB70", Offset = "0x6F9B70", VA = "0x1806FAB70", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A732)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R2Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP160R2Curve(var_0_05, newobj:SecP160R2Curve(SecP160R2Curve::.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.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: 0x0600A733 RID: 42803 RVA: 0x0023EDA8 File Offset: 0x0023CFA8
[Token(Token = "0x600A733")]
[Address(RVA = "0x6E9C20", Offset = "0x6E8C20", VA = "0x1806E9C20", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 2;
}
// Token: 0x17001A3A RID: 6714
// (get) Token: 0x0600A734 RID: 42804 RVA: 0x0023EDBC File Offset: 0x0023CFBC
[Token(Token = "0x17001A3A")]
public virtual BigInteger Q
{
[Token(Token = "0x600A734")]
[Address(RVA = "0x6FB2A0", Offset = "0x6FA2A0", VA = "0x1806FB2A0", Slot = "38")]
get
{
return SecP160R2Curve.q;
}
}
// Token: 0x17001A3B RID: 6715
// (get) Token: 0x0600A735 RID: 42805 RVA: 0x0023EDD0 File Offset: 0x0023CFD0
[Token(Token = "0x17001A3B")]
public override ECPoint Infinity
{
[Token(Token = "0x600A735")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A735)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R2Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP160R2Point(var_0_06, ldfld:SecP160R2Point(SecP160R2Curve::m_infinity, ldloc:SecP160R2Curve(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: 0x17001A3C RID: 6716
// (get) Token: 0x0600A736 RID: 42806 RVA: 0x0023EDE4 File Offset: 0x0023CFE4
[Token(Token = "0x17001A3C")]
public override int FieldSize
{
[Token(Token = "0x600A736")]
[Address(RVA = "0x6FB230", Offset = "0x6FA230", VA = "0x1806FB230", Slot = "4")]
get
{
return SecP160R2Curve.q.BitLength;
}
}
// Token: 0x0600A737 RID: 42807 RVA: 0x0023EE04 File Offset: 0x0023D004
[Token(Token = "0x600A737")]
[Address(RVA = "0x6FAF50", Offset = "0x6F9F50", VA = "0x1806FAF50", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A737)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R2Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP160R2FieldElement(var_0_06, newobj:SecP160R2FieldElement(SecP160R2FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600A738 RID: 42808 RVA: 0x0023EE18 File Offset: 0x0023D018
[Token(Token = "0x600A738")]
[Address(RVA = "0x6FAEC0", Offset = "0x6F9EC0", VA = "0x1806FAEC0", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A738)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R2Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP160R2Point(var_0_09, newobj:SecP160R2Point(SecP160R2Point::.ctor, ldloc:SecP160R2Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A739 RID: 42809 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A739")]
[Address(RVA = "0x6FAE20", Offset = "0x6F9E20", VA = "0x1806FAE20", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A73A RID: 42810 RVA: 0x0023EE30 File Offset: 0x0023D030
[Token(Token = "0x600A73A")]
[Address(RVA = "0x6FABC0", Offset = "0x6F9BC0", VA = "0x1806FABC0", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[points];
num = 0;
if (len <= 0)
{
goto IL_4A;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 10;
IL_4A:
SecP160R2Curve.SecP160R2LookupTable secP160R2LookupTable;
secP160R2LookupTable.m_outer = 0;
secP160R2LookupTable.m_table = array;
secP160R2LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x0600A73B RID: 42811 RVA: 0x0023EEA4 File Offset: 0x0023D0A4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A73B")]
[Address(RVA = "0x6FAFB0", Offset = "0x6F9FB0", VA = "0x1806FAFB0")]
static SecP160R2Curve()
{
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73");
SecP160R2Curve.q = new BigInteger(1, array);
}
// Token: 0x04006D17 RID: 27927
[Token(Token = "0x4006D17")]
public static readonly BigInteger q;
// Token: 0x04006D18 RID: 27928
[Token(Token = "0x4006D18")]
private const int SECP160R2_DEFAULT_COORDS = 2;
// Token: 0x04006D19 RID: 27929
[Token(Token = "0x4006D19")]
private const int SECP160R2_FE_INTS = 5;
// Token: 0x04006D1A RID: 27930
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006D1A")]
protected readonly SecP160R2Point m_infinity;
// Token: 0x02001B21 RID: 6945
[Token(Token = "0x2001B21")]
private class SecP160R2LookupTable : ECLookupTable
{
// Token: 0x0600A73C RID: 42812 RVA: 0x0023EEC8 File Offset: 0x0023D0C8
[Token(Token = "0x600A73C")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecP160R2LookupTable(SecP160R2Curve outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A3D RID: 6717
// (get) Token: 0x0600A73D RID: 42813 RVA: 0x0023EEF0 File Offset: 0x0023D0F0
[Token(Token = "0x17001A3D")]
public virtual int Size
{
[Token(Token = "0x600A73D")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A73E RID: 42814 RVA: 0x0023EF04 File Offset: 0x0023D104
[Token(Token = "0x600A73E")]
[Address(RVA = "0x6FD1E0", Offset = "0x6FC1E0", VA = "0x1806FD1E0", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat160.Create();
uint[] array2 = Nat160.Create();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 10;
num2++;
}
SecP160R2Curve outer = this.m_outer;
new SecP160R2FieldElement().x = array;
new SecP160R2FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006D1B RID: 27931
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D1B")]
private readonly SecP160R2Curve m_outer;
// Token: 0x04006D1C RID: 27932
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006D1C")]
private readonly uint[] m_table;
// Token: 0x04006D1D RID: 27933
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006D1D")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,329 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B22 RID: 6946
[Token(Token = "0x2001B22")]
internal class SecP160R2Field
{
// Token: 0x0600A73F RID: 42815 RVA: 0x0023EF84 File Offset: 0x0023D184
[Token(Token = "0x600A73F")]
[Address(RVA = "0x6FC630", Offset = "0x6FB630", VA = "0x1806FC630")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
if (Nat160.Add(x, y, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP160R2Field.P;
if (!Nat160.Gte(z, p))
{
return;
}
}
uint num = Nat.Add33To(5, (uint)21389, z);
}
// Token: 0x0600A740 RID: 42816 RVA: 0x0023EFCC File Offset: 0x0023D1CC
[Token(Token = "0x600A740")]
[Address(RVA = "0x6FC3E0", Offset = "0x6FB3E0", VA = "0x1806FC3E0")]
public static void AddExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Add(10, xx, yy, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP160R2Field.PExt;
if (!Nat.Gte(10, zz, pext))
{
return;
}
}
uint[] pextInv = SecP160R2Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP160R2Field.PExtInv.Length;
uint num = Nat.IncAt(10, zz, length);
}
}
// Token: 0x0600A741 RID: 42817 RVA: 0x0023F038 File Offset: 0x0023D238
[Token(Token = "0x600A741")]
[Address(RVA = "0x6FC560", Offset = "0x6FB560", VA = "0x1806FC560")]
public static void AddOne(uint[] x, uint[] z)
{
if (Nat.Inc(5, x, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP160R2Field.P;
if (!Nat160.Gte(z, p))
{
return;
}
}
uint num = Nat.Add33To(5, (uint)21389, z);
}
// Token: 0x0600A742 RID: 42818 RVA: 0x0023F080 File Offset: 0x0023D280
[Token(Token = "0x600A742")]
[Address(RVA = "0x6FC710", Offset = "0x6FB710", VA = "0x1806FC710")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat160.FromBigInteger(x);
if ("{il2cpp array field local2->}" == (ulong)(-1L))
{
uint[] p = SecP160R2Field.P;
if (Nat160.Gte(array, p))
{
int num = Nat160.SubFrom(SecP160R2Field.P, array);
}
}
return array;
}
// Token: 0x0600A743 RID: 42819 RVA: 0x0023F0C4 File Offset: 0x0023D2C4
[Token(Token = "0x600A743")]
[Address(RVA = "0x6FC800", Offset = "0x6FB800", VA = "0x1806FC800")]
public static void Half(uint[] x, uint[] z)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
uint[] p = SecP160R2Field.P;
uint num = Nat160.Add(x, p, z);
uint num2 = Nat.ShiftDownBit(5, z, num);
return;
}
int num3 = 0;
uint num4 = Nat.ShiftDownBit(5, x, (uint)num3, z);
}
// Token: 0x0600A744 RID: 42820 RVA: 0x0023F108 File Offset: 0x0023D308
[Token(Token = "0x600A744")]
[Address(RVA = "0x6FCA50", Offset = "0x6FBA50", VA = "0x1806FCA50")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat160.CreateExt();
Nat160.Mul(x, y, array);
SecP160R2Field.Reduce(array, z);
}
// Token: 0x0600A745 RID: 42821 RVA: 0x0023F12C File Offset: 0x0023D32C
[Token(Token = "0x600A745")]
[Address(RVA = "0x6FC8E0", Offset = "0x6FB8E0", VA = "0x1806FC8E0")]
public static void MultiplyAddToExt(uint[] x, uint[] y, uint[] zz)
{
if (Nat160.MulAddTo(x, y, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP160R2Field.PExt;
if (!Nat.Gte(10, zz, pext))
{
return;
}
}
uint[] pextInv = SecP160R2Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP160R2Field.PExtInv.Length;
uint num = Nat.IncAt(10, zz, length);
}
}
// Token: 0x0600A746 RID: 42822 RVA: 0x0023F194 File Offset: 0x0023D394
[Token(Token = "0x600A746")]
[Address(RVA = "0x6FCAF0", Offset = "0x6FBAF0", VA = "0x1806FCAF0")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat160.IsZero(x))
{
int num = Nat160.Sub(SecP160R2Field.P, x, z);
return;
}
Nat160.Zero(z);
}
// Token: 0x0600A747 RID: 42823 RVA: 0x0023F1C0 File Offset: 0x0023D3C0
[Token(Token = "0x600A747")]
[Address(RVA = "0x6FCC70", Offset = "0x6FBC70", VA = "0x1806FCC70")]
public static void Reduce(uint[] xx, uint[] z)
{
int num = 0;
ulong num2 = Nat160.Mul33Add((uint)21389, xx, 5, xx, num, z, num);
int num3 = 0;
if (Nat160.Mul33DWordAdd((uint)21389, num2, z, num3) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP160R2Field.P;
if (!Nat160.Gte(z, p))
{
return;
}
}
uint num4 = Nat.Add33To(5, (uint)21389, z);
}
// Token: 0x0600A748 RID: 42824 RVA: 0x0023F224 File Offset: 0x0023D424
[Token(Token = "0x600A748")]
[Address(RVA = "0x6FCB90", Offset = "0x6FBB90", VA = "0x1806FCB90")]
public static void Reduce32(uint x, uint[] z)
{
if (x != (uint)0)
{
int num = 0;
if (Nat160.Mul33WordAdd((uint)21389, x, z, num) != (uint)0)
{
goto IL_33;
}
}
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP160R2Field.P;
if (!Nat160.Gte(z, p))
{
return;
}
IL_33:
uint num2 = Nat.Add33To(5, (uint)21389, z);
}
// Token: 0x0600A749 RID: 42825 RVA: 0x0023F278 File Offset: 0x0023D478
[Token(Token = "0x600A749")]
[Address(RVA = "0x6FCE50", Offset = "0x6FBE50", VA = "0x1806FCE50")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat160.CreateExt();
Nat160.Square(x, array);
SecP160R2Field.Reduce(array, z);
}
// Token: 0x0600A74A RID: 42826 RVA: 0x0023F29C File Offset: 0x0023D49C
[Token(Token = "0x600A74A")]
[Address(RVA = "0x6FCD70", Offset = "0x6FBD70", VA = "0x1806FCD70")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat160.CreateExt();
Nat160.Square(x, array);
SecP160R2Field.Reduce(array, z);
if (n > 0)
{
Nat160.Square(z, array);
SecP160R2Field.Reduce(array, z);
}
}
// Token: 0x0600A74B RID: 42827 RVA: 0x0023F2D4 File Offset: 0x0023D4D4
[Token(Token = "0x600A74B")]
[Address(RVA = "0x6FCFF0", Offset = "0x6FBFF0", VA = "0x1806FCFF0")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
if (Nat160.Sub(x, y, z) != 0)
{
int num = Nat.Sub33From(5, (uint)21389, z);
return;
}
}
// Token: 0x0600A74C RID: 42828 RVA: 0x0023F2FC File Offset: 0x0023D4FC
[Token(Token = "0x600A74C")]
[Address(RVA = "0x6FCEE0", Offset = "0x6FBEE0", VA = "0x1806FCEE0")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(10, xx, yy, zz) != 0)
{
uint[] pextInv = SecP160R2Field.PExtInv;
if (Nat.SubFrom(pextInv.Length, pextInv, zz) != 0)
{
int length = SecP160R2Field.PExtInv.Length;
int num = Nat.DecAt(10, zz, length);
}
}
}
// Token: 0x0600A74D RID: 42829 RVA: 0x0023F348 File Offset: 0x0023D548
[Token(Token = "0x600A74D")]
[Address(RVA = "0x6FD030", Offset = "0x6FC030", VA = "0x1806FD030")]
public static void Twice(uint[] x, uint[] z)
{
int num = 0;
if (Nat.ShiftUpBit(5, x, (uint)num, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP160R2Field.P;
if (!Nat160.Gte(z, p))
{
return;
}
}
uint num2 = Nat.Add33To(5, (uint)21389, z);
}
// Token: 0x0600A74E RID: 42830 RVA: 0x0023F394 File Offset: 0x0023D594
[Token(Token = "0x600A74E")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecP160R2Field()
{
}
// Token: 0x0600A74F RID: 42831 RVA: 0x0023F3A8 File Offset: 0x0023D5A8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A74F")]
[Address(RVA = "0x6FD110", Offset = "0x6FC110", VA = "0x1806FD110")]
static SecP160R2Field()
{
uint[] array = new uint[5];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.27FED0F92A97C41B08D3115553BBDC064F417B6E).FieldHandle);
SecP160R2Field.P = array;
uint[] array2 = new uint[10];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.60A08108A32C9D3F263B2F42095A2694B7C1C1EF).FieldHandle);
SecP160R2Field.PExt = array2;
uint[] array3 = new uint[7];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.32ECB35FF8400B4E56FF5E09588FB20DD60350E7).FieldHandle);
SecP160R2Field.PExtInv = array3;
}
// Token: 0x04006D1E RID: 27934
[Token(Token = "0x4006D1E")]
internal static readonly uint[] P;
// Token: 0x04006D1F RID: 27935
[Token(Token = "0x4006D1F")]
internal static readonly uint[] PExt;
// Token: 0x04006D20 RID: 27936
[Token(Token = "0x4006D20")]
private static readonly uint[] PExtInv;
// Token: 0x04006D21 RID: 27937
[Token(Token = "0x4006D21")]
private const uint P4 = 4294967295U;
// Token: 0x04006D22 RID: 27938
[Token(Token = "0x4006D22")]
private const uint PExt9 = 4294967295U;
// Token: 0x04006D23 RID: 27939
[Token(Token = "0x4006D23")]
private const uint PInv33 = 21389U;
}
}
@@ -0,0 +1,463 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B23 RID: 6947
[Token(Token = "0x2001B23")]
internal class SecP160R2FieldElement : AbstractFpFieldElement
{
// Token: 0x0600A750 RID: 42832 RVA: 0x0023F400 File Offset: 0x0023D600
[Token(Token = "0x600A750")]
[Address(RVA = "0x6FC140", Offset = "0x6FB140", VA = "0x1806FC140")]
public SecP160R2FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A750)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R2FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4E:
stloc:ArgumentException(var_5_5D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecP160R2FieldElement"), ldstr:string("x")))
}
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: 0x0600A751 RID: 42833 RVA: 0x0023F46C File Offset: 0x0023D66C
[Token(Token = "0x600A751")]
[Address(RVA = "0x6FC110", Offset = "0x6FB110", VA = "0x1806FC110")]
public SecP160R2FieldElement()
{
uint[] array = Nat160.Create();
this.x = array;
}
// Token: 0x0600A752 RID: 42834 RVA: 0x0023F490 File Offset: 0x0023D690
[Token(Token = "0x600A752")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecP160R2FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001A3E RID: 6718
// (get) Token: 0x0600A753 RID: 42835 RVA: 0x0023F4AC File Offset: 0x0023D6AC
[Token(Token = "0x17001A3E")]
public override bool IsZero
{
[Token(Token = "0x600A753")]
[Address(RVA = "0x6F42A0", Offset = "0x6F32A0", VA = "0x1806F42A0", Slot = "18")]
get
{
return Nat160.IsZero(this.x);
}
}
// Token: 0x17001A3F RID: 6719
// (get) Token: 0x0600A754 RID: 42836 RVA: 0x0023F4C4 File Offset: 0x0023D6C4
[Token(Token = "0x17001A3F")]
public override bool IsOne
{
[Token(Token = "0x600A754")]
[Address(RVA = "0x6F4290", Offset = "0x6F3290", VA = "0x1806F4290", Slot = "17")]
get
{
return Nat160.IsOne(this.x);
}
}
// Token: 0x0600A755 RID: 42837 RVA: 0x0023F4DC File Offset: 0x0023D6DC
[Token(Token = "0x600A755")]
[Address(RVA = "0x6F3F50", Offset = "0x6F2F50", VA = "0x1806F3F50", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat160.GetBit(array, num) == (uint)1;
}
// Token: 0x0600A756 RID: 42838 RVA: 0x0023F500 File Offset: 0x0023D700
[Token(Token = "0x600A756")]
[Address(RVA = "0x6F3F70", Offset = "0x6F2F70", VA = "0x1806F3F70", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat160.ToBigInteger(this.x);
}
// Token: 0x17001A40 RID: 6720
// (get) Token: 0x0600A757 RID: 42839 RVA: 0x0023F518 File Offset: 0x0023D718
[Token(Token = "0x17001A40")]
public override string FieldName
{
[Token(Token = "0x600A757")]
[Address(RVA = "0x6FC340", Offset = "0x6FB340", VA = "0x1806FC340", Slot = "5")]
get
{
return "SecP160R2Field";
}
}
// Token: 0x17001A41 RID: 6721
// (get) Token: 0x0600A758 RID: 42840 RVA: 0x0023F52C File Offset: 0x0023D72C
[Token(Token = "0x17001A41")]
public override int FieldSize
{
[Token(Token = "0x600A758")]
[Address(RVA = "0x6FC370", Offset = "0x6FB370", VA = "0x1806FC370", Slot = "6")]
get
{
return SecP160R2FieldElement.Q.BitLength;
}
}
// Token: 0x0600A759 RID: 42841 RVA: 0x0023F54C File Offset: 0x0023D74C
[Token(Token = "0x600A759")]
[Address(RVA = "0x6FB440", Offset = "0x6FA440", VA = "0x1806FB440", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat160.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP160R2FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP160R2FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A75A RID: 42842 RVA: 0x0023F594 File Offset: 0x0023D794
[Token(Token = "0x600A75A")]
[Address(RVA = "0x6FB300", Offset = "0x6FA300", VA = "0x1806FB300", Slot = "8")]
public override ECFieldElement AddOne()
{
uint[] array = Nat160.Create();
uint[] array2 = this.x;
if (Nat.Inc(5, array2, array) == (uint)0)
{
if ("{il2cpp array field local2->}" != (ulong)(-1L))
{
goto IL_44;
}
uint[] p = SecP160R2Field.P;
if (!Nat160.Gte(array, p))
{
goto IL_44;
}
}
uint num = Nat.Add33To(5, (uint)21389, array);
IL_44:
new SecP160R2FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A75B RID: 42843 RVA: 0x0023F5F8 File Offset: 0x0023D7F8
[Token(Token = "0x600A75B")]
[Address(RVA = "0x6FBF40", Offset = "0x6FAF40", VA = "0x1806FBF40", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat160.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP160R2FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
int num;
if (num != 0)
{
int num2 = Nat.Sub33From(5, (uint)21389, array);
}
new SecP160R2FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A75C RID: 42844 RVA: 0x0023F654 File Offset: 0x0023D854
[Token(Token = "0x600A75C")]
[Address(RVA = "0x6FB9B0", Offset = "0x6FA9B0", VA = "0x1806FB9B0", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat160.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP160R2FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP160R2FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A75D RID: 42845 RVA: 0x0023F69C File Offset: 0x0023D89C
[Token(Token = "0x600A75D")]
[Address(RVA = "0x6FB580", Offset = "0x6FA580", VA = "0x1806FB580", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat160.Create();
uint[] p = SecP160R2Field.P;
if ("{il2cpp array field local3->}" == typeof(SecP160R2FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
SecP160R2Field.Multiply(array, array2, array);
new SecP160R2FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A75E RID: 42846 RVA: 0x0023F6F4 File Offset: 0x0023D8F4
[Token(Token = "0x600A75E")]
[Address(RVA = "0x6FBAF0", Offset = "0x6FAAF0", VA = "0x1806FBAF0", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600A75E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R2FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat160::Create))
call:void(SecP160R2Field::Negate, ldfld:uint32[](SecP160R2FieldElement::x, ldloc:SecP160R2FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP160R2FieldElement::x, newobj:SecP160R2FieldElement(SecP160R2FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A75F RID: 42847 RVA: 0x0023F720 File Offset: 0x0023D920
[Token(Token = "0x600A75F")]
[Address(RVA = "0x6FBEB0", Offset = "0x6FAEB0", VA = "0x1806FBEB0", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600A75F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R2FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat160::Create))
call:void(SecP160R2Field::Square, ldfld:uint32[](SecP160R2FieldElement::x, ldloc:SecP160R2FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP160R2FieldElement::x, newobj:SecP160R2FieldElement(SecP160R2FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A760 RID: 42848 RVA: 0x0023F74C File Offset: 0x0023D94C
[Token(Token = "0x600A760")]
[Address(RVA = "0x6FB8E0", Offset = "0x6FA8E0", VA = "0x1806FB8E0", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600A760)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R2FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat160::Create))
stloc:uint32[](var_2_0E, ldfld:uint32[](SecP160R2FieldElement::x, ldloc:SecP160R2FieldElement(this)))
call:void(Mod::Invert, ldsfld:uint32[](SecP160R2Field::P), ldloc:uint32[](var_2_0E), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP160R2FieldElement::x, newobj:SecP160R2FieldElement(SecP160R2FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A761 RID: 42849 RVA: 0x0023F780 File Offset: 0x0023D980
[Token(Token = "0x600A761")]
[Address(RVA = "0x6FBB80", Offset = "0x6FAB80", VA = "0x1806FBB80", Slot = "15")]
public override ECFieldElement Sqrt()
{
uint[] array;
do
{
array = this.x;
}
while (Nat160.IsZero(array) || Nat160.IsOne(array));
uint[] array2 = Nat160.Create();
SecP160R2Field.Square(array, array2);
SecP160R2Field.Multiply(array2, array, array2);
uint[] array3 = Nat160.Create();
SecP160R2Field.Square(array2, array3);
SecP160R2Field.Multiply(array3, array, array3);
uint[] array4 = Nat160.Create();
SecP160R2Field.Square(array3, array4);
SecP160R2Field.Multiply(array4, array, array4);
uint[] array5 = Nat160.Create();
SecP160R2Field.SquareN(array4, 3, array5);
SecP160R2Field.Multiply(array5, array3, array5);
SecP160R2Field.SquareN(array5, 7, array4);
SecP160R2Field.Multiply(array4, array5, array4);
SecP160R2Field.SquareN(array4, 3, array5);
SecP160R2Field.Multiply(array5, array3, array5);
uint[] array6 = Nat160.Create();
SecP160R2Field.SquareN(array5, 14, array6);
SecP160R2Field.Multiply(array6, array4, array6);
SecP160R2Field.SquareN(array6, 31, array4);
SecP160R2Field.Multiply(array4, array6, array4);
SecP160R2Field.SquareN(array4, 62, array6);
SecP160R2Field.Multiply(array6, array4, array6);
SecP160R2Field.SquareN(array6, 3, array4);
SecP160R2Field.Multiply(array4, array3, array4);
SecP160R2Field.SquareN(array4, 18, array4);
SecP160R2Field.Multiply(array4, array5, array4);
SecP160R2Field.SquareN(array4, 2, array4);
SecP160R2Field.Multiply(array4, array, array4);
SecP160R2Field.SquareN(array4, 3, array4);
SecP160R2Field.Multiply(array4, array2, array4);
SecP160R2Field.SquareN(array4, 6, array4);
SecP160R2Field.Multiply(array4, array3, array4);
SecP160R2Field.SquareN(array4, 2, array4);
SecP160R2Field.Multiply(array4, array, array4);
SecP160R2Field.Square(array4, array2);
if (Nat160.Eq(array, array2))
{
new SecP160R2FieldElement().x = array4;
return;
}
}
// Token: 0x0600A762 RID: 42850 RVA: 0x0023F928 File Offset: 0x0023DB28
[Token(Token = "0x600A762")]
[Address(RVA = "0x6FB700", Offset = "0x6FA700", VA = "0x1806FB700", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600A762)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R2FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP160R2FieldElement[exp:ECFieldElement](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: 0x0600A763 RID: 42851 RVA: 0x0023F944 File Offset: 0x0023DB44
[Token(Token = "0x600A763")]
[Address(RVA = "0x6FB790", Offset = "0x6FA790", VA = "0x1806FB790", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600A763)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R2FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP160R2FieldElement[exp:ECFieldElement](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: 0x0600A764 RID: 42852 RVA: 0x0023F960 File Offset: 0x0023DB60
[Token(Token = "0x600A764")]
[Address(RVA = "0x6F36A0", Offset = "0x6F26A0", VA = "0x1806F36A0", Slot = "27")]
public virtual bool Equals(SecP160R2FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
return Nat160.Eq(this.x, array);
}
}
return true;
}
// Token: 0x0600A765 RID: 42853 RVA: 0x0023F98C File Offset: 0x0023DB8C
[Token(Token = "0x600A765")]
[Address(RVA = "0x6FB820", Offset = "0x6FA820", VA = "0x1806FB820", Slot = "2")]
public override int GetHashCode()
{
SecP160R2FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 5);
}
// Token: 0x04006D24 RID: 27940
[Token(Token = "0x4006D24")]
public static readonly BigInteger Q = SecP160R2Curve.q;
// Token: 0x04006D25 RID: 27941
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D25")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,333 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B24 RID: 6948
[Token(Token = "0x2001B24")]
internal class SecP160R2Point : AbstractFpPoint
{
// Token: 0x0600A767 RID: 42855 RVA: 0x0023F9D4 File Offset: 0x0023DBD4
[Token(Token = "0x600A767")]
[Address(RVA = "0x6FE590", Offset = "0x6FD590", VA = "0x1806FE590")]
public SecP160R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A768 RID: 42856 RVA: 0x0023F9E4 File Offset: 0x0023DBE4
[Token(Token = "0x600A768")]
[Address(RVA = "0x6FE4D0", Offset = "0x6FD4D0", VA = "0x1806FE4D0")]
public SecP160R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A768)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R2Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A769 RID: 42857 RVA: 0x0023FA0C File Offset: 0x0023DC0C
[Token(Token = "0x600A769")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecP160R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A76A RID: 42858 RVA: 0x0023FA1C File Offset: 0x0023DC1C
[Token(Token = "0x600A76A")]
[Address(RVA = "0x6FDC30", Offset = "0x6FCC30", VA = "0x1806FDC30", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A76A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP160R2Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecP160R2Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecP160R2Point[exp: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: 0x0600A76B RID: 42859 RVA: 0x0023FA38 File Offset: 0x0023DC38
[Token(Token = "0x600A76B")]
[Address(RVA = "0x6FD3B0", Offset = "0x6FC3B0", VA = "0x1806FD3B0", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity && !b.IsInfinity && this != b)
{
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat160.CreateExt();
uint[] array2 = Nat160.Create();
uint[] array3 = Nat160.Create();
uint[] array4 = Nat160.Create();
if (array4 == 0)
{
SecP160R2Field.Square(array4, array3);
SecP160R2Field.Multiply(array3, array3, array2);
SecP160R2Field.Multiply(array3, array3, array3);
SecP160R2Field.Multiply(array3, array3, array3);
}
SecP160R2Field.Multiply(array4, array4, array);
SecP160R2Field.Multiply(array4, array4, array4);
SecP160R2Field.Multiply(array4, array4, array4);
uint[] array5 = Nat160.Create();
int num;
if (num != 0)
{
int num2 = Nat.Sub33From(5, (uint)21389, array5);
}
int num3;
if (num3 != 0)
{
int num4 = Nat.Sub33From(5, (uint)21389, array2);
}
if (!Nat160.IsZero(array5))
{
SecP160R2Field.Square(array5, array3);
uint[] array6 = Nat160.Create();
SecP160R2Field.Multiply(array3, array5, array6);
SecP160R2Field.Negate(array6, array6);
SecP160R2Field.Reduce32(Nat160.AddBothTo(array3, array3, array6), array6);
SecP160R2FieldElement secP160R2FieldElement = new SecP160R2FieldElement();
secP160R2FieldElement.x = array4;
SecP160R2Field.Square(array2, array4);
uint[] x = secP160R2FieldElement.x;
if (Nat160.Sub(x, array6, x) != 0)
{
int num5 = Nat.Sub33From(5, (uint)21389, x);
}
SecP160R2FieldElement secP160R2FieldElement2 = new SecP160R2FieldElement();
secP160R2FieldElement2.x = array6;
uint[] x2 = secP160R2FieldElement.x;
if (Nat160.Sub(array3, x2, array6) != 0)
{
int num6 = Nat.Sub33From(5, (uint)21389, array6);
}
uint[] x3 = secP160R2FieldElement2.x;
if (Nat160.MulAddTo(x3, array2, array) == (uint)0)
{
if ("{il2cpp array field local16->}" != (ulong)(-1L))
{
goto IL_207;
}
uint[] pext = SecP160R2Field.PExt;
if (!Nat.Gte(10, array, pext))
{
goto IL_207;
}
}
uint[] pextInv = SecP160R2Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, array) != (uint)0)
{
int length = SecP160R2Field.PExtInv.Length;
uint num7 = Nat.IncAt(10, array, length);
}
IL_207:
uint[] x4 = secP160R2FieldElement2.x;
SecP160R2Field.Reduce(array, x4);
SecP160R2FieldElement secP160R2FieldElement3 = new SecP160R2FieldElement();
secP160R2FieldElement3.x = array5;
SecP160R2Field.Multiply(array5, x3, array5);
uint[] x5 = secP160R2FieldElement3.x;
SecP160R2Field.Multiply(x5, array5, x5);
ECFieldElement[] array7 = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600A76C RID: 42860 RVA: 0x0023FCBC File Offset: 0x0023DEBC
[Token(Token = "0x600A76C")]
[Address(RVA = "0x6FDDD0", Offset = "0x6FCDD0", VA = "0x1806FDDD0", Slot = "30")]
public override ECPoint Twice()
{
while (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
if (y != 0)
{
if (y.IsOne)
{
break;
}
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
uint[] array = Nat160.Create();
uint[] array2 = Nat160.Create();
uint[] array3 = Nat160.Create();
SecP160R2Field.Square(array3, array3);
uint[] array4 = Nat160.Create();
SecP160R2Field.Square(array3, array4);
if (ecfieldElement.BitLength == 0)
{
}
int num;
if (num != 0)
{
int num2 = Nat.Sub33From(5, (uint)21389, array);
}
SecP160R2Field.Multiply(array2, array, array2);
SecP160R2Field.Reduce32(Nat160.AddBothTo(array2, array2, array2), array2);
SecP160R2Field.Multiply(array3, array2, array3);
int num3 = 0;
SecP160R2Field.Reduce32(Nat.ShiftUpBits(5, array3, 2, (uint)num3), array3);
int num4 = 0;
SecP160R2Field.Reduce32(Nat.ShiftUpBits(5, array4, 3, (uint)num4, array), array);
SecP160R2FieldElement secP160R2FieldElement = new SecP160R2FieldElement();
secP160R2FieldElement.x = array4;
SecP160R2Field.Square(array2, array4);
uint[] x2 = secP160R2FieldElement.x;
if (Nat160.Sub(x2, array3, x2) != 0)
{
int num5 = Nat.Sub33From(5, (uint)21389, x2);
}
uint[] x3 = secP160R2FieldElement.x;
if (Nat160.Sub(x3, array3, x3) != 0)
{
int num6 = Nat.Sub33From(5, (uint)21389, x3);
}
SecP160R2FieldElement secP160R2FieldElement2 = new SecP160R2FieldElement();
secP160R2FieldElement2.x = array3;
uint[] x4 = secP160R2FieldElement.x;
if (Nat160.Sub(array3, x4, array3) != 0)
{
int num7 = Nat.Sub33From(5, (uint)21389, array3);
}
uint[] x5 = secP160R2FieldElement2.x;
SecP160R2Field.Multiply(x5, array2, x5);
uint[] x6 = secP160R2FieldElement2.x;
if (Nat160.Sub(x6, array, x6) != 0)
{
int num8 = Nat.Sub33From(5, (uint)21389, x6);
}
SecP160R2FieldElement secP160R2FieldElement3 = new SecP160R2FieldElement();
secP160R2FieldElement3.x = array2;
uint num9;
if (num9 == (uint)0)
{
if ("{il2cpp array field local20->}" != (ulong)(-1L))
{
goto IL_228;
}
uint[] p = SecP160R2Field.P;
if (!Nat160.Gte(array2, p))
{
goto IL_228;
}
}
uint num10 = Nat.Add33To(5, (uint)21389, array2);
IL_228:
uint[] x7 = secP160R2FieldElement3.x;
(new ECFieldElement[1])[0] = secP160R2FieldElement3;
bool withCompression = this.m_withCompression;
break;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A76D RID: 42861 RVA: 0x0023FF18 File Offset: 0x0023E118
[Token(Token = "0x600A76D")]
[Address(RVA = "0x6ECFE0", Offset = "0x6EBFE0", VA = "0x1806ECFE0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
bool flag2 = base.SatisfiesCurveEquation();
}
return b;
}
bool flag3 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600A76E RID: 42862 RVA: 0x0023FF68 File Offset: 0x0023E168
[Token(Token = "0x600A76E")]
[Address(RVA = "0x6ECF60", Offset = "0x6EBF60", VA = "0x1806ECF60", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600A76F RID: 42863 RVA: 0x0023FF98 File Offset: 0x0023E198
[Token(Token = "0x600A76F")]
[Address(RVA = "0x6FDCD0", Offset = "0x6FCCD0", VA = "0x1806FDCD0", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,333 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B25 RID: 6949
[Token(Token = "0x2001B25")]
internal class SecP192K1Curve : AbstractFpCurve
{
// Token: 0x0600A770 RID: 42864 RVA: 0x0023FFD0 File Offset: 0x0023E1D0
[Token(Token = "0x600A770")]
[Address(RVA = "0x6FEC20", Offset = "0x6FDC20", VA = "0x1806FEC20")]
public SecP192K1Curve()
{
BigInteger bigInteger = SecP192K1Curve.q;
base..ctor(bigInteger);
int num;
int num2;
ulong num3;
SecP192K1Point secP192K1Point = new SecP192K1Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = secP192K1Point;
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D");
BigInteger bigInteger2 = new BigInteger(1, array);
this.m_order = bigInteger2;
BigInteger one = BigInteger.One;
this.m_cofactor = one;
this.m_coord = (int)((ulong)2L);
}
// Token: 0x0600A771 RID: 42865 RVA: 0x00240058 File Offset: 0x0023E258
[Token(Token = "0x600A771")]
[Address(RVA = "0x6FE5D0", Offset = "0x6FD5D0", VA = "0x1806FE5D0", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A771)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_1_05, ldsfld:BigInteger(SecP192K1Curve::q))
stloc:SecP192K1Point(var_2_11, newobj:SecP192K1Point(SecP192K1Point::.ctor, ldloc:SecP192K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_3), ldloc:uint64[exp:bool](var_6)))
stloc:int32(var_3, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecP192K1Point(SecP192K1Curve::m_infinity, ldloc:SecP192K1Curve(var_0), ldloc:SecP192K1Point(var_2_11))
stloc:int32(var_7_24, callvirtgetter:int32(SecP192K1Curve::get_FieldSize, ldloc:SecP192K1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecP192K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_7_24))
stloc:int32(var_9_34, callvirtgetter:int32(SecP192K1Curve::get_FieldSize, ldloc:SecP192K1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecP192K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_9_34))
stloc:uint8[](var_10_48, call:uint8[](Hex::Decode, ldstr:string("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D")))
stloc:BigInteger(var_11_52, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_10_48)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecP192K1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_11_52))
stloc:BigInteger(var_12_61, ldsfld:BigInteger(BigInteger::One))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecP192K1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_12_61))
stfld:int32(ECCurve::m_coord, ldloc:SecP192K1Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](2)))
}
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: 0x0600A772 RID: 42866 RVA: 0x002400D8 File Offset: 0x0023E2D8
[Token(Token = "0x600A772")]
[Address(RVA = "0x6E9C20", Offset = "0x6E8C20", VA = "0x1806E9C20", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 2;
}
// Token: 0x17001A42 RID: 6722
// (get) Token: 0x0600A773 RID: 42867 RVA: 0x002400EC File Offset: 0x0023E2EC
[Token(Token = "0x17001A42")]
public virtual BigInteger Q
{
[Token(Token = "0x600A773")]
[Address(RVA = "0x6FEE20", Offset = "0x6FDE20", VA = "0x1806FEE20", Slot = "38")]
get
{
return SecP192K1Curve.q;
}
}
// Token: 0x17001A43 RID: 6723
// (get) Token: 0x0600A774 RID: 42868 RVA: 0x00240100 File Offset: 0x0023E300
[Token(Token = "0x17001A43")]
public override ECPoint Infinity
{
[Token(Token = "0x600A774")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A774)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP192K1Point(var_0_06, ldfld:SecP192K1Point(SecP192K1Curve::m_infinity, ldloc:SecP192K1Curve(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: 0x17001A44 RID: 6724
// (get) Token: 0x0600A775 RID: 42869 RVA: 0x00240114 File Offset: 0x0023E314
[Token(Token = "0x17001A44")]
public override int FieldSize
{
[Token(Token = "0x600A775")]
[Address(RVA = "0x6FEDB0", Offset = "0x6FDDB0", VA = "0x1806FEDB0", Slot = "4")]
get
{
return SecP192K1Curve.q.BitLength;
}
}
// Token: 0x0600A776 RID: 42870 RVA: 0x00240134 File Offset: 0x0023E334
[Token(Token = "0x600A776")]
[Address(RVA = "0x6FEB20", Offset = "0x6FDB20", VA = "0x1806FEB20", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A776)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP192K1FieldElement(var_0_06, newobj:SecP192K1FieldElement(SecP192K1FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600A777 RID: 42871 RVA: 0x00240148 File Offset: 0x0023E348
[Token(Token = "0x600A777")]
[Address(RVA = "0x6FEA90", Offset = "0x6FDA90", VA = "0x1806FEA90", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A777)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP192K1Point(var_0_09, newobj:SecP192K1Point(SecP192K1Point::.ctor, ldloc:SecP192K1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A778 RID: 42872 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A778")]
[Address(RVA = "0x6FE9F0", Offset = "0x6FD9F0", VA = "0x1806FE9F0", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A779 RID: 42873 RVA: 0x00240160 File Offset: 0x0023E360
[Token(Token = "0x600A779")]
[Address(RVA = "0x6FE790", Offset = "0x6FD790", VA = "0x1806FE790", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[points];
num = 0;
if (len <= 0)
{
goto IL_4A;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 12;
IL_4A:
SecP192K1Curve.SecP192K1LookupTable secP192K1LookupTable;
secP192K1LookupTable.m_outer = 0;
secP192K1LookupTable.m_table = array;
secP192K1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x0600A77A RID: 42874 RVA: 0x002401D4 File Offset: 0x0023E3D4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A77A")]
[Address(RVA = "0x6FEB80", Offset = "0x6FDB80", VA = "0x1806FEB80")]
static SecP192K1Curve()
{
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37");
SecP192K1Curve.q = new BigInteger(1, array);
}
// Token: 0x04006D26 RID: 27942
[Token(Token = "0x4006D26")]
public static readonly BigInteger q;
// Token: 0x04006D27 RID: 27943
[Token(Token = "0x4006D27")]
private const int SECP192K1_DEFAULT_COORDS = 2;
// Token: 0x04006D28 RID: 27944
[Token(Token = "0x4006D28")]
private const int SECP192K1_FE_INTS = 6;
// Token: 0x04006D29 RID: 27945
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006D29")]
protected readonly SecP192K1Point m_infinity;
// Token: 0x02001B26 RID: 6950
[Token(Token = "0x2001B26")]
private class SecP192K1LookupTable : ECLookupTable
{
// Token: 0x0600A77B RID: 42875 RVA: 0x002401F8 File Offset: 0x0023E3F8
[Token(Token = "0x600A77B")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecP192K1LookupTable(SecP192K1Curve outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A45 RID: 6725
// (get) Token: 0x0600A77C RID: 42876 RVA: 0x00240220 File Offset: 0x0023E420
[Token(Token = "0x17001A45")]
public virtual int Size
{
[Token(Token = "0x600A77C")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A77D RID: 42877 RVA: 0x00240234 File Offset: 0x0023E434
[Token(Token = "0x600A77D")]
[Address(RVA = "0x700E00", Offset = "0x6FFE00", VA = "0x180700E00", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat192.Create();
uint[] array2 = Nat192.Create();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 12;
num2++;
}
SecP192K1Curve outer = this.m_outer;
new SecP192K1FieldElement().x = array;
new SecP192K1FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006D2A RID: 27946
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D2A")]
private readonly SecP192K1Curve m_outer;
// Token: 0x04006D2B RID: 27947
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006D2B")]
private readonly uint[] m_table;
// Token: 0x04006D2C RID: 27948
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006D2C")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,329 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B27 RID: 6951
[Token(Token = "0x2001B27")]
internal class SecP192K1Field
{
// Token: 0x0600A77E RID: 42878 RVA: 0x002402B4 File Offset: 0x0023E4B4
[Token(Token = "0x600A77E")]
[Address(RVA = "0x700250", Offset = "0x6FF250", VA = "0x180700250")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
if (Nat192.Add(x, y, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP192K1Field.P;
if (!Nat192.Gte(z, p))
{
return;
}
}
uint num = Nat.Add33To(6, (uint)4553, z);
}
// Token: 0x0600A77F RID: 42879 RVA: 0x002402FC File Offset: 0x0023E4FC
[Token(Token = "0x600A77F")]
[Address(RVA = "0x700000", Offset = "0x6FF000", VA = "0x180700000")]
public static void AddExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Add(12, xx, yy, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP192K1Field.PExt;
if (!Nat.Gte(12, zz, pext))
{
return;
}
}
uint[] pextInv = SecP192K1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP192K1Field.PExtInv.Length;
uint num = Nat.IncAt(12, zz, length);
}
}
// Token: 0x0600A780 RID: 42880 RVA: 0x00240368 File Offset: 0x0023E568
[Token(Token = "0x600A780")]
[Address(RVA = "0x700180", Offset = "0x6FF180", VA = "0x180700180")]
public static void AddOne(uint[] x, uint[] z)
{
if (Nat.Inc(6, x, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP192K1Field.P;
if (!Nat192.Gte(z, p))
{
return;
}
}
uint num = Nat.Add33To(6, (uint)4553, z);
}
// Token: 0x0600A781 RID: 42881 RVA: 0x002403B0 File Offset: 0x0023E5B0
[Token(Token = "0x600A781")]
[Address(RVA = "0x700330", Offset = "0x6FF330", VA = "0x180700330")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat192.FromBigInteger(x);
if ("{il2cpp array field local2->}" == (ulong)(-1L))
{
uint[] p = SecP192K1Field.P;
if (Nat192.Gte(array, p))
{
int num = Nat192.SubFrom(SecP192K1Field.P, array);
}
}
return array;
}
// Token: 0x0600A782 RID: 42882 RVA: 0x002403F4 File Offset: 0x0023E5F4
[Token(Token = "0x600A782")]
[Address(RVA = "0x700420", Offset = "0x6FF420", VA = "0x180700420")]
public static void Half(uint[] x, uint[] z)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
uint[] p = SecP192K1Field.P;
uint num = Nat192.Add(x, p, z);
uint num2 = Nat.ShiftDownBit(6, z, num);
return;
}
int num3 = 0;
uint num4 = Nat.ShiftDownBit(6, x, (uint)num3, z);
}
// Token: 0x0600A783 RID: 42883 RVA: 0x00240438 File Offset: 0x0023E638
[Token(Token = "0x600A783")]
[Address(RVA = "0x700670", Offset = "0x6FF670", VA = "0x180700670")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat192.CreateExt();
Nat192.Mul(x, y, array);
SecP192K1Field.Reduce(array, z);
}
// Token: 0x0600A784 RID: 42884 RVA: 0x0024045C File Offset: 0x0023E65C
[Token(Token = "0x600A784")]
[Address(RVA = "0x700500", Offset = "0x6FF500", VA = "0x180700500")]
public static void MultiplyAddToExt(uint[] x, uint[] y, uint[] zz)
{
if (Nat192.MulAddTo(x, y, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP192K1Field.PExt;
if (!Nat.Gte(12, zz, pext))
{
return;
}
}
uint[] pextInv = SecP192K1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP192K1Field.PExtInv.Length;
uint num = Nat.IncAt(12, zz, length);
}
}
// Token: 0x0600A785 RID: 42885 RVA: 0x002404C4 File Offset: 0x0023E6C4
[Token(Token = "0x600A785")]
[Address(RVA = "0x700710", Offset = "0x6FF710", VA = "0x180700710")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat192.IsZero(x))
{
int num = Nat192.Sub(SecP192K1Field.P, x, z);
return;
}
Nat192.Zero(z);
}
// Token: 0x0600A786 RID: 42886 RVA: 0x002404F0 File Offset: 0x0023E6F0
[Token(Token = "0x600A786")]
[Address(RVA = "0x700890", Offset = "0x6FF890", VA = "0x180700890")]
public static void Reduce(uint[] xx, uint[] z)
{
int num = 0;
ulong num2 = Nat192.Mul33Add((uint)4553, xx, 6, xx, num, z, num);
int num3 = 0;
if (Nat192.Mul33DWordAdd((uint)4553, num2, z, num3) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP192K1Field.P;
if (!Nat192.Gte(z, p))
{
return;
}
}
uint num4 = Nat.Add33To(6, (uint)4553, z);
}
// Token: 0x0600A787 RID: 42887 RVA: 0x00240554 File Offset: 0x0023E754
[Token(Token = "0x600A787")]
[Address(RVA = "0x7007B0", Offset = "0x6FF7B0", VA = "0x1807007B0")]
public static void Reduce32(uint x, uint[] z)
{
if (x != (uint)0)
{
int num = 0;
if (Nat192.Mul33WordAdd((uint)4553, x, z, num) != (uint)0)
{
goto IL_33;
}
}
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP192K1Field.P;
if (!Nat192.Gte(z, p))
{
return;
}
IL_33:
uint num2 = Nat.Add33To(6, (uint)4553, z);
}
// Token: 0x0600A788 RID: 42888 RVA: 0x002405A8 File Offset: 0x0023E7A8
[Token(Token = "0x600A788")]
[Address(RVA = "0x700A70", Offset = "0x6FFA70", VA = "0x180700A70")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat192.CreateExt();
Nat192.Square(x, array);
SecP192K1Field.Reduce(array, z);
}
// Token: 0x0600A789 RID: 42889 RVA: 0x002405CC File Offset: 0x0023E7CC
[Token(Token = "0x600A789")]
[Address(RVA = "0x700990", Offset = "0x6FF990", VA = "0x180700990")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat192.CreateExt();
Nat192.Square(x, array);
SecP192K1Field.Reduce(array, z);
if (n > 0)
{
Nat192.Square(z, array);
SecP192K1Field.Reduce(array, z);
}
}
// Token: 0x0600A78A RID: 42890 RVA: 0x00240604 File Offset: 0x0023E804
[Token(Token = "0x600A78A")]
[Address(RVA = "0x700C10", Offset = "0x6FFC10", VA = "0x180700C10")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
if (Nat192.Sub(x, y, z) != 0)
{
int num = Nat.Sub33From(6, (uint)4553, z);
return;
}
}
// Token: 0x0600A78B RID: 42891 RVA: 0x0024062C File Offset: 0x0023E82C
[Token(Token = "0x600A78B")]
[Address(RVA = "0x700B00", Offset = "0x6FFB00", VA = "0x180700B00")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(12, xx, yy, zz) != 0)
{
uint[] pextInv = SecP192K1Field.PExtInv;
if (Nat.SubFrom(pextInv.Length, pextInv, zz) != 0)
{
int length = SecP192K1Field.PExtInv.Length;
int num = Nat.DecAt(12, zz, length);
}
}
}
// Token: 0x0600A78C RID: 42892 RVA: 0x00240678 File Offset: 0x0023E878
[Token(Token = "0x600A78C")]
[Address(RVA = "0x700C50", Offset = "0x6FFC50", VA = "0x180700C50")]
public static void Twice(uint[] x, uint[] z)
{
int num = 0;
if (Nat.ShiftUpBit(6, x, (uint)num, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP192K1Field.P;
if (!Nat192.Gte(z, p))
{
return;
}
}
uint num2 = Nat.Add33To(6, (uint)4553, z);
}
// Token: 0x0600A78D RID: 42893 RVA: 0x002406C4 File Offset: 0x0023E8C4
[Token(Token = "0x600A78D")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecP192K1Field()
{
}
// Token: 0x0600A78E RID: 42894 RVA: 0x002406D8 File Offset: 0x0023E8D8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A78E")]
[Address(RVA = "0x700D30", Offset = "0x6FFD30", VA = "0x180700D30")]
static SecP192K1Field()
{
uint[] array = new uint[6];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.FB3C663794DD23F500825FF78450D198FE338938).FieldHandle);
SecP192K1Field.P = array;
uint[] array2 = new uint[12];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.C5515C87D04DC0D00C7984096F5E35B4944C1CB6).FieldHandle);
SecP192K1Field.PExt = array2;
uint[] array3 = new uint[8];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.8330271815E046D369E0B1F7673D308739FDCC07).FieldHandle);
SecP192K1Field.PExtInv = array3;
}
// Token: 0x04006D2D RID: 27949
[Token(Token = "0x4006D2D")]
internal static readonly uint[] P;
// Token: 0x04006D2E RID: 27950
[Token(Token = "0x4006D2E")]
internal static readonly uint[] PExt;
// Token: 0x04006D2F RID: 27951
[Token(Token = "0x4006D2F")]
private static readonly uint[] PExtInv;
// Token: 0x04006D30 RID: 27952
[Token(Token = "0x4006D30")]
private const uint P5 = 4294967295U;
// Token: 0x04006D31 RID: 27953
[Token(Token = "0x4006D31")]
private const uint PExt11 = 4294967295U;
// Token: 0x04006D32 RID: 27954
[Token(Token = "0x4006D32")]
private const uint PInv33 = 4553U;
}
}
@@ -0,0 +1,474 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B28 RID: 6952
[Token(Token = "0x2001B28")]
internal class SecP192K1FieldElement : AbstractFpFieldElement
{
// Token: 0x0600A78F RID: 42895 RVA: 0x00240730 File Offset: 0x0023E930
[Token(Token = "0x600A78F")]
[Address(RVA = "0x6FFD40", Offset = "0x6FED40", VA = "0x1806FFD40")]
public SecP192K1FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A78F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4E:
stloc:ArgumentException(var_5_5D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecP192K1FieldElement"), ldstr:string("x")))
}
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: 0x0600A790 RID: 42896 RVA: 0x0024079C File Offset: 0x0023E99C
[Token(Token = "0x600A790")]
[Address(RVA = "0x6FFF10", Offset = "0x6FEF10", VA = "0x1806FFF10")]
public SecP192K1FieldElement()
{
uint[] array = Nat192.Create();
this.x = array;
}
// Token: 0x0600A791 RID: 42897 RVA: 0x002407C0 File Offset: 0x0023E9C0
[Token(Token = "0x600A791")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecP192K1FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001A46 RID: 6726
// (get) Token: 0x0600A792 RID: 42898 RVA: 0x002407DC File Offset: 0x0023E9DC
[Token(Token = "0x17001A46")]
public override bool IsZero
{
[Token(Token = "0x600A792")]
[Address(RVA = "0x6FFFF0", Offset = "0x6FEFF0", VA = "0x1806FFFF0", Slot = "18")]
get
{
return Nat192.IsZero(this.x);
}
}
// Token: 0x17001A47 RID: 6727
// (get) Token: 0x0600A793 RID: 42899 RVA: 0x002407F4 File Offset: 0x0023E9F4
[Token(Token = "0x17001A47")]
public override bool IsOne
{
[Token(Token = "0x600A793")]
[Address(RVA = "0x6FFFE0", Offset = "0x6FEFE0", VA = "0x1806FFFE0", Slot = "17")]
get
{
return Nat192.IsOne(this.x);
}
}
// Token: 0x0600A794 RID: 42900 RVA: 0x0024080C File Offset: 0x0023EA0C
[Token(Token = "0x600A794")]
[Address(RVA = "0x6FFCA0", Offset = "0x6FECA0", VA = "0x1806FFCA0", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat192.GetBit(array, num) == (uint)1;
}
// Token: 0x0600A795 RID: 42901 RVA: 0x00240830 File Offset: 0x0023EA30
[Token(Token = "0x600A795")]
[Address(RVA = "0x6FFCC0", Offset = "0x6FECC0", VA = "0x1806FFCC0", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat192.ToBigInteger(this.x);
}
// Token: 0x17001A48 RID: 6728
// (get) Token: 0x0600A796 RID: 42902 RVA: 0x00240848 File Offset: 0x0023EA48
[Token(Token = "0x17001A48")]
public override string FieldName
{
[Token(Token = "0x600A796")]
[Address(RVA = "0x6FFF40", Offset = "0x6FEF40", VA = "0x1806FFF40", Slot = "5")]
get
{
return "SecP192K1Field";
}
}
// Token: 0x17001A49 RID: 6729
// (get) Token: 0x0600A797 RID: 42903 RVA: 0x0024085C File Offset: 0x0023EA5C
[Token(Token = "0x17001A49")]
public override int FieldSize
{
[Token(Token = "0x600A797")]
[Address(RVA = "0x6FFF70", Offset = "0x6FEF70", VA = "0x1806FFF70", Slot = "6")]
get
{
return SecP192K1FieldElement.Q.BitLength;
}
}
// Token: 0x0600A798 RID: 42904 RVA: 0x0024087C File Offset: 0x0023EA7C
[Token(Token = "0x600A798")]
[Address(RVA = "0x6FEFC0", Offset = "0x6FDFC0", VA = "0x1806FEFC0", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat192.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP192K1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint num;
if (num == (uint)0)
{
if ("{il2cpp array field local3->}" != (ulong)(-1L))
{
goto IL_59;
}
uint[] p = SecP192K1Field.P;
if (!Nat192.Gte(array, p))
{
goto IL_59;
}
}
uint num2 = Nat.Add33To(6, (uint)4553, array);
IL_59:
new SecP192K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A799 RID: 42905 RVA: 0x002408F4 File Offset: 0x0023EAF4
[Token(Token = "0x600A799")]
[Address(RVA = "0x6FEE80", Offset = "0x6FDE80", VA = "0x1806FEE80", Slot = "8")]
public override ECFieldElement AddOne()
{
uint[] array = Nat192.Create();
uint[] array2 = this.x;
if (Nat.Inc(6, array2, array) == (uint)0)
{
if ("{il2cpp array field local2->}" != (ulong)(-1L))
{
goto IL_44;
}
uint[] p = SecP192K1Field.P;
if (!Nat192.Gte(array, p))
{
goto IL_44;
}
}
uint num = Nat.Add33To(6, (uint)4553, array);
IL_44:
new SecP192K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A79A RID: 42906 RVA: 0x00240958 File Offset: 0x0023EB58
[Token(Token = "0x600A79A")]
[Address(RVA = "0x6FFB40", Offset = "0x6FEB40", VA = "0x1806FFB40", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat192.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP192K1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
int num;
if (num != 0)
{
int num2 = Nat.Sub33From(6, (uint)4553, array);
}
new SecP192K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A79B RID: 42907 RVA: 0x002409B4 File Offset: 0x0023EBB4
[Token(Token = "0x600A79B")]
[Address(RVA = "0x6FF5F0", Offset = "0x6FE5F0", VA = "0x1806FF5F0", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat192.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP192K1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP192K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A79C RID: 42908 RVA: 0x002409FC File Offset: 0x0023EBFC
[Token(Token = "0x600A79C")]
[Address(RVA = "0x6FF1A0", Offset = "0x6FE1A0", VA = "0x1806FF1A0", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat192.Create();
uint[] p = SecP192K1Field.P;
if ("{il2cpp array field local3->}" == typeof(SecP192K1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
SecP192K1Field.Multiply(array, array2, array);
new SecP192K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A79D RID: 42909 RVA: 0x00240A54 File Offset: 0x0023EC54
[Token(Token = "0x600A79D")]
[Address(RVA = "0x6FF730", Offset = "0x6FE730", VA = "0x1806FF730", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600A79D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat192::Create))
call:void(SecP192K1Field::Negate, ldfld:uint32[](SecP192K1FieldElement::x, ldloc:SecP192K1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP192K1FieldElement::x, newobj:SecP192K1FieldElement(SecP192K1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A79E RID: 42910 RVA: 0x00240A80 File Offset: 0x0023EC80
[Token(Token = "0x600A79E")]
[Address(RVA = "0x6FFAB0", Offset = "0x6FEAB0", VA = "0x1806FFAB0", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600A79E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat192::Create))
call:void(SecP192K1Field::Square, ldfld:uint32[](SecP192K1FieldElement::x, ldloc:SecP192K1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP192K1FieldElement::x, newobj:SecP192K1FieldElement(SecP192K1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A79F RID: 42911 RVA: 0x00240AAC File Offset: 0x0023ECAC
[Token(Token = "0x600A79F")]
[Address(RVA = "0x6FF520", Offset = "0x6FE520", VA = "0x1806FF520", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600A79F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat192::Create))
stloc:uint32[](var_2_0E, ldfld:uint32[](SecP192K1FieldElement::x, ldloc:SecP192K1FieldElement(this)))
call:void(Mod::Invert, ldsfld:uint32[](SecP192K1Field::P), ldloc:uint32[](var_2_0E), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP192K1FieldElement::x, newobj:SecP192K1FieldElement(SecP192K1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A7A0 RID: 42912 RVA: 0x00240AE0 File Offset: 0x0023ECE0
[Token(Token = "0x600A7A0")]
[Address(RVA = "0x6FF7C0", Offset = "0x6FE7C0", VA = "0x1806FF7C0", Slot = "15")]
public override ECFieldElement Sqrt()
{
uint[] array;
do
{
array = this.x;
}
while (Nat192.IsZero(array) || Nat192.IsOne(array));
uint[] array2 = Nat192.Create();
SecP192K1Field.Square(array, array2);
SecP192K1Field.Multiply(array2, array, array2);
uint[] array3 = Nat192.Create();
SecP192K1Field.Square(array2, array3);
SecP192K1Field.Multiply(array3, array, array3);
uint[] array4 = Nat192.Create();
SecP192K1Field.SquareN(array3, 3, array4);
SecP192K1Field.Multiply(array4, array3, array4);
SecP192K1Field.SquareN(array4, 2, array4);
SecP192K1Field.Multiply(array4, array2, array4);
SecP192K1Field.SquareN(array4, 8, array2);
SecP192K1Field.Multiply(array2, array4, array2);
SecP192K1Field.SquareN(array2, 3, array4);
SecP192K1Field.Multiply(array4, array3, array4);
uint[] array5 = Nat192.Create();
SecP192K1Field.SquareN(array4, 16, array5);
SecP192K1Field.Multiply(array5, array2, array5);
SecP192K1Field.SquareN(array5, 35, array2);
SecP192K1Field.Multiply(array2, array5, array2);
SecP192K1Field.SquareN(array2, 70, array5);
SecP192K1Field.Multiply(array5, array2, array5);
SecP192K1Field.SquareN(array5, 19, array2);
SecP192K1Field.Multiply(array2, array4, array2);
SecP192K1Field.SquareN(array2, 20, array2);
SecP192K1Field.Multiply(array2, array4, array2);
SecP192K1Field.SquareN(array2, 4, array2);
SecP192K1Field.Multiply(array2, array3, array2);
SecP192K1Field.SquareN(array2, 6, array2);
SecP192K1Field.Multiply(array2, array3, array2);
SecP192K1Field.Square(array2, array2);
SecP192K1Field.Square(array2, array3);
if (Nat192.Eq(array, array3))
{
new SecP192K1FieldElement().x = array2;
return;
}
}
// Token: 0x0600A7A1 RID: 42913 RVA: 0x00240C48 File Offset: 0x0023EE48
[Token(Token = "0x600A7A1")]
[Address(RVA = "0x6FF320", Offset = "0x6FE320", VA = "0x1806FF320", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600A7A1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP192K1FieldElement[exp:ECFieldElement](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: 0x0600A7A2 RID: 42914 RVA: 0x00240C64 File Offset: 0x0023EE64
[Token(Token = "0x600A7A2")]
[Address(RVA = "0x6FF3B0", Offset = "0x6FE3B0", VA = "0x1806FF3B0", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600A7A2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP192K1FieldElement[exp:ECFieldElement](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: 0x0600A7A3 RID: 42915 RVA: 0x00240C80 File Offset: 0x0023EE80
[Token(Token = "0x600A7A3")]
[Address(RVA = "0x6FF440", Offset = "0x6FE440", VA = "0x1806FF440", Slot = "27")]
public virtual bool Equals(SecP192K1FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
return Nat192.Eq(this.x, array);
}
}
return true;
}
// Token: 0x0600A7A4 RID: 42916 RVA: 0x00240CAC File Offset: 0x0023EEAC
[Token(Token = "0x600A7A4")]
[Address(RVA = "0x6FF460", Offset = "0x6FE460", VA = "0x1806FF460", Slot = "2")]
public override int GetHashCode()
{
SecP192K1FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 6);
}
// Token: 0x04006D33 RID: 27955
[Token(Token = "0x4006D33")]
public static readonly BigInteger Q = SecP192K1Curve.q;
// Token: 0x04006D34 RID: 27956
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D34")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,326 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B29 RID: 6953
[Token(Token = "0x2001B29")]
internal class SecP192K1Point : AbstractFpPoint
{
// Token: 0x0600A7A6 RID: 42918 RVA: 0x00240CF4 File Offset: 0x0023EEF4
[Token(Token = "0x600A7A6")]
[Address(RVA = "0x7020C0", Offset = "0x7010C0", VA = "0x1807020C0")]
public SecP192K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A7A7 RID: 42919 RVA: 0x00240D04 File Offset: 0x0023EF04
[Token(Token = "0x600A7A7")]
[Address(RVA = "0x702000", Offset = "0x701000", VA = "0x180702000")]
public SecP192K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A7A7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A7A8 RID: 42920 RVA: 0x00240D2C File Offset: 0x0023EF2C
[Token(Token = "0x600A7A8")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecP192K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A7A9 RID: 42921 RVA: 0x00240D3C File Offset: 0x0023EF3C
[Token(Token = "0x600A7A9")]
[Address(RVA = "0x701850", Offset = "0x700850", VA = "0x180701850", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A7A9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecP192K1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecP192K1Point[exp: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: 0x0600A7AA RID: 42922 RVA: 0x00240D58 File Offset: 0x0023EF58
[Token(Token = "0x600A7AA")]
[Address(RVA = "0x700FD0", Offset = "0x6FFFD0", VA = "0x180700FD0", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity && !b.IsInfinity && this != b)
{
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat192.CreateExt();
uint[] array2 = Nat192.Create();
uint[] array3 = Nat192.Create();
uint[] array4 = Nat192.Create();
if (array4 == 0)
{
SecP192K1Field.Square(array4, array3);
SecP192K1Field.Multiply(array3, array3, array2);
SecP192K1Field.Multiply(array3, array3, array3);
SecP192K1Field.Multiply(array3, array3, array3);
}
SecP192K1Field.Multiply(array4, array4, array);
SecP192K1Field.Multiply(array4, array4, array4);
SecP192K1Field.Multiply(array4, array4, array4);
uint[] array5 = Nat192.Create();
int num;
if (num != 0)
{
int num2 = Nat.Sub33From(6, (uint)4553, array5);
}
int num3;
if (num3 != 0)
{
int num4 = Nat.Sub33From(6, (uint)4553, array2);
}
if (!Nat192.IsZero(array5))
{
SecP192K1Field.Square(array5, array3);
uint[] array6 = Nat192.Create();
SecP192K1Field.Multiply(array3, array5, array6);
SecP192K1Field.Negate(array6, array6);
SecP192K1Field.Reduce32(Nat192.AddBothTo(array3, array3, array6), array6);
SecP192K1FieldElement secP192K1FieldElement = new SecP192K1FieldElement();
secP192K1FieldElement.x = array4;
SecP192K1Field.Square(array2, array4);
uint[] x = secP192K1FieldElement.x;
if (Nat192.Sub(x, array6, x) != 0)
{
int num5 = Nat.Sub33From(6, (uint)4553, x);
}
SecP192K1FieldElement secP192K1FieldElement2 = new SecP192K1FieldElement();
secP192K1FieldElement2.x = array6;
uint[] x2 = secP192K1FieldElement.x;
if (Nat192.Sub(array3, x2, array6) != 0)
{
int num6 = Nat.Sub33From(6, (uint)4553, array6);
}
uint[] x3 = secP192K1FieldElement2.x;
if (Nat192.MulAddTo(x3, array2, array) == (uint)0)
{
if ("{il2cpp array field local16->}" != (ulong)(-1L))
{
goto IL_207;
}
uint[] pext = SecP192K1Field.PExt;
if (!Nat.Gte(12, array, pext))
{
goto IL_207;
}
}
uint[] pextInv = SecP192K1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, array) != (uint)0)
{
int length = SecP192K1Field.PExtInv.Length;
uint num7 = Nat.IncAt(12, array, length);
}
IL_207:
uint[] x4 = secP192K1FieldElement2.x;
SecP192K1Field.Reduce(array, x4);
SecP192K1FieldElement secP192K1FieldElement3 = new SecP192K1FieldElement();
secP192K1FieldElement3.x = array5;
SecP192K1Field.Multiply(array5, x3, array5);
uint[] x5 = secP192K1FieldElement3.x;
SecP192K1Field.Multiply(x5, array5, x5);
ECFieldElement[] array7 = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600A7AB RID: 42923 RVA: 0x00240FDC File Offset: 0x0023F1DC
[Token(Token = "0x600A7AB")]
[Address(RVA = "0x7019F0", Offset = "0x7009F0", VA = "0x1807019F0", Slot = "30")]
public override ECPoint Twice()
{
while (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
if (y != 0)
{
if (y.IsOne)
{
break;
}
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
uint[] array = Nat192.Create();
uint[] array2 = Nat192.Create();
SecP192K1Field.Square(array, array2);
uint[] array3 = Nat192.Create();
SecP192K1Field.Reduce32(Nat192.AddBothTo(array3, array3, array3), array3);
SecP192K1Field.Multiply(array, array3, array);
int num = 0;
SecP192K1Field.Reduce32(Nat.ShiftUpBits(6, array, 2, (uint)num), array);
uint[] array4 = Nat192.Create();
int num2 = 0;
SecP192K1Field.Reduce32(Nat.ShiftUpBits(6, array2, 3, (uint)num2, array4), array4);
SecP192K1FieldElement secP192K1FieldElement = new SecP192K1FieldElement();
secP192K1FieldElement.x = array2;
SecP192K1Field.Square(array3, array2);
uint[] x2 = secP192K1FieldElement.x;
if (Nat192.Sub(x2, array, x2) != 0)
{
int num3 = Nat.Sub33From(6, (uint)4553, x2);
}
uint[] x3 = secP192K1FieldElement.x;
if (Nat192.Sub(x3, array, x3) != 0)
{
int num4 = Nat.Sub33From(6, (uint)4553, x3);
}
SecP192K1FieldElement secP192K1FieldElement2 = new SecP192K1FieldElement();
secP192K1FieldElement2.x = array;
uint[] x4 = secP192K1FieldElement.x;
if (Nat192.Sub(array, x4, array) != 0)
{
int num5 = Nat.Sub33From(6, (uint)4553, array);
}
uint[] x5 = secP192K1FieldElement2.x;
SecP192K1Field.Multiply(x5, array3, x5);
uint[] x6 = secP192K1FieldElement2.x;
if (Nat192.Sub(x6, array4, x6) != 0)
{
int num6 = Nat.Sub33From(6, (uint)4553, x6);
}
SecP192K1FieldElement secP192K1FieldElement3 = new SecP192K1FieldElement();
secP192K1FieldElement3.x = array3;
uint num7;
if (num7 == (uint)0)
{
if ("{il2cpp array field local24->}" != (ulong)(-1L))
{
goto IL_1EF;
}
uint[] p = SecP192K1Field.P;
if (!Nat192.Gte(array3, p))
{
goto IL_1EF;
}
}
uint num8 = Nat.Add33To(6, (uint)4553, array3);
IL_1EF:
if (ecfieldElement.BitLength == 0)
{
uint[] x7 = secP192K1FieldElement3.x;
}
(new ECFieldElement[1])[0] = secP192K1FieldElement3;
bool withCompression = this.m_withCompression;
break;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A7AC RID: 42924 RVA: 0x00241208 File Offset: 0x0023F408
[Token(Token = "0x600A7AC")]
[Address(RVA = "0x6ECFE0", Offset = "0x6EBFE0", VA = "0x1806ECFE0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
bool flag2 = base.SatisfiesCurveEquation();
}
return b;
}
bool flag3 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600A7AD RID: 42925 RVA: 0x00241258 File Offset: 0x0023F458
[Token(Token = "0x600A7AD")]
[Address(RVA = "0x6ECF60", Offset = "0x6EBF60", VA = "0x1806ECF60", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600A7AE RID: 42926 RVA: 0x00241288 File Offset: 0x0023F488
[Token(Token = "0x600A7AE")]
[Address(RVA = "0x7018F0", Offset = "0x7008F0", VA = "0x1807018F0", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,323 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B2A RID: 6954
[Token(Token = "0x2001B2A")]
internal class SecP192R1Curve : AbstractFpCurve
{
// Token: 0x0600A7AF RID: 42927 RVA: 0x002412C0 File Offset: 0x0023F4C0
[Token(Token = "0x600A7AF")]
[Address(RVA = "0x7025C0", Offset = "0x7015C0", VA = "0x1807025C0")]
public SecP192R1Curve()
{
BigInteger bigInteger = SecP192R1Curve.q;
base..ctor(bigInteger);
int num;
int num2;
ulong num3;
SecP192R1Point secP192R1Point = new SecP192R1Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = secP192R1Point;
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC");
BigInteger bigInteger2 = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1");
BigInteger bigInteger3 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831");
BigInteger bigInteger4 = new BigInteger(1, array3);
this.m_order = bigInteger4;
BigInteger one = BigInteger.One;
this.m_cofactor = one;
this.m_coord = (int)((ulong)2L);
}
// Token: 0x0600A7B0 RID: 42928 RVA: 0x00241374 File Offset: 0x0023F574
[Token(Token = "0x600A7B0")]
[Address(RVA = "0x7020E0", Offset = "0x7010E0", VA = "0x1807020E0", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A7B0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP192R1Curve(var_0_05, newobj:SecP192R1Curve(SecP192R1Curve::.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.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: 0x0600A7B1 RID: 42929 RVA: 0x00241388 File Offset: 0x0023F588
[Token(Token = "0x600A7B1")]
[Address(RVA = "0x6E9C20", Offset = "0x6E8C20", VA = "0x1806E9C20", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 2;
}
// Token: 0x17001A4A RID: 6730
// (get) Token: 0x0600A7B2 RID: 42930 RVA: 0x0024139C File Offset: 0x0023F59C
[Token(Token = "0x17001A4A")]
public virtual BigInteger Q
{
[Token(Token = "0x600A7B2")]
[Address(RVA = "0x702810", Offset = "0x701810", VA = "0x180702810", Slot = "38")]
get
{
return SecP192R1Curve.q;
}
}
// Token: 0x17001A4B RID: 6731
// (get) Token: 0x0600A7B3 RID: 42931 RVA: 0x002413B0 File Offset: 0x0023F5B0
[Token(Token = "0x17001A4B")]
public override ECPoint Infinity
{
[Token(Token = "0x600A7B3")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A7B3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP192R1Point(var_0_06, ldfld:SecP192R1Point(SecP192R1Curve::m_infinity, ldloc:SecP192R1Curve(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: 0x17001A4C RID: 6732
// (get) Token: 0x0600A7B4 RID: 42932 RVA: 0x002413C4 File Offset: 0x0023F5C4
[Token(Token = "0x17001A4C")]
public override int FieldSize
{
[Token(Token = "0x600A7B4")]
[Address(RVA = "0x7027A0", Offset = "0x7017A0", VA = "0x1807027A0", Slot = "4")]
get
{
return SecP192R1Curve.q.BitLength;
}
}
// Token: 0x0600A7B5 RID: 42933 RVA: 0x002413E4 File Offset: 0x0023F5E4
[Token(Token = "0x600A7B5")]
[Address(RVA = "0x7024C0", Offset = "0x7014C0", VA = "0x1807024C0", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A7B5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP192R1FieldElement(var_0_06, newobj:SecP192R1FieldElement(SecP192R1FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600A7B6 RID: 42934 RVA: 0x002413F8 File Offset: 0x0023F5F8
[Token(Token = "0x600A7B6")]
[Address(RVA = "0x702430", Offset = "0x701430", VA = "0x180702430", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A7B6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP192R1Point(var_0_09, newobj:SecP192R1Point(SecP192R1Point::.ctor, ldloc:SecP192R1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A7B7 RID: 42935 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A7B7")]
[Address(RVA = "0x702390", Offset = "0x701390", VA = "0x180702390", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A7B8 RID: 42936 RVA: 0x00241410 File Offset: 0x0023F610
[Token(Token = "0x600A7B8")]
[Address(RVA = "0x702130", Offset = "0x701130", VA = "0x180702130", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[points];
num = 0;
if (len <= 0)
{
goto IL_4A;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 12;
IL_4A:
SecP192R1Curve.SecP192R1LookupTable secP192R1LookupTable;
secP192R1LookupTable.m_outer = 0;
secP192R1LookupTable.m_table = array;
secP192R1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x0600A7B9 RID: 42937 RVA: 0x00241484 File Offset: 0x0023F684
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A7B9")]
[Address(RVA = "0x702520", Offset = "0x701520", VA = "0x180702520")]
static SecP192R1Curve()
{
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF");
SecP192R1Curve.q = new BigInteger(1, array);
}
// Token: 0x04006D35 RID: 27957
[Token(Token = "0x4006D35")]
public static readonly BigInteger q;
// Token: 0x04006D36 RID: 27958
[Token(Token = "0x4006D36")]
private const int SECP192R1_DEFAULT_COORDS = 2;
// Token: 0x04006D37 RID: 27959
[Token(Token = "0x4006D37")]
private const int SECP192R1_FE_INTS = 6;
// Token: 0x04006D38 RID: 27960
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006D38")]
protected readonly SecP192R1Point m_infinity;
// Token: 0x02001B2B RID: 6955
[Token(Token = "0x2001B2B")]
private class SecP192R1LookupTable : ECLookupTable
{
// Token: 0x0600A7BA RID: 42938 RVA: 0x002414A8 File Offset: 0x0023F6A8
[Token(Token = "0x600A7BA")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecP192R1LookupTable(SecP192R1Curve outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A4D RID: 6733
// (get) Token: 0x0600A7BB RID: 42939 RVA: 0x002414D0 File Offset: 0x0023F6D0
[Token(Token = "0x17001A4D")]
public virtual int Size
{
[Token(Token = "0x600A7BB")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A7BC RID: 42940 RVA: 0x002414E4 File Offset: 0x0023F6E4
[Token(Token = "0x600A7BC")]
[Address(RVA = "0x704B50", Offset = "0x703B50", VA = "0x180704B50", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat192.Create();
uint[] array2 = Nat192.Create();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 12;
num2++;
}
SecP192R1Curve outer = this.m_outer;
new SecP192R1FieldElement().x = array;
new SecP192R1FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006D39 RID: 27961
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D39")]
private readonly SecP192R1Curve m_outer;
// Token: 0x04006D3A RID: 27962
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006D3A")]
private readonly uint[] m_table;
// Token: 0x04006D3B RID: 27963
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006D3B")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,446 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B2C RID: 6956
[Token(Token = "0x2001B2C")]
internal class SecP192R1Field
{
// Token: 0x0600A7BD RID: 42941 RVA: 0x00241564 File Offset: 0x0023F764
[Token(Token = "0x600A7BD")]
[Address(RVA = "0x703AD0", Offset = "0x702AD0", VA = "0x180703AD0")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
if (Nat192.Add(x, y, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP192R1Field.P;
if (!Nat192.Gte(z, p))
{
return;
}
}
SecP192R1Field.AddPInvTo(z);
}
// Token: 0x0600A7BE RID: 42942 RVA: 0x002415A4 File Offset: 0x0023F7A4
[Token(Token = "0x600A7BE")]
[Address(RVA = "0x7037B0", Offset = "0x7027B0", VA = "0x1807037B0")]
public static void AddExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Add(12, xx, yy, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP192R1Field.PExt;
if (!Nat.Gte(12, zz, pext))
{
return;
}
}
uint[] pextInv = SecP192R1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP192R1Field.PExtInv.Length;
uint num = Nat.IncAt(12, zz, length);
}
}
// Token: 0x0600A7BF RID: 42943 RVA: 0x00241610 File Offset: 0x0023F810
[Token(Token = "0x600A7BF")]
[Address(RVA = "0x703930", Offset = "0x702930", VA = "0x180703930")]
public static void AddOne(uint[] x, uint[] z)
{
if (Nat.Inc(6, x, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP192R1Field.P;
if (!Nat192.Gte(z, p))
{
return;
}
}
SecP192R1Field.AddPInvTo(z);
}
// Token: 0x0600A7C0 RID: 42944 RVA: 0x00241650 File Offset: 0x0023F850
[Token(Token = "0x600A7C0")]
[Address(RVA = "0x703BC0", Offset = "0x702BC0", VA = "0x180703BC0")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat192.FromBigInteger(x);
if ("{il2cpp array field local2->}" == (ulong)(-1L))
{
uint[] p = SecP192R1Field.P;
if (Nat192.Gte(array, p))
{
int num = Nat192.SubFrom(SecP192R1Field.P, array);
}
}
return array;
}
// Token: 0x0600A7C1 RID: 42945 RVA: 0x00241694 File Offset: 0x0023F894
[Token(Token = "0x600A7C1")]
[Address(RVA = "0x703CB0", Offset = "0x702CB0", VA = "0x180703CB0")]
public static void Half(uint[] x, uint[] z)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
uint[] p = SecP192R1Field.P;
uint num = Nat192.Add(x, p, z);
uint num2 = Nat.ShiftDownBit(6, z, num);
return;
}
int num3 = 0;
uint num4 = Nat.ShiftDownBit(6, x, (uint)num3, z);
}
// Token: 0x0600A7C2 RID: 42946 RVA: 0x002416D8 File Offset: 0x0023F8D8
[Token(Token = "0x600A7C2")]
[Address(RVA = "0x703F00", Offset = "0x702F00", VA = "0x180703F00")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat192.CreateExt();
Nat192.Mul(x, y, array);
SecP192R1Field.Reduce(array, z);
}
// Token: 0x0600A7C3 RID: 42947 RVA: 0x002416FC File Offset: 0x0023F8FC
[Token(Token = "0x600A7C3")]
[Address(RVA = "0x703D90", Offset = "0x702D90", VA = "0x180703D90")]
public static void MultiplyAddToExt(uint[] x, uint[] y, uint[] zz)
{
if (Nat192.MulAddTo(x, y, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP192R1Field.PExt;
if (!Nat.Gte(12, zz, pext))
{
return;
}
}
uint[] pextInv = SecP192R1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP192R1Field.PExtInv.Length;
uint num = Nat.IncAt(12, zz, length);
}
}
// Token: 0x0600A7C4 RID: 42948 RVA: 0x00241764 File Offset: 0x0023F964
[Token(Token = "0x600A7C4")]
[Address(RVA = "0x703FA0", Offset = "0x702FA0", VA = "0x180703FA0")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat192.IsZero(x))
{
int num = Nat192.Sub(SecP192R1Field.P, x, z);
return;
}
Nat192.Zero(z);
}
// Token: 0x0600A7C5 RID: 42949 RVA: 0x00241790 File Offset: 0x0023F990
[Token(Token = "0x600A7C5")]
[Address(RVA = "0x7041C0", Offset = "0x7031C0", VA = "0x1807041C0")]
public static void Reduce(uint[] xx, uint[] z)
{
int length = xx.Length;
uint num = xx[3];
uint num2 = xx[3];
uint num3 = xx[4];
uint num4 = xx[4];
uint num5 = xx[5];
uint num6 = xx[0];
num5 += num;
uint num7 = xx[5];
num6 += num5;
uint num8 = xx[0];
num7 += num2;
num8 += num7;
num6 += num8;
num5 += num3;
z[0] = num6;
int length2 = xx.Length;
num7 += num4;
uint num9 = xx[1];
num9 += num5;
num6 += num9;
uint num10 = xx[1];
num10 += num7;
num6 += num10;
z[1] = num6;
uint num11 = xx[2];
num11 += num6;
num11 -= num;
num11 += num5;
z[2] = num11;
uint num12 = xx[2];
num12 += num11;
num12 -= num2;
num12 += num7;
z[2] = num12;
num6 += num12;
num11 = num6;
num12 += num11;
z[0] = num12;
if (num12 != (uint)0)
{
uint num13 = z[0];
num12 += num13;
z[0] = num12;
num6 += num12;
}
z[1] = num6;
ulong num14;
if (num14 == (ulong)num6 || Nat.IncAt(6, z, 3) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP192R1Field.P;
if (!Nat192.Gte(z, p))
{
return;
}
}
SecP192R1Field.AddPInvTo(z);
}
// Token: 0x0600A7C6 RID: 42950 RVA: 0x00241930 File Offset: 0x0023FB30
[Token(Token = "0x600A7C6")]
[Address(RVA = "0x704040", Offset = "0x703040", VA = "0x180704040")]
public static void Reduce32(uint x, uint[] z)
{
if (x != (uint)0)
{
uint num = z[0];
num += x;
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
}
uint num3 = z[1];
num3 += x;
num += num3;
z[1] = num;
if (num != (uint)0 && Nat.IncAt(6, z, 3) != (uint)0)
{
goto IL_75;
}
}
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP192R1Field.P;
if (!Nat192.Gte(z, p))
{
return;
}
IL_75:
SecP192R1Field.AddPInvTo(z);
}
// Token: 0x0600A7C7 RID: 42951 RVA: 0x002419C0 File Offset: 0x0023FBC0
[Token(Token = "0x600A7C7")]
[Address(RVA = "0x704620", Offset = "0x703620", VA = "0x180704620")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat192.CreateExt();
Nat192.Square(x, array);
SecP192R1Field.Reduce(array, z);
}
// Token: 0x0600A7C8 RID: 42952 RVA: 0x002419E4 File Offset: 0x0023FBE4
[Token(Token = "0x600A7C8")]
[Address(RVA = "0x704540", Offset = "0x703540", VA = "0x180704540")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat192.CreateExt();
Nat192.Square(x, array);
SecP192R1Field.Reduce(array, z);
if (n > 0)
{
Nat192.Square(z, array);
SecP192R1Field.Reduce(array, z);
}
}
// Token: 0x0600A7C9 RID: 42953 RVA: 0x00241A1C File Offset: 0x0023FC1C
[Token(Token = "0x600A7C9")]
[Address(RVA = "0x704870", Offset = "0x703870", VA = "0x180704870")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
if (Nat192.Sub(x, y, z) != 0)
{
uint num = z[0];
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
}
uint num3 = z[1];
num += num3;
z[1] = num;
ulong num4;
if (num4 != (ulong)num)
{
int num5 = Nat.DecAt(6, z, 3);
}
}
}
// Token: 0x0600A7CA RID: 42954 RVA: 0x00241A88 File Offset: 0x0023FC88
[Token(Token = "0x600A7CA")]
[Address(RVA = "0x704760", Offset = "0x703760", VA = "0x180704760")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(12, xx, yy, zz) != 0)
{
uint[] pextInv = SecP192R1Field.PExtInv;
if (Nat.SubFrom(pextInv.Length, pextInv, zz) != 0)
{
int length = SecP192R1Field.PExtInv.Length;
int num = Nat.DecAt(12, zz, length);
}
}
}
// Token: 0x0600A7CB RID: 42955 RVA: 0x00241AD4 File Offset: 0x0023FCD4
[Token(Token = "0x600A7CB")]
[Address(RVA = "0x704990", Offset = "0x703990", VA = "0x180704990")]
public static void Twice(uint[] x, uint[] z)
{
int num = 0;
if (Nat.ShiftUpBit(6, x, (uint)num, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP192R1Field.P;
if (!Nat192.Gte(z, p))
{
return;
}
}
SecP192R1Field.AddPInvTo(z);
}
// Token: 0x0600A7CC RID: 42956 RVA: 0x00241B18 File Offset: 0x0023FD18
[Token(Token = "0x600A7CC")]
[Address(RVA = "0x703A20", Offset = "0x702A20", VA = "0x180703A20")]
private static void AddPInvTo(uint[] z)
{
uint num = z[0];
num += (uint)1;
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
}
uint num3 = z[1];
num3 += (uint)1;
num += num3;
z[1] = num;
ulong num4;
if (num4 != (ulong)num)
{
uint num5 = Nat.IncAt(6, z, 3);
return;
}
}
// Token: 0x0600A7CD RID: 42957 RVA: 0x00241B84 File Offset: 0x0023FD84
[Token(Token = "0x600A7CD")]
[Address(RVA = "0x7046B0", Offset = "0x7036B0", VA = "0x1807046B0")]
private static void SubPInvFrom(uint[] z)
{
uint num = z[0];
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
}
uint num3 = z[1];
num += num3;
z[1] = num;
ulong num4;
if (num4 != (ulong)num)
{
int num5 = Nat.DecAt(6, z, 3);
return;
}
}
// Token: 0x0600A7CE RID: 42958 RVA: 0x00241BE4 File Offset: 0x0023FDE4
[Token(Token = "0x600A7CE")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecP192R1Field()
{
}
// Token: 0x0600A7CF RID: 42959 RVA: 0x00241BF8 File Offset: 0x0023FDF8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A7CF")]
[Address(RVA = "0x704A80", Offset = "0x703A80", VA = "0x180704A80")]
static SecP192R1Field()
{
uint[] array = new uint[6];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.D6898715AE96BC2F82A7BBA76E2BFC7100E282C3).FieldHandle);
SecP192R1Field.P = array;
uint[] array2 = new uint[12];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.A53306F44DF494A019EA1487807B59CA336BF024).FieldHandle);
SecP192R1Field.PExt = array2;
uint[] array3 = new uint[9];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.0982B1B45B764F2694ABC3DE57204AC898651429).FieldHandle);
SecP192R1Field.PExtInv = array3;
}
// Token: 0x04006D3C RID: 27964
[Token(Token = "0x4006D3C")]
internal static readonly uint[] P;
// Token: 0x04006D3D RID: 27965
[Token(Token = "0x4006D3D")]
internal static readonly uint[] PExt;
// Token: 0x04006D3E RID: 27966
[Token(Token = "0x4006D3E")]
private static readonly uint[] PExtInv;
// Token: 0x04006D3F RID: 27967
[Token(Token = "0x4006D3F")]
private const uint P5 = 4294967295U;
// Token: 0x04006D40 RID: 27968
[Token(Token = "0x4006D40")]
private const uint PExt11 = 4294967295U;
}
}
@@ -0,0 +1,440 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B2D RID: 6957
[Token(Token = "0x2001B2D")]
internal class SecP192R1FieldElement : AbstractFpFieldElement
{
// Token: 0x0600A7D0 RID: 42960 RVA: 0x00241C50 File Offset: 0x0023FE50
[Token(Token = "0x600A7D0")]
[Address(RVA = "0x703540", Offset = "0x702540", VA = "0x180703540")]
public SecP192R1FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A7D0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4E:
stloc:ArgumentException(var_5_5D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecP192R1FieldElement"), ldstr:string("x")))
}
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: 0x0600A7D1 RID: 42961 RVA: 0x00241CBC File Offset: 0x0023FEBC
[Token(Token = "0x600A7D1")]
[Address(RVA = "0x6FFF10", Offset = "0x6FEF10", VA = "0x1806FFF10")]
public SecP192R1FieldElement()
{
uint[] array = Nat192.Create();
this.x = array;
}
// Token: 0x0600A7D2 RID: 42962 RVA: 0x00241CE0 File Offset: 0x0023FEE0
[Token(Token = "0x600A7D2")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecP192R1FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001A4E RID: 6734
// (get) Token: 0x0600A7D3 RID: 42963 RVA: 0x00241CFC File Offset: 0x0023FEFC
[Token(Token = "0x17001A4E")]
public override bool IsZero
{
[Token(Token = "0x600A7D3")]
[Address(RVA = "0x6FFFF0", Offset = "0x6FEFF0", VA = "0x1806FFFF0", Slot = "18")]
get
{
return Nat192.IsZero(this.x);
}
}
// Token: 0x17001A4F RID: 6735
// (get) Token: 0x0600A7D4 RID: 42964 RVA: 0x00241D14 File Offset: 0x0023FF14
[Token(Token = "0x17001A4F")]
public override bool IsOne
{
[Token(Token = "0x600A7D4")]
[Address(RVA = "0x6FFFE0", Offset = "0x6FEFE0", VA = "0x1806FFFE0", Slot = "17")]
get
{
return Nat192.IsOne(this.x);
}
}
// Token: 0x0600A7D5 RID: 42965 RVA: 0x00241D2C File Offset: 0x0023FF2C
[Token(Token = "0x600A7D5")]
[Address(RVA = "0x6FFCA0", Offset = "0x6FECA0", VA = "0x1806FFCA0", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat192.GetBit(array, num) == (uint)1;
}
// Token: 0x0600A7D6 RID: 42966 RVA: 0x00241D50 File Offset: 0x0023FF50
[Token(Token = "0x600A7D6")]
[Address(RVA = "0x6FFCC0", Offset = "0x6FECC0", VA = "0x1806FFCC0", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat192.ToBigInteger(this.x);
}
// Token: 0x17001A50 RID: 6736
// (get) Token: 0x0600A7D7 RID: 42967 RVA: 0x00241D68 File Offset: 0x0023FF68
[Token(Token = "0x17001A50")]
public override string FieldName
{
[Token(Token = "0x600A7D7")]
[Address(RVA = "0x703710", Offset = "0x702710", VA = "0x180703710", Slot = "5")]
get
{
return "SecP192R1Field";
}
}
// Token: 0x17001A51 RID: 6737
// (get) Token: 0x0600A7D8 RID: 42968 RVA: 0x00241D7C File Offset: 0x0023FF7C
[Token(Token = "0x17001A51")]
public override int FieldSize
{
[Token(Token = "0x600A7D8")]
[Address(RVA = "0x703740", Offset = "0x702740", VA = "0x180703740", Slot = "6")]
get
{
return SecP192R1FieldElement.Q.BitLength;
}
}
// Token: 0x0600A7D9 RID: 42969 RVA: 0x00241D9C File Offset: 0x0023FF9C
[Token(Token = "0x600A7D9")]
[Address(RVA = "0x7029C0", Offset = "0x7019C0", VA = "0x1807029C0", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat192.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP192R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP192R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A7DA RID: 42970 RVA: 0x00241DE4 File Offset: 0x0023FFE4
[Token(Token = "0x600A7DA")]
[Address(RVA = "0x702870", Offset = "0x701870", VA = "0x180702870", Slot = "8")]
public override ECFieldElement AddOne()
{
uint[] array = Nat192.Create();
uint[] array2 = this.x;
if (Nat.Inc(6, array2, array) == (uint)0)
{
if ("{il2cpp array field local2->}" != (ulong)(-1L))
{
goto IL_3B;
}
uint[] p = SecP192R1Field.P;
if (!Nat192.Gte(array, p))
{
goto IL_3B;
}
}
SecP192R1Field.AddPInvTo(array);
IL_3B:
new SecP192R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A7DB RID: 42971 RVA: 0x00241E3C File Offset: 0x0024003C
[Token(Token = "0x600A7DB")]
[Address(RVA = "0x703390", Offset = "0x702390", VA = "0x180703390", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat192.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP192R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP192R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A7DC RID: 42972 RVA: 0x00241E84 File Offset: 0x00240084
[Token(Token = "0x600A7DC")]
[Address(RVA = "0x702F30", Offset = "0x701F30", VA = "0x180702F30", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat192.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP192R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP192R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A7DD RID: 42973 RVA: 0x00241ECC File Offset: 0x002400CC
[Token(Token = "0x600A7DD")]
[Address(RVA = "0x702B00", Offset = "0x701B00", VA = "0x180702B00", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat192.Create();
uint[] p = SecP192R1Field.P;
if ("{il2cpp array field local3->}" == typeof(SecP192R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
SecP192R1Field.Multiply(array, array2, array);
new SecP192R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A7DE RID: 42974 RVA: 0x00241F24 File Offset: 0x00240124
[Token(Token = "0x600A7DE")]
[Address(RVA = "0x703070", Offset = "0x702070", VA = "0x180703070", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600A7DE)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat192::Create))
call:void(SecP192R1Field::Negate, ldfld:uint32[](SecP192R1FieldElement::x, ldloc:SecP192R1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP192R1FieldElement::x, newobj:SecP192R1FieldElement(SecP192R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A7DF RID: 42975 RVA: 0x00241F50 File Offset: 0x00240150
[Token(Token = "0x600A7DF")]
[Address(RVA = "0x703300", Offset = "0x702300", VA = "0x180703300", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600A7DF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat192::Create))
call:void(SecP192R1Field::Square, ldfld:uint32[](SecP192R1FieldElement::x, ldloc:SecP192R1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP192R1FieldElement::x, newobj:SecP192R1FieldElement(SecP192R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A7E0 RID: 42976 RVA: 0x00241F7C File Offset: 0x0024017C
[Token(Token = "0x600A7E0")]
[Address(RVA = "0x702E60", Offset = "0x701E60", VA = "0x180702E60", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600A7E0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat192::Create))
stloc:uint32[](var_2_0E, ldfld:uint32[](SecP192R1FieldElement::x, ldloc:SecP192R1FieldElement(this)))
call:void(Mod::Invert, ldsfld:uint32[](SecP192R1Field::P), ldloc:uint32[](var_2_0E), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP192R1FieldElement::x, newobj:SecP192R1FieldElement(SecP192R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A7E1 RID: 42977 RVA: 0x00241FB0 File Offset: 0x002401B0
[Token(Token = "0x600A7E1")]
[Address(RVA = "0x703100", Offset = "0x702100", VA = "0x180703100", Slot = "15")]
public override ECFieldElement Sqrt()
{
uint[] array;
do
{
array = this.x;
}
while (Nat192.IsZero(array) || Nat192.IsOne(array));
uint[] array2 = Nat192.Create();
uint[] array3 = Nat192.Create();
SecP192R1Field.Square(array, array2);
SecP192R1Field.Multiply(array2, array, array2);
SecP192R1Field.SquareN(array2, 2, array3);
SecP192R1Field.Multiply(array3, array2, array3);
SecP192R1Field.SquareN(array3, 4, array2);
SecP192R1Field.Multiply(array2, array3, array2);
SecP192R1Field.SquareN(array2, 8, array3);
SecP192R1Field.Multiply(array3, array2, array3);
SecP192R1Field.SquareN(array3, 16, array2);
SecP192R1Field.Multiply(array2, array3, array2);
SecP192R1Field.SquareN(array2, 32, array3);
SecP192R1Field.Multiply(array3, array2, array3);
SecP192R1Field.SquareN(array3, 64, array2);
SecP192R1Field.Multiply(array2, array3, array2);
SecP192R1Field.SquareN(array2, 62, array2);
SecP192R1Field.Square(array2, array3);
if (Nat192.Eq(array, array3))
{
new SecP192R1FieldElement().x = array2;
return;
}
}
// Token: 0x0600A7E2 RID: 42978 RVA: 0x00242094 File Offset: 0x00240294
[Token(Token = "0x600A7E2")]
[Address(RVA = "0x702C80", Offset = "0x701C80", VA = "0x180702C80", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600A7E2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP192R1FieldElement[exp:ECFieldElement](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: 0x0600A7E3 RID: 42979 RVA: 0x002420B0 File Offset: 0x002402B0
[Token(Token = "0x600A7E3")]
[Address(RVA = "0x702D10", Offset = "0x701D10", VA = "0x180702D10", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600A7E3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP192R1FieldElement[exp:ECFieldElement](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: 0x0600A7E4 RID: 42980 RVA: 0x002420CC File Offset: 0x002402CC
[Token(Token = "0x600A7E4")]
[Address(RVA = "0x6FF440", Offset = "0x6FE440", VA = "0x1806FF440", Slot = "27")]
public virtual bool Equals(SecP192R1FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
return Nat192.Eq(this.x, array);
}
}
return true;
}
// Token: 0x0600A7E5 RID: 42981 RVA: 0x002420F8 File Offset: 0x002402F8
[Token(Token = "0x600A7E5")]
[Address(RVA = "0x702DA0", Offset = "0x701DA0", VA = "0x180702DA0", Slot = "2")]
public override int GetHashCode()
{
SecP192R1FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 6);
}
// Token: 0x04006D41 RID: 27969
[Token(Token = "0x4006D41")]
public static readonly BigInteger Q = SecP192R1Curve.q;
// Token: 0x04006D42 RID: 27970
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D42")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,304 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B2E RID: 6958
[Token(Token = "0x2001B2E")]
internal class SecP192R1Point : AbstractFpPoint
{
// Token: 0x0600A7E7 RID: 42983 RVA: 0x00242140 File Offset: 0x00240340
[Token(Token = "0x600A7E7")]
[Address(RVA = "0x705D70", Offset = "0x704D70", VA = "0x180705D70")]
public SecP192R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A7E8 RID: 42984 RVA: 0x00242150 File Offset: 0x00240350
[Token(Token = "0x600A7E8")]
[Address(RVA = "0x705D90", Offset = "0x704D90", VA = "0x180705D90")]
public SecP192R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A7E8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A7E9 RID: 42985 RVA: 0x00242178 File Offset: 0x00240378
[Token(Token = "0x600A7E9")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecP192R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A7EA RID: 42986 RVA: 0x00242188 File Offset: 0x00240388
[Token(Token = "0x600A7EA")]
[Address(RVA = "0x705540", Offset = "0x704540", VA = "0x180705540", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A7EA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecP192R1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecP192R1Point[exp: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: 0x0600A7EB RID: 42987 RVA: 0x002421A4 File Offset: 0x002403A4
[Token(Token = "0x600A7EB")]
[Address(RVA = "0x704D20", Offset = "0x703D20", VA = "0x180704D20", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this == b)
{
return b;
}
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat192.CreateExt();
uint[] array2 = Nat192.Create();
uint[] array3 = Nat192.Create();
uint[] array4 = Nat192.Create();
if (array4 == 0)
{
SecP192R1Field.Square(array4, array3);
SecP192R1Field.Multiply(array3, array3, array2);
SecP192R1Field.Multiply(array3, array3, array3);
SecP192R1Field.Multiply(array3, array3, array3);
}
SecP192R1Field.Multiply(array4, array4, array);
SecP192R1Field.Multiply(array4, array4, array4);
SecP192R1Field.Multiply(array4, array4, array4);
uint[] array5 = Nat192.Create();
if (!Nat192.IsZero(array5))
{
SecP192R1Field.Square(array5, array3);
uint[] array6 = Nat192.Create();
SecP192R1Field.Multiply(array3, array5, array6);
SecP192R1Field.Negate(array6, array6);
SecP192R1Field.Reduce32(Nat192.AddBothTo(array3, array3, array6), array6);
SecP192R1FieldElement secP192R1FieldElement = new SecP192R1FieldElement();
secP192R1FieldElement.x = array4;
SecP192R1Field.Square(array2, array4);
uint[] x = secP192R1FieldElement.x;
SecP192R1Field.Subtract(x, array6, x);
SecP192R1FieldElement secP192R1FieldElement2 = new SecP192R1FieldElement();
secP192R1FieldElement2.x = array6;
uint[] x2 = secP192R1FieldElement.x;
SecP192R1Field.Subtract(array3, x2, array6);
if (Nat192.MulAddTo(secP192R1FieldElement2.x, array2, array) == (uint)0)
{
if ("{il2cpp array field local16->}" != (ulong)(-1L))
{
goto IL_1B3;
}
uint[] pext = SecP192R1Field.PExt;
if (!Nat.Gte(12, array, pext))
{
goto IL_1B3;
}
}
uint[] pextInv = SecP192R1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, array) != (uint)0)
{
int length = SecP192R1Field.PExtInv.Length;
uint num = Nat.IncAt(12, array, length);
}
IL_1B3:
uint[] x3 = secP192R1FieldElement2.x;
SecP192R1Field.Reduce(array, x3);
SecP192R1FieldElement secP192R1FieldElement3 = new SecP192R1FieldElement();
secP192R1FieldElement3.x = array5;
SecP192R1Field.Multiply(array5, array, array5);
uint[] x4 = secP192R1FieldElement3.x;
ECFieldElement[] array7 = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600A7EC RID: 42988 RVA: 0x002423C8 File Offset: 0x002405C8
[Token(Token = "0x600A7EC")]
[Address(RVA = "0x7056E0", Offset = "0x7046E0", VA = "0x1807056E0", Slot = "30")]
public override ECPoint Twice()
{
while (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
if (y != 0)
{
if (y.IsOne)
{
break;
}
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
uint[] array = Nat192.Create();
uint[] array2 = Nat192.Create();
uint[] array3 = Nat192.Create();
uint[] array4 = Nat192.Create();
SecP192R1Field.Square(array3, array4);
if (ecfieldElement.BitLength == 0)
{
}
SecP192R1Field.Multiply(array2, array, array2);
SecP192R1Field.Reduce32(Nat192.AddBothTo(array2, array2, array2), array2);
SecP192R1Field.Multiply(array3, array2, array3);
int num = 0;
SecP192R1Field.Reduce32(Nat.ShiftUpBits(6, array3, 2, (uint)num), array3);
int num2 = 0;
SecP192R1Field.Reduce32(Nat.ShiftUpBits(6, array4, 3, (uint)num2, array), array);
SecP192R1FieldElement secP192R1FieldElement = new SecP192R1FieldElement();
secP192R1FieldElement.x = array4;
SecP192R1Field.Square(array2, array4);
uint[] x2 = secP192R1FieldElement.x;
SecP192R1Field.Subtract(x2, array3, x2);
uint[] x3 = secP192R1FieldElement.x;
SecP192R1Field.Subtract(x3, array3, x3);
SecP192R1FieldElement secP192R1FieldElement2 = new SecP192R1FieldElement();
secP192R1FieldElement2.x = array3;
uint[] x4 = secP192R1FieldElement.x;
SecP192R1Field.Subtract(array3, x4, array3);
uint[] x5 = secP192R1FieldElement2.x;
SecP192R1Field.Multiply(x5, array2, x5);
uint[] x6 = secP192R1FieldElement2.x;
SecP192R1Field.Subtract(x6, array, x6);
SecP192R1FieldElement secP192R1FieldElement3 = new SecP192R1FieldElement();
secP192R1FieldElement3.x = array2;
uint num3;
if (num3 == (uint)0)
{
if ("{il2cpp array field local20->}" != (ulong)(-1L))
{
goto IL_1B5;
}
uint[] p = SecP192R1Field.P;
if (!Nat192.Gte(array2, p))
{
goto IL_1B5;
}
}
SecP192R1Field.AddPInvTo(array2);
IL_1B5:
uint[] x7 = secP192R1FieldElement3.x;
(new ECFieldElement[1])[0] = secP192R1FieldElement3;
bool withCompression = this.m_withCompression;
break;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A7ED RID: 42989 RVA: 0x002425B0 File Offset: 0x002407B0
[Token(Token = "0x600A7ED")]
[Address(RVA = "0x6ECFE0", Offset = "0x6EBFE0", VA = "0x1806ECFE0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
bool flag2 = base.SatisfiesCurveEquation();
}
return b;
}
bool flag3 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600A7EE RID: 42990 RVA: 0x00242600 File Offset: 0x00240800
[Token(Token = "0x600A7EE")]
[Address(RVA = "0x6ECF60", Offset = "0x6EBF60", VA = "0x1806ECF60", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600A7EF RID: 42991 RVA: 0x00242630 File Offset: 0x00240830
[Token(Token = "0x600A7EF")]
[Address(RVA = "0x7055E0", Offset = "0x7045E0", VA = "0x1807055E0", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,333 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B2F RID: 6959
[Token(Token = "0x2001B2F")]
internal class SecP224K1Curve : AbstractFpCurve
{
// Token: 0x0600A7F0 RID: 42992 RVA: 0x00242668 File Offset: 0x00240868
[Token(Token = "0x600A7F0")]
[Address(RVA = "0x7064A0", Offset = "0x7054A0", VA = "0x1807064A0")]
public SecP224K1Curve()
{
BigInteger bigInteger = SecP224K1Curve.q;
base..ctor(bigInteger);
int num;
int num2;
ulong num3;
SecP224K1Point secP224K1Point = new SecP224K1Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = secP224K1Point;
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array = Hex.Decode("010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7");
BigInteger bigInteger2 = new BigInteger(1, array);
this.m_order = bigInteger2;
BigInteger one = BigInteger.One;
this.m_cofactor = one;
this.m_coord = (int)((ulong)2L);
}
// Token: 0x0600A7F1 RID: 42993 RVA: 0x002426F0 File Offset: 0x002408F0
[Token(Token = "0x600A7F1")]
[Address(RVA = "0x705E50", Offset = "0x704E50", VA = "0x180705E50", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A7F1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_1_05, ldsfld:BigInteger(SecP224K1Curve::q))
stloc:SecP224K1Point(var_2_11, newobj:SecP224K1Point(SecP224K1Point::.ctor, ldloc:SecP224K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_3), ldloc:uint64[exp:bool](var_6)))
stloc:int32(var_3, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecP224K1Point(SecP224K1Curve::m_infinity, ldloc:SecP224K1Curve(var_0), ldloc:SecP224K1Point(var_2_11))
stloc:int32(var_7_24, callvirtgetter:int32(SecP224K1Curve::get_FieldSize, ldloc:SecP224K1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecP224K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_7_24))
stloc:int32(var_9_34, callvirtgetter:int32(SecP224K1Curve::get_FieldSize, ldloc:SecP224K1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecP224K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_9_34))
stloc:uint8[](var_10_48, call:uint8[](Hex::Decode, ldstr:string("010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7")))
stloc:BigInteger(var_11_52, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_10_48)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecP224K1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_11_52))
stloc:BigInteger(var_12_61, ldsfld:BigInteger(BigInteger::One))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecP224K1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_12_61))
stfld:int32(ECCurve::m_coord, ldloc:SecP224K1Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](2)))
}
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: 0x0600A7F2 RID: 42994 RVA: 0x00242770 File Offset: 0x00240970
[Token(Token = "0x600A7F2")]
[Address(RVA = "0x6E9C20", Offset = "0x6E8C20", VA = "0x1806E9C20", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 2;
}
// Token: 0x17001A52 RID: 6738
// (get) Token: 0x0600A7F3 RID: 42995 RVA: 0x00242784 File Offset: 0x00240984
[Token(Token = "0x17001A52")]
public virtual BigInteger Q
{
[Token(Token = "0x600A7F3")]
[Address(RVA = "0x7066A0", Offset = "0x7056A0", VA = "0x1807066A0", Slot = "38")]
get
{
return SecP224K1Curve.q;
}
}
// Token: 0x17001A53 RID: 6739
// (get) Token: 0x0600A7F4 RID: 42996 RVA: 0x00242798 File Offset: 0x00240998
[Token(Token = "0x17001A53")]
public override ECPoint Infinity
{
[Token(Token = "0x600A7F4")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A7F4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP224K1Point(var_0_06, ldfld:SecP224K1Point(SecP224K1Curve::m_infinity, ldloc:SecP224K1Curve(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: 0x17001A54 RID: 6740
// (get) Token: 0x0600A7F5 RID: 42997 RVA: 0x002427AC File Offset: 0x002409AC
[Token(Token = "0x17001A54")]
public override int FieldSize
{
[Token(Token = "0x600A7F5")]
[Address(RVA = "0x706630", Offset = "0x705630", VA = "0x180706630", Slot = "4")]
get
{
return SecP224K1Curve.q.BitLength;
}
}
// Token: 0x0600A7F6 RID: 42998 RVA: 0x002427CC File Offset: 0x002409CC
[Token(Token = "0x600A7F6")]
[Address(RVA = "0x7063A0", Offset = "0x7053A0", VA = "0x1807063A0", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A7F6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP224K1FieldElement(var_0_06, newobj:SecP224K1FieldElement(SecP224K1FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600A7F7 RID: 42999 RVA: 0x002427E0 File Offset: 0x002409E0
[Token(Token = "0x600A7F7")]
[Address(RVA = "0x706310", Offset = "0x705310", VA = "0x180706310", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A7F7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP224K1Point(var_0_09, newobj:SecP224K1Point(SecP224K1Point::.ctor, ldloc:SecP224K1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A7F8 RID: 43000 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A7F8")]
[Address(RVA = "0x706270", Offset = "0x705270", VA = "0x180706270", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A7F9 RID: 43001 RVA: 0x002427F8 File Offset: 0x002409F8
[Token(Token = "0x600A7F9")]
[Address(RVA = "0x706010", Offset = "0x705010", VA = "0x180706010", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[len * (int)((uint)14)];
num = 0;
if (len <= 0)
{
goto IL_4E;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 14;
IL_4E:
SecP224K1Curve.SecP224K1LookupTable secP224K1LookupTable;
secP224K1LookupTable.m_outer = 0;
secP224K1LookupTable.m_table = array;
secP224K1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x0600A7FA RID: 43002 RVA: 0x00242870 File Offset: 0x00240A70
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A7FA")]
[Address(RVA = "0x706400", Offset = "0x705400", VA = "0x180706400")]
static SecP224K1Curve()
{
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D");
SecP224K1Curve.q = new BigInteger(1, array);
}
// Token: 0x04006D43 RID: 27971
[Token(Token = "0x4006D43")]
public static readonly BigInteger q;
// Token: 0x04006D44 RID: 27972
[Token(Token = "0x4006D44")]
private const int SECP224K1_DEFAULT_COORDS = 2;
// Token: 0x04006D45 RID: 27973
[Token(Token = "0x4006D45")]
private const int SECP224K1_FE_INTS = 7;
// Token: 0x04006D46 RID: 27974
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006D46")]
protected readonly SecP224K1Point m_infinity;
// Token: 0x02001B30 RID: 6960
[Token(Token = "0x2001B30")]
private class SecP224K1LookupTable : ECLookupTable
{
// Token: 0x0600A7FB RID: 43003 RVA: 0x00242894 File Offset: 0x00240A94
[Token(Token = "0x600A7FB")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecP224K1LookupTable(SecP224K1Curve outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A55 RID: 6741
// (get) Token: 0x0600A7FC RID: 43004 RVA: 0x002428BC File Offset: 0x00240ABC
[Token(Token = "0x17001A55")]
public virtual int Size
{
[Token(Token = "0x600A7FC")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A7FD RID: 43005 RVA: 0x002428D0 File Offset: 0x00240AD0
[Token(Token = "0x600A7FD")]
[Address(RVA = "0x708790", Offset = "0x707790", VA = "0x180708790", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat224.Create();
uint[] array2 = Nat224.Create();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 14;
num2++;
}
SecP224K1Curve outer = this.m_outer;
new SecP224K1FieldElement().x = array;
new SecP224K1FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006D47 RID: 27975
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D47")]
private readonly SecP224K1Curve m_outer;
// Token: 0x04006D48 RID: 27976
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006D48")]
private readonly uint[] m_table;
// Token: 0x04006D49 RID: 27977
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006D49")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,329 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B31 RID: 6961
[Token(Token = "0x2001B31")]
internal class SecP224K1Field
{
// Token: 0x0600A7FE RID: 43006 RVA: 0x00242950 File Offset: 0x00240B50
[Token(Token = "0x600A7FE")]
[Address(RVA = "0x707BE0", Offset = "0x706BE0", VA = "0x180707BE0")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
if (Nat224.Add(x, y, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP224K1Field.P;
if (!Nat224.Gte(z, p))
{
return;
}
}
uint num = Nat.Add33To(7, (uint)6803, z);
}
// Token: 0x0600A7FF RID: 43007 RVA: 0x00242998 File Offset: 0x00240B98
[Token(Token = "0x600A7FF")]
[Address(RVA = "0x707990", Offset = "0x706990", VA = "0x180707990")]
public static void AddExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Add(14, xx, yy, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP224K1Field.PExt;
if (!Nat.Gte(14, zz, pext))
{
return;
}
}
uint[] pextInv = SecP224K1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP224K1Field.PExtInv.Length;
uint num = Nat.IncAt(14, zz, length);
}
}
// Token: 0x0600A800 RID: 43008 RVA: 0x00242A04 File Offset: 0x00240C04
[Token(Token = "0x600A800")]
[Address(RVA = "0x707B10", Offset = "0x706B10", VA = "0x180707B10")]
public static void AddOne(uint[] x, uint[] z)
{
if (Nat.Inc(7, x, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP224K1Field.P;
if (!Nat224.Gte(z, p))
{
return;
}
}
uint num = Nat.Add33To(7, (uint)6803, z);
}
// Token: 0x0600A801 RID: 43009 RVA: 0x00242A4C File Offset: 0x00240C4C
[Token(Token = "0x600A801")]
[Address(RVA = "0x707CC0", Offset = "0x706CC0", VA = "0x180707CC0")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat224.FromBigInteger(x);
if ("{il2cpp array field local2->}" == (ulong)(-1L))
{
uint[] p = SecP224K1Field.P;
if (Nat224.Gte(array, p))
{
int num = Nat224.SubFrom(SecP224K1Field.P, array);
}
}
return array;
}
// Token: 0x0600A802 RID: 43010 RVA: 0x00242A90 File Offset: 0x00240C90
[Token(Token = "0x600A802")]
[Address(RVA = "0x707DB0", Offset = "0x706DB0", VA = "0x180707DB0")]
public static void Half(uint[] x, uint[] z)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
uint[] p = SecP224K1Field.P;
uint num = Nat224.Add(x, p, z);
uint num2 = Nat.ShiftDownBit(7, z, num);
return;
}
int num3 = 0;
uint num4 = Nat.ShiftDownBit(7, x, (uint)num3, z);
}
// Token: 0x0600A803 RID: 43011 RVA: 0x00242AD4 File Offset: 0x00240CD4
[Token(Token = "0x600A803")]
[Address(RVA = "0x708000", Offset = "0x707000", VA = "0x180708000")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat224.CreateExt();
Nat224.Mul(x, y, array);
SecP224K1Field.Reduce(array, z);
}
// Token: 0x0600A804 RID: 43012 RVA: 0x00242AF8 File Offset: 0x00240CF8
[Token(Token = "0x600A804")]
[Address(RVA = "0x707E90", Offset = "0x706E90", VA = "0x180707E90")]
public static void MultiplyAddToExt(uint[] x, uint[] y, uint[] zz)
{
if (Nat224.MulAddTo(x, y, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP224K1Field.PExt;
if (!Nat.Gte(14, zz, pext))
{
return;
}
}
uint[] pextInv = SecP224K1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP224K1Field.PExtInv.Length;
uint num = Nat.IncAt(14, zz, length);
}
}
// Token: 0x0600A805 RID: 43013 RVA: 0x00242B60 File Offset: 0x00240D60
[Token(Token = "0x600A805")]
[Address(RVA = "0x7080A0", Offset = "0x7070A0", VA = "0x1807080A0")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat224.IsZero(x))
{
int num = Nat224.Sub(SecP224K1Field.P, x, z);
return;
}
Nat224.Zero(z);
}
// Token: 0x0600A806 RID: 43014 RVA: 0x00242B8C File Offset: 0x00240D8C
[Token(Token = "0x600A806")]
[Address(RVA = "0x708220", Offset = "0x707220", VA = "0x180708220")]
public static void Reduce(uint[] xx, uint[] z)
{
int num = 0;
ulong num2 = Nat224.Mul33Add((uint)6803, xx, 7, xx, num, z, num);
int num3 = 0;
if (Nat224.Mul33DWordAdd((uint)6803, num2, z, num3) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP224K1Field.P;
if (!Nat224.Gte(z, p))
{
return;
}
}
uint num4 = Nat.Add33To(7, (uint)6803, z);
}
// Token: 0x0600A807 RID: 43015 RVA: 0x00242BF0 File Offset: 0x00240DF0
[Token(Token = "0x600A807")]
[Address(RVA = "0x708140", Offset = "0x707140", VA = "0x180708140")]
public static void Reduce32(uint x, uint[] z)
{
if (x != (uint)0)
{
int num = 0;
if (Nat224.Mul33WordAdd((uint)6803, x, z, num) != (uint)0)
{
goto IL_33;
}
}
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP224K1Field.P;
if (!Nat224.Gte(z, p))
{
return;
}
IL_33:
uint num2 = Nat.Add33To(7, (uint)6803, z);
}
// Token: 0x0600A808 RID: 43016 RVA: 0x00242C44 File Offset: 0x00240E44
[Token(Token = "0x600A808")]
[Address(RVA = "0x708400", Offset = "0x707400", VA = "0x180708400")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat224.CreateExt();
Nat224.Square(x, array);
SecP224K1Field.Reduce(array, z);
}
// Token: 0x0600A809 RID: 43017 RVA: 0x00242C68 File Offset: 0x00240E68
[Token(Token = "0x600A809")]
[Address(RVA = "0x708320", Offset = "0x707320", VA = "0x180708320")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat224.CreateExt();
Nat224.Square(x, array);
SecP224K1Field.Reduce(array, z);
if (n > 0)
{
Nat224.Square(z, array);
SecP224K1Field.Reduce(array, z);
}
}
// Token: 0x0600A80A RID: 43018 RVA: 0x00242CA0 File Offset: 0x00240EA0
[Token(Token = "0x600A80A")]
[Address(RVA = "0x7085A0", Offset = "0x7075A0", VA = "0x1807085A0")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
if (Nat224.Sub(x, y, z) != 0)
{
int num = Nat.Sub33From(7, (uint)6803, z);
return;
}
}
// Token: 0x0600A80B RID: 43019 RVA: 0x00242CC8 File Offset: 0x00240EC8
[Token(Token = "0x600A80B")]
[Address(RVA = "0x708490", Offset = "0x707490", VA = "0x180708490")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(14, xx, yy, zz) != 0)
{
uint[] pextInv = SecP224K1Field.PExtInv;
if (Nat.SubFrom(pextInv.Length, pextInv, zz) != 0)
{
int length = SecP224K1Field.PExtInv.Length;
int num = Nat.DecAt(14, zz, length);
}
}
}
// Token: 0x0600A80C RID: 43020 RVA: 0x00242D14 File Offset: 0x00240F14
[Token(Token = "0x600A80C")]
[Address(RVA = "0x7085E0", Offset = "0x7075E0", VA = "0x1807085E0")]
public static void Twice(uint[] x, uint[] z)
{
int num = 0;
if (Nat.ShiftUpBit(7, x, (uint)num, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP224K1Field.P;
if (!Nat224.Gte(z, p))
{
return;
}
}
uint num2 = Nat.Add33To(7, (uint)6803, z);
}
// Token: 0x0600A80D RID: 43021 RVA: 0x00242D60 File Offset: 0x00240F60
[Token(Token = "0x600A80D")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecP224K1Field()
{
}
// Token: 0x0600A80E RID: 43022 RVA: 0x00242D74 File Offset: 0x00240F74
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A80E")]
[Address(RVA = "0x7086C0", Offset = "0x7076C0", VA = "0x1807086C0")]
static SecP224K1Field()
{
uint[] array = new uint[7];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.126589410FF9CA1510B9950BF0E79E5BFD60000B).FieldHandle);
SecP224K1Field.P = array;
uint[] array2 = new uint[14];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.E647D32D165F3510693DF9787DC98E0A0B63C5C2).FieldHandle);
SecP224K1Field.PExt = array2;
uint[] array3 = new uint[9];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.66961AC9ADD7C27DCD1BCA65FCD5C02B74B62F47).FieldHandle);
SecP224K1Field.PExtInv = array3;
}
// Token: 0x04006D4A RID: 27978
[Token(Token = "0x4006D4A")]
internal static readonly uint[] P;
// Token: 0x04006D4B RID: 27979
[Token(Token = "0x4006D4B")]
internal static readonly uint[] PExt;
// Token: 0x04006D4C RID: 27980
[Token(Token = "0x4006D4C")]
private static readonly uint[] PExtInv;
// Token: 0x04006D4D RID: 27981
[Token(Token = "0x4006D4D")]
private const uint P6 = 4294967295U;
// Token: 0x04006D4E RID: 27982
[Token(Token = "0x4006D4E")]
private const uint PExt13 = 4294967295U;
// Token: 0x04006D4F RID: 27983
[Token(Token = "0x4006D4F")]
private const uint PInv33 = 6803U;
}
}
@@ -0,0 +1,466 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B32 RID: 6962
[Token(Token = "0x2001B32")]
internal class SecP224K1FieldElement : AbstractFpFieldElement
{
// Token: 0x0600A80F RID: 43023 RVA: 0x00242DCC File Offset: 0x00240FCC
[Token(Token = "0x600A80F")]
[Address(RVA = "0x707700", Offset = "0x706700", VA = "0x180707700")]
public SecP224K1FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A80F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4E:
stloc:ArgumentException(var_5_5D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecP224K1FieldElement"), ldstr:string("x")))
}
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: 0x0600A810 RID: 43024 RVA: 0x00242E38 File Offset: 0x00241038
[Token(Token = "0x600A810")]
[Address(RVA = "0x7076D0", Offset = "0x7066D0", VA = "0x1807076D0")]
public SecP224K1FieldElement()
{
uint[] array = Nat224.Create();
this.x = array;
}
// Token: 0x0600A811 RID: 43025 RVA: 0x00242E5C File Offset: 0x0024105C
[Token(Token = "0x600A811")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecP224K1FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001A56 RID: 6742
// (get) Token: 0x0600A812 RID: 43026 RVA: 0x00242E78 File Offset: 0x00241078
[Token(Token = "0x17001A56")]
public override bool IsZero
{
[Token(Token = "0x600A812")]
[Address(RVA = "0x707980", Offset = "0x706980", VA = "0x180707980", Slot = "18")]
get
{
return Nat224.IsZero(this.x);
}
}
// Token: 0x17001A57 RID: 6743
// (get) Token: 0x0600A813 RID: 43027 RVA: 0x00242E90 File Offset: 0x00241090
[Token(Token = "0x17001A57")]
public override bool IsOne
{
[Token(Token = "0x600A813")]
[Address(RVA = "0x707970", Offset = "0x706970", VA = "0x180707970", Slot = "17")]
get
{
return Nat224.IsOne(this.x);
}
}
// Token: 0x0600A814 RID: 43028 RVA: 0x00242EA8 File Offset: 0x002410A8
[Token(Token = "0x600A814")]
[Address(RVA = "0x7075F0", Offset = "0x7065F0", VA = "0x1807075F0", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat224.GetBit(array, num) == (uint)1;
}
// Token: 0x0600A815 RID: 43029 RVA: 0x00242ECC File Offset: 0x002410CC
[Token(Token = "0x600A815")]
[Address(RVA = "0x707610", Offset = "0x706610", VA = "0x180707610", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat224.ToBigInteger(this.x);
}
// Token: 0x17001A58 RID: 6744
// (get) Token: 0x0600A816 RID: 43030 RVA: 0x00242EE4 File Offset: 0x002410E4
[Token(Token = "0x17001A58")]
public override string FieldName
{
[Token(Token = "0x600A816")]
[Address(RVA = "0x7078D0", Offset = "0x7068D0", VA = "0x1807078D0", Slot = "5")]
get
{
return "SecP224K1Field";
}
}
// Token: 0x17001A59 RID: 6745
// (get) Token: 0x0600A817 RID: 43031 RVA: 0x00242EF8 File Offset: 0x002410F8
[Token(Token = "0x17001A59")]
public override int FieldSize
{
[Token(Token = "0x600A817")]
[Address(RVA = "0x707900", Offset = "0x706900", VA = "0x180707900", Slot = "6")]
get
{
return SecP224K1FieldElement.Q.BitLength;
}
}
// Token: 0x0600A818 RID: 43032 RVA: 0x00242F18 File Offset: 0x00241118
[Token(Token = "0x600A818")]
[Address(RVA = "0x706840", Offset = "0x705840", VA = "0x180706840", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat224.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP224K1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint num;
if (num == (uint)0)
{
if ("{il2cpp array field local3->}" != (ulong)(-1L))
{
goto IL_59;
}
uint[] p = SecP224K1Field.P;
if (!Nat224.Gte(array, p))
{
goto IL_59;
}
}
uint num2 = Nat.Add33To(7, (uint)6803, array);
IL_59:
new SecP224K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A819 RID: 43033 RVA: 0x00242F90 File Offset: 0x00241190
[Token(Token = "0x600A819")]
[Address(RVA = "0x706700", Offset = "0x705700", VA = "0x180706700", Slot = "8")]
public override ECFieldElement AddOne()
{
uint[] array = Nat224.Create();
uint[] array2 = this.x;
if (Nat.Inc(7, array2, array) == (uint)0)
{
if ("{il2cpp array field local2->}" != (ulong)(-1L))
{
goto IL_44;
}
uint[] p = SecP224K1Field.P;
if (!Nat224.Gte(array, p))
{
goto IL_44;
}
}
uint num = Nat.Add33To(7, (uint)6803, array);
IL_44:
new SecP224K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A81A RID: 43034 RVA: 0x00242FF4 File Offset: 0x002411F4
[Token(Token = "0x600A81A")]
[Address(RVA = "0x707490", Offset = "0x706490", VA = "0x180707490", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat224.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP224K1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
int num;
if (num != 0)
{
int num2 = Nat.Sub33From(7, (uint)6803, array);
}
new SecP224K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A81B RID: 43035 RVA: 0x00243050 File Offset: 0x00241250
[Token(Token = "0x600A81B")]
[Address(RVA = "0x706E70", Offset = "0x705E70", VA = "0x180706E70", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat224.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP224K1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP224K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A81C RID: 43036 RVA: 0x00243098 File Offset: 0x00241298
[Token(Token = "0x600A81C")]
[Address(RVA = "0x706A20", Offset = "0x705A20", VA = "0x180706A20", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat224.Create();
uint[] p = SecP224K1Field.P;
if ("{il2cpp array field local3->}" == typeof(SecP224K1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
SecP224K1Field.Multiply(array, array2, array);
new SecP224K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A81D RID: 43037 RVA: 0x002430F0 File Offset: 0x002412F0
[Token(Token = "0x600A81D")]
[Address(RVA = "0x706FB0", Offset = "0x705FB0", VA = "0x180706FB0", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600A81D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat224::Create))
call:void(SecP224K1Field::Negate, ldfld:uint32[](SecP224K1FieldElement::x, ldloc:SecP224K1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP224K1FieldElement::x, newobj:SecP224K1FieldElement(SecP224K1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A81E RID: 43038 RVA: 0x0024311C File Offset: 0x0024131C
[Token(Token = "0x600A81E")]
[Address(RVA = "0x707400", Offset = "0x706400", VA = "0x180707400", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600A81E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat224::Create))
call:void(SecP224K1Field::Square, ldfld:uint32[](SecP224K1FieldElement::x, ldloc:SecP224K1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP224K1FieldElement::x, newobj:SecP224K1FieldElement(SecP224K1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A81F RID: 43039 RVA: 0x00243148 File Offset: 0x00241348
[Token(Token = "0x600A81F")]
[Address(RVA = "0x706DA0", Offset = "0x705DA0", VA = "0x180706DA0", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600A81F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat224::Create))
stloc:uint32[](var_2_0E, ldfld:uint32[](SecP224K1FieldElement::x, ldloc:SecP224K1FieldElement(this)))
call:void(Mod::Invert, ldsfld:uint32[](SecP224K1Field::P), ldloc:uint32[](var_2_0E), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP224K1FieldElement::x, newobj:SecP224K1FieldElement(SecP224K1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A820 RID: 43040 RVA: 0x0024317C File Offset: 0x0024137C
[Token(Token = "0x600A820")]
[Address(RVA = "0x707040", Offset = "0x706040", VA = "0x180707040", Slot = "15")]
public override ECFieldElement Sqrt()
{
/*
An exception occurred when decompiling this method (0600A820)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1FieldElement::Sqrt()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1BB:
stfld:uint32[](SecP224K1FieldElement::x, newobj:SecP224K1FieldElement(SecP224K1FieldElement::.ctor), ldloc:uint32[](var_6_62))
}
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: 0x0600A821 RID: 43041 RVA: 0x00243350 File Offset: 0x00241550
[Token(Token = "0x600A821")]
[Address(RVA = "0x706BA0", Offset = "0x705BA0", VA = "0x180706BA0", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600A821)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP224K1FieldElement[exp:ECFieldElement](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: 0x0600A822 RID: 43042 RVA: 0x0024336C File Offset: 0x0024156C
[Token(Token = "0x600A822")]
[Address(RVA = "0x706C30", Offset = "0x705C30", VA = "0x180706C30", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600A822)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP224K1FieldElement[exp:ECFieldElement](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: 0x0600A823 RID: 43043 RVA: 0x00243388 File Offset: 0x00241588
[Token(Token = "0x600A823")]
[Address(RVA = "0x706CC0", Offset = "0x705CC0", VA = "0x180706CC0", Slot = "27")]
public virtual bool Equals(SecP224K1FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
return Nat224.Eq(this.x, array);
}
}
return true;
}
// Token: 0x0600A824 RID: 43044 RVA: 0x002433B4 File Offset: 0x002415B4
[Token(Token = "0x600A824")]
[Address(RVA = "0x706CE0", Offset = "0x705CE0", VA = "0x180706CE0", Slot = "2")]
public override int GetHashCode()
{
SecP224K1FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 7);
}
// Token: 0x0600A825 RID: 43045 RVA: 0x002433E4 File Offset: 0x002415E4
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A825")]
[Address(RVA = "0x707620", Offset = "0x706620", VA = "0x180707620")]
static SecP224K1FieldElement()
{
uint[] array = new uint[7];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.059FFAA29C8FCAA8FDB47FBFDE6FB74F5A43E5C0).FieldHandle);
SecP224K1FieldElement.PRECOMP_POW2 = array;
}
// Token: 0x04006D50 RID: 27984
[Token(Token = "0x4006D50")]
public static readonly BigInteger Q = SecP224K1Curve.q;
// Token: 0x04006D51 RID: 27985
[Token(Token = "0x4006D51")]
private static readonly uint[] PRECOMP_POW2;
// Token: 0x04006D52 RID: 27986
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D52")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,326 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B33 RID: 6963
[Token(Token = "0x2001B33")]
internal class SecP224K1Point : AbstractFpPoint
{
// Token: 0x0600A826 RID: 43046 RVA: 0x00243414 File Offset: 0x00241614
[Token(Token = "0x600A826")]
[Address(RVA = "0x709A50", Offset = "0x708A50", VA = "0x180709A50")]
public SecP224K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A827 RID: 43047 RVA: 0x00243424 File Offset: 0x00241624
[Token(Token = "0x600A827")]
[Address(RVA = "0x709990", Offset = "0x708990", VA = "0x180709990")]
public SecP224K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A827)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A828 RID: 43048 RVA: 0x0024344C File Offset: 0x0024164C
[Token(Token = "0x600A828")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecP224K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A829 RID: 43049 RVA: 0x0024345C File Offset: 0x0024165C
[Token(Token = "0x600A829")]
[Address(RVA = "0x7091E0", Offset = "0x7081E0", VA = "0x1807091E0", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A829)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecP224K1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecP224K1Point[exp: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: 0x0600A82A RID: 43050 RVA: 0x00243478 File Offset: 0x00241678
[Token(Token = "0x600A82A")]
[Address(RVA = "0x708960", Offset = "0x707960", VA = "0x180708960", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity && !b.IsInfinity && this != b)
{
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat224.CreateExt();
uint[] array2 = Nat224.Create();
uint[] array3 = Nat224.Create();
uint[] array4 = Nat224.Create();
if (array4 == 0)
{
SecP224K1Field.Square(array4, array3);
SecP224K1Field.Multiply(array3, array3, array2);
SecP224K1Field.Multiply(array3, array3, array3);
SecP224K1Field.Multiply(array3, array3, array3);
}
SecP224K1Field.Multiply(array4, array4, array);
SecP224K1Field.Multiply(array4, array4, array4);
SecP224K1Field.Multiply(array4, array4, array4);
uint[] array5 = Nat224.Create();
int num;
if (num != 0)
{
int num2 = Nat.Sub33From(7, (uint)6803, array5);
}
int num3;
if (num3 != 0)
{
int num4 = Nat.Sub33From(7, (uint)6803, array2);
}
if (!Nat224.IsZero(array5))
{
SecP224K1Field.Square(array5, array3);
uint[] array6 = Nat224.Create();
SecP224K1Field.Multiply(array3, array5, array6);
SecP224K1Field.Negate(array6, array6);
SecP224K1Field.Reduce32(Nat224.AddBothTo(array3, array3, array6), array6);
SecP224K1FieldElement secP224K1FieldElement = new SecP224K1FieldElement();
secP224K1FieldElement.x = array4;
SecP224K1Field.Square(array2, array4);
uint[] x = secP224K1FieldElement.x;
if (Nat224.Sub(x, array6, x) != 0)
{
int num5 = Nat.Sub33From(7, (uint)6803, x);
}
SecP224K1FieldElement secP224K1FieldElement2 = new SecP224K1FieldElement();
secP224K1FieldElement2.x = array6;
uint[] x2 = secP224K1FieldElement.x;
if (Nat224.Sub(array3, x2, array6) != 0)
{
int num6 = Nat.Sub33From(7, (uint)6803, array6);
}
uint[] x3 = secP224K1FieldElement2.x;
if (Nat224.MulAddTo(x3, array2, array) == (uint)0)
{
if ("{il2cpp array field local16->}" != (ulong)(-1L))
{
goto IL_207;
}
uint[] pext = SecP224K1Field.PExt;
if (!Nat.Gte(14, array, pext))
{
goto IL_207;
}
}
uint[] pextInv = SecP224K1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, array) != (uint)0)
{
int length = SecP224K1Field.PExtInv.Length;
uint num7 = Nat.IncAt(14, array, length);
}
IL_207:
uint[] x4 = secP224K1FieldElement2.x;
SecP224K1Field.Reduce(array, x4);
SecP224K1FieldElement secP224K1FieldElement3 = new SecP224K1FieldElement();
secP224K1FieldElement3.x = array5;
SecP224K1Field.Multiply(array5, x3, array5);
uint[] x5 = secP224K1FieldElement3.x;
SecP224K1Field.Multiply(x5, array5, x5);
ECFieldElement[] array7 = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600A82B RID: 43051 RVA: 0x002436FC File Offset: 0x002418FC
[Token(Token = "0x600A82B")]
[Address(RVA = "0x709380", Offset = "0x708380", VA = "0x180709380", Slot = "30")]
public override ECPoint Twice()
{
while (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
if (y != 0)
{
if (y.IsOne)
{
break;
}
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
uint[] array = Nat224.Create();
uint[] array2 = Nat224.Create();
SecP224K1Field.Square(array, array2);
uint[] array3 = Nat224.Create();
SecP224K1Field.Reduce32(Nat224.AddBothTo(array3, array3, array3), array3);
SecP224K1Field.Multiply(array, array3, array);
int num = 0;
SecP224K1Field.Reduce32(Nat.ShiftUpBits(7, array, 2, (uint)num), array);
uint[] array4 = Nat224.Create();
int num2 = 0;
SecP224K1Field.Reduce32(Nat.ShiftUpBits(7, array2, 3, (uint)num2, array4), array4);
SecP224K1FieldElement secP224K1FieldElement = new SecP224K1FieldElement();
secP224K1FieldElement.x = array2;
SecP224K1Field.Square(array3, array2);
uint[] x2 = secP224K1FieldElement.x;
if (Nat224.Sub(x2, array, x2) != 0)
{
int num3 = Nat.Sub33From(7, (uint)6803, x2);
}
uint[] x3 = secP224K1FieldElement.x;
if (Nat224.Sub(x3, array, x3) != 0)
{
int num4 = Nat.Sub33From(7, (uint)6803, x3);
}
SecP224K1FieldElement secP224K1FieldElement2 = new SecP224K1FieldElement();
secP224K1FieldElement2.x = array;
uint[] x4 = secP224K1FieldElement.x;
if (Nat224.Sub(array, x4, array) != 0)
{
int num5 = Nat.Sub33From(7, (uint)6803, array);
}
uint[] x5 = secP224K1FieldElement2.x;
SecP224K1Field.Multiply(x5, array3, x5);
uint[] x6 = secP224K1FieldElement2.x;
if (Nat224.Sub(x6, array4, x6) != 0)
{
int num6 = Nat.Sub33From(7, (uint)6803, x6);
}
SecP224K1FieldElement secP224K1FieldElement3 = new SecP224K1FieldElement();
secP224K1FieldElement3.x = array3;
uint num7;
if (num7 == (uint)0)
{
if ("{il2cpp array field local24->}" != (ulong)(-1L))
{
goto IL_1EF;
}
uint[] p = SecP224K1Field.P;
if (!Nat224.Gte(array3, p))
{
goto IL_1EF;
}
}
uint num8 = Nat.Add33To(7, (uint)6803, array3);
IL_1EF:
if (ecfieldElement.BitLength == 0)
{
uint[] x7 = secP224K1FieldElement3.x;
}
(new ECFieldElement[1])[0] = secP224K1FieldElement3;
bool withCompression = this.m_withCompression;
break;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A82C RID: 43052 RVA: 0x00243928 File Offset: 0x00241B28
[Token(Token = "0x600A82C")]
[Address(RVA = "0x6ECFE0", Offset = "0x6EBFE0", VA = "0x1806ECFE0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
bool flag2 = base.SatisfiesCurveEquation();
}
return b;
}
bool flag3 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600A82D RID: 43053 RVA: 0x00243978 File Offset: 0x00241B78
[Token(Token = "0x600A82D")]
[Address(RVA = "0x6ECF60", Offset = "0x6EBF60", VA = "0x1806ECF60", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600A82E RID: 43054 RVA: 0x002439A8 File Offset: 0x00241BA8
[Token(Token = "0x600A82E")]
[Address(RVA = "0x709280", Offset = "0x708280", VA = "0x180709280", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,323 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B34 RID: 6964
[Token(Token = "0x2001B34")]
internal class SecP224R1Curve : AbstractFpCurve
{
// Token: 0x0600A82F RID: 43055 RVA: 0x002439E0 File Offset: 0x00241BE0
[Token(Token = "0x600A82F")]
[Address(RVA = "0x709F50", Offset = "0x708F50", VA = "0x180709F50")]
public SecP224R1Curve()
{
BigInteger bigInteger = SecP224R1Curve.q;
base..ctor(bigInteger);
int num;
int num2;
ulong num3;
SecP224R1Point secP224R1Point = new SecP224R1Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = secP224R1Point;
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE");
BigInteger bigInteger2 = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4");
BigInteger bigInteger3 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D");
BigInteger bigInteger4 = new BigInteger(1, array3);
this.m_order = bigInteger4;
BigInteger one = BigInteger.One;
this.m_cofactor = one;
this.m_coord = (int)((ulong)2L);
}
// Token: 0x0600A830 RID: 43056 RVA: 0x00243A94 File Offset: 0x00241C94
[Token(Token = "0x600A830")]
[Address(RVA = "0x709A70", Offset = "0x708A70", VA = "0x180709A70", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A830)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP224R1Curve(var_0_05, newobj:SecP224R1Curve(SecP224R1Curve::.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.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: 0x0600A831 RID: 43057 RVA: 0x00243AA8 File Offset: 0x00241CA8
[Token(Token = "0x600A831")]
[Address(RVA = "0x6E9C20", Offset = "0x6E8C20", VA = "0x1806E9C20", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 2;
}
// Token: 0x17001A5A RID: 6746
// (get) Token: 0x0600A832 RID: 43058 RVA: 0x00243ABC File Offset: 0x00241CBC
[Token(Token = "0x17001A5A")]
public virtual BigInteger Q
{
[Token(Token = "0x600A832")]
[Address(RVA = "0x70A1A0", Offset = "0x7091A0", VA = "0x18070A1A0", Slot = "38")]
get
{
return SecP224R1Curve.q;
}
}
// Token: 0x17001A5B RID: 6747
// (get) Token: 0x0600A833 RID: 43059 RVA: 0x00243AD0 File Offset: 0x00241CD0
[Token(Token = "0x17001A5B")]
public override ECPoint Infinity
{
[Token(Token = "0x600A833")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A833)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP224R1Point(var_0_06, ldfld:SecP224R1Point(SecP224R1Curve::m_infinity, ldloc:SecP224R1Curve(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: 0x17001A5C RID: 6748
// (get) Token: 0x0600A834 RID: 43060 RVA: 0x00243AE4 File Offset: 0x00241CE4
[Token(Token = "0x17001A5C")]
public override int FieldSize
{
[Token(Token = "0x600A834")]
[Address(RVA = "0x70A130", Offset = "0x709130", VA = "0x18070A130", Slot = "4")]
get
{
return SecP224R1Curve.q.BitLength;
}
}
// Token: 0x0600A835 RID: 43061 RVA: 0x00243B04 File Offset: 0x00241D04
[Token(Token = "0x600A835")]
[Address(RVA = "0x709E50", Offset = "0x708E50", VA = "0x180709E50", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A835)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP224R1FieldElement(var_0_06, newobj:SecP224R1FieldElement(SecP224R1FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600A836 RID: 43062 RVA: 0x00243B18 File Offset: 0x00241D18
[Token(Token = "0x600A836")]
[Address(RVA = "0x709DC0", Offset = "0x708DC0", VA = "0x180709DC0", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A836)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP224R1Point(var_0_09, newobj:SecP224R1Point(SecP224R1Point::.ctor, ldloc:SecP224R1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A837 RID: 43063 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A837")]
[Address(RVA = "0x709D20", Offset = "0x708D20", VA = "0x180709D20", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A838 RID: 43064 RVA: 0x00243B30 File Offset: 0x00241D30
[Token(Token = "0x600A838")]
[Address(RVA = "0x709AC0", Offset = "0x708AC0", VA = "0x180709AC0", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[len * (int)((uint)14)];
num = 0;
if (len <= 0)
{
goto IL_4E;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 14;
IL_4E:
SecP224R1Curve.SecP224R1LookupTable secP224R1LookupTable;
secP224R1LookupTable.m_outer = 0;
secP224R1LookupTable.m_table = array;
secP224R1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x0600A839 RID: 43065 RVA: 0x00243BA8 File Offset: 0x00241DA8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A839")]
[Address(RVA = "0x709EB0", Offset = "0x708EB0", VA = "0x180709EB0")]
static SecP224R1Curve()
{
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001");
SecP224R1Curve.q = new BigInteger(1, array);
}
// Token: 0x04006D53 RID: 27987
[Token(Token = "0x4006D53")]
public static readonly BigInteger q;
// Token: 0x04006D54 RID: 27988
[Token(Token = "0x4006D54")]
private const int SECP224R1_DEFAULT_COORDS = 2;
// Token: 0x04006D55 RID: 27989
[Token(Token = "0x4006D55")]
private const int SECP224R1_FE_INTS = 7;
// Token: 0x04006D56 RID: 27990
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006D56")]
protected readonly SecP224R1Point m_infinity;
// Token: 0x02001B35 RID: 6965
[Token(Token = "0x2001B35")]
private class SecP224R1LookupTable : ECLookupTable
{
// Token: 0x0600A83A RID: 43066 RVA: 0x00243BCC File Offset: 0x00241DCC
[Token(Token = "0x600A83A")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecP224R1LookupTable(SecP224R1Curve outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A5D RID: 6749
// (get) Token: 0x0600A83B RID: 43067 RVA: 0x00243BF4 File Offset: 0x00241DF4
[Token(Token = "0x17001A5D")]
public virtual int Size
{
[Token(Token = "0x600A83B")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A83C RID: 43068 RVA: 0x00243C08 File Offset: 0x00241E08
[Token(Token = "0x600A83C")]
[Address(RVA = "0x70CDA0", Offset = "0x70BDA0", VA = "0x18070CDA0", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat224.Create();
uint[] array2 = Nat224.Create();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 14;
num2++;
}
SecP224R1Curve outer = this.m_outer;
new SecP224R1FieldElement().x = array;
new SecP224R1FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006D57 RID: 27991
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D57")]
private readonly SecP224R1Curve m_outer;
// Token: 0x04006D58 RID: 27992
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006D58")]
private readonly uint[] m_table;
// Token: 0x04006D59 RID: 27993
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006D59")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,471 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B36 RID: 6966
[Token(Token = "0x2001B36")]
internal class SecP224R1Field
{
// Token: 0x0600A83D RID: 43069 RVA: 0x00243C88 File Offset: 0x00241E88
[Token(Token = "0x600A83D")]
[Address(RVA = "0x70BC60", Offset = "0x70AC60", VA = "0x18070BC60")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
if (Nat224.Add(x, y, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP224R1Field.P;
if (!Nat224.Gte(z, p))
{
return;
}
}
SecP224R1Field.AddPInvTo(z);
}
// Token: 0x0600A83E RID: 43070 RVA: 0x00243CC8 File Offset: 0x00241EC8
[Token(Token = "0x600A83E")]
[Address(RVA = "0x70B920", Offset = "0x70A920", VA = "0x18070B920")]
public static void AddExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Add(14, xx, yy, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP224R1Field.PExt;
if (!Nat.Gte(14, zz, pext))
{
return;
}
}
uint[] pextInv = SecP224R1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP224R1Field.PExtInv.Length;
uint num = Nat.IncAt(14, zz, length);
}
}
// Token: 0x0600A83F RID: 43071 RVA: 0x00243D34 File Offset: 0x00241F34
[Token(Token = "0x600A83F")]
[Address(RVA = "0x70BAA0", Offset = "0x70AAA0", VA = "0x18070BAA0")]
public static void AddOne(uint[] x, uint[] z)
{
if (Nat.Inc(7, x, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP224R1Field.P;
if (!Nat224.Gte(z, p))
{
return;
}
}
SecP224R1Field.AddPInvTo(z);
}
// Token: 0x0600A840 RID: 43072 RVA: 0x00243D74 File Offset: 0x00241F74
[Token(Token = "0x600A840")]
[Address(RVA = "0x70BD50", Offset = "0x70AD50", VA = "0x18070BD50")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat224.FromBigInteger(x);
if ("{il2cpp array field local2->}" == (ulong)(-1L))
{
uint[] p = SecP224R1Field.P;
if (Nat224.Gte(array, p))
{
int num = Nat224.SubFrom(SecP224R1Field.P, array);
}
}
return array;
}
// Token: 0x0600A841 RID: 43073 RVA: 0x00243DB8 File Offset: 0x00241FB8
[Token(Token = "0x600A841")]
[Address(RVA = "0x70BE40", Offset = "0x70AE40", VA = "0x18070BE40")]
public static void Half(uint[] x, uint[] z)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
uint[] p = SecP224R1Field.P;
uint num = Nat224.Add(x, p, z);
uint num2 = Nat.ShiftDownBit(7, z, num);
return;
}
int num3 = 0;
uint num4 = Nat.ShiftDownBit(7, x, (uint)num3, z);
}
// Token: 0x0600A842 RID: 43074 RVA: 0x00243DFC File Offset: 0x00241FFC
[Token(Token = "0x600A842")]
[Address(RVA = "0x70C090", Offset = "0x70B090", VA = "0x18070C090")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat224.CreateExt();
Nat224.Mul(x, y, array);
SecP224R1Field.Reduce(array, z);
}
// Token: 0x0600A843 RID: 43075 RVA: 0x00243E20 File Offset: 0x00242020
[Token(Token = "0x600A843")]
[Address(RVA = "0x70BF20", Offset = "0x70AF20", VA = "0x18070BF20")]
public static void MultiplyAddToExt(uint[] x, uint[] y, uint[] zz)
{
if (Nat224.MulAddTo(x, y, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP224R1Field.PExt;
if (!Nat.Gte(14, zz, pext))
{
return;
}
}
uint[] pextInv = SecP224R1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP224R1Field.PExtInv.Length;
uint num = Nat.IncAt(14, zz, length);
}
}
// Token: 0x0600A844 RID: 43076 RVA: 0x00243E88 File Offset: 0x00242088
[Token(Token = "0x600A844")]
[Address(RVA = "0x70C130", Offset = "0x70B130", VA = "0x18070C130")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat224.IsZero(x))
{
int num = Nat224.Sub(SecP224R1Field.P, x, z);
return;
}
Nat224.Zero(z);
}
// Token: 0x0600A845 RID: 43077 RVA: 0x00243EB4 File Offset: 0x002420B4
[Token(Token = "0x600A845")]
[Address(RVA = "0x70C380", Offset = "0x70B380", VA = "0x18070C380")]
public static void Reduce(uint[] xx, uint[] z)
{
int length = xx.Length;
uint num = xx[5];
uint num2 = xx[5];
uint num3 = xx[6];
uint num4 = xx[3];
uint num5 = xx[0];
uint num6 = xx[4];
num4 += num2;
uint num7 = xx[0];
num5 -= num4;
uint num8 = xx[6];
num6 += num3;
uint num9 = xx[4];
num9 += num8;
num7 += num5;
num7 -= num6;
z[0] = num7;
uint num10 = xx[1];
num10 += num7;
num10 -= num9;
z[1] = num10;
int length2 = xx.Length;
uint num11 = xx[1];
num11 += num10;
num11 -= num;
num11 += num4;
uint num12 = xx[2];
num10 = num11;
num12 += num10;
num12 -= num2;
num12 += num6;
z[2] = num12;
uint num13 = xx[2];
num13 += num12;
num13 -= num3;
num13 += num9;
z[2] = num13;
uint num14 = xx[3];
num14 += num13;
num14 -= num8;
num14 += num;
z[3] = num14;
num14 += (uint)1;
num12 = num11;
num13 = num5;
num12 += num14;
num13 -= num14;
z[0] = num13;
if (num13 != (uint)0)
{
uint num15 = z[0];
num13 += num15;
z[0] = num13;
uint num16 = z[1];
num13 += num16;
z[1] = num13;
num12 += num13;
}
z[1] = num12;
ulong num17;
if (num17 == (ulong)num12 || Nat.IncAt(7, z, 4) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP224R1Field.P;
if (!Nat224.Gte(z, p))
{
return;
}
}
SecP224R1Field.AddPInvTo(z);
}
// Token: 0x0600A846 RID: 43078 RVA: 0x002440AC File Offset: 0x002422AC
[Token(Token = "0x600A846")]
[Address(RVA = "0x70C1D0", Offset = "0x70B1D0", VA = "0x18070C1D0")]
public static void Reduce32(uint x, uint[] z)
{
if (x != (uint)0)
{
uint num = z[0];
num -= x;
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
uint num3 = z[1];
num += num3;
z[1] = num;
}
uint num4 = z[1];
num4 += x;
num += num4;
z[1] = num;
if (num != (uint)0 && Nat.IncAt(7, z, 4) != (uint)0)
{
goto IL_8B;
}
}
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP224R1Field.P;
if (!Nat224.Gte(z, p))
{
return;
}
IL_8B:
SecP224R1Field.AddPInvTo(z);
}
// Token: 0x0600A847 RID: 43079 RVA: 0x00244150 File Offset: 0x00242350
[Token(Token = "0x600A847")]
[Address(RVA = "0x70C830", Offset = "0x70B830", VA = "0x18070C830")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat224.CreateExt();
Nat224.Square(x, array);
SecP224R1Field.Reduce(array, z);
}
// Token: 0x0600A848 RID: 43080 RVA: 0x00244174 File Offset: 0x00242374
[Token(Token = "0x600A848")]
[Address(RVA = "0x70C750", Offset = "0x70B750", VA = "0x18070C750")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat224.CreateExt();
Nat224.Square(x, array);
SecP224R1Field.Reduce(array, z);
if (n > 0)
{
Nat224.Square(z, array);
SecP224R1Field.Reduce(array, z);
}
}
// Token: 0x0600A849 RID: 43081 RVA: 0x002441AC File Offset: 0x002423AC
[Token(Token = "0x600A849")]
[Address(RVA = "0x70CAA0", Offset = "0x70BAA0", VA = "0x18070CAA0")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
if (Nat224.Sub(x, y, z) != 0)
{
uint num = z[0];
num += (uint)1;
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num2 += num;
z[0] = num2;
uint num3 = z[1];
num3 += num2;
z[1] = num3;
}
uint num4 = z[1];
num += num4;
z[1] = num;
ulong num5;
if (num5 != (ulong)num)
{
int num6 = Nat.DecAt(7, z, 4);
}
}
}
// Token: 0x0600A84A RID: 43082 RVA: 0x00244230 File Offset: 0x00242430
[Token(Token = "0x600A84A")]
[Address(RVA = "0x70C990", Offset = "0x70B990", VA = "0x18070C990")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(14, xx, yy, zz) != 0)
{
uint[] pextInv = SecP224R1Field.PExtInv;
if (Nat.SubFrom(pextInv.Length, pextInv, zz) != 0)
{
int length = SecP224R1Field.PExtInv.Length;
int num = Nat.DecAt(14, zz, length);
}
}
}
// Token: 0x0600A84B RID: 43083 RVA: 0x0024427C File Offset: 0x0024247C
[Token(Token = "0x600A84B")]
[Address(RVA = "0x70CBE0", Offset = "0x70BBE0", VA = "0x18070CBE0")]
public static void Twice(uint[] x, uint[] z)
{
int num = 0;
if (Nat.ShiftUpBit(7, x, (uint)num, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP224R1Field.P;
if (!Nat224.Gte(z, p))
{
return;
}
}
SecP224R1Field.AddPInvTo(z);
}
// Token: 0x0600A84C RID: 43084 RVA: 0x002442C0 File Offset: 0x002424C0
[Token(Token = "0x600A84C")]
[Address(RVA = "0x70BB90", Offset = "0x70AB90", VA = "0x18070BB90")]
private static void AddPInvTo(uint[] z)
{
uint num = z[0];
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
uint num3 = z[1];
num += num3;
z[1] = num;
}
uint num4 = z[1];
num4 += (uint)1;
num += num4;
z[1] = num;
ulong num5;
if (num5 != (ulong)num)
{
uint num6 = Nat.IncAt(7, z, 4);
return;
}
}
// Token: 0x0600A84D RID: 43085 RVA: 0x0024433C File Offset: 0x0024253C
[Token(Token = "0x600A84D")]
[Address(RVA = "0x70C8C0", Offset = "0x70B8C0", VA = "0x18070C8C0")]
private static void SubPInvFrom(uint[] z)
{
uint num = z[0];
num += (uint)1;
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num2 += num;
z[0] = num2;
uint num3 = z[1];
num3 += num2;
z[1] = num3;
}
uint num4 = z[1];
num += num4;
z[1] = num;
ulong num5;
if (num5 != (ulong)num)
{
int num6 = Nat.DecAt(7, z, 4);
return;
}
}
// Token: 0x0600A84E RID: 43086 RVA: 0x002443B8 File Offset: 0x002425B8
[Token(Token = "0x600A84E")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecP224R1Field()
{
}
// Token: 0x0600A84F RID: 43087 RVA: 0x002443CC File Offset: 0x002425CC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A84F")]
[Address(RVA = "0x70CCD0", Offset = "0x70BCD0", VA = "0x18070CCD0")]
static SecP224R1Field()
{
uint[] array = new uint[7];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.1E3842329C5294DBE1DF588A77C68B35C6AF83BF).FieldHandle);
SecP224R1Field.P = array;
uint[] array2 = new uint[14];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.8C9BE3C02B5604C5CBF6A03E8032549588A6ED54).FieldHandle);
SecP224R1Field.PExt = array2;
uint[] array3 = new uint[11];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.EBE167F7962841FA83451C9C1663416D69AA5294).FieldHandle);
SecP224R1Field.PExtInv = array3;
}
// Token: 0x04006D5A RID: 27994
[Token(Token = "0x4006D5A")]
internal static readonly uint[] P;
// Token: 0x04006D5B RID: 27995
[Token(Token = "0x4006D5B")]
internal static readonly uint[] PExt;
// Token: 0x04006D5C RID: 27996
[Token(Token = "0x4006D5C")]
private static readonly uint[] PExtInv;
// Token: 0x04006D5D RID: 27997
[Token(Token = "0x4006D5D")]
private const uint P6 = 4294967295U;
// Token: 0x04006D5E RID: 27998
[Token(Token = "0x4006D5E")]
private const uint PExt13 = 4294967295U;
}
}
@@ -0,0 +1,531 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B37 RID: 6967
[Token(Token = "0x2001B37")]
internal class SecP224R1FieldElement : AbstractFpFieldElement
{
// Token: 0x0600A850 RID: 43088 RVA: 0x00244424 File Offset: 0x00242624
[Token(Token = "0x600A850")]
[Address(RVA = "0x70B6B0", Offset = "0x70A6B0", VA = "0x18070B6B0")]
public SecP224R1FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A850)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4E:
stloc:ArgumentException(var_5_5D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecP224R1FieldElement"), ldstr:string("x")))
}
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: 0x0600A851 RID: 43089 RVA: 0x00244490 File Offset: 0x00242690
[Token(Token = "0x600A851")]
[Address(RVA = "0x7076D0", Offset = "0x7066D0", VA = "0x1807076D0")]
public SecP224R1FieldElement()
{
uint[] array = Nat224.Create();
this.x = array;
}
// Token: 0x0600A852 RID: 43090 RVA: 0x002444B4 File Offset: 0x002426B4
[Token(Token = "0x600A852")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecP224R1FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001A5E RID: 6750
// (get) Token: 0x0600A853 RID: 43091 RVA: 0x002444D0 File Offset: 0x002426D0
[Token(Token = "0x17001A5E")]
public override bool IsZero
{
[Token(Token = "0x600A853")]
[Address(RVA = "0x707980", Offset = "0x706980", VA = "0x180707980", Slot = "18")]
get
{
return Nat224.IsZero(this.x);
}
}
// Token: 0x17001A5F RID: 6751
// (get) Token: 0x0600A854 RID: 43092 RVA: 0x002444E8 File Offset: 0x002426E8
[Token(Token = "0x17001A5F")]
public override bool IsOne
{
[Token(Token = "0x600A854")]
[Address(RVA = "0x707970", Offset = "0x706970", VA = "0x180707970", Slot = "17")]
get
{
return Nat224.IsOne(this.x);
}
}
// Token: 0x0600A855 RID: 43093 RVA: 0x00244500 File Offset: 0x00242700
[Token(Token = "0x600A855")]
[Address(RVA = "0x7075F0", Offset = "0x7065F0", VA = "0x1807075F0", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat224.GetBit(array, num) == (uint)1;
}
// Token: 0x0600A856 RID: 43094 RVA: 0x00244524 File Offset: 0x00242724
[Token(Token = "0x600A856")]
[Address(RVA = "0x707610", Offset = "0x706610", VA = "0x180707610", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat224.ToBigInteger(this.x);
}
// Token: 0x17001A60 RID: 6752
// (get) Token: 0x0600A857 RID: 43095 RVA: 0x0024453C File Offset: 0x0024273C
[Token(Token = "0x17001A60")]
public override string FieldName
{
[Token(Token = "0x600A857")]
[Address(RVA = "0x70B880", Offset = "0x70A880", VA = "0x18070B880", Slot = "5")]
get
{
return "SecP224R1Field";
}
}
// Token: 0x17001A61 RID: 6753
// (get) Token: 0x0600A858 RID: 43096 RVA: 0x00244550 File Offset: 0x00242750
[Token(Token = "0x17001A61")]
public override int FieldSize
{
[Token(Token = "0x600A858")]
[Address(RVA = "0x70B8B0", Offset = "0x70A8B0", VA = "0x18070B8B0", Slot = "6")]
get
{
return SecP224R1FieldElement.Q.BitLength;
}
}
// Token: 0x0600A859 RID: 43097 RVA: 0x00244570 File Offset: 0x00242770
[Token(Token = "0x600A859")]
[Address(RVA = "0x70A290", Offset = "0x709290", VA = "0x18070A290", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat224.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP224R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP224R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A85A RID: 43098 RVA: 0x002445B8 File Offset: 0x002427B8
[Token(Token = "0x600A85A")]
[Address(RVA = "0x70A200", Offset = "0x709200", VA = "0x18070A200", Slot = "8")]
public override ECFieldElement AddOne()
{
/*
An exception occurred when decompiling this method (0600A85A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1FieldElement::AddOne()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat224::Create))
call:void(SecP224R1Field::AddOne, ldfld:uint32[](SecP224R1FieldElement::x, ldloc:SecP224R1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP224R1FieldElement::x, newobj:SecP224R1FieldElement(SecP224R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A85B RID: 43099 RVA: 0x002445E4 File Offset: 0x002427E4
[Token(Token = "0x600A85B")]
[Address(RVA = "0x70B200", Offset = "0x70A200", VA = "0x18070B200", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat224.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP224R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP224R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A85C RID: 43100 RVA: 0x0024462C File Offset: 0x0024282C
[Token(Token = "0x600A85C")]
[Address(RVA = "0x70A910", Offset = "0x709910", VA = "0x18070A910", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat224.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP224R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP224R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A85D RID: 43101 RVA: 0x00244674 File Offset: 0x00242874
[Token(Token = "0x600A85D")]
[Address(RVA = "0x70A3D0", Offset = "0x7093D0", VA = "0x18070A3D0", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat224.Create();
uint[] p = SecP224R1Field.P;
if ("{il2cpp array field local3->}" == typeof(SecP224R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
SecP224R1Field.Multiply(array, array2, array);
new SecP224R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A85E RID: 43102 RVA: 0x002446CC File Offset: 0x002428CC
[Token(Token = "0x600A85E")]
[Address(RVA = "0x70AA50", Offset = "0x709A50", VA = "0x18070AA50", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600A85E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat224::Create))
call:void(SecP224R1Field::Negate, ldfld:uint32[](SecP224R1FieldElement::x, ldloc:SecP224R1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP224R1FieldElement::x, newobj:SecP224R1FieldElement(SecP224R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A85F RID: 43103 RVA: 0x002446F8 File Offset: 0x002428F8
[Token(Token = "0x600A85F")]
[Address(RVA = "0x70B170", Offset = "0x70A170", VA = "0x18070B170", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600A85F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat224::Create))
call:void(SecP224R1Field::Square, ldfld:uint32[](SecP224R1FieldElement::x, ldloc:SecP224R1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP224R1FieldElement::x, newobj:SecP224R1FieldElement(SecP224R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A860 RID: 43104 RVA: 0x00244724 File Offset: 0x00242924
[Token(Token = "0x600A860")]
[Address(RVA = "0x70A730", Offset = "0x709730", VA = "0x18070A730", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600A860)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat224::Create))
stloc:uint32[](var_2_0E, ldfld:uint32[](SecP224R1FieldElement::x, ldloc:SecP224R1FieldElement(this)))
call:void(Mod::Invert, ldsfld:uint32[](SecP224R1Field::P), ldloc:uint32[](var_2_0E), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP224R1FieldElement::x, newobj:SecP224R1FieldElement(SecP224R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A861 RID: 43105 RVA: 0x00244758 File Offset: 0x00242958
[Token(Token = "0x600A861")]
[Address(RVA = "0x70AE80", Offset = "0x709E80", VA = "0x18070AE80", Slot = "15")]
public override ECFieldElement Sqrt()
{
uint[] array;
do
{
array = this.x;
}
while (Nat224.IsZero(array) || Nat224.IsOne(array));
uint[] array2 = Nat224.Create();
SecP224R1Field.Negate(array, array2);
uint[] array3 = Mod.Random(SecP224R1Field.P);
uint[] array4 = Nat224.Create();
uint[] array5 = Nat224.Create();
uint[] array6 = Nat224.Create();
Nat224.Copy(array, array5);
Nat224.Copy(array5, array6);
uint num;
SecP224R1Field.SquareN(array5, (int)num, array5);
SecP224R1Field.Multiply(array5, array6, array5);
SecP224R1Field.SquareN(array5, 95, array5);
if (!Nat224.IsOne(array5))
{
return;
}
if (!SecP224R1FieldElement.TrySqrt(array2, array3, array4))
{
SecP224R1Field.AddOne(array3, array3);
}
SecP224R1Field.Square(array4, array3);
if (Nat224.Eq(array, array3))
{
new SecP224R1FieldElement().x = array4;
return;
}
}
// Token: 0x0600A862 RID: 43106 RVA: 0x00244828 File Offset: 0x00242A28
[Token(Token = "0x600A862")]
[Address(RVA = "0x70A550", Offset = "0x709550", VA = "0x18070A550", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600A862)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP224R1FieldElement[exp:ECFieldElement](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: 0x0600A863 RID: 43107 RVA: 0x00244844 File Offset: 0x00242A44
[Token(Token = "0x600A863")]
[Address(RVA = "0x70A5E0", Offset = "0x7095E0", VA = "0x18070A5E0", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600A863)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP224R1FieldElement[exp:ECFieldElement](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: 0x0600A864 RID: 43108 RVA: 0x00244860 File Offset: 0x00242A60
[Token(Token = "0x600A864")]
[Address(RVA = "0x706CC0", Offset = "0x705CC0", VA = "0x180706CC0", Slot = "27")]
public virtual bool Equals(SecP224R1FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
return Nat224.Eq(this.x, array);
}
}
return true;
}
// Token: 0x0600A865 RID: 43109 RVA: 0x0024488C File Offset: 0x00242A8C
[Token(Token = "0x600A865")]
[Address(RVA = "0x70A670", Offset = "0x709670", VA = "0x18070A670", Slot = "2")]
public override int GetHashCode()
{
SecP224R1FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 7);
}
// Token: 0x0600A866 RID: 43110 RVA: 0x002448BC File Offset: 0x00242ABC
[Token(Token = "0x600A866")]
[Address(RVA = "0x70A800", Offset = "0x709800", VA = "0x18070A800")]
private static bool IsSquare(uint[] x)
{
uint[] array = Nat224.Create();
uint[] array2 = Nat224.Create();
Nat224.Copy(x, array);
Nat224.Copy(array, array2);
uint num;
SecP224R1Field.SquareN(array, (int)num, array);
SecP224R1Field.Multiply(array, array2, array);
SecP224R1Field.SquareN(array, 95, array);
return Nat224.IsOne(array);
}
// Token: 0x0600A867 RID: 43111 RVA: 0x00244908 File Offset: 0x00242B08
[Token(Token = "0x600A867")]
[Address(RVA = "0x70AAE0", Offset = "0x709AE0", VA = "0x18070AAE0")]
private static void RM(uint[] nc, uint[] d0, uint[] e0, uint[] d1, uint[] e1, uint[] f1, uint[] t)
{
}
// Token: 0x0600A868 RID: 43112 RVA: 0x00244918 File Offset: 0x00242B18
[Token(Token = "0x600A868")]
[Address(RVA = "0x70AC20", Offset = "0x709C20", VA = "0x18070AC20")]
private static void RP(uint[] nc, uint[] d1, uint[] e1, uint[] f1, uint[] t)
{
Nat224.Copy(nc, f1);
uint[] array = Nat224.Create();
uint[] array2 = Nat224.Create();
Nat224.Copy(d1, array);
Nat224.Copy(e1, array2);
uint num2;
uint num = num2 - 1U;
}
// Token: 0x0600A869 RID: 43113 RVA: 0x00244950 File Offset: 0x00242B50
[Token(Token = "0x600A869")]
[Address(RVA = "0x70AD90", Offset = "0x709D90", VA = "0x18070AD90")]
private static void RS(uint[] d, uint[] e, uint[] f, uint[] t)
{
SecP224R1Field.Multiply(e, d, e);
SecP224R1Field.Twice(e, e);
SecP224R1Field.Square(d, t);
SecP224R1Field.Add(f, t, d);
SecP224R1Field.Multiply(f, t, f);
int num = 0;
SecP224R1Field.Reduce32(Nat.ShiftUpBits(7, f, 2, (uint)num), f);
}
// Token: 0x0600A86A RID: 43114 RVA: 0x00244994 File Offset: 0x00242B94
[Token(Token = "0x600A86A")]
[Address(RVA = "0x70B340", Offset = "0x70A340", VA = "0x18070B340")]
private static bool TrySqrt(uint[] nc, uint[] r, uint[] t)
{
uint[] array = Nat224.Create();
Nat224.Copy(r, array);
uint[] array2 = Nat224.Create();
uint num;
array2[0] = num;
uint[] array3 = Nat224.Create();
Nat224.Copy(nc, array3);
uint[] array4 = Nat224.Create();
uint[] array5 = Nat224.Create();
Nat224.Copy(array, array4);
Nat224.Copy(array2, array5);
uint num2 = num - 1U;
SecP224R1FieldElement.RS(array, array2, array3, t);
uint[] array6 = Nat224.Create();
uint[] array7 = Nat224.Create();
Nat224.Copy(array, array6);
Nat224.Copy(array2, array7);
SecP224R1FieldElement.RS(array, array2, array3, t);
bool flag = Nat224.IsZero(array);
if (!flag)
{
num += (uint)1;
return flag;
}
Mod.Invert(SecP224R1Field.P, array7, t);
SecP224R1Field.Multiply(t, array6, t);
throw new NullReferenceException();
}
// Token: 0x04006D5F RID: 27999
[Token(Token = "0x4006D5F")]
public static readonly BigInteger Q = SecP224R1Curve.q;
// Token: 0x04006D60 RID: 28000
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D60")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,289 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B38 RID: 6968
[Token(Token = "0x2001B38")]
internal class SecP224R1Point : AbstractFpPoint
{
// Token: 0x0600A86C RID: 43116 RVA: 0x00244A84 File Offset: 0x00242C84
[Token(Token = "0x600A86C")]
[Address(RVA = "0x70DFA0", Offset = "0x70CFA0", VA = "0x18070DFA0")]
public SecP224R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A86D RID: 43117 RVA: 0x00244A94 File Offset: 0x00242C94
[Token(Token = "0x600A86D")]
[Address(RVA = "0x70DEE0", Offset = "0x70CEE0", VA = "0x18070DEE0")]
public SecP224R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A86D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A86E RID: 43118 RVA: 0x00244ABC File Offset: 0x00242CBC
[Token(Token = "0x600A86E")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecP224R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A86F RID: 43119 RVA: 0x00244ACC File Offset: 0x00242CCC
[Token(Token = "0x600A86F")]
[Address(RVA = "0x70D790", Offset = "0x70C790", VA = "0x18070D790", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A86F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecP224R1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecP224R1Point[exp: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: 0x0600A870 RID: 43120 RVA: 0x00244AE8 File Offset: 0x00242CE8
[Token(Token = "0x600A870")]
[Address(RVA = "0x70CF70", Offset = "0x70BF70", VA = "0x18070CF70", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this == b)
{
return b;
}
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat224.CreateExt();
uint[] array2 = Nat224.Create();
uint[] array3 = Nat224.Create();
uint[] array4 = Nat224.Create();
if (array4 == 0)
{
SecP224R1Field.Square(array4, array3);
SecP224R1Field.Multiply(array3, array3, array2);
SecP224R1Field.Multiply(array3, array3, array3);
SecP224R1Field.Multiply(array3, array3, array3);
}
SecP224R1Field.Multiply(array4, array4, array);
SecP224R1Field.Multiply(array4, array4, array4);
SecP224R1Field.Multiply(array4, array4, array4);
uint[] array5 = Nat224.Create();
if (!Nat224.IsZero(array5))
{
SecP224R1Field.Square(array5, array3);
uint[] array6 = Nat224.Create();
SecP224R1Field.Multiply(array3, array5, array6);
SecP224R1Field.Negate(array6, array6);
SecP224R1Field.Reduce32(Nat224.AddBothTo(array3, array3, array6), array6);
SecP224R1FieldElement secP224R1FieldElement = new SecP224R1FieldElement();
secP224R1FieldElement.x = array4;
SecP224R1Field.Square(array2, array4);
uint[] x = secP224R1FieldElement.x;
SecP224R1Field.Subtract(x, array6, x);
SecP224R1FieldElement secP224R1FieldElement2 = new SecP224R1FieldElement();
secP224R1FieldElement2.x = array6;
uint[] x2 = secP224R1FieldElement.x;
SecP224R1Field.Subtract(array3, x2, array6);
if (Nat224.MulAddTo(secP224R1FieldElement2.x, array2, array) == (uint)0)
{
if ("{il2cpp array field local16->}" != (ulong)(-1L))
{
goto IL_1B3;
}
uint[] pext = SecP224R1Field.PExt;
if (!Nat.Gte(14, array, pext))
{
goto IL_1B3;
}
}
uint[] pextInv = SecP224R1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, array) != (uint)0)
{
int length = SecP224R1Field.PExtInv.Length;
uint num = Nat.IncAt(14, array, length);
}
IL_1B3:
uint[] x3 = secP224R1FieldElement2.x;
SecP224R1Field.Reduce(array, x3);
SecP224R1FieldElement secP224R1FieldElement3 = new SecP224R1FieldElement();
secP224R1FieldElement3.x = array5;
SecP224R1Field.Multiply(array5, array, array5);
uint[] x4 = secP224R1FieldElement3.x;
ECFieldElement[] array7 = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600A871 RID: 43121 RVA: 0x00244D0C File Offset: 0x00242F0C
[Token(Token = "0x600A871")]
[Address(RVA = "0x70D930", Offset = "0x70C930", VA = "0x18070D930", Slot = "30")]
public override ECPoint Twice()
{
while (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
if (y != 0)
{
if (y.IsOne)
{
break;
}
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
uint[] array = Nat224.Create();
uint[] array2 = Nat224.Create();
uint[] array3 = Nat224.Create();
uint[] array4 = Nat224.Create();
SecP224R1Field.Square(array3, array4);
if (ecfieldElement.BitLength == 0)
{
}
SecP224R1Field.Multiply(array2, array, array2);
SecP224R1Field.Reduce32(Nat224.AddBothTo(array2, array2, array2), array2);
SecP224R1Field.Multiply(array3, array2, array3);
int num = 0;
SecP224R1Field.Reduce32(Nat.ShiftUpBits(7, array3, 2, (uint)num), array3);
int num2 = 0;
SecP224R1Field.Reduce32(Nat.ShiftUpBits(7, array4, 3, (uint)num2, array), array);
SecP224R1FieldElement secP224R1FieldElement = new SecP224R1FieldElement();
secP224R1FieldElement.x = array4;
SecP224R1Field.Square(array2, array4);
uint[] x2 = secP224R1FieldElement.x;
SecP224R1Field.Subtract(x2, array3, x2);
uint[] x3 = secP224R1FieldElement.x;
SecP224R1Field.Subtract(x3, array3, x3);
SecP224R1FieldElement secP224R1FieldElement2 = new SecP224R1FieldElement();
secP224R1FieldElement2.x = array3;
uint[] x4 = secP224R1FieldElement.x;
SecP224R1Field.Subtract(array3, x4, array3);
uint[] x5 = secP224R1FieldElement2.x;
SecP224R1Field.Multiply(x5, array2, x5);
uint[] x6 = secP224R1FieldElement2.x;
SecP224R1Field.Subtract(x6, array, x6);
SecP224R1FieldElement secP224R1FieldElement3 = new SecP224R1FieldElement();
secP224R1FieldElement3.x = array2;
uint[] x7 = secP224R1FieldElement3.x;
(new ECFieldElement[1])[0] = secP224R1FieldElement3;
bool withCompression = this.m_withCompression;
break;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A872 RID: 43122 RVA: 0x00244EC8 File Offset: 0x002430C8
[Token(Token = "0x600A872")]
[Address(RVA = "0x6ECFE0", Offset = "0x6EBFE0", VA = "0x1806ECFE0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
bool flag2 = base.SatisfiesCurveEquation();
}
return b;
}
bool flag3 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600A873 RID: 43123 RVA: 0x00244F18 File Offset: 0x00243118
[Token(Token = "0x600A873")]
[Address(RVA = "0x6ECF60", Offset = "0x6EBF60", VA = "0x1806ECF60", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600A874 RID: 43124 RVA: 0x00244F48 File Offset: 0x00243148
[Token(Token = "0x600A874")]
[Address(RVA = "0x70D830", Offset = "0x70C830", VA = "0x18070D830", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,333 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B39 RID: 6969
[Token(Token = "0x2001B39")]
internal class SecP256K1Curve : AbstractFpCurve
{
// Token: 0x0600A875 RID: 43125 RVA: 0x00244F80 File Offset: 0x00243180
[Token(Token = "0x600A875")]
[Address(RVA = "0x70E610", Offset = "0x70D610", VA = "0x18070E610")]
public SecP256K1Curve()
{
BigInteger bigInteger = SecP256K1Curve.q;
base..ctor(bigInteger);
int num;
int num2;
ulong num3;
SecP256K1Point secP256K1Point = new SecP256K1Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = secP256K1Point;
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141");
BigInteger bigInteger2 = new BigInteger(1, array);
this.m_order = bigInteger2;
BigInteger one = BigInteger.One;
this.m_cofactor = one;
this.m_coord = (int)((ulong)2L);
}
// Token: 0x0600A876 RID: 43126 RVA: 0x00245008 File Offset: 0x00243208
[Token(Token = "0x600A876")]
[Address(RVA = "0x70DFC0", Offset = "0x70CFC0", VA = "0x18070DFC0", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A876)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_1_05, ldsfld:BigInteger(SecP256K1Curve::q))
stloc:SecP256K1Point(var_2_11, newobj:SecP256K1Point(SecP256K1Point::.ctor, ldloc:SecP256K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_3), ldloc:uint64[exp:bool](var_6)))
stloc:int32(var_3, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecP256K1Point(SecP256K1Curve::m_infinity, ldloc:SecP256K1Curve(var_0), ldloc:SecP256K1Point(var_2_11))
stloc:int32(var_7_24, callvirtgetter:int32(SecP256K1Curve::get_FieldSize, ldloc:SecP256K1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecP256K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_7_24))
stloc:int32(var_9_34, callvirtgetter:int32(SecP256K1Curve::get_FieldSize, ldloc:SecP256K1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecP256K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_9_34))
stloc:uint8[](var_10_48, call:uint8[](Hex::Decode, ldstr:string("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141")))
stloc:BigInteger(var_11_52, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_10_48)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecP256K1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_11_52))
stloc:BigInteger(var_12_61, ldsfld:BigInteger(BigInteger::One))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecP256K1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_12_61))
stfld:int32(ECCurve::m_coord, ldloc:SecP256K1Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](2)))
}
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: 0x0600A877 RID: 43127 RVA: 0x00245088 File Offset: 0x00243288
[Token(Token = "0x600A877")]
[Address(RVA = "0x6E9C20", Offset = "0x6E8C20", VA = "0x1806E9C20", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 2;
}
// Token: 0x17001A62 RID: 6754
// (get) Token: 0x0600A878 RID: 43128 RVA: 0x0024509C File Offset: 0x0024329C
[Token(Token = "0x17001A62")]
public virtual BigInteger Q
{
[Token(Token = "0x600A878")]
[Address(RVA = "0x70E810", Offset = "0x70D810", VA = "0x18070E810", Slot = "38")]
get
{
return SecP256K1Curve.q;
}
}
// Token: 0x17001A63 RID: 6755
// (get) Token: 0x0600A879 RID: 43129 RVA: 0x002450B0 File Offset: 0x002432B0
[Token(Token = "0x17001A63")]
public override ECPoint Infinity
{
[Token(Token = "0x600A879")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A879)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP256K1Point(var_0_06, ldfld:SecP256K1Point(SecP256K1Curve::m_infinity, ldloc:SecP256K1Curve(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: 0x17001A64 RID: 6756
// (get) Token: 0x0600A87A RID: 43130 RVA: 0x002450C4 File Offset: 0x002432C4
[Token(Token = "0x17001A64")]
public override int FieldSize
{
[Token(Token = "0x600A87A")]
[Address(RVA = "0x70E7A0", Offset = "0x70D7A0", VA = "0x18070E7A0", Slot = "4")]
get
{
return SecP256K1Curve.q.BitLength;
}
}
// Token: 0x0600A87B RID: 43131 RVA: 0x002450E4 File Offset: 0x002432E4
[Token(Token = "0x600A87B")]
[Address(RVA = "0x70E510", Offset = "0x70D510", VA = "0x18070E510", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A87B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP256K1FieldElement(var_0_06, newobj:SecP256K1FieldElement(SecP256K1FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600A87C RID: 43132 RVA: 0x002450F8 File Offset: 0x002432F8
[Token(Token = "0x600A87C")]
[Address(RVA = "0x70E480", Offset = "0x70D480", VA = "0x18070E480", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A87C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP256K1Point(var_0_09, newobj:SecP256K1Point(SecP256K1Point::.ctor, ldloc:SecP256K1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A87D RID: 43133 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A87D")]
[Address(RVA = "0x70E3E0", Offset = "0x70D3E0", VA = "0x18070E3E0", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A87E RID: 43134 RVA: 0x00245110 File Offset: 0x00243310
[Token(Token = "0x600A87E")]
[Address(RVA = "0x70E180", Offset = "0x70D180", VA = "0x18070E180", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[len];
num = 0;
if (len <= 0)
{
goto IL_4A;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 16;
IL_4A:
SecP256K1Curve.SecP256K1LookupTable secP256K1LookupTable;
secP256K1LookupTable.m_outer = 0;
secP256K1LookupTable.m_table = array;
secP256K1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x0600A87F RID: 43135 RVA: 0x00245184 File Offset: 0x00243384
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A87F")]
[Address(RVA = "0x70E570", Offset = "0x70D570", VA = "0x18070E570")]
static SecP256K1Curve()
{
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F");
SecP256K1Curve.q = new BigInteger(1, array);
}
// Token: 0x04006D61 RID: 28001
[Token(Token = "0x4006D61")]
public static readonly BigInteger q;
// Token: 0x04006D62 RID: 28002
[Token(Token = "0x4006D62")]
private const int SECP256K1_DEFAULT_COORDS = 2;
// Token: 0x04006D63 RID: 28003
[Token(Token = "0x4006D63")]
private const int SECP256K1_FE_INTS = 8;
// Token: 0x04006D64 RID: 28004
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006D64")]
protected readonly SecP256K1Point m_infinity;
// Token: 0x02001B3A RID: 6970
[Token(Token = "0x2001B3A")]
private class SecP256K1LookupTable : ECLookupTable
{
// Token: 0x0600A880 RID: 43136 RVA: 0x002451A8 File Offset: 0x002433A8
[Token(Token = "0x600A880")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecP256K1LookupTable(SecP256K1Curve outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A65 RID: 6757
// (get) Token: 0x0600A881 RID: 43137 RVA: 0x002451D0 File Offset: 0x002433D0
[Token(Token = "0x17001A65")]
public virtual int Size
{
[Token(Token = "0x600A881")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A882 RID: 43138 RVA: 0x002451E4 File Offset: 0x002433E4
[Token(Token = "0x600A882")]
[Address(RVA = "0x7107A0", Offset = "0x70F7A0", VA = "0x1807107A0", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat256.Create();
uint[] array2 = Nat256.Create();
int num = 0;
int num2 = 0;
if (this.m_size > num2)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 16;
num2++;
}
SecP256K1Curve outer = this.m_outer;
new SecP256K1FieldElement().x = array;
new SecP256K1FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006D65 RID: 28005
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D65")]
private readonly SecP256K1Curve m_outer;
// Token: 0x04006D66 RID: 28006
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006D66")]
private readonly uint[] m_table;
// Token: 0x04006D67 RID: 28007
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006D67")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,329 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B3B RID: 6971
[Token(Token = "0x2001B3B")]
internal class SecP256K1Field
{
// Token: 0x0600A883 RID: 43139 RVA: 0x00245264 File Offset: 0x00243464
[Token(Token = "0x600A883")]
[Address(RVA = "0x70FBF0", Offset = "0x70EBF0", VA = "0x18070FBF0")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
if (Nat256.Add(x, y, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP256K1Field.P;
if (!Nat256.Gte(z, p))
{
return;
}
}
uint num = Nat.Add33To(8, (uint)977, z);
}
// Token: 0x0600A884 RID: 43140 RVA: 0x002452AC File Offset: 0x002434AC
[Token(Token = "0x600A884")]
[Address(RVA = "0x70F9A0", Offset = "0x70E9A0", VA = "0x18070F9A0")]
public static void AddExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Add(16, xx, yy, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP256K1Field.PExt;
if (!Nat.Gte(16, zz, pext))
{
return;
}
}
uint[] pextInv = SecP256K1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP256K1Field.PExtInv.Length;
uint num = Nat.IncAt(16, zz, length);
}
}
// Token: 0x0600A885 RID: 43141 RVA: 0x00245318 File Offset: 0x00243518
[Token(Token = "0x600A885")]
[Address(RVA = "0x70FB20", Offset = "0x70EB20", VA = "0x18070FB20")]
public static void AddOne(uint[] x, uint[] z)
{
if (Nat.Inc(8, x, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP256K1Field.P;
if (!Nat256.Gte(z, p))
{
return;
}
}
uint num = Nat.Add33To(8, (uint)977, z);
}
// Token: 0x0600A886 RID: 43142 RVA: 0x00245360 File Offset: 0x00243560
[Token(Token = "0x600A886")]
[Address(RVA = "0x70FCD0", Offset = "0x70ECD0", VA = "0x18070FCD0")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat256.FromBigInteger(x);
if ("{il2cpp array field local2->}" == (ulong)(-1L))
{
uint[] p = SecP256K1Field.P;
if (Nat256.Gte(array, p))
{
int num = Nat256.SubFrom(SecP256K1Field.P, array);
}
}
return array;
}
// Token: 0x0600A887 RID: 43143 RVA: 0x002453A4 File Offset: 0x002435A4
[Token(Token = "0x600A887")]
[Address(RVA = "0x70FDC0", Offset = "0x70EDC0", VA = "0x18070FDC0")]
public static void Half(uint[] x, uint[] z)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
uint[] p = SecP256K1Field.P;
uint num = Nat256.Add(x, p, z);
uint num2 = Nat.ShiftDownBit(8, z, num);
return;
}
int num3 = 0;
uint num4 = Nat.ShiftDownBit(8, x, (uint)num3, z);
}
// Token: 0x0600A888 RID: 43144 RVA: 0x002453E8 File Offset: 0x002435E8
[Token(Token = "0x600A888")]
[Address(RVA = "0x710010", Offset = "0x70F010", VA = "0x180710010")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Mul(x, y, array);
SecP256K1Field.Reduce(array, z);
}
// Token: 0x0600A889 RID: 43145 RVA: 0x0024540C File Offset: 0x0024360C
[Token(Token = "0x600A889")]
[Address(RVA = "0x70FEA0", Offset = "0x70EEA0", VA = "0x18070FEA0")]
public static void MultiplyAddToExt(uint[] x, uint[] y, uint[] zz)
{
if (Nat256.MulAddTo(x, y, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP256K1Field.PExt;
if (!Nat.Gte(16, zz, pext))
{
return;
}
}
uint[] pextInv = SecP256K1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP256K1Field.PExtInv.Length;
uint num = Nat.IncAt(16, zz, length);
}
}
// Token: 0x0600A88A RID: 43146 RVA: 0x00245474 File Offset: 0x00243674
[Token(Token = "0x600A88A")]
[Address(RVA = "0x7100B0", Offset = "0x70F0B0", VA = "0x1807100B0")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat256.IsZero(x))
{
int num = Nat256.Sub(SecP256K1Field.P, x, z);
return;
}
Nat256.Zero(z);
}
// Token: 0x0600A88B RID: 43147 RVA: 0x002454A0 File Offset: 0x002436A0
[Token(Token = "0x600A88B")]
[Address(RVA = "0x710230", Offset = "0x70F230", VA = "0x180710230")]
public static void Reduce(uint[] xx, uint[] z)
{
int num = 0;
ulong num2 = Nat256.Mul33Add((uint)977, xx, 8, xx, num, z, num);
int num3 = 0;
if (Nat256.Mul33DWordAdd((uint)977, num2, z, num3) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP256K1Field.P;
if (!Nat256.Gte(z, p))
{
return;
}
}
uint num4 = Nat.Add33To(8, (uint)977, z);
}
// Token: 0x0600A88C RID: 43148 RVA: 0x00245504 File Offset: 0x00243704
[Token(Token = "0x600A88C")]
[Address(RVA = "0x710150", Offset = "0x70F150", VA = "0x180710150")]
public static void Reduce32(uint x, uint[] z)
{
if (x != (uint)0)
{
int num = 0;
if (Nat256.Mul33WordAdd((uint)977, x, z, num) != (uint)0)
{
goto IL_33;
}
}
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP256K1Field.P;
if (!Nat256.Gte(z, p))
{
return;
}
IL_33:
uint num2 = Nat.Add33To(8, (uint)977, z);
}
// Token: 0x0600A88D RID: 43149 RVA: 0x00245558 File Offset: 0x00243758
[Token(Token = "0x600A88D")]
[Address(RVA = "0x710410", Offset = "0x70F410", VA = "0x180710410")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Square(x, array);
SecP256K1Field.Reduce(array, z);
}
// Token: 0x0600A88E RID: 43150 RVA: 0x0024557C File Offset: 0x0024377C
[Token(Token = "0x600A88E")]
[Address(RVA = "0x710330", Offset = "0x70F330", VA = "0x180710330")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Square(x, array);
SecP256K1Field.Reduce(array, z);
if (n > 0)
{
Nat256.Square(z, array);
SecP256K1Field.Reduce(array, z);
}
}
// Token: 0x0600A88F RID: 43151 RVA: 0x002455B4 File Offset: 0x002437B4
[Token(Token = "0x600A88F")]
[Address(RVA = "0x7105B0", Offset = "0x70F5B0", VA = "0x1807105B0")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
if (Nat256.Sub(x, y, z) != 0)
{
int num = Nat.Sub33From(8, (uint)977, z);
return;
}
}
// Token: 0x0600A890 RID: 43152 RVA: 0x002455DC File Offset: 0x002437DC
[Token(Token = "0x600A890")]
[Address(RVA = "0x7104A0", Offset = "0x70F4A0", VA = "0x1807104A0")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(16, xx, yy, zz) != 0)
{
uint[] pextInv = SecP256K1Field.PExtInv;
if (Nat.SubFrom(pextInv.Length, pextInv, zz) != 0)
{
int length = SecP256K1Field.PExtInv.Length;
int num = Nat.DecAt(16, zz, length);
}
}
}
// Token: 0x0600A891 RID: 43153 RVA: 0x00245628 File Offset: 0x00243828
[Token(Token = "0x600A891")]
[Address(RVA = "0x7105F0", Offset = "0x70F5F0", VA = "0x1807105F0")]
public static void Twice(uint[] x, uint[] z)
{
int num = 0;
if (Nat.ShiftUpBit(8, x, (uint)num, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP256K1Field.P;
if (!Nat256.Gte(z, p))
{
return;
}
}
uint num2 = Nat.Add33To(8, (uint)977, z);
}
// Token: 0x0600A892 RID: 43154 RVA: 0x00245674 File Offset: 0x00243874
[Token(Token = "0x600A892")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecP256K1Field()
{
}
// Token: 0x0600A893 RID: 43155 RVA: 0x00245688 File Offset: 0x00243888
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A893")]
[Address(RVA = "0x7106D0", Offset = "0x70F6D0", VA = "0x1807106D0")]
static SecP256K1Field()
{
uint[] array = new uint[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.2CABEB86D5B3D362822AF2E5D136A10A17AD85DA).FieldHandle);
SecP256K1Field.P = array;
uint[] array2 = new uint[16];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.79A213B796D2AD7A89C2071B0732B78207F5CE01).FieldHandle);
SecP256K1Field.PExt = array2;
uint[] array3 = new uint[10];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.BE8E2513259482B6F307AC07F23F5D9FB4841EAA).FieldHandle);
SecP256K1Field.PExtInv = array3;
}
// Token: 0x04006D68 RID: 28008
[Token(Token = "0x4006D68")]
internal static readonly uint[] P;
// Token: 0x04006D69 RID: 28009
[Token(Token = "0x4006D69")]
internal static readonly uint[] PExt;
// Token: 0x04006D6A RID: 28010
[Token(Token = "0x4006D6A")]
private static readonly uint[] PExtInv;
// Token: 0x04006D6B RID: 28011
[Token(Token = "0x4006D6B")]
private const uint P7 = 4294967295U;
// Token: 0x04006D6C RID: 28012
[Token(Token = "0x4006D6C")]
private const uint PExt15 = 4294967295U;
// Token: 0x04006D6D RID: 28013
[Token(Token = "0x4006D6D")]
private const uint PInv33 = 977U;
}
}
@@ -0,0 +1,476 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B3C RID: 6972
[Token(Token = "0x2001B3C")]
internal class SecP256K1FieldElement : AbstractFpFieldElement
{
// Token: 0x0600A894 RID: 43156 RVA: 0x002456E0 File Offset: 0x002438E0
[Token(Token = "0x600A894")]
[Address(RVA = "0x70F730", Offset = "0x70E730", VA = "0x18070F730")]
public SecP256K1FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A894)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_4E:
stloc:ArgumentException(var_5_5D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecP256K1FieldElement"), ldstr:string("x")))
}
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: 0x0600A895 RID: 43157 RVA: 0x0024574C File Offset: 0x0024394C
[Token(Token = "0x600A895")]
[Address(RVA = "0x70F700", Offset = "0x70E700", VA = "0x18070F700")]
public SecP256K1FieldElement()
{
uint[] array = Nat256.Create();
this.x = array;
}
// Token: 0x0600A896 RID: 43158 RVA: 0x00245770 File Offset: 0x00243970
[Token(Token = "0x600A896")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecP256K1FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001A66 RID: 6758
// (get) Token: 0x0600A897 RID: 43159 RVA: 0x0024578C File Offset: 0x0024398C
[Token(Token = "0x17001A66")]
public override bool IsZero
{
[Token(Token = "0x600A897")]
[Address(RVA = "0x6E6550", Offset = "0x6E5550", VA = "0x1806E6550", Slot = "18")]
get
{
return Nat256.IsZero(this.x);
}
}
// Token: 0x17001A67 RID: 6759
// (get) Token: 0x0600A898 RID: 43160 RVA: 0x002457A4 File Offset: 0x002439A4
[Token(Token = "0x17001A67")]
public override bool IsOne
{
[Token(Token = "0x600A898")]
[Address(RVA = "0x6E6540", Offset = "0x6E5540", VA = "0x1806E6540", Slot = "17")]
get
{
return Nat256.IsOne(this.x);
}
}
// Token: 0x0600A899 RID: 43161 RVA: 0x002457BC File Offset: 0x002439BC
[Token(Token = "0x600A899")]
[Address(RVA = "0x6E61E0", Offset = "0x6E51E0", VA = "0x1806E61E0", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat256.GetBit(array, num) == (uint)1;
}
// Token: 0x0600A89A RID: 43162 RVA: 0x002457E0 File Offset: 0x002439E0
[Token(Token = "0x600A89A")]
[Address(RVA = "0x6E6200", Offset = "0x6E5200", VA = "0x1806E6200", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat256.ToBigInteger(this.x);
}
// Token: 0x17001A68 RID: 6760
// (get) Token: 0x0600A89B RID: 43163 RVA: 0x002457F8 File Offset: 0x002439F8
[Token(Token = "0x17001A68")]
public override string FieldName
{
[Token(Token = "0x600A89B")]
[Address(RVA = "0x70F900", Offset = "0x70E900", VA = "0x18070F900", Slot = "5")]
get
{
return "SecP256K1Field";
}
}
// Token: 0x17001A69 RID: 6761
// (get) Token: 0x0600A89C RID: 43164 RVA: 0x0024580C File Offset: 0x00243A0C
[Token(Token = "0x17001A69")]
public override int FieldSize
{
[Token(Token = "0x600A89C")]
[Address(RVA = "0x70F930", Offset = "0x70E930", VA = "0x18070F930", Slot = "6")]
get
{
return SecP256K1FieldElement.Q.BitLength;
}
}
// Token: 0x0600A89D RID: 43165 RVA: 0x0024582C File Offset: 0x00243A2C
[Token(Token = "0x600A89D")]
[Address(RVA = "0x70E9B0", Offset = "0x70D9B0", VA = "0x18070E9B0", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP256K1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint num;
if (num == (uint)0)
{
if ("{il2cpp array field local3->}" != (ulong)(-1L))
{
goto IL_59;
}
uint[] p = SecP256K1Field.P;
if (!Nat256.Gte(array, p))
{
goto IL_59;
}
}
uint num2 = Nat.Add33To(8, (uint)977, array);
IL_59:
new SecP256K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A89E RID: 43166 RVA: 0x002458A4 File Offset: 0x00243AA4
[Token(Token = "0x600A89E")]
[Address(RVA = "0x70E870", Offset = "0x70D870", VA = "0x18070E870", Slot = "8")]
public override ECFieldElement AddOne()
{
uint[] array = Nat256.Create();
uint[] array2 = this.x;
if (Nat.Inc(8, array2, array) == (uint)0)
{
if ("{il2cpp array field local2->}" != (ulong)(-1L))
{
goto IL_44;
}
uint[] p = SecP256K1Field.P;
if (!Nat256.Gte(array, p))
{
goto IL_44;
}
}
uint num = Nat.Add33To(8, (uint)977, array);
IL_44:
new SecP256K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A89F RID: 43167 RVA: 0x00245908 File Offset: 0x00243B08
[Token(Token = "0x600A89F")]
[Address(RVA = "0x70F530", Offset = "0x70E530", VA = "0x18070F530", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP256K1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
int num;
if (num != 0)
{
int num2 = Nat.Sub33From(8, (uint)977, array);
}
new SecP256K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A8A0 RID: 43168 RVA: 0x00245964 File Offset: 0x00243B64
[Token(Token = "0x600A8A0")]
[Address(RVA = "0x70EFC0", Offset = "0x70DFC0", VA = "0x18070EFC0", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP256K1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP256K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A8A1 RID: 43169 RVA: 0x002459AC File Offset: 0x00243BAC
[Token(Token = "0x600A8A1")]
[Address(RVA = "0x70EB90", Offset = "0x70DB90", VA = "0x18070EB90", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] p = SecP256K1Field.P;
if ("{il2cpp array field local3->}" == typeof(SecP256K1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
SecP256K1Field.Multiply(array, array2, array);
new SecP256K1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A8A2 RID: 43170 RVA: 0x00245A04 File Offset: 0x00243C04
[Token(Token = "0x600A8A2")]
[Address(RVA = "0x70F100", Offset = "0x70E100", VA = "0x18070F100", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600A8A2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
call:void(SecP256K1Field::Negate, ldfld:uint32[](SecP256K1FieldElement::x, ldloc:SecP256K1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP256K1FieldElement::x, newobj:SecP256K1FieldElement(SecP256K1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A8A3 RID: 43171 RVA: 0x00245A30 File Offset: 0x00243C30
[Token(Token = "0x600A8A3")]
[Address(RVA = "0x70F4A0", Offset = "0x70E4A0", VA = "0x18070F4A0", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600A8A3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
call:void(SecP256K1Field::Square, ldfld:uint32[](SecP256K1FieldElement::x, ldloc:SecP256K1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP256K1FieldElement::x, newobj:SecP256K1FieldElement(SecP256K1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A8A4 RID: 43172 RVA: 0x00245A5C File Offset: 0x00243C5C
[Token(Token = "0x600A8A4")]
[Address(RVA = "0x70EEF0", Offset = "0x70DEF0", VA = "0x18070EEF0", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600A8A4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
stloc:uint32[](var_2_0E, ldfld:uint32[](SecP256K1FieldElement::x, ldloc:SecP256K1FieldElement(this)))
call:void(Mod::Invert, ldsfld:uint32[](SecP256K1Field::P), ldloc:uint32[](var_2_0E), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP256K1FieldElement::x, newobj:SecP256K1FieldElement(SecP256K1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A8A5 RID: 43173 RVA: 0x00245A90 File Offset: 0x00243C90
[Token(Token = "0x600A8A5")]
[Address(RVA = "0x70F190", Offset = "0x70E190", VA = "0x18070F190", Slot = "15")]
public override ECFieldElement Sqrt()
{
uint[] array;
do
{
array = this.x;
}
while (Nat256.IsZero(array) || Nat256.IsOne(array));
uint[] array2 = Nat256.Create();
SecP256K1Field.Square(array, array2);
SecP256K1Field.Multiply(array2, array, array2);
uint[] array3 = Nat256.Create();
SecP256K1Field.Square(array2, array3);
SecP256K1Field.Multiply(array3, array, array3);
uint[] array4 = Nat256.Create();
SecP256K1Field.SquareN(array3, 3, array4);
SecP256K1Field.Multiply(array4, array3, array4);
SecP256K1Field.SquareN(array4, 3, array4);
SecP256K1Field.Multiply(array4, array3, array4);
SecP256K1Field.SquareN(array4, 2, array4);
SecP256K1Field.Multiply(array4, array2, array4);
uint[] array5 = Nat256.Create();
SecP256K1Field.SquareN(array4, 11, array5);
SecP256K1Field.Multiply(array5, array4, array5);
SecP256K1Field.SquareN(array5, 22, array4);
SecP256K1Field.Multiply(array4, array5, array4);
uint[] array6 = Nat256.Create();
SecP256K1Field.SquareN(array4, 44, array6);
SecP256K1Field.Multiply(array6, array4, array6);
uint[] array7 = Nat256.Create();
SecP256K1Field.SquareN(array6, 88, array7);
SecP256K1Field.Multiply(array7, array6, array7);
SecP256K1Field.SquareN(array7, 44, array6);
SecP256K1Field.Multiply(array6, array4, array6);
SecP256K1Field.SquareN(array6, 3, array4);
SecP256K1Field.Multiply(array4, array3, array4);
SecP256K1Field.SquareN(array4, 23, array4);
SecP256K1Field.Multiply(array4, array5, array4);
SecP256K1Field.SquareN(array4, 6, array4);
SecP256K1Field.Multiply(array4, array2, array4);
SecP256K1Field.SquareN(array4, 2, array4);
SecP256K1Field.Square(array4, array2);
if (Nat256.Eq(array, array2))
{
new SecP256K1FieldElement().x = array4;
return;
}
}
// Token: 0x0600A8A6 RID: 43174 RVA: 0x00245C28 File Offset: 0x00243E28
[Token(Token = "0x600A8A6")]
[Address(RVA = "0x70ED10", Offset = "0x70DD10", VA = "0x18070ED10", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600A8A6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP256K1FieldElement[exp:ECFieldElement](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: 0x0600A8A7 RID: 43175 RVA: 0x00245C44 File Offset: 0x00243E44
[Token(Token = "0x600A8A7")]
[Address(RVA = "0x70EDA0", Offset = "0x70DDA0", VA = "0x18070EDA0", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600A8A7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP256K1FieldElement[exp:ECFieldElement](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: 0x0600A8A8 RID: 43176 RVA: 0x00245C60 File Offset: 0x00243E60
[Token(Token = "0x600A8A8")]
[Address(RVA = "0x6E5860", Offset = "0x6E4860", VA = "0x1806E5860", Slot = "27")]
public virtual bool Equals(SecP256K1FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
return Nat256.Eq(this.x, array);
}
}
return true;
}
// Token: 0x0600A8A9 RID: 43177 RVA: 0x00245C8C File Offset: 0x00243E8C
[Token(Token = "0x600A8A9")]
[Address(RVA = "0x70EE30", Offset = "0x70DE30", VA = "0x18070EE30", Slot = "2")]
public override int GetHashCode()
{
SecP256K1FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 8);
}
// Token: 0x04006D6E RID: 28014
[Token(Token = "0x4006D6E")]
public static readonly BigInteger Q = SecP256K1Curve.q;
// Token: 0x04006D6F RID: 28015
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D6F")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,326 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B3D RID: 6973
[Token(Token = "0x2001B3D")]
internal class SecP256K1Point : AbstractFpPoint
{
// Token: 0x0600A8AB RID: 43179 RVA: 0x00245CD4 File Offset: 0x00243ED4
[Token(Token = "0x600A8AB")]
[Address(RVA = "0x7119A0", Offset = "0x7109A0", VA = "0x1807119A0")]
public SecP256K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A8AC RID: 43180 RVA: 0x00245CE4 File Offset: 0x00243EE4
[Token(Token = "0x600A8AC")]
[Address(RVA = "0x7119C0", Offset = "0x7109C0", VA = "0x1807119C0")]
public SecP256K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A8AC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A8AD RID: 43181 RVA: 0x00245D0C File Offset: 0x00243F0C
[Token(Token = "0x600A8AD")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecP256K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A8AE RID: 43182 RVA: 0x00245D1C File Offset: 0x00243F1C
[Token(Token = "0x600A8AE")]
[Address(RVA = "0x7111F0", Offset = "0x7101F0", VA = "0x1807111F0", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A8AE)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecP256K1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecP256K1Point[exp: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: 0x0600A8AF RID: 43183 RVA: 0x00245D38 File Offset: 0x00243F38
[Token(Token = "0x600A8AF")]
[Address(RVA = "0x710970", Offset = "0x70F970", VA = "0x180710970", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity && !b.IsInfinity && this != b)
{
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat256.CreateExt();
uint[] array2 = Nat256.Create();
uint[] array3 = Nat256.Create();
uint[] array4 = Nat256.Create();
if (array4 == 0)
{
SecP256K1Field.Square(array4, array3);
SecP256K1Field.Multiply(array3, array3, array2);
SecP256K1Field.Multiply(array3, array3, array3);
SecP256K1Field.Multiply(array3, array3, array3);
}
SecP256K1Field.Multiply(array4, array4, array);
SecP256K1Field.Multiply(array4, array4, array4);
SecP256K1Field.Multiply(array4, array4, array4);
uint[] array5 = Nat256.Create();
int num;
if (num != 0)
{
int num2 = Nat.Sub33From(8, (uint)977, array5);
}
int num3;
if (num3 != 0)
{
int num4 = Nat.Sub33From(8, (uint)977, array2);
}
if (!Nat256.IsZero(array5))
{
SecP256K1Field.Square(array5, array3);
uint[] array6 = Nat256.Create();
SecP256K1Field.Multiply(array3, array5, array6);
SecP256K1Field.Negate(array6, array6);
SecP256K1Field.Reduce32(Nat256.AddBothTo(array3, array3, array6), array6);
SecP256K1FieldElement secP256K1FieldElement = new SecP256K1FieldElement();
secP256K1FieldElement.x = array4;
SecP256K1Field.Square(array2, array4);
uint[] x = secP256K1FieldElement.x;
if (Nat256.Sub(x, array6, x) != 0)
{
int num5 = Nat.Sub33From(8, (uint)977, x);
}
SecP256K1FieldElement secP256K1FieldElement2 = new SecP256K1FieldElement();
secP256K1FieldElement2.x = array6;
uint[] x2 = secP256K1FieldElement.x;
if (Nat256.Sub(array3, x2, array6) != 0)
{
int num6 = Nat.Sub33From(8, (uint)977, array6);
}
uint[] x3 = secP256K1FieldElement2.x;
if (Nat256.MulAddTo(x3, array2, array) == (uint)0)
{
if ("{il2cpp array field local16->}" != (ulong)(-1L))
{
goto IL_207;
}
uint[] pext = SecP256K1Field.PExt;
if (!Nat.Gte(16, array, pext))
{
goto IL_207;
}
}
uint[] pextInv = SecP256K1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, array) != (uint)0)
{
int length = SecP256K1Field.PExtInv.Length;
uint num7 = Nat.IncAt(16, array, length);
}
IL_207:
uint[] x4 = secP256K1FieldElement2.x;
SecP256K1Field.Reduce(array, x4);
SecP256K1FieldElement secP256K1FieldElement3 = new SecP256K1FieldElement();
secP256K1FieldElement3.x = array5;
SecP256K1Field.Multiply(array5, x3, array5);
uint[] x5 = secP256K1FieldElement3.x;
SecP256K1Field.Multiply(x5, array5, x5);
ECFieldElement[] array7 = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600A8B0 RID: 43184 RVA: 0x00245FBC File Offset: 0x002441BC
[Token(Token = "0x600A8B0")]
[Address(RVA = "0x711390", Offset = "0x710390", VA = "0x180711390", Slot = "30")]
public override ECPoint Twice()
{
while (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
if (y != 0)
{
if (y.IsOne)
{
break;
}
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
uint[] array = Nat256.Create();
uint[] array2 = Nat256.Create();
SecP256K1Field.Square(array, array2);
uint[] array3 = Nat256.Create();
SecP256K1Field.Reduce32(Nat256.AddBothTo(array3, array3, array3), array3);
SecP256K1Field.Multiply(array, array3, array);
int num = 0;
SecP256K1Field.Reduce32(Nat.ShiftUpBits(8, array, 2, (uint)num), array);
uint[] array4 = Nat256.Create();
int num2 = 0;
SecP256K1Field.Reduce32(Nat.ShiftUpBits(8, array2, 3, (uint)num2, array4), array4);
SecP256K1FieldElement secP256K1FieldElement = new SecP256K1FieldElement();
secP256K1FieldElement.x = array2;
SecP256K1Field.Square(array3, array2);
uint[] x2 = secP256K1FieldElement.x;
if (Nat256.Sub(x2, array, x2) != 0)
{
int num3 = Nat.Sub33From(8, (uint)977, x2);
}
uint[] x3 = secP256K1FieldElement.x;
if (Nat256.Sub(x3, array, x3) != 0)
{
int num4 = Nat.Sub33From(8, (uint)977, x3);
}
SecP256K1FieldElement secP256K1FieldElement2 = new SecP256K1FieldElement();
secP256K1FieldElement2.x = array;
uint[] x4 = secP256K1FieldElement.x;
if (Nat256.Sub(array, x4, array) != 0)
{
int num5 = Nat.Sub33From(8, (uint)977, array);
}
uint[] x5 = secP256K1FieldElement2.x;
SecP256K1Field.Multiply(x5, array3, x5);
uint[] x6 = secP256K1FieldElement2.x;
if (Nat256.Sub(x6, array4, x6) != 0)
{
int num6 = Nat.Sub33From(8, (uint)977, x6);
}
SecP256K1FieldElement secP256K1FieldElement3 = new SecP256K1FieldElement();
secP256K1FieldElement3.x = array3;
uint num7;
if (num7 == (uint)0)
{
if ("{il2cpp array field local24->}" != (ulong)(-1L))
{
goto IL_1EF;
}
uint[] p = SecP256K1Field.P;
if (!Nat256.Gte(array3, p))
{
goto IL_1EF;
}
}
uint num8 = Nat.Add33To(8, (uint)977, array3);
IL_1EF:
if (ecfieldElement.BitLength == 0)
{
uint[] x7 = secP256K1FieldElement3.x;
}
(new ECFieldElement[1])[0] = secP256K1FieldElement3;
bool withCompression = this.m_withCompression;
break;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A8B1 RID: 43185 RVA: 0x002461E8 File Offset: 0x002443E8
[Token(Token = "0x600A8B1")]
[Address(RVA = "0x6ECFE0", Offset = "0x6EBFE0", VA = "0x1806ECFE0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
bool flag2 = base.SatisfiesCurveEquation();
}
return b;
}
bool flag3 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600A8B2 RID: 43186 RVA: 0x00246238 File Offset: 0x00244438
[Token(Token = "0x600A8B2")]
[Address(RVA = "0x6ECF60", Offset = "0x6EBF60", VA = "0x1806ECF60", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600A8B3 RID: 43187 RVA: 0x00246268 File Offset: 0x00244468
[Token(Token = "0x600A8B3")]
[Address(RVA = "0x711290", Offset = "0x710290", VA = "0x180711290", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,340 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B3E RID: 6974
[Token(Token = "0x2001B3E")]
internal class SecP256R1Curve : AbstractFpCurve
{
// Token: 0x0600A8B4 RID: 43188 RVA: 0x002462A0 File Offset: 0x002444A0
[Token(Token = "0x600A8B4")]
[Address(RVA = "0x712110", Offset = "0x711110", VA = "0x180712110")]
public SecP256R1Curve()
{
BigInteger bigInteger = SecP256R1Curve.q;
base..ctor(bigInteger);
int num;
int num2;
SecP256R1Point secP256R1Point = new SecP256R1Point(this, num, num2);
num2 = 0;
num = 0;
this.m_infinity = secP256R1Point;
byte[] array = Hex.Decode("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC");
BigInteger bigInteger2 = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B");
BigInteger bigInteger3 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551");
BigInteger bigInteger4 = new BigInteger(1, array3);
this.m_order = bigInteger4;
BigInteger one = BigInteger.One;
this.m_cofactor = one;
this.m_coord = (int)((ulong)2L);
}
// Token: 0x0600A8B5 RID: 43189 RVA: 0x00246354 File Offset: 0x00244554
[Token(Token = "0x600A8B5")]
[Address(RVA = "0x711A80", Offset = "0x710A80", VA = "0x180711A80", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A8B5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_1_05, ldsfld:BigInteger(SecP256R1Curve::q))
stloc:SecP256R1Point(var_2_0F, newobj:SecP256R1Point(SecP256R1Point::.ctor, ldloc:SecP256R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_3)))
stloc:int32(var_3, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecP256R1Point(SecP256R1Curve::m_infinity, ldloc:SecP256R1Curve(var_0), ldloc:SecP256R1Point(var_2_0F))
stloc:uint8[](var_6_26, call:uint8[](Hex::Decode, ldstr:string("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC")))
stloc:BigInteger(var_7_30, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_6_26)))
stloc:int32(var_8_38, callvirtgetter:int32(SecP256R1Curve::get_FieldSize, ldloc:SecP256R1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecP256R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_8_38))
stloc:uint8[](var_9_4C, call:uint8[](Hex::Decode, ldstr:string("5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B")))
stloc:BigInteger(var_10_56, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_9_4C)))
stloc:int32(var_11_5E, callvirtgetter:int32(SecP256R1Curve::get_FieldSize, ldloc:SecP256R1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecP256R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_11_5E))
stloc:uint8[](var_12_72, call:uint8[](Hex::Decode, ldstr:string("FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551")))
stloc:BigInteger(var_13_7C, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_12_72)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecP256R1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_13_7C))
stloc:BigInteger(var_14_8B, ldsfld:BigInteger(BigInteger::One))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecP256R1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_14_8B))
stfld:int32(ECCurve::m_coord, ldloc:SecP256R1Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](2)))
}
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: 0x0600A8B6 RID: 43190 RVA: 0x00246400 File Offset: 0x00244600
[Token(Token = "0x600A8B6")]
[Address(RVA = "0x6E9C20", Offset = "0x6E8C20", VA = "0x1806E9C20", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 2;
}
// Token: 0x17001A6A RID: 6762
// (get) Token: 0x0600A8B7 RID: 43191 RVA: 0x00246414 File Offset: 0x00244614
[Token(Token = "0x17001A6A")]
public virtual BigInteger Q
{
[Token(Token = "0x600A8B7")]
[Address(RVA = "0x712360", Offset = "0x711360", VA = "0x180712360", Slot = "38")]
get
{
return SecP256R1Curve.q;
}
}
// Token: 0x17001A6B RID: 6763
// (get) Token: 0x0600A8B8 RID: 43192 RVA: 0x00246428 File Offset: 0x00244628
[Token(Token = "0x17001A6B")]
public override ECPoint Infinity
{
[Token(Token = "0x600A8B8")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A8B8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP256R1Point(var_0_06, ldfld:SecP256R1Point(SecP256R1Curve::m_infinity, ldloc:SecP256R1Curve(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: 0x17001A6C RID: 6764
// (get) Token: 0x0600A8B9 RID: 43193 RVA: 0x0024643C File Offset: 0x0024463C
[Token(Token = "0x17001A6C")]
public override int FieldSize
{
[Token(Token = "0x600A8B9")]
[Address(RVA = "0x7122F0", Offset = "0x7112F0", VA = "0x1807122F0", Slot = "4")]
get
{
return SecP256R1Curve.q.BitLength;
}
}
// Token: 0x0600A8BA RID: 43194 RVA: 0x0024645C File Offset: 0x0024465C
[Token(Token = "0x600A8BA")]
[Address(RVA = "0x712010", Offset = "0x711010", VA = "0x180712010", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A8BA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP256R1FieldElement(var_0_06, newobj:SecP256R1FieldElement(SecP256R1FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600A8BB RID: 43195 RVA: 0x00246470 File Offset: 0x00244670
[Token(Token = "0x600A8BB")]
[Address(RVA = "0x711EE0", Offset = "0x710EE0", VA = "0x180711EE0", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A8BB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP256R1Point(var_0_09, newobj:SecP256R1Point(SecP256R1Point::.ctor, ldloc:SecP256R1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A8BC RID: 43196 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A8BC")]
[Address(RVA = "0x711F70", Offset = "0x710F70", VA = "0x180711F70", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A8BD RID: 43197 RVA: 0x00246488 File Offset: 0x00244688
[Token(Token = "0x600A8BD")]
[Address(RVA = "0x711C80", Offset = "0x710C80", VA = "0x180711C80", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[len];
num = 0;
if (len <= 0)
{
goto IL_4A;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 16;
IL_4A:
SecP256R1Curve.SecP256R1LookupTable secP256R1LookupTable;
secP256R1LookupTable.m_outer = 0;
secP256R1LookupTable.m_table = array;
secP256R1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x0600A8BE RID: 43198 RVA: 0x002464FC File Offset: 0x002446FC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A8BE")]
[Address(RVA = "0x712070", Offset = "0x711070", VA = "0x180712070")]
static SecP256R1Curve()
{
byte[] array = Hex.Decode("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF");
SecP256R1Curve.q = new BigInteger(1, array);
}
// Token: 0x04006D70 RID: 28016
[Token(Token = "0x4006D70")]
public static readonly BigInteger q;
// Token: 0x04006D71 RID: 28017
[Token(Token = "0x4006D71")]
private const int SECP256R1_DEFAULT_COORDS = 2;
// Token: 0x04006D72 RID: 28018
[Token(Token = "0x4006D72")]
private const int SECP256R1_FE_INTS = 8;
// Token: 0x04006D73 RID: 28019
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006D73")]
protected readonly SecP256R1Point m_infinity;
// Token: 0x02001B3F RID: 6975
[Token(Token = "0x2001B3F")]
private class SecP256R1LookupTable : ECLookupTable
{
// Token: 0x0600A8BF RID: 43199 RVA: 0x00246520 File Offset: 0x00244720
[Token(Token = "0x600A8BF")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecP256R1LookupTable(SecP256R1Curve outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A6D RID: 6765
// (get) Token: 0x0600A8C0 RID: 43200 RVA: 0x00246548 File Offset: 0x00244748
[Token(Token = "0x17001A6D")]
public virtual int Size
{
[Token(Token = "0x600A8C0")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A8C1 RID: 43201 RVA: 0x0024655C File Offset: 0x0024475C
[Token(Token = "0x600A8C1")]
[Address(RVA = "0x713820", Offset = "0x712820", VA = "0x180713820", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat256.Create();
uint[] array2 = Nat256.Create();
int num = 0;
int num2 = 0;
if (this.m_size > num2)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 16;
num2++;
}
SecP256R1Curve outer = this.m_outer;
SecP256R1FieldElement secP256R1FieldElement = new SecP256R1FieldElement(array);
SecP256R1FieldElement secP256R1FieldElement2 = new SecP256R1FieldElement(array2);
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006D74 RID: 28020
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D74")]
private readonly SecP256R1Curve m_outer;
// Token: 0x04006D75 RID: 28021
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006D75")]
private readonly uint[] m_table;
// Token: 0x04006D76 RID: 28022
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006D76")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,432 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B40 RID: 6976
[Token(Token = "0x2001B40")]
internal class SecP256R1Field
{
// Token: 0x0600A8C2 RID: 43202 RVA: 0x002465D8 File Offset: 0x002447D8
[Token(Token = "0x600A8C2")]
[Address(RVA = "0x712740", Offset = "0x711740", VA = "0x180712740")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
if (Nat256.Add(x, y, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP256R1Field.P;
if (!Nat256.Gte(z, p))
{
return;
}
}
SecP256R1Field.AddPInvTo(z);
}
// Token: 0x0600A8C3 RID: 43203 RVA: 0x00246618 File Offset: 0x00244818
[Token(Token = "0x600A8C3")]
[Address(RVA = "0x7123C0", Offset = "0x7113C0", VA = "0x1807123C0")]
public static void AddExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Add(16, xx, yy, zz) == (uint)0)
{
uint[] pext = SecP256R1Field.PExt;
if (!Nat.Gte(16, zz, pext))
{
return;
}
}
uint[] pext2 = SecP256R1Field.PExt;
int num = Nat.SubFrom(16, pext2, zz);
}
// Token: 0x0600A8C4 RID: 43204 RVA: 0x0024665C File Offset: 0x0024485C
[Token(Token = "0x600A8C4")]
[Address(RVA = "0x7124E0", Offset = "0x7114E0", VA = "0x1807124E0")]
public static void AddOne(uint[] x, uint[] z)
{
if (Nat.Inc(8, x, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP256R1Field.P;
if (!Nat256.Gte(z, p))
{
return;
}
}
SecP256R1Field.AddPInvTo(z);
}
// Token: 0x0600A8C5 RID: 43205 RVA: 0x0024669C File Offset: 0x0024489C
[Token(Token = "0x600A8C5")]
[Address(RVA = "0x712830", Offset = "0x711830", VA = "0x180712830")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat256.FromBigInteger(x);
if ("{il2cpp array field local2->}" == (ulong)(-1L))
{
uint[] p = SecP256R1Field.P;
if (Nat256.Gte(array, p))
{
int num = Nat256.SubFrom(SecP256R1Field.P, array);
}
}
return array;
}
// Token: 0x0600A8C6 RID: 43206 RVA: 0x002466E0 File Offset: 0x002448E0
[Token(Token = "0x600A8C6")]
[Address(RVA = "0x712920", Offset = "0x711920", VA = "0x180712920")]
public static void Half(uint[] x, uint[] z)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
uint[] p = SecP256R1Field.P;
uint num = Nat256.Add(x, p, z);
uint num2 = Nat.ShiftDownBit(8, z, num);
return;
}
int num3 = 0;
uint num4 = Nat.ShiftDownBit(8, x, (uint)num3, z);
}
// Token: 0x0600A8C7 RID: 43207 RVA: 0x00246724 File Offset: 0x00244924
[Token(Token = "0x600A8C7")]
[Address(RVA = "0x712B20", Offset = "0x711B20", VA = "0x180712B20")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Mul(x, y, array);
SecP256R1Field.Reduce(array, z);
}
// Token: 0x0600A8C8 RID: 43208 RVA: 0x00246748 File Offset: 0x00244948
[Token(Token = "0x600A8C8")]
[Address(RVA = "0x712A00", Offset = "0x711A00", VA = "0x180712A00")]
public static void MultiplyAddToExt(uint[] x, uint[] y, uint[] zz)
{
if (Nat256.MulAddTo(x, y, zz) == (uint)0)
{
uint[] pext = SecP256R1Field.PExt;
if (!Nat.Gte(16, zz, pext))
{
return;
}
}
uint[] pext2 = SecP256R1Field.PExt;
int num = Nat.SubFrom(16, pext2, zz);
}
// Token: 0x0600A8C9 RID: 43209 RVA: 0x0024678C File Offset: 0x0024498C
[Token(Token = "0x600A8C9")]
[Address(RVA = "0x712BC0", Offset = "0x711BC0", VA = "0x180712BC0")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat256.IsZero(x))
{
int num = Nat256.Sub(SecP256R1Field.P, x, z);
return;
}
Nat256.Zero(z);
}
// Token: 0x0600A8CA RID: 43210 RVA: 0x002467B8 File Offset: 0x002449B8
[Token(Token = "0x600A8CA")]
[Address(RVA = "0x712E90", Offset = "0x711E90", VA = "0x180712E90")]
public static void Reduce(uint[] xx, uint[] z)
{
int length = xx.Length;
uint num = xx[4];
uint num2 = xx[5];
uint num3 = xx[5];
uint num4 = xx[6];
uint num5 = xx[7];
uint num6 = xx[7];
uint num7 = xx[4];
uint num8 = xx[0];
num3 -= num6;
num3 += num2;
num4 -= num;
num4 -= num7;
num8 -= num4;
z[0] = num8;
uint num9 = xx[0];
num9 += num8;
num9 -= num2;
num9 -= num3;
z[0] = num9;
uint num10 = xx[1];
num10 += num9;
num10 += num3;
z[1] = num10;
uint num11 = xx[1];
num11 += num10;
num10 -= num2;
num10 += num4;
z[1] = num10;
uint num12 = xx[2];
num12 += num10;
num10 += num5;
z[2] = num10;
uint num13 = xx[2];
num13 += num10;
num10 -= num3;
z[2] = num10;
uint num14 = xx[3];
num10 += num4;
num10 += num14;
z[3] = num4;
uint num15 = xx[3];
num15 += num4;
z[3] = xx;
}
// Token: 0x0600A8CB RID: 43211 RVA: 0x00246920 File Offset: 0x00244B20
[Token(Token = "0x600A8CB")]
[Address(RVA = "0x712C60", Offset = "0x711C60", VA = "0x180712C60")]
public static void Reduce32(uint x, uint[] z)
{
if (x != (uint)0)
{
uint num = z[0];
num += x;
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
uint num3 = z[1];
num += num3;
z[1] = num;
}
uint num4 = z[1];
num4 -= x;
num += num4;
z[1] = num;
if (num != (uint)0)
{
uint num5 = z[2];
num += num5;
z[2] = num;
uint num6 = z[2];
num += num6;
z[2] = num;
}
uint num7 = z[3];
num7 -= x;
num += num7;
z[3] = num;
uint num8 = z[3];
num8 += num7;
z[3] = num8;
if (num8 != (uint)0)
{
goto IL_E9;
}
}
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP256R1Field.P;
if (!Nat256.Gte(z, p))
{
return;
}
IL_E9:
SecP256R1Field.AddPInvTo(z);
}
// Token: 0x0600A8CC RID: 43212 RVA: 0x00246A24 File Offset: 0x00244C24
[Token(Token = "0x600A8CC")]
[Address(RVA = "0x713360", Offset = "0x712360", VA = "0x180713360")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Square(x, array);
SecP256R1Field.Reduce(array, z);
}
// Token: 0x0600A8CD RID: 43213 RVA: 0x00246A48 File Offset: 0x00244C48
[Token(Token = "0x600A8CD")]
[Address(RVA = "0x713280", Offset = "0x712280", VA = "0x180713280")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat256.CreateExt();
Nat256.Square(x, array);
SecP256R1Field.Reduce(array, z);
if (n > 0)
{
Nat256.Square(z, array);
SecP256R1Field.Reduce(array, z);
}
}
// Token: 0x0600A8CE RID: 43214 RVA: 0x00246A80 File Offset: 0x00244C80
[Token(Token = "0x600A8CE")]
[Address(RVA = "0x713610", Offset = "0x712610", VA = "0x180713610")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
if (Nat256.Sub(x, y, z) != 0)
{
SecP256R1Field.SubPInvFrom(z);
}
}
// Token: 0x0600A8CF RID: 43215 RVA: 0x00246AA0 File Offset: 0x00244CA0
[Token(Token = "0x600A8CF")]
[Address(RVA = "0x713560", Offset = "0x712560", VA = "0x180713560")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(16, xx, yy, zz) != 0)
{
uint[] pext = SecP256R1Field.PExt;
uint num = Nat.AddTo(16, pext, zz);
}
}
// Token: 0x0600A8D0 RID: 43216 RVA: 0x00246ACC File Offset: 0x00244CCC
[Token(Token = "0x600A8D0")]
[Address(RVA = "0x713690", Offset = "0x712690", VA = "0x180713690")]
public static void Twice(uint[] x, uint[] z)
{
int num = 0;
if (Nat.ShiftUpBit(8, x, (uint)num, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP256R1Field.P;
if (!Nat256.Gte(z, p))
{
return;
}
}
SecP256R1Field.AddPInvTo(z);
}
// Token: 0x0600A8D1 RID: 43217 RVA: 0x00246B10 File Offset: 0x00244D10
[Token(Token = "0x600A8D1")]
[Address(RVA = "0x7125D0", Offset = "0x7115D0", VA = "0x1807125D0")]
private static void AddPInvTo(uint[] z)
{
uint num = z[0];
num += (uint)1;
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num2 += num;
z[0] = num2;
uint num3 = z[1];
num3 += num2;
z[1] = num3;
}
uint num4 = z[1];
num += num4;
z[1] = num;
if (num != (uint)0)
{
uint num5 = z[2];
num += num5;
z[2] = num;
uint num6 = z[2];
num += num6;
z[2] = num;
}
uint num7 = z[3];
num7 += num;
z[3] = num7;
uint num8 = z[3];
num8 += (uint)1;
num8 += num7;
z[3] = num8;
}
// Token: 0x0600A8D2 RID: 43218 RVA: 0x00246BE4 File Offset: 0x00244DE4
[Token(Token = "0x600A8D2")]
[Address(RVA = "0x7133F0", Offset = "0x7123F0", VA = "0x1807133F0")]
private static void SubPInvFrom(uint[] z)
{
uint num = z[0];
z[0] = num;
if (num != (uint)0)
{
uint num2 = z[0];
num += num2;
z[0] = num;
uint num3 = z[1];
num += num3;
z[1] = num;
}
uint num4 = z[1];
num4 += (uint)1;
num4 += num;
z[1] = num4;
if (num4 != (uint)0)
{
uint num5 = z[2];
num4 += num5;
z[2] = num4;
uint num6 = z[2];
num4 += num6;
z[2] = num4;
}
uint num7 = z[3];
num7 += (uint)1;
num7 += num4;
z[3] = num7;
uint num8 = z[3];
num7 += num8;
z[3] = num7;
}
// Token: 0x0600A8D3 RID: 43219 RVA: 0x00246CB8 File Offset: 0x00244EB8
[Token(Token = "0x600A8D3")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecP256R1Field()
{
}
// Token: 0x0600A8D4 RID: 43220 RVA: 0x00246CCC File Offset: 0x00244ECC
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A8D4")]
[Address(RVA = "0x713780", Offset = "0x712780", VA = "0x180713780")]
static SecP256R1Field()
{
uint[] array = new uint[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.083DE622A9A685DC50D8D5653CB388A41343C8EC).FieldHandle);
SecP256R1Field.P = array;
uint[] array2 = new uint[16];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.214F93D9222D60794CE1EA0A10389885C5CA9824).FieldHandle);
SecP256R1Field.PExt = array2;
}
// Token: 0x04006D77 RID: 28023
[Token(Token = "0x4006D77")]
internal static readonly uint[] P;
// Token: 0x04006D78 RID: 28024
[Token(Token = "0x4006D78")]
internal static readonly uint[] PExt;
// Token: 0x04006D79 RID: 28025
[Token(Token = "0x4006D79")]
internal const uint P7 = 4294967295U;
// Token: 0x04006D7A RID: 28026
[Token(Token = "0x4006D7A")]
internal const uint PExt15 = 4294967294U;
}
}
@@ -0,0 +1,443 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B41 RID: 6977
[Token(Token = "0x2001B41")]
internal class SecP256R1FieldElement : AbstractFpFieldElement
{
// Token: 0x0600A8D5 RID: 43221 RVA: 0x00246D0C File Offset: 0x00244F0C
[Token(Token = "0x600A8D5")]
[Address(RVA = "0x7E5870", Offset = "0x7E4870", VA = "0x1807E5870")]
public SecP256R1FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A8D5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_27:
stloc:ArgumentException(var_3_36, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecP256R1FieldElement"), ldstr:string("x")))
}
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: 0x0600A8D6 RID: 43222 RVA: 0x00246D50 File Offset: 0x00244F50
[Token(Token = "0x600A8D6")]
[Address(RVA = "0x70F700", Offset = "0x70E700", VA = "0x18070F700")]
public SecP256R1FieldElement()
{
uint[] array = Nat256.Create();
this.x = array;
}
// Token: 0x0600A8D7 RID: 43223 RVA: 0x00246D74 File Offset: 0x00244F74
[Token(Token = "0x600A8D7")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecP256R1FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001A6E RID: 6766
// (get) Token: 0x0600A8D8 RID: 43224 RVA: 0x00246D90 File Offset: 0x00244F90
[Token(Token = "0x17001A6E")]
public override bool IsZero
{
[Token(Token = "0x600A8D8")]
[Address(RVA = "0x6E6550", Offset = "0x6E5550", VA = "0x1806E6550", Slot = "18")]
get
{
return Nat256.IsZero(this.x);
}
}
// Token: 0x17001A6F RID: 6767
// (get) Token: 0x0600A8D9 RID: 43225 RVA: 0x00246DA8 File Offset: 0x00244FA8
[Token(Token = "0x17001A6F")]
public override bool IsOne
{
[Token(Token = "0x600A8D9")]
[Address(RVA = "0x6E6540", Offset = "0x6E5540", VA = "0x1806E6540", Slot = "17")]
get
{
return Nat256.IsOne(this.x);
}
}
// Token: 0x0600A8DA RID: 43226 RVA: 0x00246DC0 File Offset: 0x00244FC0
[Token(Token = "0x600A8DA")]
[Address(RVA = "0x6E61E0", Offset = "0x6E51E0", VA = "0x1806E61E0", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat256.GetBit(array, num) == (uint)1;
}
// Token: 0x0600A8DB RID: 43227 RVA: 0x00246DE4 File Offset: 0x00244FE4
[Token(Token = "0x600A8DB")]
[Address(RVA = "0x6E6200", Offset = "0x6E5200", VA = "0x1806E6200", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat256.ToBigInteger(this.x);
}
// Token: 0x17001A70 RID: 6768
// (get) Token: 0x0600A8DC RID: 43228 RVA: 0x00246DFC File Offset: 0x00244FFC
[Token(Token = "0x17001A70")]
public override string FieldName
{
[Token(Token = "0x600A8DC")]
[Address(RVA = "0x7E5960", Offset = "0x7E4960", VA = "0x1807E5960", Slot = "5")]
get
{
return "SecP256R1Field";
}
}
// Token: 0x17001A71 RID: 6769
// (get) Token: 0x0600A8DD RID: 43229 RVA: 0x00246E10 File Offset: 0x00245010
[Token(Token = "0x17001A71")]
public override int FieldSize
{
[Token(Token = "0x600A8DD")]
[Address(RVA = "0x7E5990", Offset = "0x7E4990", VA = "0x1807E5990", Slot = "6")]
get
{
return SecP256R1FieldElement.Q.BitLength;
}
}
// Token: 0x0600A8DE RID: 43230 RVA: 0x00246E30 File Offset: 0x00245030
[Token(Token = "0x600A8DE")]
[Address(RVA = "0x7E4CF0", Offset = "0x7E3CF0", VA = "0x1807E4CF0", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP256R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP256R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A8DF RID: 43231 RVA: 0x00246E78 File Offset: 0x00245078
[Token(Token = "0x600A8DF")]
[Address(RVA = "0x7E4C60", Offset = "0x7E3C60", VA = "0x1807E4C60", Slot = "8")]
public override ECFieldElement AddOne()
{
/*
An exception occurred when decompiling this method (0600A8DF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1FieldElement::AddOne()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
call:void(SecP256R1Field::AddOne, ldfld:uint32[](SecP256R1FieldElement::x, ldloc:SecP256R1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP256R1FieldElement::x, newobj:SecP256R1FieldElement(SecP256R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A8E0 RID: 43232 RVA: 0x00246EA4 File Offset: 0x002450A4
[Token(Token = "0x600A8E0")]
[Address(RVA = "0x7E56C0", Offset = "0x7E46C0", VA = "0x1807E56C0", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP256R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP256R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A8E1 RID: 43233 RVA: 0x00246EEC File Offset: 0x002450EC
[Token(Token = "0x600A8E1")]
[Address(RVA = "0x7E5260", Offset = "0x7E4260", VA = "0x1807E5260", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP256R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP256R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A8E2 RID: 43234 RVA: 0x00246F34 File Offset: 0x00245134
[Token(Token = "0x600A8E2")]
[Address(RVA = "0x7E4E30", Offset = "0x7E3E30", VA = "0x1807E4E30", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat256.Create();
uint[] p = SecP256R1Field.P;
if ("{il2cpp array field local3->}" == typeof(SecP256R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
SecP256R1Field.Multiply(array, array2, array);
new SecP256R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A8E3 RID: 43235 RVA: 0x00246F8C File Offset: 0x0024518C
[Token(Token = "0x600A8E3")]
[Address(RVA = "0x7E53A0", Offset = "0x7E43A0", VA = "0x1807E53A0", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600A8E3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
call:void(SecP256R1Field::Negate, ldfld:uint32[](SecP256R1FieldElement::x, ldloc:SecP256R1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP256R1FieldElement::x, newobj:SecP256R1FieldElement(SecP256R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A8E4 RID: 43236 RVA: 0x00246FB8 File Offset: 0x002451B8
[Token(Token = "0x600A8E4")]
[Address(RVA = "0x7E5630", Offset = "0x7E4630", VA = "0x1807E5630", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600A8E4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
call:void(SecP256R1Field::Square, ldfld:uint32[](SecP256R1FieldElement::x, ldloc:SecP256R1FieldElement(this)), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP256R1FieldElement::x, newobj:SecP256R1FieldElement(SecP256R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A8E5 RID: 43237 RVA: 0x00246FE4 File Offset: 0x002451E4
[Token(Token = "0x600A8E5")]
[Address(RVA = "0x7E5190", Offset = "0x7E4190", VA = "0x1807E5190", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600A8E5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_1_07, call:uint32[](Nat256::Create))
stloc:uint32[](var_2_0E, ldfld:uint32[](SecP256R1FieldElement::x, ldloc:SecP256R1FieldElement(this)))
call:void(Mod::Invert, ldsfld:uint32[](SecP256R1Field::P), ldloc:uint32[](var_2_0E), ldloc:uint32[](var_1_07))
stfld:uint32[](SecP256R1FieldElement::x, newobj:SecP256R1FieldElement(SecP256R1FieldElement::.ctor), ldloc:uint32[](var_1_07))
}
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: 0x0600A8E6 RID: 43238 RVA: 0x00247018 File Offset: 0x00245218
[Token(Token = "0x600A8E6")]
[Address(RVA = "0x7E5430", Offset = "0x7E4430", VA = "0x1807E5430", Slot = "15")]
public override ECFieldElement Sqrt()
{
uint[] array;
do
{
array = this.x;
}
while (Nat256.IsZero(array) || Nat256.IsOne(array));
uint[] array2 = Nat256.Create();
uint[] array3 = Nat256.Create();
SecP256R1Field.Square(array, array2);
SecP256R1Field.Multiply(array2, array, array2);
SecP256R1Field.SquareN(array2, 2, array3);
SecP256R1Field.Multiply(array3, array2, array3);
SecP256R1Field.SquareN(array3, 4, array2);
SecP256R1Field.Multiply(array2, array3, array2);
SecP256R1Field.SquareN(array2, 8, array3);
SecP256R1Field.Multiply(array3, array2, array3);
SecP256R1Field.SquareN(array3, 16, array2);
SecP256R1Field.Multiply(array2, array3, array2);
SecP256R1Field.SquareN(array2, 32, array2);
SecP256R1Field.Multiply(array2, array, array2);
SecP256R1Field.SquareN(array2, 96, array2);
SecP256R1Field.Multiply(array2, array, array2);
SecP256R1Field.SquareN(array2, 94, array2);
SecP256R1Field.Multiply(array2, array2, array3);
if (Nat256.Eq(array, array3))
{
new SecP256R1FieldElement().x = array2;
return;
}
}
// Token: 0x0600A8E7 RID: 43239 RVA: 0x002470F8 File Offset: 0x002452F8
[Token(Token = "0x600A8E7")]
[Address(RVA = "0x7E4FB0", Offset = "0x7E3FB0", VA = "0x1807E4FB0", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600A8E7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP256R1FieldElement[exp:ECFieldElement](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: 0x0600A8E8 RID: 43240 RVA: 0x00247114 File Offset: 0x00245314
[Token(Token = "0x600A8E8")]
[Address(RVA = "0x7E5040", Offset = "0x7E4040", VA = "0x1807E5040", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600A8E8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP256R1FieldElement[exp:ECFieldElement](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: 0x0600A8E9 RID: 43241 RVA: 0x00247130 File Offset: 0x00245330
[Token(Token = "0x600A8E9")]
[Address(RVA = "0x6E5860", Offset = "0x6E4860", VA = "0x1806E5860", Slot = "27")]
public virtual bool Equals(SecP256R1FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
return Nat256.Eq(this.x, array);
}
}
return true;
}
// Token: 0x0600A8EA RID: 43242 RVA: 0x0024715C File Offset: 0x0024535C
[Token(Token = "0x600A8EA")]
[Address(RVA = "0x7E50D0", Offset = "0x7E40D0", VA = "0x1807E50D0", Slot = "2")]
public override int GetHashCode()
{
SecP256R1FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 8);
}
// Token: 0x04006D7B RID: 28027
[Token(Token = "0x4006D7B")]
public static readonly BigInteger Q = SecP256R1Curve.q;
// Token: 0x04006D7C RID: 28028
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D7C")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,294 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B42 RID: 6978
[Token(Token = "0x2001B42")]
internal class SecP256R1Point : AbstractFpPoint
{
// Token: 0x0600A8EC RID: 43244 RVA: 0x002471A4 File Offset: 0x002453A4
[Token(Token = "0x600A8EC")]
[Address(RVA = "0x7E6880", Offset = "0x7E5880", VA = "0x1807E6880")]
public SecP256R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
/*
An exception occurred when decompiling this method (0600A8EC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1B:
stloc:ArgumentException(var_3_25, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A8ED RID: 43245 RVA: 0x002471D8 File Offset: 0x002453D8
[Token(Token = "0x600A8ED")]
[Address(RVA = "0x7E6940", Offset = "0x7E5940", VA = "0x1807E6940")]
public SecP256R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A8ED)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A8EE RID: 43246 RVA: 0x00247200 File Offset: 0x00245400
[Token(Token = "0x600A8EE")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecP256R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A8EF RID: 43247 RVA: 0x00247210 File Offset: 0x00245410
[Token(Token = "0x600A8EF")]
[Address(RVA = "0x7E60D0", Offset = "0x7E50D0", VA = "0x1807E60D0", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A8EF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1E:
stloc:ArgumentException(var_5_28, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A8F0 RID: 43248 RVA: 0x00247248 File Offset: 0x00245448
[Token(Token = "0x600A8F0")]
[Address(RVA = "0x7E5A00", Offset = "0x7E4A00", VA = "0x1807E5A00", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this == b)
{
return b;
}
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat256.CreateExt();
uint[] array2 = Nat256.Create();
uint[] array3 = Nat256.Create();
uint[] array4 = Nat256.Create();
if (array4 == 0)
{
SecP256R1Field.Square(array4, array3);
SecP256R1Field.Multiply(array3, array3, array2);
SecP256R1Field.Multiply(array3, array3, array3);
SecP256R1Field.Multiply(array3, array3, array3);
}
SecP256R1Field.Multiply(array4, array4, array);
SecP256R1Field.Multiply(array4, array4, array4);
SecP256R1Field.Multiply(array4, array4, array4);
uint[] array5 = Nat256.Create();
SecP256R1Field.Subtract(array, array4, array5);
if (!Nat256.IsZero(array5))
{
SecP256R1Field.Square(array5, array3);
uint[] array6 = Nat256.Create();
SecP256R1Field.Multiply(array3, array5, array6);
SecP256R1Field.Multiply(array3, array, array3);
SecP256R1Field.Negate(array6, array6);
SecP256R1Field.Reduce32(Nat256.AddBothTo(array3, array3, array6), array6);
SecP256R1FieldElement secP256R1FieldElement = new SecP256R1FieldElement();
secP256R1FieldElement.x = array4;
SecP256R1Field.Square(array2, array4);
uint[] x = secP256R1FieldElement.x;
SecP256R1Field.Subtract(x, array6, x);
SecP256R1FieldElement secP256R1FieldElement2 = new SecP256R1FieldElement();
secP256R1FieldElement2.x = array6;
uint[] x2 = secP256R1FieldElement.x;
SecP256R1Field.Subtract(array3, x2, array6);
SecP256R1Field.MultiplyAddToExt(secP256R1FieldElement2.x, array2, array);
uint[] x3 = secP256R1FieldElement2.x;
SecP256R1Field.Reduce(array, x3);
SecP256R1FieldElement secP256R1FieldElement3 = new SecP256R1FieldElement();
secP256R1FieldElement3.x = array5;
SecP256R1Field.Multiply(array5, array3, array5);
uint[] x4 = secP256R1FieldElement3.x;
ECFieldElement[] array7 = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600A8F1 RID: 43249 RVA: 0x0024742C File Offset: 0x0024562C
[Token(Token = "0x600A8F1")]
[Address(RVA = "0x7E62D0", Offset = "0x7E52D0", VA = "0x1807E62D0", Slot = "30")]
public override ECPoint Twice()
{
while (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
if (y != 0)
{
if (y.IsOne)
{
break;
}
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
uint[] array = Nat256.Create();
uint[] array2 = Nat256.Create();
uint[] array3 = Nat256.Create();
uint[] array4 = Nat256.Create();
SecP256R1Field.Square(array3, array4);
if (ecfieldElement.BitLength == 0)
{
}
SecP256R1Field.Multiply(array2, array, array2);
SecP256R1Field.Reduce32(Nat256.AddBothTo(array2, array2, array2), array2);
SecP256R1Field.Multiply(array3, array2, array3);
int num = 0;
SecP256R1Field.Reduce32(Nat.ShiftUpBits(8, array3, 2, (uint)num), array3);
int num2 = 0;
SecP256R1Field.Reduce32(Nat.ShiftUpBits(8, array4, 3, (uint)num2, array), array);
SecP256R1FieldElement secP256R1FieldElement = new SecP256R1FieldElement();
secP256R1FieldElement.x = array4;
SecP256R1Field.Square(array2, array4);
uint[] x2 = secP256R1FieldElement.x;
SecP256R1Field.Subtract(x2, array3, x2);
uint[] x3 = secP256R1FieldElement.x;
SecP256R1Field.Subtract(x3, array3, x3);
SecP256R1FieldElement secP256R1FieldElement2 = new SecP256R1FieldElement();
secP256R1FieldElement2.x = array3;
uint[] x4 = secP256R1FieldElement.x;
SecP256R1Field.Subtract(array3, x4, array3);
uint[] x5 = secP256R1FieldElement2.x;
SecP256R1Field.Multiply(x5, array2, x5);
uint[] x6 = secP256R1FieldElement2.x;
SecP256R1Field.Subtract(x6, array, x6);
SecP256R1FieldElement secP256R1FieldElement3 = new SecP256R1FieldElement();
secP256R1FieldElement3.x = array2;
uint[] x7 = secP256R1FieldElement3.x;
(new ECFieldElement[1])[0] = secP256R1FieldElement3;
bool withCompression = this.m_withCompression;
break;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A8F2 RID: 43250 RVA: 0x002475E8 File Offset: 0x002457E8
[Token(Token = "0x600A8F2")]
[Address(RVA = "0x6ECFE0", Offset = "0x6EBFE0", VA = "0x1806ECFE0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
bool flag2 = base.SatisfiesCurveEquation();
}
return b;
}
bool flag3 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600A8F3 RID: 43251 RVA: 0x00247638 File Offset: 0x00245838
[Token(Token = "0x600A8F3")]
[Address(RVA = "0x6ECF60", Offset = "0x6EBF60", VA = "0x1806ECF60", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600A8F4 RID: 43252 RVA: 0x00247668 File Offset: 0x00245868
[Token(Token = "0x600A8F4")]
[Address(RVA = "0x7E61D0", Offset = "0x7E51D0", VA = "0x1807E61D0", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,327 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B43 RID: 6979
[Token(Token = "0x2001B43")]
internal class SecP384R1Curve : AbstractFpCurve
{
// Token: 0x0600A8F5 RID: 43253 RVA: 0x002476A0 File Offset: 0x002458A0
[Token(Token = "0x600A8F5")]
[Address(RVA = "0x7E6EF0", Offset = "0x7E5EF0", VA = "0x1807E6EF0")]
public SecP384R1Curve()
{
BigInteger bigInteger = SecP384R1Curve.q;
base..ctor(bigInteger);
int num;
int num2;
ulong num3;
SecP384R1Point secP384R1Point = new SecP384R1Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = secP384R1Point;
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC");
BigInteger bigInteger2 = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF");
BigInteger bigInteger3 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973");
BigInteger bigInteger4 = new BigInteger(1, array3);
this.m_order = bigInteger4;
BigInteger one = BigInteger.One;
this.m_cofactor = one;
this.m_coord = (int)((ulong)2L);
}
// Token: 0x0600A8F6 RID: 43254 RVA: 0x00247754 File Offset: 0x00245954
[Token(Token = "0x600A8F6")]
[Address(RVA = "0x7E6A00", Offset = "0x7E5A00", VA = "0x1807E6A00", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A8F6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP384R1Curve(var_0_05, newobj:SecP384R1Curve(SecP384R1Curve::.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.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: 0x0600A8F7 RID: 43255 RVA: 0x00247768 File Offset: 0x00245968
[Token(Token = "0x600A8F7")]
[Address(RVA = "0x6E9C20", Offset = "0x6E8C20", VA = "0x1806E9C20", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 2;
}
// Token: 0x17001A72 RID: 6770
// (get) Token: 0x0600A8F8 RID: 43256 RVA: 0x0024777C File Offset: 0x0024597C
[Token(Token = "0x17001A72")]
public virtual BigInteger Q
{
[Token(Token = "0x600A8F8")]
[Address(RVA = "0x7E7140", Offset = "0x7E6140", VA = "0x1807E7140", Slot = "38")]
get
{
return SecP384R1Curve.q;
}
}
// Token: 0x17001A73 RID: 6771
// (get) Token: 0x0600A8F9 RID: 43257 RVA: 0x00247790 File Offset: 0x00245990
[Token(Token = "0x17001A73")]
public override ECPoint Infinity
{
[Token(Token = "0x600A8F9")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A8F9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP384R1Point(var_0_06, ldfld:SecP384R1Point(SecP384R1Curve::m_infinity, ldloc:SecP384R1Curve(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: 0x17001A74 RID: 6772
// (get) Token: 0x0600A8FA RID: 43258 RVA: 0x002477A4 File Offset: 0x002459A4
[Token(Token = "0x17001A74")]
public override int FieldSize
{
[Token(Token = "0x600A8FA")]
[Address(RVA = "0x7E70D0", Offset = "0x7E60D0", VA = "0x1807E70D0", Slot = "4")]
get
{
return SecP384R1Curve.q.BitLength;
}
}
// Token: 0x0600A8FB RID: 43259 RVA: 0x002477C4 File Offset: 0x002459C4
[Token(Token = "0x600A8FB")]
[Address(RVA = "0x7E6DF0", Offset = "0x7E5DF0", VA = "0x1807E6DF0", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A8FB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP384R1FieldElement(var_0_06, newobj:SecP384R1FieldElement(SecP384R1FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600A8FC RID: 43260 RVA: 0x002477D8 File Offset: 0x002459D8
[Token(Token = "0x600A8FC")]
[Address(RVA = "0x7E6D60", Offset = "0x7E5D60", VA = "0x1807E6D60", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A8FC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP384R1Point(var_0_09, newobj:SecP384R1Point(SecP384R1Point::.ctor, ldloc:SecP384R1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A8FD RID: 43261 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A8FD")]
[Address(RVA = "0x7E6CC0", Offset = "0x7E5CC0", VA = "0x1807E6CC0", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A8FE RID: 43262 RVA: 0x002477F0 File Offset: 0x002459F0
[Token(Token = "0x600A8FE")]
[Address(RVA = "0x7E6A50", Offset = "0x7E5A50", VA = "0x1807E6A50", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[points];
num = 0;
if (len <= 0)
{
goto IL_52;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
num += 12;
if (y != 0 && y != 0)
{
break;
}
}
}
int num2 = 0;
num += 12;
IL_52:
int num3 = 0;
SecP384R1Curve.SecP384R1LookupTable secP384R1LookupTable;
secP384R1LookupTable.FieldGetter(num3, num2, array);
secP384R1LookupTable.m_outer = 0;
secP384R1LookupTable.m_table = array;
secP384R1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x0600A8FF RID: 43263 RVA: 0x0024787C File Offset: 0x00245A7C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A8FF")]
[Address(RVA = "0x7E6E50", Offset = "0x7E5E50", VA = "0x1807E6E50")]
static SecP384R1Curve()
{
byte[] array = Hex.Decode("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF");
SecP384R1Curve.q = new BigInteger(1, array);
}
// Token: 0x04006D7D RID: 28029
[Token(Token = "0x4006D7D")]
public static readonly BigInteger q;
// Token: 0x04006D7E RID: 28030
[Token(Token = "0x4006D7E")]
private const int SECP384R1_DEFAULT_COORDS = 2;
// Token: 0x04006D7F RID: 28031
[Token(Token = "0x4006D7F")]
private const int SECP384R1_FE_INTS = 12;
// Token: 0x04006D80 RID: 28032
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006D80")]
protected readonly SecP384R1Point m_infinity;
// Token: 0x02001B44 RID: 6980
[Token(Token = "0x2001B44")]
private class SecP384R1LookupTable : ECLookupTable
{
// Token: 0x0600A900 RID: 43264 RVA: 0x002478A0 File Offset: 0x00245AA0
[Token(Token = "0x600A900")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecP384R1LookupTable(SecP384R1Curve outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A75 RID: 6773
// (get) Token: 0x0600A901 RID: 43265 RVA: 0x002478C8 File Offset: 0x00245AC8
[Token(Token = "0x17001A75")]
public virtual int Size
{
[Token(Token = "0x600A901")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A902 RID: 43266 RVA: 0x002478DC File Offset: 0x00245ADC
[Token(Token = "0x600A902")]
[Address(RVA = "0x7E98B0", Offset = "0x7E88B0", VA = "0x1807E98B0", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat.Create(12);
uint[] array2 = Nat.Create(12);
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 24;
num2++;
}
SecP384R1Curve outer = this.m_outer;
new SecP384R1FieldElement().x = array;
new SecP384R1FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006D81 RID: 28033
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D81")]
private readonly SecP384R1Curve m_outer;
// Token: 0x04006D82 RID: 28034
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006D82")]
private readonly uint[] m_table;
// Token: 0x04006D83 RID: 28035
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006D83")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,486 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B45 RID: 6981
[Token(Token = "0x2001B45")]
internal class SecP384R1Field
{
// Token: 0x0600A903 RID: 43267 RVA: 0x00247954 File Offset: 0x00245B54
[Token(Token = "0x600A903")]
[Address(RVA = "0x7E8640", Offset = "0x7E7640", VA = "0x1807E8640")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
if (Nat.Add(12, x, y, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP384R1Field.P;
if (!Nat.Gte(12, z, p))
{
return;
}
}
SecP384R1Field.AddPInvTo(z);
}
// Token: 0x0600A904 RID: 43268 RVA: 0x00247998 File Offset: 0x00245B98
[Token(Token = "0x600A904")]
[Address(RVA = "0x7E82C0", Offset = "0x7E72C0", VA = "0x1807E82C0")]
public static void AddExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Add(24, xx, yy, zz) == (uint)0)
{
if ("{il2cpp array field zz->}" != (ulong)(-1L))
{
return;
}
uint[] pext = SecP384R1Field.PExt;
if (!Nat.Gte(24, zz, pext))
{
return;
}
}
uint[] pextInv = SecP384R1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, zz) != (uint)0)
{
int length = SecP384R1Field.PExtInv.Length;
uint num = Nat.IncAt(24, zz, length);
}
}
// Token: 0x0600A905 RID: 43269 RVA: 0x00247A04 File Offset: 0x00245C04
[Token(Token = "0x600A905")]
[Address(RVA = "0x7E8440", Offset = "0x7E7440", VA = "0x1807E8440")]
public static void AddOne(uint[] x, uint[] z)
{
if (Nat.Inc(12, x, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP384R1Field.P;
if (!Nat.Gte(12, z, p))
{
return;
}
}
SecP384R1Field.AddPInvTo(z);
}
// Token: 0x0600A906 RID: 43270 RVA: 0x00247A48 File Offset: 0x00245C48
[Token(Token = "0x600A906")]
[Address(RVA = "0x7E8740", Offset = "0x7E7740", VA = "0x1807E8740")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat.FromBigInteger(384, x);
if ("{il2cpp array field local2->}" == (ulong)(-1L))
{
uint[] p = SecP384R1Field.P;
if (Nat.Gte(12, array, p))
{
uint[] p2 = SecP384R1Field.P;
int num = Nat.SubFrom(12, p2, array);
}
}
return array;
}
// Token: 0x0600A907 RID: 43271 RVA: 0x00247A94 File Offset: 0x00245C94
[Token(Token = "0x600A907")]
[Address(RVA = "0x7E8840", Offset = "0x7E7840", VA = "0x1807E8840")]
public static void Half(uint[] x, uint[] z)
{
if ("{il2cpp array field x->}" != (ulong)1L)
{
uint[] p = SecP384R1Field.P;
uint num = Nat.Add(12, x, p, z);
uint num2 = Nat.ShiftDownBit(12, z, num);
return;
}
int num3 = 0;
uint num4 = Nat.ShiftDownBit(12, x, (uint)num3, z);
}
// Token: 0x0600A908 RID: 43272 RVA: 0x00247AE0 File Offset: 0x00245CE0
[Token(Token = "0x600A908")]
[Address(RVA = "0x7E8930", Offset = "0x7E7930", VA = "0x1807E8930")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat.Create(24);
Nat384.Mul(x, y, array);
SecP384R1Field.Reduce(array, z);
}
// Token: 0x0600A909 RID: 43273 RVA: 0x00247B04 File Offset: 0x00245D04
[Token(Token = "0x600A909")]
[Address(RVA = "0x7E89D0", Offset = "0x7E79D0", VA = "0x1807E89D0")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat.IsZero(12, x))
{
uint[] p = SecP384R1Field.P;
int num = Nat.Sub(12, p, x, z);
return;
}
Nat.Zero(12, z);
}
// Token: 0x0600A90A RID: 43274 RVA: 0x00247B38 File Offset: 0x00245D38
[Token(Token = "0x600A90A")]
[Address(RVA = "0x7E8C50", Offset = "0x7E7C50", VA = "0x1807E8C50")]
public static void Reduce(uint[] xx, uint[] z)
{
int length = xx.Length;
uint num = xx[8];
uint num2 = xx[8];
uint num3 = xx[9];
uint num4 = xx[9];
uint num5 = xx[10];
uint num6 = xx[10];
uint num7 = xx[11];
uint num8 = xx[11];
uint num9 = xx[6];
uint num10 = xx[7];
uint num11 = xx[6];
num9 += num5;
uint num12 = xx[7];
num10 += num8;
num11 += num7;
num10 += num7;
num12 += num8;
num6 -= num8;
num7 -= num8;
num6 += num9;
uint num13 = xx[0];
num13 += num6;
z[0] = num13;
uint num14 = xx[0];
num14 += num13;
num14 += num11;
num14 += num8;
z[0] = num14;
uint num15 = xx[1];
num15 += num14;
num15 -= num11;
num15 -= num6;
num15 += num10;
z[1] = num15;
uint num16 = xx[1];
num16 += num15;
num16 -= num10;
num16 += num6;
num16 += num12;
z[1] = num16;
uint num17 = xx[2];
num17 += num16;
num17 -= num12;
num17 += num6;
num17 += num11;
num17 += num6;
num17 += num;
z[2] = num17;
uint num18 = xx[2];
num18 += num17;
num18 -= num;
num18 += num10;
num18 += num11;
z[2] = num18;
uint num19 = xx[3];
num19 += num18;
num19 -= num2;
num19 += num12;
num19 += num10;
num19 += num3;
z[3] = num19;
uint num20 = xx[3];
num20 += num19;
num20 -= num3;
num20 += num12;
num20 += num4;
num20 += num;
z[3] = num20;
uint num21 = xx[4];
num21 += num20;
num21 -= num4;
num21 += num5;
num21 += num2;
num21 += num;
z[4] = num21;
uint num22 = xx[4];
num22 += num21;
num22 -= num5;
num22 += num3;
z[4] = num22;
uint num23 = xx[5];
num23 += num22;
num23 += num7;
num23 += num4;
num23 += num3;
z[5] = num23;
uint num24 = xx[5];
num24 += num23;
num24 -= num7;
num24 += num5;
num24 += num4;
z[5] = num24;
SecP384R1Field.Reduce32(num24 + 1U, z);
}
// Token: 0x0600A90B RID: 43275 RVA: 0x00247E24 File Offset: 0x00246024
[Token(Token = "0x600A90B")]
[Address(RVA = "0x7E8A80", Offset = "0x7E7A80", VA = "0x1807E8A80")]
public static void Reduce32(uint x, uint[] z)
{
if (x != (uint)0)
{
uint num = z[0];
num += x;
z[0] = num;
uint num2 = z[0];
num += num2;
num -= x;
z[0] = num;
if (num != (uint)0)
{
uint num3 = z[1];
num += num3;
z[1] = num;
}
uint num4 = z[1];
num4 += x;
num += num4;
z[1] = num;
uint num5 = z[2];
num5 += num4;
z[2] = num5;
if (num5 != (uint)0 && Nat.IncAt(12, z, 5) != (uint)0)
{
goto IL_AE;
}
}
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP384R1Field.P;
if (!Nat.Gte(12, z, p))
{
return;
}
IL_AE:
SecP384R1Field.AddPInvTo(z);
}
// Token: 0x0600A90C RID: 43276 RVA: 0x00247EEC File Offset: 0x002460EC
[Token(Token = "0x600A90C")]
[Address(RVA = "0x7E92A0", Offset = "0x7E82A0", VA = "0x1807E92A0")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat.Create(24);
Nat384.Square(x, array);
SecP384R1Field.Reduce(array, z);
}
// Token: 0x0600A90D RID: 43277 RVA: 0x00247F10 File Offset: 0x00246110
[Token(Token = "0x600A90D")]
[Address(RVA = "0x7E91B0", Offset = "0x7E81B0", VA = "0x1807E91B0")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat.Create(24);
Nat384.Square(x, array);
SecP384R1Field.Reduce(array, z);
if (n > 0)
{
Nat384.Square(z, array);
SecP384R1Field.Reduce(array, z);
}
}
// Token: 0x0600A90E RID: 43278 RVA: 0x00247F48 File Offset: 0x00246148
[Token(Token = "0x600A90E")]
[Address(RVA = "0x7E9550", Offset = "0x7E8550", VA = "0x1807E9550")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
uint num;
if (Nat.Sub((int)num, x, y, z) != 0)
{
uint num2 = z[0];
z[0] = num2;
uint num3 = z[0];
num3 += (uint)1;
num2 += num3;
z[0] = num2;
if (num2 != (uint)0)
{
uint num4 = z[1];
num2 += num4;
z[1] = num2;
}
uint num5 = z[1];
num5 += num2;
z[1] = num5;
uint num6 = z[2];
num5 += num6;
z[2] = num5;
ulong num7;
if (num7 != (ulong)num5)
{
int num8 = Nat.DecAt(12, z, 5);
}
}
}
// Token: 0x0600A90F RID: 43279 RVA: 0x00247FF0 File Offset: 0x002461F0
[Token(Token = "0x600A90F")]
[Address(RVA = "0x7E9440", Offset = "0x7E8440", VA = "0x1807E9440")]
public static void SubtractExt(uint[] xx, uint[] yy, uint[] zz)
{
if (Nat.Sub(24, xx, yy, zz) != 0)
{
uint[] pextInv = SecP384R1Field.PExtInv;
if (Nat.SubFrom(pextInv.Length, pextInv, zz) != 0)
{
int length = SecP384R1Field.PExtInv.Length;
int num = Nat.DecAt(24, zz, length);
}
}
}
// Token: 0x0600A910 RID: 43280 RVA: 0x0024803C File Offset: 0x0024623C
[Token(Token = "0x600A910")]
[Address(RVA = "0x7E96E0", Offset = "0x7E86E0", VA = "0x1807E96E0")]
public static void Twice(uint[] x, uint[] z)
{
int num = 0;
if (Nat.ShiftUpBit(12, x, (uint)num, z) == (uint)0)
{
if ("{il2cpp array field z->}" != (ulong)(-1L))
{
return;
}
uint[] p = SecP384R1Field.P;
if (!Nat.Gte(12, z, p))
{
return;
}
}
SecP384R1Field.AddPInvTo(z);
}
// Token: 0x0600A911 RID: 43281 RVA: 0x00248084 File Offset: 0x00246284
[Token(Token = "0x600A911")]
[Address(RVA = "0x7E8530", Offset = "0x7E7530", VA = "0x1807E8530")]
private static void AddPInvTo(uint[] z)
{
uint num = z[0];
uint num2 = num + 1U;
z[0] = num2;
uint num3 = z[0];
num += (uint)1;
num3 += num;
z[0] = num3;
if (num3 != (uint)0)
{
uint num4 = z[1];
num3 += num4;
z[1] = num3;
}
uint num5 = z[1];
num5 += (uint)1;
num5 += num3;
z[1] = num5;
uint num6 = z[2];
num6 += (uint)1;
num5 += num6;
z[2] = num5;
ulong num7;
if (num7 != (ulong)num5)
{
uint num8 = Nat.IncAt(12, z, 5);
return;
}
}
// Token: 0x0600A912 RID: 43282 RVA: 0x00248130 File Offset: 0x00246330
[Token(Token = "0x600A912")]
[Address(RVA = "0x7E9330", Offset = "0x7E8330", VA = "0x1807E9330")]
private static void SubPInvFrom(uint[] z)
{
uint num = z[0];
z[0] = num;
uint num2 = z[0];
num2 += (uint)1;
num += num2;
z[0] = num;
if (num != (uint)0)
{
uint num3 = z[1];
num += num3;
z[1] = num;
}
uint num4 = z[1];
num4 += num;
z[1] = num4;
uint num5 = z[2];
num5 += num4;
z[2] = num5;
ulong num6;
if (num6 != (ulong)num5)
{
int num7 = Nat.DecAt(12, z, 5);
return;
}
}
// Token: 0x0600A913 RID: 43283 RVA: 0x002481C4 File Offset: 0x002463C4
[Token(Token = "0x600A913")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecP384R1Field()
{
}
// Token: 0x0600A914 RID: 43284 RVA: 0x002481D8 File Offset: 0x002463D8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A914")]
[Address(RVA = "0x7E97E0", Offset = "0x7E87E0", VA = "0x1807E97E0")]
static SecP384R1Field()
{
uint[] array = new uint[12];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.095B351FE2104237B032546280C98C9804D331C5).FieldHandle);
SecP384R1Field.P = array;
uint[] array2 = new uint[24];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.CE39574ADC95015A9B5E0475EB65EE8F32353FD4).FieldHandle);
SecP384R1Field.PExt = array2;
uint[] array3 = new uint[17];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.EF2680899DD1FCA444AE6B8B3B0CC6C7DD40894B).FieldHandle);
SecP384R1Field.PExtInv = array3;
}
// Token: 0x04006D84 RID: 28036
[Token(Token = "0x4006D84")]
internal static readonly uint[] P;
// Token: 0x04006D85 RID: 28037
[Token(Token = "0x4006D85")]
internal static readonly uint[] PExt;
// Token: 0x04006D86 RID: 28038
[Token(Token = "0x4006D86")]
private static readonly uint[] PExtInv;
// Token: 0x04006D87 RID: 28039
[Token(Token = "0x4006D87")]
private const uint P11 = 4294967295U;
// Token: 0x04006D88 RID: 28040
[Token(Token = "0x4006D88")]
private const uint PExt23 = 4294967295U;
}
}
@@ -0,0 +1,458 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B46 RID: 6982
[Token(Token = "0x2001B46")]
internal class SecP384R1FieldElement : AbstractFpFieldElement
{
// Token: 0x0600A915 RID: 43285 RVA: 0x00248230 File Offset: 0x00246430
[Token(Token = "0x600A915")]
[Address(RVA = "0x7E8020", Offset = "0x7E7020", VA = "0x1807E8020")]
public SecP384R1FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A915)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_5B:
stloc:ArgumentException(var_6_6A, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecP384R1FieldElement"), ldstr:string("x")))
}
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: 0x0600A916 RID: 43286 RVA: 0x002482A8 File Offset: 0x002464A8
[Token(Token = "0x600A916")]
[Address(RVA = "0x7E7FF0", Offset = "0x7E6FF0", VA = "0x1807E7FF0")]
public SecP384R1FieldElement()
{
uint[] array = Nat.Create(12);
this.x = array;
}
// Token: 0x0600A917 RID: 43287 RVA: 0x002482CC File Offset: 0x002464CC
[Token(Token = "0x600A917")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecP384R1FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001A76 RID: 6774
// (get) Token: 0x0600A918 RID: 43288 RVA: 0x002482E8 File Offset: 0x002464E8
[Token(Token = "0x17001A76")]
public override bool IsZero
{
[Token(Token = "0x600A918")]
[Address(RVA = "0x7E82B0", Offset = "0x7E72B0", VA = "0x1807E82B0", Slot = "18")]
get
{
uint[] array = this.x;
return Nat.IsZero(12, array);
}
}
// Token: 0x17001A77 RID: 6775
// (get) Token: 0x0600A919 RID: 43289 RVA: 0x00248304 File Offset: 0x00246504
[Token(Token = "0x17001A77")]
public override bool IsOne
{
[Token(Token = "0x600A919")]
[Address(RVA = "0x7E82A0", Offset = "0x7E72A0", VA = "0x1807E82A0", Slot = "17")]
get
{
uint[] array = this.x;
return Nat.IsOne(12, array);
}
}
// Token: 0x0600A91A RID: 43290 RVA: 0x00248320 File Offset: 0x00246520
[Token(Token = "0x600A91A")]
[Address(RVA = "0x7E7F50", Offset = "0x7E6F50", VA = "0x1807E7F50", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat.GetBit(array, num) == (uint)1;
}
// Token: 0x0600A91B RID: 43291 RVA: 0x00248344 File Offset: 0x00246544
[Token(Token = "0x600A91B")]
[Address(RVA = "0x7E7F70", Offset = "0x7E6F70", VA = "0x1807E7F70", Slot = "4")]
public override BigInteger ToBigInteger()
{
uint[] array = this.x;
return Nat.ToBigInteger(12, array);
}
// Token: 0x17001A78 RID: 6776
// (get) Token: 0x0600A91C RID: 43292 RVA: 0x00248360 File Offset: 0x00246560
[Token(Token = "0x17001A78")]
public override string FieldName
{
[Token(Token = "0x600A91C")]
[Address(RVA = "0x7E8200", Offset = "0x7E7200", VA = "0x1807E8200", Slot = "5")]
get
{
return "SecP384R1Field";
}
}
// Token: 0x17001A79 RID: 6777
// (get) Token: 0x0600A91D RID: 43293 RVA: 0x00248374 File Offset: 0x00246574
[Token(Token = "0x17001A79")]
public override int FieldSize
{
[Token(Token = "0x600A91D")]
[Address(RVA = "0x7E8230", Offset = "0x7E7230", VA = "0x1807E8230", Slot = "6")]
get
{
return SecP384R1FieldElement.Q.BitLength;
}
}
// Token: 0x0600A91E RID: 43294 RVA: 0x00248394 File Offset: 0x00246594
[Token(Token = "0x600A91E")]
[Address(RVA = "0x7E72F0", Offset = "0x7E62F0", VA = "0x1807E72F0", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat.Create(12);
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP384R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP384R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A91F RID: 43295 RVA: 0x002483D8 File Offset: 0x002465D8
[Token(Token = "0x600A91F")]
[Address(RVA = "0x7E71A0", Offset = "0x7E61A0", VA = "0x1807E71A0", Slot = "8")]
public override ECFieldElement AddOne()
{
uint[] array = Nat.Create(12);
uint[] array2 = this.x;
if (Nat.Inc(12, array2, array) == (uint)0)
{
if ("{il2cpp array field local2->}" != (ulong)(-1L))
{
goto IL_3E;
}
uint[] p = SecP384R1Field.P;
if (!Nat.Gte(12, array, p))
{
goto IL_3E;
}
}
SecP384R1Field.AddPInvTo(array);
IL_3E:
new SecP384R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A920 RID: 43296 RVA: 0x00248434 File Offset: 0x00246634
[Token(Token = "0x600A920")]
[Address(RVA = "0x7E7E10", Offset = "0x7E6E10", VA = "0x1807E7E10", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat.Create(12);
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP384R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP384R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A921 RID: 43297 RVA: 0x00248478 File Offset: 0x00246678
[Token(Token = "0x600A921")]
[Address(RVA = "0x7E78A0", Offset = "0x7E68A0", VA = "0x1807E78A0", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat.Create(12);
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP384R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP384R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A922 RID: 43298 RVA: 0x002484BC File Offset: 0x002466BC
[Token(Token = "0x600A922")]
[Address(RVA = "0x7E7430", Offset = "0x7E6430", VA = "0x1807E7430", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat.Create(12);
uint[] p = SecP384R1Field.P;
if ("{il2cpp array field local3->}" == typeof(SecP384R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
SecP384R1Field.Multiply(array, array2, array);
new SecP384R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A923 RID: 43299 RVA: 0x00248510 File Offset: 0x00246710
[Token(Token = "0x600A923")]
[Address(RVA = "0x7E79E0", Offset = "0x7E69E0", VA = "0x1807E79E0", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600A923)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_0_07, call:uint32[](Nat::Create, ldc.i4:int32(12)))
call:void(SecP384R1Field::Negate, ldfld:uint32[](SecP384R1FieldElement::x, ldloc:SecP384R1FieldElement(this)), ldloc:uint32[](var_0_07))
stfld:uint32[](SecP384R1FieldElement::x, newobj:SecP384R1FieldElement(SecP384R1FieldElement::.ctor), ldloc:uint32[](var_0_07))
}
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: 0x0600A924 RID: 43300 RVA: 0x0024853C File Offset: 0x0024673C
[Token(Token = "0x600A924")]
[Address(RVA = "0x7E7D80", Offset = "0x7E6D80", VA = "0x1807E7D80", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600A924)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_0_07, call:uint32[](Nat::Create, ldc.i4:int32(12)))
call:void(SecP384R1Field::Square, ldfld:uint32[](SecP384R1FieldElement::x, ldloc:SecP384R1FieldElement(this)), ldloc:uint32[](var_0_07))
stfld:uint32[](SecP384R1FieldElement::x, newobj:SecP384R1FieldElement(SecP384R1FieldElement::.ctor), ldloc:uint32[](var_0_07))
}
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: 0x0600A925 RID: 43301 RVA: 0x00248568 File Offset: 0x00246768
[Token(Token = "0x600A925")]
[Address(RVA = "0x7E77D0", Offset = "0x7E67D0", VA = "0x1807E77D0", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600A925)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_0_07, call:uint32[](Nat::Create, ldc.i4:int32(12)))
stloc:uint32[](var_1_0E, ldfld:uint32[](SecP384R1FieldElement::x, ldloc:SecP384R1FieldElement(this)))
call:void(Mod::Invert, ldsfld:uint32[](SecP384R1Field::P), ldloc:uint32[](var_1_0E), ldloc:uint32[](var_0_07))
stfld:uint32[](SecP384R1FieldElement::x, newobj:SecP384R1FieldElement(SecP384R1FieldElement::.ctor), ldloc:uint32[](var_0_07))
}
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: 0x0600A926 RID: 43302 RVA: 0x0024859C File Offset: 0x0024679C
[Token(Token = "0x600A926")]
[Address(RVA = "0x7E7A70", Offset = "0x7E6A70", VA = "0x1807E7A70", Slot = "15")]
public override ECFieldElement Sqrt()
{
uint[] array;
do
{
array = this.x;
}
while (Nat.IsZero(12, array) || Nat.IsOne(12, array));
uint[] array2 = Nat.Create(12);
uint[] array3 = Nat.Create(12);
uint[] array4 = Nat.Create(12);
uint[] array5 = Nat.Create(12);
SecP384R1Field.Square(array, array2);
SecP384R1Field.Multiply(array2, array, array2);
SecP384R1Field.SquareN(array2, 2, array3);
SecP384R1Field.Multiply(array3, array2, array3);
SecP384R1Field.Square(array3, array3);
SecP384R1Field.Multiply(array3, array, array3);
SecP384R1Field.SquareN(array3, 5, array4);
SecP384R1Field.Multiply(array4, array3, array4);
SecP384R1Field.SquareN(array4, 5, array5);
SecP384R1Field.Multiply(array5, array3, array5);
SecP384R1Field.SquareN(array5, 15, array3);
SecP384R1Field.Multiply(array3, array5, array3);
SecP384R1Field.SquareN(array3, 2, array4);
SecP384R1Field.Multiply(array2, array4, array2);
SecP384R1Field.SquareN(array4, 28, array4);
SecP384R1Field.Multiply(array3, array4, array3);
SecP384R1Field.SquareN(array3, 60, array4);
SecP384R1Field.Multiply(array4, array3, array4);
SecP384R1Field.SquareN(array4, 120, array3);
SecP384R1Field.Multiply(array3, array4, array3);
SecP384R1Field.SquareN(array3, 15, array3);
SecP384R1Field.Multiply(array3, array5, array3);
SecP384R1Field.SquareN(array3, 33, array3);
SecP384R1Field.Multiply(array3, array2, array3);
SecP384R1Field.SquareN(array3, 64, array3);
SecP384R1Field.Multiply(array3, array, array3);
SecP384R1Field.SquareN(array3, 30, array2);
SecP384R1Field.Square(array2, array3);
if (Nat.Eq(12, array, array3))
{
new SecP384R1FieldElement().x = array2;
return;
}
}
// Token: 0x0600A927 RID: 43303 RVA: 0x002486EC File Offset: 0x002468EC
[Token(Token = "0x600A927")]
[Address(RVA = "0x7E75C0", Offset = "0x7E65C0", VA = "0x1807E75C0", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600A927)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP384R1FieldElement[exp:ECFieldElement](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: 0x0600A928 RID: 43304 RVA: 0x00248708 File Offset: 0x00246908
[Token(Token = "0x600A928")]
[Address(RVA = "0x7E7650", Offset = "0x7E6650", VA = "0x1807E7650", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600A928)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP384R1FieldElement[exp:ECFieldElement](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: 0x0600A929 RID: 43305 RVA: 0x00248724 File Offset: 0x00246924
[Token(Token = "0x600A929")]
[Address(RVA = "0x7E76E0", Offset = "0x7E66E0", VA = "0x1807E76E0", Slot = "27")]
public virtual bool Equals(SecP384R1FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
uint[] array2 = this.x;
return Nat.Eq(12, array2, array);
}
}
return true;
}
// Token: 0x0600A92A RID: 43306 RVA: 0x00248754 File Offset: 0x00246954
[Token(Token = "0x600A92A")]
[Address(RVA = "0x7E7710", Offset = "0x7E6710", VA = "0x1807E7710", Slot = "2")]
public override int GetHashCode()
{
SecP384R1FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 12);
}
// Token: 0x04006D89 RID: 28041
[Token(Token = "0x4006D89")]
public static readonly BigInteger Q = SecP384R1Curve.q;
// Token: 0x04006D8A RID: 28042
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D8A")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,309 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B47 RID: 6983
[Token(Token = "0x2001B47")]
internal class SecP384R1Point : AbstractFpPoint
{
// Token: 0x0600A92C RID: 43308 RVA: 0x0024879C File Offset: 0x0024699C
[Token(Token = "0x600A92C")]
[Address(RVA = "0x7EABD0", Offset = "0x7E9BD0", VA = "0x1807EABD0")]
public SecP384R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A92D RID: 43309 RVA: 0x002487AC File Offset: 0x002469AC
[Token(Token = "0x600A92D")]
[Address(RVA = "0x7EAB10", Offset = "0x7E9B10", VA = "0x1807EAB10")]
public SecP384R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A92D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A92E RID: 43310 RVA: 0x002487D4 File Offset: 0x002469D4
[Token(Token = "0x600A92E")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecP384R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A92F RID: 43311 RVA: 0x002487E4 File Offset: 0x002469E4
[Token(Token = "0x600A92F")]
[Address(RVA = "0x7EA2F0", Offset = "0x7E92F0", VA = "0x1807EA2F0", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A92F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecP384R1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecP384R1Point[exp: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: 0x0600A930 RID: 43312 RVA: 0x00248800 File Offset: 0x00246A00
[Token(Token = "0x600A930")]
[Address(RVA = "0x7E9A80", Offset = "0x7E8A80", VA = "0x1807E9A80", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this == b)
{
return b;
}
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat.Create(24);
uint[] array2 = Nat.Create(24);
uint[] array3 = Nat.Create(12);
uint[] array4 = Nat.Create(12);
if (array4 == 0)
{
SecP384R1Field.Square(array4, array3);
SecP384R1Field.Multiply(array3, array3, array2);
SecP384R1Field.Multiply(array3, array3, array3);
SecP384R1Field.Multiply(array3, array3, array3);
}
SecP384R1Field.Square(array2, array4);
SecP384R1Field.Multiply(array4, array4, array);
SecP384R1Field.Multiply(array4, array4, array4);
SecP384R1Field.Multiply(array4, array4, array4);
uint[] array5 = Nat.Create(12);
SecP384R1Field.Subtract(array, array4, array5);
uint[] array6 = Nat.Create(12);
if (!Nat.IsZero(12, array5))
{
SecP384R1Field.Square(array5, array3);
uint[] array7 = Nat.Create(12);
SecP384R1Field.Multiply(array3, array5, array7);
SecP384R1Field.Multiply(array3, array, array3);
SecP384R1Field.Negate(array7, array7);
SecP384R1Field.Reduce32(Nat.AddBothTo(12, array3, array3, array7), array7);
SecP384R1FieldElement secP384R1FieldElement = new SecP384R1FieldElement();
secP384R1FieldElement.x = array4;
SecP384R1Field.Square(array6, array4);
uint[] x = secP384R1FieldElement.x;
SecP384R1Field.Subtract(x, array7, x);
SecP384R1FieldElement secP384R1FieldElement2 = new SecP384R1FieldElement();
secP384R1FieldElement2.x = array7;
uint[] x2 = secP384R1FieldElement.x;
SecP384R1Field.Subtract(array3, x2, array7);
Nat384.Mul(secP384R1FieldElement2.x, array6, array2);
if (Nat.Add(24, array, array2, array) == (uint)0)
{
if ("{il2cpp array field local16->}" != (ulong)(-1L))
{
goto IL_1E1;
}
uint[] pext = SecP384R1Field.PExt;
if (!Nat.Gte(24, array, pext))
{
goto IL_1E1;
}
}
uint[] pextInv = SecP384R1Field.PExtInv;
if (Nat.AddTo(pextInv.Length, pextInv, array) != (uint)0)
{
int length = SecP384R1Field.PExtInv.Length;
uint num = Nat.IncAt(24, array, length);
}
IL_1E1:
uint[] x3 = secP384R1FieldElement2.x;
SecP384R1Field.Reduce(array, x3);
SecP384R1FieldElement secP384R1FieldElement3 = new SecP384R1FieldElement();
secP384R1FieldElement3.x = array5;
SecP384R1Field.Multiply(array5, array, array5);
uint[] x4 = secP384R1FieldElement3.x;
ECFieldElement[] array8 = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600A931 RID: 43313 RVA: 0x00248A50 File Offset: 0x00246C50
[Token(Token = "0x600A931")]
[Address(RVA = "0x7EA490", Offset = "0x7E9490", VA = "0x1807EA490", Slot = "30")]
public override ECPoint Twice()
{
while (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
if (y != 0)
{
if (y.IsOne)
{
break;
}
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
uint[] array = Nat.Create(12);
uint[] array2 = Nat.Create(12);
uint[] array3 = Nat.Create(12);
uint[] array4 = Nat.Create(12);
SecP384R1Field.Square(array3, array4);
if (ecfieldElement.BitLength == 0)
{
}
SecP384R1Field.Multiply(array2, array, array2);
SecP384R1Field.Reduce32(Nat.AddBothTo(12, array2, array2, array2), array2);
SecP384R1Field.Multiply(array3, array2, array3);
int num = 0;
SecP384R1Field.Reduce32(Nat.ShiftUpBits(12, array3, 2, (uint)num), array3);
int num2 = 0;
SecP384R1Field.Reduce32(Nat.ShiftUpBits(12, array4, 3, (uint)num2, array), array);
SecP384R1FieldElement secP384R1FieldElement = new SecP384R1FieldElement();
secP384R1FieldElement.x = array4;
SecP384R1Field.Square(array2, array4);
uint[] x2 = secP384R1FieldElement.x;
SecP384R1Field.Subtract(x2, array3, x2);
uint[] x3 = secP384R1FieldElement.x;
SecP384R1Field.Subtract(x3, array3, x3);
SecP384R1FieldElement secP384R1FieldElement2 = new SecP384R1FieldElement();
secP384R1FieldElement2.x = array3;
uint[] x4 = secP384R1FieldElement.x;
SecP384R1Field.Subtract(array3, x4, array3);
uint[] x5 = secP384R1FieldElement2.x;
SecP384R1Field.Multiply(x5, array2, x5);
uint[] x6 = secP384R1FieldElement2.x;
SecP384R1Field.Subtract(x6, array, x6);
SecP384R1FieldElement secP384R1FieldElement3 = new SecP384R1FieldElement();
secP384R1FieldElement3.x = array2;
uint num3;
if (num3 == (uint)0)
{
if ("{il2cpp array field local20->}" != (ulong)(-1L))
{
goto IL_1B7;
}
uint[] p = SecP384R1Field.P;
if (!Nat.Gte(12, array2, p))
{
goto IL_1B7;
}
}
SecP384R1Field.AddPInvTo(array2);
IL_1B7:
uint[] x7 = secP384R1FieldElement3.x;
(new ECFieldElement[1])[0] = secP384R1FieldElement3;
bool withCompression = this.m_withCompression;
break;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A932 RID: 43314 RVA: 0x00248C38 File Offset: 0x00246E38
[Token(Token = "0x600A932")]
[Address(RVA = "0x6ECFE0", Offset = "0x6EBFE0", VA = "0x1806ECFE0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
bool flag2 = base.SatisfiesCurveEquation();
}
return b;
}
bool flag3 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600A933 RID: 43315 RVA: 0x00248C88 File Offset: 0x00246E88
[Token(Token = "0x600A933")]
[Address(RVA = "0x6ECF60", Offset = "0x6EBF60", VA = "0x1806ECF60", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600A934 RID: 43316 RVA: 0x00248CB8 File Offset: 0x00246EB8
[Token(Token = "0x600A934")]
[Address(RVA = "0x7EA390", Offset = "0x7E9390", VA = "0x1807EA390", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,327 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B48 RID: 6984
[Token(Token = "0x2001B48")]
internal class SecP521R1Curve : AbstractFpCurve
{
// Token: 0x0600A935 RID: 43317 RVA: 0x00248CF0 File Offset: 0x00246EF0
[Token(Token = "0x600A935")]
[Address(RVA = "0x7EB220", Offset = "0x7EA220", VA = "0x1807EB220")]
public SecP521R1Curve()
{
BigInteger bigInteger = SecP521R1Curve.q;
base..ctor(bigInteger);
int num;
int num2;
ulong num3;
SecP521R1Point secP521R1Point = new SecP521R1Point(this, num, num2, num3 != 0UL);
num2 = 0;
num = 0;
this.m_infinity = secP521R1Point;
byte[] array = Hex.Decode("01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC");
BigInteger bigInteger2 = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("0051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00");
BigInteger bigInteger3 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409");
BigInteger bigInteger4 = new BigInteger(1, array3);
this.m_order = bigInteger4;
BigInteger one = BigInteger.One;
this.m_cofactor = one;
this.m_coord = (int)((ulong)2L);
}
// Token: 0x0600A936 RID: 43318 RVA: 0x00248DA4 File Offset: 0x00246FA4
[Token(Token = "0x600A936")]
[Address(RVA = "0x7EABF0", Offset = "0x7E9BF0", VA = "0x1807EABF0", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A936)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP521R1Curve(var_0_05, newobj:SecP521R1Curve(SecP521R1Curve::.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.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: 0x0600A937 RID: 43319 RVA: 0x00248DB8 File Offset: 0x00246FB8
[Token(Token = "0x600A937")]
[Address(RVA = "0x6E9C20", Offset = "0x6E8C20", VA = "0x1806E9C20", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 2;
}
// Token: 0x17001A7A RID: 6778
// (get) Token: 0x0600A938 RID: 43320 RVA: 0x00248DCC File Offset: 0x00246FCC
[Token(Token = "0x17001A7A")]
public virtual BigInteger Q
{
[Token(Token = "0x600A938")]
[Address(RVA = "0x7EB470", Offset = "0x7EA470", VA = "0x1807EB470", Slot = "38")]
get
{
return SecP521R1Curve.q;
}
}
// Token: 0x17001A7B RID: 6779
// (get) Token: 0x0600A939 RID: 43321 RVA: 0x00248DE0 File Offset: 0x00246FE0
[Token(Token = "0x17001A7B")]
public override ECPoint Infinity
{
[Token(Token = "0x600A939")]
[Address(RVA = "0x4936E0", Offset = "0x4926E0", VA = "0x1804936E0", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A939)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP521R1Point(var_0_06, ldfld:SecP521R1Point(SecP521R1Curve::m_infinity, ldloc:SecP521R1Curve(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: 0x17001A7C RID: 6780
// (get) Token: 0x0600A93A RID: 43322 RVA: 0x00248DF4 File Offset: 0x00246FF4
[Token(Token = "0x17001A7C")]
public override int FieldSize
{
[Token(Token = "0x600A93A")]
[Address(RVA = "0x7EB400", Offset = "0x7EA400", VA = "0x1807EB400", Slot = "4")]
get
{
return SecP521R1Curve.q.BitLength;
}
}
// Token: 0x0600A93B RID: 43323 RVA: 0x00248E14 File Offset: 0x00247014
[Token(Token = "0x600A93B")]
[Address(RVA = "0x7EAFE0", Offset = "0x7E9FE0", VA = "0x1807EAFE0", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A93B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_38:
stloc:ArgumentException(var_5_47, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecP521R1FieldElement"), ldstr:string("x")))
}
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: 0x0600A93C RID: 43324 RVA: 0x00248E6C File Offset: 0x0024706C
[Token(Token = "0x600A93C")]
[Address(RVA = "0x7EAEB0", Offset = "0x7E9EB0", VA = "0x1807EAEB0", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A93C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecP521R1Point(var_0_09, newobj:SecP521R1Point(SecP521R1Point::.ctor, ldloc:SecP521R1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A93D RID: 43325 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A93D")]
[Address(RVA = "0x7EAF40", Offset = "0x7E9F40", VA = "0x1807EAF40", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A93E RID: 43326 RVA: 0x00248E84 File Offset: 0x00247084
[Token(Token = "0x600A93E")]
[Address(RVA = "0x7EAC40", Offset = "0x7E9C40", VA = "0x1807EAC40", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
uint[] array;
int num;
for (;;)
{
array = new uint[len * (int)((uint)34)];
num = 0;
if (len <= 0)
{
goto IL_56;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
num += 17;
if (y != 0 && y != 0)
{
break;
}
}
}
int num2 = 0;
num += 17;
IL_56:
int num3 = 0;
SecP521R1Curve.SecP521R1LookupTable secP521R1LookupTable;
secP521R1LookupTable.FieldGetter(num3, num2, array);
secP521R1LookupTable.m_outer = 0;
secP521R1LookupTable.m_table = array;
secP521R1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x0600A93F RID: 43327 RVA: 0x00248F14 File Offset: 0x00247114
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A93F")]
[Address(RVA = "0x7EB180", Offset = "0x7EA180", VA = "0x1807EB180")]
static SecP521R1Curve()
{
byte[] array = Hex.Decode("01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
SecP521R1Curve.q = new BigInteger(1, array);
}
// Token: 0x04006D8B RID: 28043
[Token(Token = "0x4006D8B")]
public static readonly BigInteger q;
// Token: 0x04006D8C RID: 28044
[Token(Token = "0x4006D8C")]
private const int SECP521R1_DEFAULT_COORDS = 2;
// Token: 0x04006D8D RID: 28045
[Token(Token = "0x4006D8D")]
private const int SECP521R1_FE_INTS = 17;
// Token: 0x04006D8E RID: 28046
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006D8E")]
protected readonly SecP521R1Point m_infinity;
// Token: 0x02001B49 RID: 6985
[Token(Token = "0x2001B49")]
private class SecP521R1LookupTable : ECLookupTable
{
// Token: 0x0600A940 RID: 43328 RVA: 0x00248F38 File Offset: 0x00247138
[Token(Token = "0x600A940")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecP521R1LookupTable(SecP521R1Curve outer, uint[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A7D RID: 6781
// (get) Token: 0x0600A941 RID: 43329 RVA: 0x00248F60 File Offset: 0x00247160
[Token(Token = "0x17001A7D")]
public virtual int Size
{
[Token(Token = "0x600A941")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A942 RID: 43330 RVA: 0x00248F74 File Offset: 0x00247174
[Token(Token = "0x600A942")]
[Address(RVA = "0x7ED140", Offset = "0x7EC140", VA = "0x1807ED140", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
uint[] array = Nat.Create(17);
uint[] array2 = Nat.Create(17);
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
uint[] table = this.m_table;
uint[] table2 = this.m_table;
num3++;
num += 34;
num2++;
}
SecP521R1Curve outer = this.m_outer;
new SecP521R1FieldElement().x = array;
new SecP521R1FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006D8F RID: 28047
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D8F")]
private readonly SecP521R1Curve m_outer;
// Token: 0x04006D90 RID: 28048
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006D90")]
private readonly uint[] m_table;
// Token: 0x04006D91 RID: 28049
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006D91")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,236 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B4A RID: 6986
[Token(Token = "0x2001B4A")]
internal class SecP521R1Field
{
// Token: 0x0600A943 RID: 43331 RVA: 0x00248FEC File Offset: 0x002471EC
[Token(Token = "0x600A943")]
[Address(RVA = "0x7EC5E0", Offset = "0x7EB5E0", VA = "0x1807EC5E0")]
public static void Add(uint[] x, uint[] y, uint[] z)
{
uint num2;
uint num = Nat.Add((int)num2, x, y, z);
uint num3 = y[8];
num3 += num;
if (num3 > (uint)511 || (num3 == (uint)511 && Nat.Eq(16, z, y)))
{
uint num4 = Nat.Inc(16, z);
num3 += num4;
}
z[8] = num3;
}
// Token: 0x0600A944 RID: 43332 RVA: 0x0024904C File Offset: 0x0024724C
[Token(Token = "0x600A944")]
[Address(RVA = "0x7EC4E0", Offset = "0x7EB4E0", VA = "0x1807EC4E0")]
public static void AddOne(uint[] x, uint[] z)
{
uint num = Nat.Inc(16, x, z);
uint num2 = x[8];
num2 += num;
if (num2 > (uint)511 || (num2 == (uint)511 && Nat.Eq(16, z, z)))
{
uint num3 = Nat.Inc(16, z);
num2 += num3;
}
z[8] = num2;
}
// Token: 0x0600A945 RID: 43333 RVA: 0x002490A8 File Offset: 0x002472A8
[Token(Token = "0x600A945")]
[Address(RVA = "0x7EC720", Offset = "0x7EB720", VA = "0x1807EC720")]
public static uint[] FromBigInteger(BigInteger x)
{
uint[] array = Nat.FromBigInteger(521, x);
bool flag;
if (flag)
{
Nat.Zero(17, array);
}
return array;
}
// Token: 0x0600A946 RID: 43334 RVA: 0x002490D0 File Offset: 0x002472D0
[Token(Token = "0x600A946")]
[Address(RVA = "0x7EC7C0", Offset = "0x7EB7C0", VA = "0x1807EC7C0")]
public static void Half(uint[] x, uint[] z)
{
uint num = x[8];
uint num2 = Nat.ShiftDownBit(16, x, num, z);
z[8] = num2;
}
// Token: 0x0600A947 RID: 43335 RVA: 0x00249100 File Offset: 0x00247300
[Token(Token = "0x600A947")]
[Address(RVA = "0x7EC9C0", Offset = "0x7EB9C0", VA = "0x1807EC9C0")]
public static void Multiply(uint[] x, uint[] y, uint[] z)
{
uint[] array = Nat.Create(33);
Nat512.Mul(x, y, array);
uint num = x[8];
uint num2 = y[8];
uint num4;
ulong num5;
uint num3 = Nat.Mul31BothAdd((int)num4, num, y, num2, x, array, (int)num5);
uint num6 = num2 * num;
num6 += num3;
array[16] = num6;
SecP521R1Field.Reduce(array, z);
}
// Token: 0x0600A948 RID: 43336 RVA: 0x00249160 File Offset: 0x00247360
[Token(Token = "0x600A948")]
[Address(RVA = "0x7ECB00", Offset = "0x7EBB00", VA = "0x1807ECB00")]
public static void Negate(uint[] x, uint[] z)
{
if (!Nat.IsZero(17, x))
{
return;
}
Nat.Zero(17, z);
}
// Token: 0x0600A949 RID: 43337 RVA: 0x00249184 File Offset: 0x00247384
[Token(Token = "0x600A949")]
[Address(RVA = "0x7ECCC0", Offset = "0x7EBCC0", VA = "0x1807ECCC0")]
public static void Reduce(uint[] xx, uint[] z)
{
uint num = xx[16];
int num2 = 0;
uint num4;
uint num3 = Nat.ShiftDownBits((int)num4, xx, (int)num4, 9, num, z, num2);
num += num3;
uint num5 = Nat.AddTo(16, xx, z);
num += num5;
if (num > (uint)511 || (num == (uint)511 && Nat.Eq(16, z, z)))
{
uint num6 = Nat.Inc(16, z);
num += num6;
}
z[8] = num;
}
// Token: 0x0600A94A RID: 43338 RVA: 0x002491FC File Offset: 0x002473FC
[Token(Token = "0x600A94A")]
[Address(RVA = "0x7ECBB0", Offset = "0x7EBBB0", VA = "0x1807ECBB0")]
public static void Reduce23(uint[] z)
{
uint num = z[8];
uint num2 = Nat.AddWordTo(16, num, z);
if (Nat.Eq(16, z, z))
{
uint num3 = Nat.Inc(16, z);
}
}
// Token: 0x0600A94B RID: 43339 RVA: 0x00249238 File Offset: 0x00247438
[Token(Token = "0x600A94B")]
[Address(RVA = "0x7ECF00", Offset = "0x7EBF00", VA = "0x1807ECF00")]
public static void Square(uint[] x, uint[] z)
{
uint[] array = Nat.Create(33);
SecP521R1Field.ImplSquare(x, array);
SecP521R1Field.Reduce(array, z);
}
// Token: 0x0600A94C RID: 43340 RVA: 0x0024925C File Offset: 0x0024745C
[Token(Token = "0x600A94C")]
[Address(RVA = "0x7ECE10", Offset = "0x7EBE10", VA = "0x1807ECE10")]
public static void SquareN(uint[] x, int n, uint[] z)
{
uint[] array = Nat.Create(33);
SecP521R1Field.ImplSquare(x, array);
SecP521R1Field.Reduce(array, z);
if (n > 0)
{
SecP521R1Field.ImplSquare(z, array);
SecP521R1Field.Reduce(array, z);
}
}
// Token: 0x0600A94D RID: 43341 RVA: 0x00249294 File Offset: 0x00247494
[Token(Token = "0x600A94D")]
[Address(RVA = "0x7ECF90", Offset = "0x7EBF90", VA = "0x1807ECF90")]
public static void Subtract(uint[] x, uint[] y, uint[] z)
{
uint num2;
int num = Nat.Sub((int)num2, x, y, z);
uint num3 = x[8];
num3 += (uint)num;
int num4 = Nat.Dec(16, z);
num3 += (uint)num4;
z[8] = num3;
}
// Token: 0x0600A94E RID: 43342 RVA: 0x002492D4 File Offset: 0x002474D4
[Token(Token = "0x600A94E")]
[Address(RVA = "0x7ED050", Offset = "0x7EC050", VA = "0x1807ED050")]
public static void Twice(uint[] x, uint[] z)
{
uint num = x[8];
uint num2 = Nat.ShiftUpBit(16, x, num, z);
z[8] = num2;
}
// Token: 0x0600A94F RID: 43343 RVA: 0x00249304 File Offset: 0x00247504
[Token(Token = "0x600A94F")]
[Address(RVA = "0x7EC840", Offset = "0x7EB840", VA = "0x1807EC840")]
protected static void ImplMultiply(uint[] x, uint[] y, uint[] zz)
{
Nat512.Mul(x, y, zz);
uint num = x[8];
uint num2 = y[8];
uint num4;
ulong num5;
uint num3 = Nat.Mul31BothAdd((int)num4, num, y, num2, x, zz, (int)num5);
uint num6 = num2 * num;
num6 += num3;
zz[16] = num6;
}
// Token: 0x0600A950 RID: 43344 RVA: 0x00249354 File Offset: 0x00247554
[Token(Token = "0x600A950")]
[Address(RVA = "0x7EC920", Offset = "0x7EB920", VA = "0x1807EC920")]
protected static void ImplSquare(uint[] x, uint[] zz)
{
Nat512.Square(x, zz);
uint num = x[8];
int num2 = 0;
ulong num4;
uint num3 = Nat.MulWordAddTo(16, zz, x, num2, zz, (int)num4);
uint num5 = num * num;
num5 += num3;
zz[16] = num5;
}
// Token: 0x0600A951 RID: 43345 RVA: 0x0024939C File Offset: 0x0024759C
[Token(Token = "0x600A951")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecP521R1Field()
{
}
// Token: 0x0600A952 RID: 43346 RVA: 0x002493B0 File Offset: 0x002475B0
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A952")]
[Address(RVA = "0x7ED0E0", Offset = "0x7EC0E0", VA = "0x1807ED0E0")]
static SecP521R1Field()
{
RuntimeHelpers.InitializeArray(new uint[17], fieldof(<PrivateImplementationDetails>.96ADC3934F8492C827987DFEE3B4DD4EF1738E78).FieldHandle);
}
// Token: 0x04006D92 RID: 28050
[Token(Token = "0x4006D92")]
internal static readonly uint[] P;
// Token: 0x04006D93 RID: 28051
[Token(Token = "0x4006D93")]
private const int P16 = 511;
}
}
@@ -0,0 +1,425 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B4B RID: 6987
[Token(Token = "0x2001B4B")]
internal class SecP521R1FieldElement : AbstractFpFieldElement
{
// Token: 0x0600A953 RID: 43347 RVA: 0x002493D0 File Offset: 0x002475D0
[Token(Token = "0x600A953")]
[Address(RVA = "0x7EC270", Offset = "0x7EB270", VA = "0x1807EC270")]
public SecP521R1FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A953)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_38:
stloc:ArgumentException(var_4_47, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecP521R1FieldElement"), ldstr:string("x")))
}
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: 0x0600A954 RID: 43348 RVA: 0x00249428 File Offset: 0x00247628
[Token(Token = "0x600A954")]
[Address(RVA = "0x7EC3F0", Offset = "0x7EB3F0", VA = "0x1807EC3F0")]
public SecP521R1FieldElement()
{
uint[] array = Nat.Create(17);
this.x = array;
}
// Token: 0x0600A955 RID: 43349 RVA: 0x0024944C File Offset: 0x0024764C
[Token(Token = "0x600A955")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecP521R1FieldElement(uint[] x)
{
this.x = x;
}
// Token: 0x17001A7E RID: 6782
// (get) Token: 0x0600A956 RID: 43350 RVA: 0x00249468 File Offset: 0x00247668
[Token(Token = "0x17001A7E")]
public override bool IsZero
{
[Token(Token = "0x600A956")]
[Address(RVA = "0x7EC4D0", Offset = "0x7EB4D0", VA = "0x1807EC4D0", Slot = "18")]
get
{
uint[] array = this.x;
return Nat.IsZero(17, array);
}
}
// Token: 0x17001A7F RID: 6783
// (get) Token: 0x0600A957 RID: 43351 RVA: 0x00249484 File Offset: 0x00247684
[Token(Token = "0x17001A7F")]
public override bool IsOne
{
[Token(Token = "0x600A957")]
[Address(RVA = "0x7EC4C0", Offset = "0x7EB4C0", VA = "0x1807EC4C0", Slot = "17")]
get
{
uint[] array = this.x;
return Nat.IsOne(17, array);
}
}
// Token: 0x0600A958 RID: 43352 RVA: 0x002494A0 File Offset: 0x002476A0
[Token(Token = "0x600A958")]
[Address(RVA = "0x7E7F50", Offset = "0x7E6F50", VA = "0x1807E7F50", Slot = "24")]
public override bool TestBitZero()
{
uint[] array = this.x;
int num = 0;
return Nat.GetBit(array, num) == (uint)1;
}
// Token: 0x0600A959 RID: 43353 RVA: 0x002494C4 File Offset: 0x002476C4
[Token(Token = "0x600A959")]
[Address(RVA = "0x7EC1F0", Offset = "0x7EB1F0", VA = "0x1807EC1F0", Slot = "4")]
public override BigInteger ToBigInteger()
{
uint[] array = this.x;
return Nat.ToBigInteger(17, array);
}
// Token: 0x17001A80 RID: 6784
// (get) Token: 0x0600A95A RID: 43354 RVA: 0x002494E0 File Offset: 0x002476E0
[Token(Token = "0x17001A80")]
public override string FieldName
{
[Token(Token = "0x600A95A")]
[Address(RVA = "0x7EC420", Offset = "0x7EB420", VA = "0x1807EC420", Slot = "5")]
get
{
return "SecP521R1Field";
}
}
// Token: 0x17001A81 RID: 6785
// (get) Token: 0x0600A95B RID: 43355 RVA: 0x002494F4 File Offset: 0x002476F4
[Token(Token = "0x17001A81")]
public override int FieldSize
{
[Token(Token = "0x600A95B")]
[Address(RVA = "0x7EC450", Offset = "0x7EB450", VA = "0x1807EC450", Slot = "6")]
get
{
return SecP521R1FieldElement.Q.BitLength;
}
}
// Token: 0x0600A95C RID: 43356 RVA: 0x00249514 File Offset: 0x00247714
[Token(Token = "0x600A95C")]
[Address(RVA = "0x7EB640", Offset = "0x7EA640", VA = "0x1807EB640", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
uint[] array;
do
{
array = Nat.Create(17);
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP521R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP521R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A95D RID: 43357 RVA: 0x00249558 File Offset: 0x00247758
[Token(Token = "0x600A95D")]
[Address(RVA = "0x7EB4D0", Offset = "0x7EA4D0", VA = "0x1807EB4D0", Slot = "8")]
public override ECFieldElement AddOne()
{
uint[] array = Nat.Create(17);
uint[] array2 = this.x;
uint num = Nat.Inc(16, array2, array);
uint num2 = array2[8];
num2 += num;
if (num2 > (uint)511 || (num2 == (uint)511 && Nat.Eq(16, array, array)))
{
uint num3 = Nat.Inc(16, array);
num2 += num3;
}
array[8] = num2;
new SecP521R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A95E RID: 43358 RVA: 0x002495D0 File Offset: 0x002477D0
[Token(Token = "0x600A95E")]
[Address(RVA = "0x7EC0B0", Offset = "0x7EB0B0", VA = "0x1807EC0B0", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
uint[] array;
do
{
array = Nat.Create(17);
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP521R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP521R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A95F RID: 43359 RVA: 0x00249614 File Offset: 0x00247814
[Token(Token = "0x600A95F")]
[Address(RVA = "0x7EBBF0", Offset = "0x7EABF0", VA = "0x1807EBBF0", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
uint[] array;
do
{
array = Nat.Create(17);
uint[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecP521R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecP521R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A960 RID: 43360 RVA: 0x00249658 File Offset: 0x00247858
[Token(Token = "0x600A960")]
[Address(RVA = "0x7EB780", Offset = "0x7EA780", VA = "0x1807EB780", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
uint[] array;
do
{
array = Nat.Create(17);
if ("{il2cpp array field local3->}" == typeof(SecP521R1FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
uint[] array2 = this.x;
SecP521R1Field.Multiply(array, array2, array);
new SecP521R1FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A961 RID: 43361 RVA: 0x002496A4 File Offset: 0x002478A4
[Token(Token = "0x600A961")]
[Address(RVA = "0x7EBD30", Offset = "0x7EAD30", VA = "0x1807EBD30", Slot = "12")]
public override ECFieldElement Negate()
{
/*
An exception occurred when decompiling this method (0600A961)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1FieldElement::Negate()
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1A:
call:void(Nat::Zero, ldc.i4:int32(17), ldloc:uint32[](var_0_07))
stfld:uint32[](SecP521R1FieldElement::x, newobj:SecP521R1FieldElement(SecP521R1FieldElement::.ctor), ldloc:uint32[](var_0_07))
}
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: 0x0600A962 RID: 43362 RVA: 0x002496E0 File Offset: 0x002478E0
[Token(Token = "0x600A962")]
[Address(RVA = "0x7EC020", Offset = "0x7EB020", VA = "0x1807EC020", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600A962)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_0_07, call:uint32[](Nat::Create, ldc.i4:int32(17)))
call:void(SecP521R1Field::Square, ldfld:uint32[](SecP521R1FieldElement::x, ldloc:SecP521R1FieldElement(this)), ldloc:uint32[](var_0_07))
stfld:uint32[](SecP521R1FieldElement::x, newobj:SecP521R1FieldElement(SecP521R1FieldElement::.ctor), ldloc:uint32[](var_0_07))
}
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: 0x0600A963 RID: 43363 RVA: 0x0024970C File Offset: 0x0024790C
[Token(Token = "0x600A963")]
[Address(RVA = "0x7EBB20", Offset = "0x7EAB20", VA = "0x1807EBB20", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600A963)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint32[](var_0_07, call:uint32[](Nat::Create, ldc.i4:int32(17)))
stfld:uint32[](SecP521R1FieldElement::x, newobj:SecP521R1FieldElement(SecP521R1FieldElement::.ctor), ldloc:uint32[](var_0_07))
}
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: 0x0600A964 RID: 43364 RVA: 0x0024972C File Offset: 0x0024792C
[Token(Token = "0x600A964")]
[Address(RVA = "0x7EBE40", Offset = "0x7EAE40", VA = "0x1807EBE40", Slot = "15")]
public override ECFieldElement Sqrt()
{
uint[] array;
do
{
array = this.x;
}
while (Nat.IsZero(17, array) || Nat.IsOne(17, array));
uint[] array2 = Nat.Create(17);
uint[] array3 = Nat.Create(17);
uint[] array4 = Nat.Create(33);
SecP521R1Field.ImplSquare(array, array4);
SecP521R1Field.Reduce(array4, array2);
SecP521R1Field.ImplSquare(array2, array4);
SecP521R1Field.Reduce(array4, array2);
SecP521R1Field.Square(array2, array3);
if (Nat.Eq(17, array, array3))
{
new SecP521R1FieldElement().x = array2;
return;
}
}
// Token: 0x0600A965 RID: 43365 RVA: 0x002497AC File Offset: 0x002479AC
[Token(Token = "0x600A965")]
[Address(RVA = "0x7EB940", Offset = "0x7EA940", VA = "0x1807EB940", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600A965)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP521R1FieldElement[exp:ECFieldElement](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: 0x0600A966 RID: 43366 RVA: 0x002497C8 File Offset: 0x002479C8
[Token(Token = "0x600A966")]
[Address(RVA = "0x7EB9D0", Offset = "0x7EA9D0", VA = "0x1807EB9D0", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600A966)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecP521R1FieldElement[exp:ECFieldElement](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: 0x0600A967 RID: 43367 RVA: 0x002497E4 File Offset: 0x002479E4
[Token(Token = "0x600A967")]
[Address(RVA = "0x7EB910", Offset = "0x7EA910", VA = "0x1807EB910", Slot = "27")]
public virtual bool Equals(SecP521R1FieldElement other)
{
if (this != other)
{
if (other != 0)
{
uint[] array = other.x;
uint[] array2 = this.x;
return Nat.Eq(17, array2, array);
}
}
return true;
}
// Token: 0x0600A968 RID: 43368 RVA: 0x00249814 File Offset: 0x00247A14
[Token(Token = "0x600A968")]
[Address(RVA = "0x7EBA60", Offset = "0x7EAA60", VA = "0x1807EBA60", Slot = "2")]
public override int GetHashCode()
{
SecP521R1FieldElement.Q.Finalize();
uint[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 17);
}
// Token: 0x04006D94 RID: 28052
[Token(Token = "0x4006D94")]
public static readonly BigInteger Q = SecP521R1Curve.q;
// Token: 0x04006D95 RID: 28053
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D95")]
protected internal readonly uint[] x;
}
}
@@ -0,0 +1,280 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B4C RID: 6988
[Token(Token = "0x2001B4C")]
internal class SecP521R1Point : AbstractFpPoint
{
// Token: 0x0600A96A RID: 43370 RVA: 0x0024985C File Offset: 0x00247A5C
[Token(Token = "0x600A96A")]
[Address(RVA = "0x7EE290", Offset = "0x7ED290", VA = "0x1807EE290")]
public SecP521R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A96B RID: 43371 RVA: 0x0024986C File Offset: 0x00247A6C
[Token(Token = "0x600A96B")]
[Address(RVA = "0x7EE1D0", Offset = "0x7ED1D0", VA = "0x1807EE1D0")]
public SecP521R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A96B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A96C RID: 43372 RVA: 0x00249894 File Offset: 0x00247A94
[Token(Token = "0x600A96C")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecP521R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A96D RID: 43373 RVA: 0x002498A4 File Offset: 0x00247AA4
[Token(Token = "0x600A96D")]
[Address(RVA = "0x7EDA00", Offset = "0x7ECA00", VA = "0x1807EDA00", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A96D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecP521R1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecP521R1Point[exp: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: 0x0600A96E RID: 43374 RVA: 0x002498C0 File Offset: 0x00247AC0
[Token(Token = "0x600A96E")]
[Address(RVA = "0x7ED310", Offset = "0x7EC310", VA = "0x1807ED310", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this == b)
{
return b;
}
bool flag = this.SatisfiesOrder();
ECFieldElement[] zs = this.m_zs;
ECFieldElement[] zs2 = b.m_zs;
uint[] array = Nat.Create(17);
uint[] array2 = Nat.Create(17);
uint[] array3 = Nat.Create(17);
uint[] array4 = Nat.Create(17);
if (array4 == 0)
{
SecP521R1Field.Square(array4, array3);
SecP521R1Field.Multiply(array3, array3, array2);
SecP521R1Field.Multiply(array3, array3, array3);
SecP521R1Field.Multiply(array3, array3, array3);
}
SecP521R1Field.Multiply(array4, array4, array);
SecP521R1Field.Multiply(array4, array4, array4);
SecP521R1Field.Multiply(array4, array4, array4);
uint[] array5 = Nat.Create(17);
SecP521R1Field.Subtract(array, array4, array5);
if (!Nat.IsZero(17, array5))
{
SecP521R1Field.Square(array5, array3);
uint[] array6 = Nat.Create(17);
SecP521R1Field.Multiply(array3, array5, array6);
SecP521R1Field.Multiply(array3, array, array3);
SecP521R1FieldElement secP521R1FieldElement = new SecP521R1FieldElement();
secP521R1FieldElement.x = array4;
SecP521R1Field.Square(array2, array4);
uint[] x = secP521R1FieldElement.x;
SecP521R1Field.Add(x, array6, x);
uint[] x2 = secP521R1FieldElement.x;
SecP521R1Field.Subtract(x2, array3, x2);
uint[] x3 = secP521R1FieldElement.x;
SecP521R1Field.Subtract(x3, array3, x3);
SecP521R1FieldElement secP521R1FieldElement2 = new SecP521R1FieldElement();
secP521R1FieldElement2.x = array6;
uint[] x4 = secP521R1FieldElement.x;
SecP521R1Field.Subtract(array3, x4, array6);
SecP521R1Field.Multiply(secP521R1FieldElement2.x, array2, array2);
uint[] x5 = secP521R1FieldElement2.x;
SecP521R1Field.Subtract(array2, array, x5);
SecP521R1FieldElement secP521R1FieldElement3 = new SecP521R1FieldElement();
secP521R1FieldElement3.x = array5;
SecP521R1Field.Multiply(array5, array3, array5);
uint[] x6 = secP521R1FieldElement3.x;
SecP521R1Field.Multiply(x6, array2, x6);
ECFieldElement[] array7 = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
}
bool flag2;
if (!flag2)
{
}
}
return b;
}
// Token: 0x0600A96F RID: 43375 RVA: 0x00249AB4 File Offset: 0x00247CB4
[Token(Token = "0x600A96F")]
[Address(RVA = "0x7EDBA0", Offset = "0x7ECBA0", VA = "0x1807EDBA0", Slot = "30")]
public override ECPoint Twice()
{
while (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
if (y != 0)
{
if (y.IsOne)
{
break;
}
ECFieldElement x = this.m_x;
if (x == 0)
{
}
if (x != 0)
{
ECFieldElement ecfieldElement = this.m_zs[0];
if (ecfieldElement == 0)
{
}
if (ecfieldElement != 0)
{
uint[] array = Nat.Create(17);
uint[] array2 = Nat.Create(17);
uint[] array3 = Nat.Create(17);
uint[] array4 = Nat.Create(17);
SecP521R1Field.Square(array3, array4);
if (ecfieldElement.BitLength == 0)
{
}
SecP521R1Field.Multiply(array2, array, array2);
uint num = Nat.AddBothTo(17, array2, array2, array2);
SecP521R1Field.Reduce23(array2);
int num2 = 0;
uint num3 = Nat.ShiftUpBits(17, array3, 2, (uint)num2);
SecP521R1Field.Reduce23(array3);
int num4 = 0;
uint num5 = Nat.ShiftUpBits(17, array4, 3, (uint)num4, array);
SecP521R1Field.Reduce23(array);
SecP521R1FieldElement secP521R1FieldElement = new SecP521R1FieldElement();
secP521R1FieldElement.x = array4;
SecP521R1Field.Square(array2, array4);
uint[] x2 = secP521R1FieldElement.x;
SecP521R1Field.Subtract(x2, array3, x2);
uint[] x3 = secP521R1FieldElement.x;
SecP521R1Field.Subtract(x3, array3, x3);
SecP521R1FieldElement secP521R1FieldElement2 = new SecP521R1FieldElement();
secP521R1FieldElement2.x = array3;
uint[] x4 = secP521R1FieldElement.x;
SecP521R1Field.Subtract(array3, x4, array3);
uint[] x5 = secP521R1FieldElement2.x;
SecP521R1Field.Multiply(x5, array2, x5);
uint[] x6 = secP521R1FieldElement2.x;
SecP521R1Field.Subtract(x6, array, x6);
SecP521R1FieldElement secP521R1FieldElement3 = new SecP521R1FieldElement();
secP521R1FieldElement3.x = array2;
uint num6;
array2[8] = num6;
uint[] x7 = secP521R1FieldElement3.x;
(new ECFieldElement[1])[0] = secP521R1FieldElement3;
bool withCompression = this.m_withCompression;
break;
}
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A970 RID: 43376 RVA: 0x00249C78 File Offset: 0x00247E78
[Token(Token = "0x600A970")]
[Address(RVA = "0x6ECFE0", Offset = "0x6EBFE0", VA = "0x1806ECFE0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (this != b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
if (this.m_y.IsOne)
{
return b;
}
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
bool flag2 = base.SatisfiesCurveEquation();
}
return b;
}
bool flag3 = base.SatisfiesCurveEquation();
throw new NullReferenceException();
}
// Token: 0x0600A971 RID: 43377 RVA: 0x00249CC8 File Offset: 0x00247EC8
[Token(Token = "0x600A971")]
[Address(RVA = "0x6ECF60", Offset = "0x6EBF60", VA = "0x1806ECF60", Slot = "33")]
public override ECPoint ThreeTimes()
{
if (!base.IsInfinity && !this.m_y.IsOne)
{
ECPoint ecpoint;
bool flag = ecpoint.SatisfiesCurveEquation();
}
throw new NullReferenceException();
}
// Token: 0x0600A972 RID: 43378 RVA: 0x00249CF8 File Offset: 0x00247EF8
[Token(Token = "0x600A972")]
[Address(RVA = "0x7EDAA0", Offset = "0x7ECAA0", VA = "0x1807EDAA0", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement y = this.m_y;
ECFieldElement[] zs = this.m_zs;
bool withCompression = this.m_withCompression;
}
throw new NullReferenceException();
}
}
}
@@ -0,0 +1,269 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B4D RID: 6989
[Token(Token = "0x2001B4D")]
internal class SecT113Field
{
// Token: 0x0600A973 RID: 43379 RVA: 0x00249D30 File Offset: 0x00247F30
[Token(Token = "0x600A973")]
[Address(RVA = "0x7EF250", Offset = "0x7EE250", VA = "0x1807EF250")]
public static void Add(ulong[] x, ulong[] y, ulong[] z)
{
ulong num = y[0];
z[0] = num;
ulong num2 = y[1];
z[1] = num2;
}
// Token: 0x0600A974 RID: 43380 RVA: 0x00249D64 File Offset: 0x00247F64
[Token(Token = "0x600A974")]
[Address(RVA = "0x7BA2D0", Offset = "0x7B92D0", VA = "0x1807BA2D0")]
public static void AddExt(ulong[] xx, ulong[] yy, ulong[] zz)
{
ulong num = yy[0];
zz[0] = num;
ulong num2 = yy[1];
zz[1] = num2;
ulong num3 = yy[2];
zz[2] = num3;
ulong num4 = yy[3];
zz[3] = num4;
}
// Token: 0x0600A975 RID: 43381 RVA: 0x00249DB8 File Offset: 0x00247FB8
[Token(Token = "0x600A975")]
[Address(RVA = "0x7EF1C0", Offset = "0x7EE1C0", VA = "0x1807EF1C0")]
public static void AddOne(ulong[] x, ulong[] z)
{
ulong num = x[0];
z[0] = num;
ulong num2 = x[1];
z[1] = num2;
}
// Token: 0x0600A976 RID: 43382 RVA: 0x00249DEC File Offset: 0x00247FEC
[Token(Token = "0x600A976")]
[Address(RVA = "0x7EF310", Offset = "0x7EE310", VA = "0x1807EF310")]
public static ulong[] FromBigInteger(BigInteger x)
{
ulong[] array = Nat128.FromBigInteger64(x);
ulong num = array[1];
array[0] = num;
array[1] = num;
return array;
}
// Token: 0x0600A977 RID: 43383 RVA: 0x00249E20 File Offset: 0x00248020
[Token(Token = "0x600A977")]
[Address(RVA = "0x7EFA80", Offset = "0x7EEA80", VA = "0x1807EFA80")]
public static void Invert(ulong[] x, ulong[] z)
{
/*
An exception occurred when decompiling this method (0600A977)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113Field::Invert(System.UInt64[],System.UInt64[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_188:
stloc:InvalidOperationException(var_28_18D, newobj:InvalidOperationException(InvalidOperationException::.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: 0x0600A978 RID: 43384 RVA: 0x00249FBC File Offset: 0x002481BC
[Token(Token = "0x600A978")]
[Address(RVA = "0x7EFDC0", Offset = "0x7EEDC0", VA = "0x1807EFDC0")]
public static void Multiply(ulong[] x, ulong[] y, ulong[] z)
{
ulong[] array = Nat128.CreateExt64();
SecT113Field.ImplMultiply(x, y, array);
SecT113Field.Reduce(array, z);
}
// Token: 0x0600A979 RID: 43385 RVA: 0x00249FE0 File Offset: 0x002481E0
[Token(Token = "0x600A979")]
[Address(RVA = "0x7EFD60", Offset = "0x7EED60", VA = "0x1807EFD60")]
public static void MultiplyAddToExt(ulong[] x, ulong[] y, ulong[] zz)
{
ulong[] array = Nat128.CreateExt64();
SecT113Field.ImplMultiply(x, y, array);
SecT113Field.AddExt(zz, array, zz);
}
// Token: 0x0600A97A RID: 43386 RVA: 0x0024A008 File Offset: 0x00248208
[Token(Token = "0x600A97A")]
[Address(RVA = "0x7EFEC0", Offset = "0x7EEEC0", VA = "0x1807EFEC0")]
public static void Reduce(ulong[] xx, ulong[] z)
{
int length = xx.Length;
ulong num = xx[1];
ulong num2 = xx[3];
num2 = num;
z[0] = num2;
z[1] = num;
}
// Token: 0x0600A97B RID: 43387 RVA: 0x0024A044 File Offset: 0x00248244
[Token(Token = "0x600A97B")]
[Address(RVA = "0x7EFE20", Offset = "0x7EEE20", VA = "0x1807EFE20")]
public static void Reduce15(ulong[] z, int zOff)
{
int length = z.Length;
int num = zOff + 1;
ulong num2 = z[num];
z[0] = num2;
z[0] = num2;
}
// Token: 0x0600A97C RID: 43388 RVA: 0x0024A07C File Offset: 0x0024827C
[Token(Token = "0x600A97C")]
[Address(RVA = "0x7F0000", Offset = "0x7EF000", VA = "0x1807F0000")]
public static void Sqrt(ulong[] x, ulong[] z)
{
ulong num = Interleave.Unshuffle(x[0]);
ulong num2 = x[1];
ulong num3 = Interleave.Unshuffle(num2);
z[0] = num3;
z[1] = num;
}
// Token: 0x0600A97D RID: 43389 RVA: 0x0024A0C0 File Offset: 0x002482C0
[Token(Token = "0x600A97D")]
[Address(RVA = "0x7F0220", Offset = "0x7EF220", VA = "0x1807F0220")]
public static void Square(ulong[] x, ulong[] z)
{
ulong[] array = Nat128.CreateExt64();
SecT113Field.ImplSquare(x, array);
SecT113Field.Reduce(array, z);
}
// Token: 0x0600A97E RID: 43390 RVA: 0x0024A0E4 File Offset: 0x002482E4
[Token(Token = "0x600A97E")]
[Address(RVA = "0x7F0100", Offset = "0x7EF100", VA = "0x1807F0100")]
public static void SquareAddToExt(ulong[] x, ulong[] zz)
{
ulong[] array = Nat128.CreateExt64();
SecT113Field.ImplSquare(x, array);
SecT113Field.AddExt(zz, array, zz);
}
// Token: 0x0600A97F RID: 43391 RVA: 0x0024A108 File Offset: 0x00248308
[Token(Token = "0x600A97F")]
[Address(RVA = "0x7F0150", Offset = "0x7EF150", VA = "0x1807F0150")]
public static void SquareN(ulong[] x, int n, ulong[] z)
{
int num = n - 1;
ulong[] array = Nat128.CreateExt64();
SecT113Field.ImplSquare(x, array);
SecT113Field.Reduce(array, z);
if (num > 0)
{
ulong num2 = z[0];
int num3 = 0;
Interleave.Expand64To128(num2, array, num3);
Interleave.Expand64To128(z[1], array, 2);
SecT113Field.Reduce(array, z);
}
}
// Token: 0x0600A980 RID: 43392 RVA: 0x0024A164 File Offset: 0x00248364
[Token(Token = "0x600A980")]
[Address(RVA = "0x7C80D0", Offset = "0x7C70D0", VA = "0x1807C80D0")]
public static uint Trace(ulong[] x)
{
ulong num = x[0];
throw new NullReferenceException();
}
// Token: 0x0600A981 RID: 43393 RVA: 0x0024A180 File Offset: 0x00248380
[Token(Token = "0x600A981")]
[Address(RVA = "0x7EF390", Offset = "0x7EE390", VA = "0x1807EF390")]
protected static void ImplMultiply(ulong[] x, ulong[] y, ulong[] zz)
{
int length = x.Length;
ulong num = x[0];
int length2 = y.Length;
ulong num2 = y[0];
ulong[] array = new ulong[6];
int num3 = 0;
SecT113Field.ImplMulw(num, num2, array, num3);
SecT113Field.ImplMulw(num, num2, array, 2);
SecT113Field.ImplMulw(num, num2, array, 4);
int length3 = array.Length;
ulong num4 = array[3];
ulong num5 = array[4];
ulong num6 = array[5];
zz[0] = num5;
num5 = num6;
zz[1] = num5;
zz[2] = num6;
zz[3] = num4;
}
// Token: 0x0600A982 RID: 43394 RVA: 0x0024A234 File Offset: 0x00248434
[Token(Token = "0x600A982")]
[Address(RVA = "0x7EF680", Offset = "0x7EE680", VA = "0x1807EF680")]
protected static void ImplMulw(ulong x, ulong y, ulong[] z, int zOff)
{
ulong[] array = new ulong[8];
array[1] = y;
int num = array.Length;
array[2] = (ulong)num;
int length = array.Length;
array[3] = (ulong)num;
num = length;
array[4] = (ulong)num;
int length2 = array.Length;
array[5] = (ulong)num;
num = length2;
array[6] = (ulong)num;
int length3 = array.Length;
array[7] = (ulong)num;
int num2 = zOff + 1;
z[0] = x;
z[0] = y;
}
// Token: 0x0600A983 RID: 43395 RVA: 0x0024A2BC File Offset: 0x002484BC
[Token(Token = "0x600A983")]
[Address(RVA = "0x7EFA00", Offset = "0x7EEA00", VA = "0x1807EFA00")]
protected static void ImplSquare(ulong[] x, ulong[] zz)
{
ulong num = x[0];
int num2 = 0;
Interleave.Expand64To128(num, zz, num2);
Interleave.Expand64To128(x[1], zz, 2);
}
// Token: 0x0600A984 RID: 43396 RVA: 0x0024A2F0 File Offset: 0x002484F0
[Token(Token = "0x600A984")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecT113Field()
{
}
// Token: 0x04006D96 RID: 28054
[Token(Token = "0x4006D96")]
private const ulong M49 = 562949953421311UL;
// Token: 0x04006D97 RID: 28055
[Token(Token = "0x4006D97")]
private const ulong M57 = 144115188075855871UL;
}
}
@@ -0,0 +1,584 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B4E RID: 6990
[Token(Token = "0x2001B4E")]
internal class SecT113FieldElement : AbstractF2mFieldElement
{
// Token: 0x0600A985 RID: 43397 RVA: 0x0024A304 File Offset: 0x00248504
[Token(Token = "0x600A985")]
[Address(RVA = "0x7EF050", Offset = "0x7EE050", VA = "0x1807EF050")]
public SecT113FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A985)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_38:
stloc:ArgumentException(var_3_47, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecT113FieldElement"), ldstr:string("x")))
}
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: 0x0600A986 RID: 43398 RVA: 0x0024A358 File Offset: 0x00248558
[Token(Token = "0x600A986")]
[Address(RVA = "0x7EF020", Offset = "0x7EE020", VA = "0x1807EF020")]
public SecT113FieldElement()
{
ulong[] array = Nat128.Create64();
this.x = array;
}
// Token: 0x0600A987 RID: 43399 RVA: 0x0024A37C File Offset: 0x0024857C
[Token(Token = "0x600A987")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecT113FieldElement(ulong[] x)
{
this.x = x;
}
// Token: 0x17001A82 RID: 6786
// (get) Token: 0x0600A988 RID: 43400 RVA: 0x0024A398 File Offset: 0x00248598
[Token(Token = "0x17001A82")]
public override bool IsOne
{
[Token(Token = "0x600A988")]
[Address(RVA = "0x7EF1A0", Offset = "0x7EE1A0", VA = "0x1807EF1A0", Slot = "17")]
get
{
return Nat128.IsOne64(this.x);
}
}
// Token: 0x17001A83 RID: 6787
// (get) Token: 0x0600A989 RID: 43401 RVA: 0x0024A3B0 File Offset: 0x002485B0
[Token(Token = "0x17001A83")]
public override bool IsZero
{
[Token(Token = "0x600A989")]
[Address(RVA = "0x7EF1B0", Offset = "0x7EE1B0", VA = "0x1807EF1B0", Slot = "18")]
get
{
return Nat128.IsZero64(this.x);
}
}
// Token: 0x0600A98A RID: 43402 RVA: 0x0024A3C8 File Offset: 0x002485C8
[Token(Token = "0x600A98A")]
[Address(RVA = "0x7B9C40", Offset = "0x7B8C40", VA = "0x1807B9C40", Slot = "24")]
public override bool TestBitZero()
{
ulong[] array = this.x;
throw new NullReferenceException();
}
// Token: 0x0600A98B RID: 43403 RVA: 0x0024A3E4 File Offset: 0x002485E4
[Token(Token = "0x600A98B")]
[Address(RVA = "0x7EF010", Offset = "0x7EE010", VA = "0x1807EF010", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat128.ToBigInteger64(this.x);
}
// Token: 0x17001A84 RID: 6788
// (get) Token: 0x0600A98C RID: 43404 RVA: 0x0024A3FC File Offset: 0x002485FC
[Token(Token = "0x17001A84")]
public override string FieldName
{
[Token(Token = "0x600A98C")]
[Address(RVA = "0x7EF160", Offset = "0x7EE160", VA = "0x1807EF160", Slot = "5")]
get
{
return "SecT113Field";
}
}
// Token: 0x17001A85 RID: 6789
// (get) Token: 0x0600A98D RID: 43405 RVA: 0x0024A410 File Offset: 0x00248610
[Token(Token = "0x17001A85")]
public override int FieldSize
{
[Token(Token = "0x600A98D")]
[Address(RVA = "0x7EF190", Offset = "0x7EE190", VA = "0x1807EF190", Slot = "6")]
get
{
return 113;
}
}
// Token: 0x0600A98E RID: 43406 RVA: 0x0024A420 File Offset: 0x00248620
[Token(Token = "0x600A98E")]
[Address(RVA = "0x7EE390", Offset = "0x7ED390", VA = "0x1807EE390", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
ulong[] array;
ulong[] array2;
do
{
array = Nat128.Create64();
array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecT113FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
array[0] = typeof(SecT113FieldElement).TypeHandle;
array[1] = array2;
new SecT113FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A98F RID: 43407 RVA: 0x0024A47C File Offset: 0x0024867C
[Token(Token = "0x600A98F")]
[Address(RVA = "0x7EE2B0", Offset = "0x7ED2B0", VA = "0x1807EE2B0", Slot = "8")]
public override ECFieldElement AddOne()
{
ulong[] array = Nat128.Create64();
ulong[] array2 = this.x;
ulong num = array2[0];
array[0] = num;
ulong num2 = array2[1];
array[1] = num2;
new SecT113FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A990 RID: 43408 RVA: 0x0024A4CC File Offset: 0x002486CC
[Token(Token = "0x600A990")]
[Address(RVA = "0x7B9C20", Offset = "0x7B8C20", VA = "0x1807B9C20", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
/*
An exception occurred when decompiling this method (0600A990)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113FieldElement::Subtract(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT113FieldElement[exp:ECFieldElement](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: 0x0600A991 RID: 43409 RVA: 0x0024A4E0 File Offset: 0x002486E0
[Token(Token = "0x600A991")]
[Address(RVA = "0x7EEA40", Offset = "0x7EDA40", VA = "0x1807EEA40", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
ulong[] array;
do
{
array = Nat128.Create64();
ulong[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecT113FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
SecT113Field.Reduce(Nat128.CreateExt64(), array);
new SecT113FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A992 RID: 43410 RVA: 0x0024A534 File Offset: 0x00248734
[Token(Token = "0x600A992")]
[Address(RVA = "0x7B9440", Offset = "0x7B8440", VA = "0x1807B9440", Slot = "19")]
public override ECFieldElement MultiplyMinusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
{
/*
An exception occurred when decompiling this method (0600A992)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113FieldElement::MultiplyMinusProduct(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT113FieldElement[exp:ECFieldElement](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: 0x0600A993 RID: 43411 RVA: 0x0024A548 File Offset: 0x00248748
[Token(Token = "0x600A993")]
[Address(RVA = "0x7EE790", Offset = "0x7ED790", VA = "0x1807EE790", Slot = "20")]
public override ECFieldElement MultiplyPlusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
{
do
{
ulong[] array = this.x;
}
while (b == 0 || b == 0 || x == 0 || x == 0 || y == 0 || y == 0);
ulong[] array2 = Nat128.CreateExt64();
ulong[] array3 = Nat128.CreateExt64();
SecT113Field.AddExt(array2, array3, array2);
ulong[] array4 = Nat128.CreateExt64();
SecT113Field.AddExt(array2, array4, array2);
ulong[] array5 = Nat128.Create64();
SecT113Field.Reduce(array2, array5);
new SecT113FieldElement().x = array5;
throw new NullReferenceException();
}
// Token: 0x0600A994 RID: 43412 RVA: 0x0024A5DC File Offset: 0x002487DC
[Token(Token = "0x600A994")]
[Address(RVA = "0x7B91D0", Offset = "0x7B81D0", VA = "0x1807B91D0", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
ECFieldElement ecfieldElement = b.Square();
BigInteger bigInteger = base.ToBigInteger();
throw new NullReferenceException();
}
// Token: 0x0600A995 RID: 43413 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A995")]
[Address(RVA = "0x4A65C0", Offset = "0x4A55C0", VA = "0x1804A65C0", Slot = "12")]
public override ECFieldElement Negate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A996 RID: 43414 RVA: 0x0024A5FC File Offset: 0x002487FC
[Token(Token = "0x600A996")]
[Address(RVA = "0x7EEF70", Offset = "0x7EDF70", VA = "0x1807EEF70", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600A996)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat128::Create64))
stloc:uint64[](var_2_0E, ldfld:uint64[](SecT113FieldElement::x, ldloc:SecT113FieldElement(this)))
stloc:uint64[](var_4_16, call:uint64[](Nat128::CreateExt64))
call:void(SecT113Field::ImplSquare, ldloc:uint64[](var_2_0E), ldloc:uint64[](var_4_16))
call:void(SecT113Field::Reduce, ldloc:uint64[](var_4_16), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT113FieldElement::x, newobj:SecT113FieldElement(SecT113FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600A997 RID: 43415 RVA: 0x0024A63C File Offset: 0x0024883C
[Token(Token = "0x600A997")]
[Address(RVA = "0x7B98C0", Offset = "0x7B88C0", VA = "0x1807B98C0", Slot = "21")]
public override ECFieldElement SquareMinusProduct(ECFieldElement x, ECFieldElement y)
{
/*
An exception occurred when decompiling this method (0600A997)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113FieldElement::SquareMinusProduct(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT113FieldElement[exp:ECFieldElement](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: 0x0600A998 RID: 43416 RVA: 0x0024A650 File Offset: 0x00248850
[Token(Token = "0x600A998")]
[Address(RVA = "0x7EECD0", Offset = "0x7EDCD0", VA = "0x1807EECD0", Slot = "22")]
public override ECFieldElement SquarePlusProduct(ECFieldElement x, ECFieldElement y)
{
ulong[] array;
do
{
array = this.x;
}
while (x == 0 || x == 0 || y == 0 || y == 0);
ulong[] array2 = Nat128.CreateExt64();
ulong[] array3 = Nat128.CreateExt64();
SecT113Field.ImplSquare(array, array3);
SecT113Field.AddExt(array2, array3, array2);
ulong[] array4 = Nat128.CreateExt64();
SecT113Field.AddExt(array2, array4, array2);
ulong[] array5 = Nat128.Create64();
SecT113Field.Reduce(array2, array5);
new SecT113FieldElement().x = array5;
throw new NullReferenceException();
}
// Token: 0x0600A999 RID: 43417 RVA: 0x0024A6E0 File Offset: 0x002488E0
[Token(Token = "0x600A999")]
[Address(RVA = "0x7EEEF0", Offset = "0x7EDEF0", VA = "0x1807EEEF0", Slot = "23")]
public override ECFieldElement SquarePow(int pow)
{
/*
An exception occurred when decompiling this method (0600A999)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113FieldElement::SquarePow(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat128::Create64))
call:void(SecT113Field::SquareN, ldfld:uint64[](SecT113FieldElement::x, ldloc:SecT113FieldElement(this)), ldloc:int32(pow), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT113FieldElement::x, newobj:SecT113FieldElement(SecT113FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600A99A RID: 43418 RVA: 0x0024A70C File Offset: 0x0024890C
[Token(Token = "0x600A99A")]
[Address(RVA = "0x7C6140", Offset = "0x7C5140", VA = "0x1807C6140", Slot = "28")]
public override int Trace()
{
ulong num = this.x[0];
throw new NullReferenceException();
}
// Token: 0x0600A99B RID: 43419 RVA: 0x0024A72C File Offset: 0x0024892C
[Token(Token = "0x600A99B")]
[Address(RVA = "0x7EE720", Offset = "0x7ED720", VA = "0x1807EE720", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600A99B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat128::Create64))
call:void(SecT113Field::Invert, ldfld:uint64[](SecT113FieldElement::x, ldloc:SecT113FieldElement(this)), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT113FieldElement::x, newobj:SecT113FieldElement(SecT113FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600A99C RID: 43420 RVA: 0x0024A758 File Offset: 0x00248958
[Token(Token = "0x600A99C")]
[Address(RVA = "0x7EEB80", Offset = "0x7EDB80", VA = "0x1807EEB80", Slot = "15")]
public override ECFieldElement Sqrt()
{
ulong[] array = Nat128.Create64();
ulong[] array2 = this.x;
ulong num = Interleave.Unshuffle(array2[0]);
ulong num2 = array2[1];
ulong num3 = Interleave.Unshuffle(num2);
array[0] = num3;
array[1] = num;
new SecT113FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x17001A86 RID: 6790
// (get) Token: 0x0600A99D RID: 43421 RVA: 0x0024A7B8 File Offset: 0x002489B8
[Token(Token = "0x17001A86")]
public virtual int Representation
{
[Token(Token = "0x600A99D")]
[Address(RVA = "0x4E86A0", Offset = "0x4E76A0", VA = "0x1804E86A0", Slot = "29")]
get
{
return 2;
}
}
// Token: 0x17001A87 RID: 6791
// (get) Token: 0x0600A99E RID: 43422 RVA: 0x0024A7C8 File Offset: 0x002489C8
[Token(Token = "0x17001A87")]
public virtual int M
{
[Token(Token = "0x600A99E")]
[Address(RVA = "0x7EF190", Offset = "0x7EE190", VA = "0x1807EF190", Slot = "30")]
get
{
return 113;
}
}
// Token: 0x17001A88 RID: 6792
// (get) Token: 0x0600A99F RID: 43423 RVA: 0x0024A7D8 File Offset: 0x002489D8
[Token(Token = "0x17001A88")]
public virtual int K1
{
[Token(Token = "0x600A99F")]
[Address(RVA = "0x68E020", Offset = "0x68D020", VA = "0x18068E020", Slot = "31")]
get
{
return 9;
}
}
// Token: 0x17001A89 RID: 6793
// (get) Token: 0x0600A9A0 RID: 43424 RVA: 0x0024A7E8 File Offset: 0x002489E8
[Token(Token = "0x17001A89")]
public virtual int K2
{
[Token(Token = "0x600A9A0")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "32")]
get
{
return 0;
}
}
// Token: 0x17001A8A RID: 6794
// (get) Token: 0x0600A9A1 RID: 43425 RVA: 0x0024A7F8 File Offset: 0x002489F8
[Token(Token = "0x17001A8A")]
public virtual int K3
{
[Token(Token = "0x600A9A1")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "33")]
get
{
return 0;
}
}
// Token: 0x0600A9A2 RID: 43426 RVA: 0x0024A808 File Offset: 0x00248A08
[Token(Token = "0x600A9A2")]
[Address(RVA = "0x7EE620", Offset = "0x7ED620", VA = "0x1807EE620", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600A9A2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT113FieldElement[exp:ECFieldElement](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: 0x0600A9A3 RID: 43427 RVA: 0x0024A824 File Offset: 0x00248A24
[Token(Token = "0x600A9A3")]
[Address(RVA = "0x7EE590", Offset = "0x7ED590", VA = "0x1807EE590", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600A9A3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT113FieldElement[exp:ECFieldElement](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: 0x0600A9A4 RID: 43428 RVA: 0x0024A840 File Offset: 0x00248A40
[Token(Token = "0x600A9A4")]
[Address(RVA = "0x7EE570", Offset = "0x7ED570", VA = "0x1807EE570", Slot = "34")]
public virtual bool Equals(SecT113FieldElement other)
{
if (this != other)
{
if (other != 0)
{
ulong[] array = other.x;
return Nat128.Eq64(this.x, array);
}
}
return true;
}
// Token: 0x0600A9A5 RID: 43429 RVA: 0x0024A86C File Offset: 0x00248A6C
[Token(Token = "0x600A9A5")]
[Address(RVA = "0x7EE6B0", Offset = "0x7ED6B0", VA = "0x1807EE6B0", Slot = "2")]
public override int GetHashCode()
{
ulong[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 2);
}
// Token: 0x04006D98 RID: 28056
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D98")]
protected internal readonly ulong[] x;
}
}
@@ -0,0 +1,391 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B4F RID: 6991
[Token(Token = "0x2001B4F")]
internal class SecT113R1Curve : AbstractF2mCurve
{
// Token: 0x0600A9A6 RID: 43430 RVA: 0x0024A88C File Offset: 0x00248A8C
[Token(Token = "0x600A9A6")]
[Address(RVA = "0x7F0840", Offset = "0x7EF840", VA = "0x1807F0840")]
public SecT113R1Curve()
{
int num = 0;
int num2 = 0;
base..ctor(113, 9, num2, num);
int num3;
int num4;
SecT113R1Point secT113R1Point = new SecT113R1Point(this, num3, num4, num != 0);
num4 = 0;
num3 = 0;
this.m_infinity = secT113R1Point;
byte[] array = Hex.Decode("003088250CA6E7C7FE649CE85820F7");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("00E8BEE4D3E2260744188BE0E9C723");
BigInteger bigInteger2 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("0100000000000000D9CCEC8A39E56F");
BigInteger bigInteger3 = new BigInteger(1, array3);
this.m_order = bigInteger3;
BigInteger two = BigInteger.Two;
this.m_cofactor = two;
this.m_coord = (int)((ulong)6L);
}
// Token: 0x0600A9A7 RID: 43431 RVA: 0x0024A944 File Offset: 0x00248B44
[Token(Token = "0x600A9A7")]
[Address(RVA = "0x7F0270", Offset = "0x7EF270", VA = "0x1807F0270", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A9A7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113R1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_1_01, ldc.i4:int32(0))
stloc:SecT113R1Point(var_3_0F, newobj:SecT113R1Point(SecT113R1Point::.ctor, ldloc:SecT113R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_4), ldloc:int32[exp:bool](var_1_01)))
stloc:int32(var_4, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecT113R1Point(SecT113R1Curve::m_infinity, ldloc:SecT113R1Curve(var_0), ldloc:SecT113R1Point(var_3_0F))
stloc:uint8[](var_6_27, call:uint8[](Hex::Decode, ldstr:string("003088250CA6E7C7FE649CE85820F7")))
stloc:BigInteger(var_7_31, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_6_27)))
stloc:int32(var_8_39, callvirtgetter:int32(SecT113R1Curve::get_FieldSize, ldloc:SecT113R1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecT113R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_8_39))
stloc:uint8[](var_9_4D, call:uint8[](Hex::Decode, ldstr:string("00E8BEE4D3E2260744188BE0E9C723")))
stloc:BigInteger(var_10_57, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_9_4D)))
stloc:int32(var_11_5F, callvirtgetter:int32(SecT113R1Curve::get_FieldSize, ldloc:SecT113R1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecT113R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_11_5F))
stloc:uint8[](var_12_73, call:uint8[](Hex::Decode, ldstr:string("0100000000000000D9CCEC8A39E56F")))
stloc:BigInteger(var_13_7D, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_12_73)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecT113R1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_13_7D))
stloc:BigInteger(var_14_8C, ldsfld:BigInteger(BigInteger::Two))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecT113R1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_14_8C))
stfld:int32(ECCurve::m_coord, ldloc:SecT113R1Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](6)))
}
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: 0x0600A9A8 RID: 43432 RVA: 0x0024A9F0 File Offset: 0x00248BF0
[Token(Token = "0x600A9A8")]
[Address(RVA = "0x7BC700", Offset = "0x7BB700", VA = "0x1807BC700", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 6;
}
// Token: 0x17001A8B RID: 6795
// (get) Token: 0x0600A9A9 RID: 43433 RVA: 0x0024AA04 File Offset: 0x00248C04
[Token(Token = "0x17001A8B")]
public override ECPoint Infinity
{
[Token(Token = "0x600A9A9")]
[Address(RVA = "0x417710", Offset = "0x416710", VA = "0x180417710", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A9A9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113R1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT113R1Point(var_0_06, ldfld:SecT113R1Point(SecT113R1Curve::m_infinity, ldloc:SecT113R1Curve(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: 0x17001A8C RID: 6796
// (get) Token: 0x0600A9AA RID: 43434 RVA: 0x0024AA18 File Offset: 0x00248C18
[Token(Token = "0x17001A8C")]
public override int FieldSize
{
[Token(Token = "0x600A9AA")]
[Address(RVA = "0x7EF190", Offset = "0x7EE190", VA = "0x1807EF190", Slot = "4")]
get
{
return 113;
}
}
// Token: 0x0600A9AB RID: 43435 RVA: 0x0024AA28 File Offset: 0x00248C28
[Token(Token = "0x600A9AB")]
[Address(RVA = "0x7F07E0", Offset = "0x7EF7E0", VA = "0x1807F07E0", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A9AB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113R1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT113FieldElement(var_0_06, newobj:SecT113FieldElement(SecT113FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600A9AC RID: 43436 RVA: 0x0024AA3C File Offset: 0x00248C3C
[Token(Token = "0x600A9AC")]
[Address(RVA = "0x7F06B0", Offset = "0x7EF6B0", VA = "0x1807F06B0", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A9AC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113R1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT113R1Point(var_0_09, newobj:SecT113R1Point(SecT113R1Point::.ctor, ldloc:SecT113R1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A9AD RID: 43437 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A9AD")]
[Address(RVA = "0x7F0740", Offset = "0x7EF740", VA = "0x1807F0740", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001A8D RID: 6797
// (get) Token: 0x0600A9AE RID: 43438 RVA: 0x0024AA54 File Offset: 0x00248C54
[Token(Token = "0x17001A8D")]
public override bool IsKoblitz
{
[Token(Token = "0x600A9AE")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "39")]
get
{
}
}
// Token: 0x17001A8E RID: 6798
// (get) Token: 0x0600A9AF RID: 43439 RVA: 0x0024AA64 File Offset: 0x00248C64
[Token(Token = "0x17001A8E")]
public virtual int M
{
[Token(Token = "0x600A9AF")]
[Address(RVA = "0x7EF190", Offset = "0x7EE190", VA = "0x1807EF190", Slot = "40")]
get
{
return 113;
}
}
// Token: 0x17001A8F RID: 6799
// (get) Token: 0x0600A9B0 RID: 43440 RVA: 0x0024AA74 File Offset: 0x00248C74
[Token(Token = "0x17001A8F")]
public virtual bool IsTrinomial
{
[Token(Token = "0x600A9B0")]
[Address(RVA = "0x4246A0", Offset = "0x4236A0", VA = "0x1804246A0", Slot = "41")]
get
{
return true;
}
}
// Token: 0x17001A90 RID: 6800
// (get) Token: 0x0600A9B1 RID: 43441 RVA: 0x0024AA84 File Offset: 0x00248C84
[Token(Token = "0x17001A90")]
public virtual int K1
{
[Token(Token = "0x600A9B1")]
[Address(RVA = "0x68E020", Offset = "0x68D020", VA = "0x18068E020", Slot = "42")]
get
{
return 9;
}
}
// Token: 0x17001A91 RID: 6801
// (get) Token: 0x0600A9B2 RID: 43442 RVA: 0x0024AA94 File Offset: 0x00248C94
[Token(Token = "0x17001A91")]
public virtual int K2
{
[Token(Token = "0x600A9B2")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "43")]
get
{
return 0;
}
}
// Token: 0x17001A92 RID: 6802
// (get) Token: 0x0600A9B3 RID: 43443 RVA: 0x0024AAA4 File Offset: 0x00248CA4
[Token(Token = "0x17001A92")]
public virtual int K3
{
[Token(Token = "0x600A9B3")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "44")]
get
{
return 0;
}
}
// Token: 0x0600A9B4 RID: 43444 RVA: 0x0024AAB4 File Offset: 0x00248CB4
[Token(Token = "0x600A9B4")]
[Address(RVA = "0x7F0450", Offset = "0x7EF450", VA = "0x1807F0450", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
ulong[] array;
int num;
for (;;)
{
array = new ulong[points];
num = 0;
if (len <= 0)
{
goto IL_49;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 4;
IL_49:
SecT113R1Curve.SecT113R1LookupTable secT113R1LookupTable;
secT113R1LookupTable.m_outer = 0;
secT113R1LookupTable.m_table = array;
secT113R1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006D99 RID: 28057
[Token(Token = "0x4006D99")]
private const int SECT113R1_DEFAULT_COORDS = 6;
// Token: 0x04006D9A RID: 28058
[Token(Token = "0x4006D9A")]
private const int SECT113R1_FE_LONGS = 2;
// Token: 0x04006D9B RID: 28059
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006D9B")]
protected readonly SecT113R1Point m_infinity;
// Token: 0x02001B50 RID: 6992
[Token(Token = "0x2001B50")]
private class SecT113R1LookupTable : ECLookupTable
{
// Token: 0x0600A9B5 RID: 43445 RVA: 0x0024AB28 File Offset: 0x00248D28
[Token(Token = "0x600A9B5")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecT113R1LookupTable(SecT113R1Curve outer, ulong[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A93 RID: 6803
// (get) Token: 0x0600A9B6 RID: 43446 RVA: 0x0024AB50 File Offset: 0x00248D50
[Token(Token = "0x17001A93")]
public virtual int Size
{
[Token(Token = "0x600A9B6")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A9B7 RID: 43447 RVA: 0x0024AB64 File Offset: 0x00248D64
[Token(Token = "0x600A9B7")]
[Address(RVA = "0x7F0A00", Offset = "0x7EFA00", VA = "0x1807F0A00", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
ulong[] array = Nat128.Create64();
ulong[] array2 = Nat128.Create64();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
ulong[] table = this.m_table;
ulong[] table2 = this.m_table;
num3++;
num += 4;
num2++;
}
SecT113R1Curve outer = this.m_outer;
new SecT113FieldElement().x = array;
new SecT113FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006D9C RID: 28060
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006D9C")]
private readonly SecT113R1Curve m_outer;
// Token: 0x04006D9D RID: 28061
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006D9D")]
private readonly ulong[] m_table;
// Token: 0x04006D9E RID: 28062
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006D9E")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,256 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B51 RID: 6993
[Token(Token = "0x2001B51")]
internal class SecT113R1Point : AbstractF2mPoint
{
// Token: 0x0600A9B8 RID: 43448 RVA: 0x0024ABE4 File Offset: 0x00248DE4
[Token(Token = "0x600A9B8")]
[Address(RVA = "0x7F21D0", Offset = "0x7F11D0", VA = "0x1807F21D0")]
public SecT113R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A9B9 RID: 43449 RVA: 0x0024ABF4 File Offset: 0x00248DF4
[Token(Token = "0x600A9B9")]
[Address(RVA = "0x7F2110", Offset = "0x7F1110", VA = "0x1807F2110")]
public SecT113R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A9B9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113R1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A9BA RID: 43450 RVA: 0x0024AC1C File Offset: 0x00248E1C
[Token(Token = "0x600A9BA")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecT113R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A9BB RID: 43451 RVA: 0x0024AC2C File Offset: 0x00248E2C
[Token(Token = "0x600A9BB")]
[Address(RVA = "0x7F1410", Offset = "0x7F0410", VA = "0x1807F1410", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A9BB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113R1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecT113R1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecT113R1Point[exp: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: 0x17001A94 RID: 6804
// (get) Token: 0x0600A9BC RID: 43452 RVA: 0x0024AC48 File Offset: 0x00248E48
[Token(Token = "0x17001A94")]
public override ECFieldElement YCoord
{
[Token(Token = "0x600A9BC")]
[Address(RVA = "0x7BE020", Offset = "0x7BD020", VA = "0x1807BE020", Slot = "12")]
get
{
ECFieldElement x = this.m_x;
ECFieldElement y = this.m_y;
if (!base.IsInfinity && !x.IsOne)
{
int fieldSize = y.FieldSize;
if (this.m_zs[0].BitLength == 0)
{
}
}
return y;
}
}
// Token: 0x17001A95 RID: 6805
// (get) Token: 0x0600A9BD RID: 43453 RVA: 0x0024AC98 File Offset: 0x00248E98
[Token(Token = "0x17001A95")]
protected internal override bool CompressionYTilde
{
[Token(Token = "0x600A9BD")]
[Address(RVA = "0x7BDFA0", Offset = "0x7BCFA0", VA = "0x1807BDFA0", Slot = "25")]
get
{
if (!this.m_x.IsOne)
{
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement;
ECFieldElement ecfieldElement2;
return ecfieldElement != ecfieldElement2;
}
throw new NullReferenceException();
}
}
// Token: 0x0600A9BE RID: 43454 RVA: 0x0024ACCC File Offset: 0x00248ECC
[Token(Token = "0x600A9BE")]
[Address(RVA = "0x7F0BD0", Offset = "0x7EFBD0", VA = "0x1807F0BD0", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
while (!base.IsInfinity && !b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
ECFieldElement x2 = b.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
ECFieldElement[] zs2 = b.m_zs;
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
if (ecfieldElement.BitLength == 0)
{
ECFieldElement ecfieldElement3 = x2.Subtract(ecfieldElement);
ECFieldElement ecfieldElement4 = y2.Subtract(ecfieldElement);
}
if (ecfieldElement2.BitLength != 0)
{
continue;
}
ECFieldElement ecfieldElement5 = x.Subtract(ecfieldElement2);
int fieldSize = y.Subtract(ecfieldElement2).FieldSize;
int fieldSize2 = ecfieldElement5.FieldSize;
if (fieldSize2 == 0)
{
if (!x2.IsOne)
{
sbyte b3;
sbyte b2 = b3;
TypeCode typeCode = b2.GetTypeCode();
int fieldSize3 = y.FieldSize;
bool withCompression = this.m_withCompression;
}
short num;
TypeCode typeCode2 = num.GetTypeCode();
BigInteger one = BigInteger.One;
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
ECPoint ecpoint;
if (ecpoint == 0)
{
break;
}
}
if (!x2.IsOne)
{
bool compressionYTilde = b.CompressionYTilde;
break;
}
break;
}
return b;
}
// Token: 0x0600A9BF RID: 43455 RVA: 0x0024AE20 File Offset: 0x00249020
[Token(Token = "0x600A9BF")]
[Address(RVA = "0x7F1CC0", Offset = "0x7F0CC0", VA = "0x1807F1CC0", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
int bitLength = ecfieldElement.BitLength;
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement2 = y.Subtract(ecfieldElement);
ECFieldElement ecfieldElement3 = ecfieldElement.Negate();
if (bitLength == 0)
{
}
if (y.Negate().FieldSize.GetTypeCode() == TypeCode.Empty)
{
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement4 = x.Subtract(ecfieldElement);
ECFieldElement ecfieldElement5;
TypeCode typeCode = ecfieldElement5.FieldSize.GetTypeCode();
sbyte b;
(new ECFieldElement[1])[0] = b;
bool withCompression = this.m_withCompression;
}
SecT113R1Point secT113R1Point;
ECFieldElement[] zcoords = secT113R1Point.GetZCoords();
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A9C0 RID: 43456 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A9C0")]
[Address(RVA = "0x7F1660", Offset = "0x7F0660", VA = "0x1807F1660", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A9C1 RID: 43457 RVA: 0x0024AEE8 File Offset: 0x002490E8
[Token(Token = "0x600A9C1")]
[Address(RVA = "0x7F14B0", Offset = "0x7F04B0", VA = "0x1807F14B0", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity && !this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
bool flag = this.SatisfiesOrder();
int fieldSize = y.FieldSize;
ECFieldElement[] array = new ECFieldElement[1];
if (ecfieldElement != 0)
{
}
array[0] = ecfieldElement;
bool withCompression = this.m_withCompression;
}
throw new IndexOutOfRangeException();
}
}
}
@@ -0,0 +1,391 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B52 RID: 6994
[Token(Token = "0x2001B52")]
internal class SecT113R2Curve : AbstractF2mCurve
{
// Token: 0x0600A9C2 RID: 43458 RVA: 0x0024AF54 File Offset: 0x00249154
[Token(Token = "0x600A9C2")]
[Address(RVA = "0x7F27C0", Offset = "0x7F17C0", VA = "0x1807F27C0")]
public SecT113R2Curve()
{
int num = 0;
int num2 = 0;
base..ctor(113, 9, num2, num);
int num3;
int num4;
SecT113R2Point secT113R2Point = new SecT113R2Point(this, num3, num4, num != 0);
num4 = 0;
num3 = 0;
this.m_infinity = secT113R2Point;
byte[] array = Hex.Decode("00689918DBEC7E5A0DD6DFC0AA55C7");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("0095E9A9EC9B297BD4BF36E059184F");
BigInteger bigInteger2 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("010000000000000108789B2496AF93");
BigInteger bigInteger3 = new BigInteger(1, array3);
this.m_order = bigInteger3;
BigInteger two = BigInteger.Two;
this.m_cofactor = two;
this.m_coord = (int)((ulong)6L);
}
// Token: 0x0600A9C3 RID: 43459 RVA: 0x0024B00C File Offset: 0x0024920C
[Token(Token = "0x600A9C3")]
[Address(RVA = "0x7F21F0", Offset = "0x7F11F0", VA = "0x1807F21F0", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600A9C3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113R2Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_1_01, ldc.i4:int32(0))
stloc:SecT113R2Point(var_3_0F, newobj:SecT113R2Point(SecT113R2Point::.ctor, ldloc:SecT113R2Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_4), ldloc:int32[exp:bool](var_1_01)))
stloc:int32(var_4, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecT113R2Point(SecT113R2Curve::m_infinity, ldloc:SecT113R2Curve(var_0), ldloc:SecT113R2Point(var_3_0F))
stloc:uint8[](var_6_27, call:uint8[](Hex::Decode, ldstr:string("00689918DBEC7E5A0DD6DFC0AA55C7")))
stloc:BigInteger(var_7_31, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_6_27)))
stloc:int32(var_8_39, callvirtgetter:int32(SecT113R2Curve::get_FieldSize, ldloc:SecT113R2Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecT113R2Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_8_39))
stloc:uint8[](var_9_4D, call:uint8[](Hex::Decode, ldstr:string("0095E9A9EC9B297BD4BF36E059184F")))
stloc:BigInteger(var_10_57, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_9_4D)))
stloc:int32(var_11_5F, callvirtgetter:int32(SecT113R2Curve::get_FieldSize, ldloc:SecT113R2Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecT113R2Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_11_5F))
stloc:uint8[](var_12_73, call:uint8[](Hex::Decode, ldstr:string("010000000000000108789B2496AF93")))
stloc:BigInteger(var_13_7D, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_12_73)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecT113R2Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_13_7D))
stloc:BigInteger(var_14_8C, ldsfld:BigInteger(BigInteger::Two))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecT113R2Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_14_8C))
stfld:int32(ECCurve::m_coord, ldloc:SecT113R2Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](6)))
}
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: 0x0600A9C4 RID: 43460 RVA: 0x0024B0B8 File Offset: 0x002492B8
[Token(Token = "0x600A9C4")]
[Address(RVA = "0x7BC700", Offset = "0x7BB700", VA = "0x1807BC700", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 6;
}
// Token: 0x17001A96 RID: 6806
// (get) Token: 0x0600A9C5 RID: 43461 RVA: 0x0024B0CC File Offset: 0x002492CC
[Token(Token = "0x17001A96")]
public override ECPoint Infinity
{
[Token(Token = "0x600A9C5")]
[Address(RVA = "0x417710", Offset = "0x416710", VA = "0x180417710", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600A9C5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113R2Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT113R2Point(var_0_06, ldfld:SecT113R2Point(SecT113R2Curve::m_infinity, ldloc:SecT113R2Curve(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: 0x17001A97 RID: 6807
// (get) Token: 0x0600A9C6 RID: 43462 RVA: 0x0024B0E0 File Offset: 0x002492E0
[Token(Token = "0x17001A97")]
public override int FieldSize
{
[Token(Token = "0x600A9C6")]
[Address(RVA = "0x7EF190", Offset = "0x7EE190", VA = "0x1807EF190", Slot = "4")]
get
{
return 113;
}
}
// Token: 0x0600A9C7 RID: 43463 RVA: 0x0024B0F0 File Offset: 0x002492F0
[Token(Token = "0x600A9C7")]
[Address(RVA = "0x7F2760", Offset = "0x7F1760", VA = "0x1807F2760", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A9C7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113R2Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT113FieldElement(var_0_06, newobj:SecT113FieldElement(SecT113FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600A9C8 RID: 43464 RVA: 0x0024B104 File Offset: 0x00249304
[Token(Token = "0x600A9C8")]
[Address(RVA = "0x7F2630", Offset = "0x7F1630", VA = "0x1807F2630", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A9C8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113R2Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT113R2Point(var_0_09, newobj:SecT113R2Point(SecT113R2Point::.ctor, ldloc:SecT113R2Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600A9C9 RID: 43465 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A9C9")]
[Address(RVA = "0x7F26C0", Offset = "0x7F16C0", VA = "0x1807F26C0", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001A98 RID: 6808
// (get) Token: 0x0600A9CA RID: 43466 RVA: 0x0024B11C File Offset: 0x0024931C
[Token(Token = "0x17001A98")]
public override bool IsKoblitz
{
[Token(Token = "0x600A9CA")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "39")]
get
{
}
}
// Token: 0x17001A99 RID: 6809
// (get) Token: 0x0600A9CB RID: 43467 RVA: 0x0024B12C File Offset: 0x0024932C
[Token(Token = "0x17001A99")]
public virtual int M
{
[Token(Token = "0x600A9CB")]
[Address(RVA = "0x7EF190", Offset = "0x7EE190", VA = "0x1807EF190", Slot = "40")]
get
{
return 113;
}
}
// Token: 0x17001A9A RID: 6810
// (get) Token: 0x0600A9CC RID: 43468 RVA: 0x0024B13C File Offset: 0x0024933C
[Token(Token = "0x17001A9A")]
public virtual bool IsTrinomial
{
[Token(Token = "0x600A9CC")]
[Address(RVA = "0x4246A0", Offset = "0x4236A0", VA = "0x1804246A0", Slot = "41")]
get
{
return true;
}
}
// Token: 0x17001A9B RID: 6811
// (get) Token: 0x0600A9CD RID: 43469 RVA: 0x0024B14C File Offset: 0x0024934C
[Token(Token = "0x17001A9B")]
public virtual int K1
{
[Token(Token = "0x600A9CD")]
[Address(RVA = "0x68E020", Offset = "0x68D020", VA = "0x18068E020", Slot = "42")]
get
{
return 9;
}
}
// Token: 0x17001A9C RID: 6812
// (get) Token: 0x0600A9CE RID: 43470 RVA: 0x0024B15C File Offset: 0x0024935C
[Token(Token = "0x17001A9C")]
public virtual int K2
{
[Token(Token = "0x600A9CE")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "43")]
get
{
return 0;
}
}
// Token: 0x17001A9D RID: 6813
// (get) Token: 0x0600A9CF RID: 43471 RVA: 0x0024B16C File Offset: 0x0024936C
[Token(Token = "0x17001A9D")]
public virtual int K3
{
[Token(Token = "0x600A9CF")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "44")]
get
{
return 0;
}
}
// Token: 0x0600A9D0 RID: 43472 RVA: 0x0024B17C File Offset: 0x0024937C
[Token(Token = "0x600A9D0")]
[Address(RVA = "0x7F23D0", Offset = "0x7F13D0", VA = "0x1807F23D0", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
ulong[] array;
int num;
for (;;)
{
array = new ulong[points];
num = 0;
if (len <= 0)
{
goto IL_49;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 4;
IL_49:
SecT113R2Curve.SecT113R2LookupTable secT113R2LookupTable;
secT113R2LookupTable.m_outer = 0;
secT113R2LookupTable.m_table = array;
secT113R2LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006D9F RID: 28063
[Token(Token = "0x4006D9F")]
private const int SECT113R2_DEFAULT_COORDS = 6;
// Token: 0x04006DA0 RID: 28064
[Token(Token = "0x4006DA0")]
private const int SECT113R2_FE_LONGS = 2;
// Token: 0x04006DA1 RID: 28065
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006DA1")]
protected readonly SecT113R2Point m_infinity;
// Token: 0x02001B53 RID: 6995
[Token(Token = "0x2001B53")]
private class SecT113R2LookupTable : ECLookupTable
{
// Token: 0x0600A9D1 RID: 43473 RVA: 0x0024B1F0 File Offset: 0x002493F0
[Token(Token = "0x600A9D1")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecT113R2LookupTable(SecT113R2Curve outer, ulong[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001A9E RID: 6814
// (get) Token: 0x0600A9D2 RID: 43474 RVA: 0x0024B218 File Offset: 0x00249418
[Token(Token = "0x17001A9E")]
public virtual int Size
{
[Token(Token = "0x600A9D2")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600A9D3 RID: 43475 RVA: 0x0024B22C File Offset: 0x0024942C
[Token(Token = "0x600A9D3")]
[Address(RVA = "0x7F2980", Offset = "0x7F1980", VA = "0x1807F2980", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
ulong[] array = Nat128.Create64();
ulong[] array2 = Nat128.Create64();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
ulong[] table = this.m_table;
ulong[] table2 = this.m_table;
num3++;
num += 4;
num2++;
}
SecT113R2Curve outer = this.m_outer;
new SecT113FieldElement().x = array;
new SecT113FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006DA2 RID: 28066
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DA2")]
private readonly SecT113R2Curve m_outer;
// Token: 0x04006DA3 RID: 28067
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006DA3")]
private readonly ulong[] m_table;
// Token: 0x04006DA4 RID: 28068
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006DA4")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,256 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B54 RID: 6996
[Token(Token = "0x2001B54")]
internal class SecT113R2Point : AbstractF2mPoint
{
// Token: 0x0600A9D4 RID: 43476 RVA: 0x0024B2AC File Offset: 0x002494AC
[Token(Token = "0x600A9D4")]
[Address(RVA = "0x7F4090", Offset = "0x7F3090", VA = "0x1807F4090")]
public SecT113R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600A9D5 RID: 43477 RVA: 0x0024B2BC File Offset: 0x002494BC
[Token(Token = "0x600A9D5")]
[Address(RVA = "0x7F40B0", Offset = "0x7F30B0", VA = "0x1807F40B0")]
public SecT113R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600A9D5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113R2Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600A9D6 RID: 43478 RVA: 0x0024B2E4 File Offset: 0x002494E4
[Token(Token = "0x600A9D6")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecT113R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600A9D7 RID: 43479 RVA: 0x0024B2F4 File Offset: 0x002494F4
[Token(Token = "0x600A9D7")]
[Address(RVA = "0x7F3390", Offset = "0x7F2390", VA = "0x1807F3390", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600A9D7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT113R2Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecT113R2Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecT113R2Point[exp: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: 0x17001A9F RID: 6815
// (get) Token: 0x0600A9D8 RID: 43480 RVA: 0x0024B310 File Offset: 0x00249510
[Token(Token = "0x17001A9F")]
public override ECFieldElement YCoord
{
[Token(Token = "0x600A9D8")]
[Address(RVA = "0x7BE020", Offset = "0x7BD020", VA = "0x1807BE020", Slot = "12")]
get
{
ECFieldElement x = this.m_x;
ECFieldElement y = this.m_y;
if (!base.IsInfinity && !x.IsOne)
{
int fieldSize = y.FieldSize;
if (this.m_zs[0].BitLength == 0)
{
}
}
return y;
}
}
// Token: 0x17001AA0 RID: 6816
// (get) Token: 0x0600A9D9 RID: 43481 RVA: 0x0024B360 File Offset: 0x00249560
[Token(Token = "0x17001AA0")]
protected internal override bool CompressionYTilde
{
[Token(Token = "0x600A9D9")]
[Address(RVA = "0x7BDFA0", Offset = "0x7BCFA0", VA = "0x1807BDFA0", Slot = "25")]
get
{
if (!this.m_x.IsOne)
{
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement;
ECFieldElement ecfieldElement2;
return ecfieldElement != ecfieldElement2;
}
throw new NullReferenceException();
}
}
// Token: 0x0600A9DA RID: 43482 RVA: 0x0024B394 File Offset: 0x00249594
[Token(Token = "0x600A9DA")]
[Address(RVA = "0x7F2B50", Offset = "0x7F1B50", VA = "0x1807F2B50", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
while (!base.IsInfinity && !b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
ECFieldElement x2 = b.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
ECFieldElement[] zs2 = b.m_zs;
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
if (ecfieldElement.BitLength == 0)
{
ECFieldElement ecfieldElement3 = x2.Subtract(ecfieldElement);
ECFieldElement ecfieldElement4 = y2.Subtract(ecfieldElement);
}
if (ecfieldElement2.BitLength != 0)
{
continue;
}
ECFieldElement ecfieldElement5 = x.Subtract(ecfieldElement2);
int fieldSize = y.Subtract(ecfieldElement2).FieldSize;
int fieldSize2 = ecfieldElement5.FieldSize;
if (fieldSize2 == 0)
{
if (!x2.IsOne)
{
sbyte b3;
sbyte b2 = b3;
TypeCode typeCode = b2.GetTypeCode();
int fieldSize3 = y.FieldSize;
bool withCompression = this.m_withCompression;
}
short num;
TypeCode typeCode2 = num.GetTypeCode();
BigInteger one = BigInteger.One;
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
ECPoint ecpoint;
if (ecpoint == 0)
{
break;
}
}
if (!x2.IsOne)
{
bool compressionYTilde = b.CompressionYTilde;
break;
}
break;
}
return b;
}
// Token: 0x0600A9DB RID: 43483 RVA: 0x0024B4E8 File Offset: 0x002496E8
[Token(Token = "0x600A9DB")]
[Address(RVA = "0x7F3C40", Offset = "0x7F2C40", VA = "0x1807F3C40", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
int bitLength = ecfieldElement.BitLength;
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement2 = y.Subtract(ecfieldElement);
ECFieldElement ecfieldElement3 = ecfieldElement.Negate();
if (bitLength == 0)
{
}
if (y.Negate().FieldSize.GetTypeCode() == TypeCode.Empty)
{
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement4 = x.Subtract(ecfieldElement);
ECFieldElement ecfieldElement5;
TypeCode typeCode = ecfieldElement5.FieldSize.GetTypeCode();
sbyte b;
(new ECFieldElement[1])[0] = b;
bool withCompression = this.m_withCompression;
}
SecT113R2Point secT113R2Point;
ECFieldElement[] zcoords = secT113R2Point.GetZCoords();
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A9DC RID: 43484 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600A9DC")]
[Address(RVA = "0x7F35E0", Offset = "0x7F25E0", VA = "0x1807F35E0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600A9DD RID: 43485 RVA: 0x0024B5B0 File Offset: 0x002497B0
[Token(Token = "0x600A9DD")]
[Address(RVA = "0x7F3430", Offset = "0x7F2430", VA = "0x1807F3430", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity && !this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
bool flag = this.SatisfiesOrder();
int fieldSize = y.FieldSize;
ECFieldElement[] array = new ECFieldElement[1];
if (ecfieldElement != 0)
{
}
array[0] = ecfieldElement;
bool withCompression = this.m_withCompression;
}
throw new IndexOutOfRangeException();
}
}
}
@@ -0,0 +1,327 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B55 RID: 6997
[Token(Token = "0x2001B55")]
internal class SecT131Field
{
// Token: 0x0600A9DE RID: 43486 RVA: 0x0024B61C File Offset: 0x0024981C
[Token(Token = "0x600A9DE")]
[Address(RVA = "0x7F52E0", Offset = "0x7F42E0", VA = "0x1807F52E0")]
public static void Add(ulong[] x, ulong[] y, ulong[] z)
{
ulong num = y[0];
z[0] = num;
ulong num2 = y[1];
z[1] = num2;
ulong num3 = y[2];
z[2] = num3;
}
// Token: 0x0600A9DF RID: 43487 RVA: 0x0024B660 File Offset: 0x00249860
[Token(Token = "0x600A9DF")]
[Address(RVA = "0x7BF5E0", Offset = "0x7BE5E0", VA = "0x1807BF5E0")]
public static void AddExt(ulong[] xx, ulong[] yy, ulong[] zz)
{
ulong num = yy[0];
zz[0] = num;
ulong num2 = yy[1];
zz[1] = num2;
ulong num3 = yy[2];
zz[2] = num3;
ulong num4 = yy[3];
zz[3] = num4;
ulong num5 = yy[4];
zz[4] = num5;
}
// Token: 0x0600A9E0 RID: 43488 RVA: 0x0024B6C8 File Offset: 0x002498C8
[Token(Token = "0x600A9E0")]
[Address(RVA = "0x7F5220", Offset = "0x7F4220", VA = "0x1807F5220")]
public static void AddOne(ulong[] x, ulong[] z)
{
ulong num = x[0];
z[0] = num;
ulong num2 = x[1];
z[1] = num2;
ulong num3 = x[2];
z[2] = num3;
}
// Token: 0x0600A9E1 RID: 43489 RVA: 0x0024B70C File Offset: 0x0024990C
[Token(Token = "0x600A9E1")]
[Address(RVA = "0x7F5420", Offset = "0x7F4420", VA = "0x1807F5420")]
public static ulong[] FromBigInteger(BigInteger x)
{
ulong[] array = Nat192.FromBigInteger64(x);
ulong num = array[2];
num += num;
array[0] = num;
array[2] = num;
return array;
}
// Token: 0x0600A9E2 RID: 43490 RVA: 0x0024B744 File Offset: 0x00249944
[Token(Token = "0x600A9E2")]
[Address(RVA = "0x7F6130", Offset = "0x7F5130", VA = "0x1807F6130")]
public static void Invert(ulong[] x, ulong[] z)
{
/*
An exception occurred when decompiling this method (0600A9E2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131Field::Invert(System.UInt64[],System.UInt64[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_A5:
stloc:InvalidOperationException(var_4_AA, newobj:InvalidOperationException(InvalidOperationException::.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: 0x0600A9E3 RID: 43491 RVA: 0x0024B7FC File Offset: 0x002499FC
[Token(Token = "0x600A9E3")]
[Address(RVA = "0x7F63B0", Offset = "0x7F53B0", VA = "0x1807F63B0")]
public static void Multiply(ulong[] x, ulong[] y, ulong[] z)
{
ulong[] array = Nat192.CreateExt64();
SecT131Field.ImplMultiply(x, y, array);
SecT131Field.Reduce(array, z);
}
// Token: 0x0600A9E4 RID: 43492 RVA: 0x0024B820 File Offset: 0x00249A20
[Token(Token = "0x600A9E4")]
[Address(RVA = "0x7F6310", Offset = "0x7F5310", VA = "0x1807F6310")]
public static void MultiplyAddToExt(ulong[] x, ulong[] y, ulong[] zz)
{
ulong[] array = Nat192.CreateExt64();
SecT131Field.ImplMultiply(x, y, array);
SecT131Field.AddExt(zz, array, zz);
}
// Token: 0x0600A9E5 RID: 43493 RVA: 0x0024B848 File Offset: 0x00249A48
[Token(Token = "0x600A9E5")]
[Address(RVA = "0x7F6510", Offset = "0x7F5510", VA = "0x1807F6510")]
public static void Reduce(ulong[] xx, ulong[] z)
{
int length = xx.Length;
ulong num = xx[2];
ulong num2 = xx[4];
num2 += num2;
z[0] = num2;
z[1] = num2;
z[2] = num;
}
// Token: 0x0600A9E6 RID: 43494 RVA: 0x0024B890 File Offset: 0x00249A90
[Token(Token = "0x600A9E6")]
[Address(RVA = "0x7F6450", Offset = "0x7F5450", VA = "0x1807F6450")]
public static void Reduce61(ulong[] z, int zOff)
{
int length = z.Length;
ulong num;
num += num;
z[0] = num;
z[0] = num;
}
// Token: 0x0600A9E7 RID: 43495 RVA: 0x0024B8C0 File Offset: 0x00249AC0
[Token(Token = "0x600A9E7")]
[Address(RVA = "0x7F66D0", Offset = "0x7F56D0", VA = "0x1807F66D0")]
public static void Sqrt(ulong[] x, ulong[] z)
{
ulong[] array = Nat192.Create64();
ulong num = Interleave.Unshuffle(x[0]);
ulong num2 = x[1];
ulong num3 = Interleave.Unshuffle(num2);
array[0] = num;
ulong num4 = Interleave.Unshuffle(x[2]);
array[1] = num4;
}
// Token: 0x0600A9E8 RID: 43496 RVA: 0x0024B91C File Offset: 0x00249B1C
[Token(Token = "0x600A9E8")]
[Address(RVA = "0x7F6A20", Offset = "0x7F5A20", VA = "0x1807F6A20")]
public static void Square(ulong[] x, ulong[] z)
{
ulong[] array = Nat.Create64(5);
SecT131Field.ImplSquare(x, array);
SecT131Field.Reduce(array, z);
}
// Token: 0x0600A9E9 RID: 43497 RVA: 0x0024B940 File Offset: 0x00249B40
[Token(Token = "0x600A9E9")]
[Address(RVA = "0x7F68A0", Offset = "0x7F58A0", VA = "0x1807F68A0")]
public static void SquareAddToExt(ulong[] x, ulong[] zz)
{
ulong[] array = Nat.Create64(5);
SecT131Field.ImplSquare(x, array);
SecT131Field.AddExt(zz, array, zz);
}
// Token: 0x0600A9EA RID: 43498 RVA: 0x0024B964 File Offset: 0x00249B64
[Token(Token = "0x600A9EA")]
[Address(RVA = "0x7F6930", Offset = "0x7F5930", VA = "0x1807F6930")]
public static void SquareN(ulong[] x, int n, ulong[] z)
{
ulong[] array = Nat.Create64(5);
SecT131Field.ImplSquare(x, array);
SecT131Field.Reduce(array, z);
if (n > 0)
{
SecT131Field.ImplSquare(z, array);
SecT131Field.Reduce(array, z);
}
}
// Token: 0x0600A9EB RID: 43499 RVA: 0x0024B998 File Offset: 0x00249B98
[Token(Token = "0x600A9EB")]
[Address(RVA = "0x7F6AB0", Offset = "0x7F5AB0", VA = "0x1807F6AB0")]
public static uint Trace(ulong[] x)
{
int length = x.Length;
ulong num = x[2];
throw new NullReferenceException();
}
// Token: 0x0600A9EC RID: 43500 RVA: 0x0024B9BC File Offset: 0x00249BBC
[Token(Token = "0x600A9EC")]
[Address(RVA = "0x7F5500", Offset = "0x7F4500", VA = "0x1807F5500")]
protected static void ImplCompactExt(ulong[] zz)
{
int length = zz.Length;
ulong num = zz[1];
ulong num2 = zz[3];
ulong num3 = zz[5];
zz[1] = num;
zz[2] = num;
zz[3] = num2;
zz[4] = num3;
}
// Token: 0x0600A9ED RID: 43501 RVA: 0x0024BA10 File Offset: 0x00249C10
[Token(Token = "0x600A9ED")]
[Address(RVA = "0x7F56B0", Offset = "0x7F46B0", VA = "0x1807F56B0")]
protected static void ImplMultiply(ulong[] x, ulong[] y, ulong[] zz)
{
int length = x.Length;
ulong num = x[0];
ulong num2 = x[2];
int length2 = y.Length;
ulong num3 = y[0];
ulong[] array = new ulong[10];
int num4 = 0;
SecT131Field.ImplMulw(num, num3, array, num4);
num = num2;
SecT131Field.ImplMulw(num, num3, array, 2);
num = num2;
uint num5;
SecT131Field.ImplMulw(num, num3, array, (int)num5);
num2 += num2;
num += num;
num2 += num2;
num3 = num;
num = num2;
SecT131Field.ImplMulw(num, num3, array, 6);
num3 = num;
SecT131Field.ImplMulw(num, num3, array, 8);
int length3 = array.Length;
ulong num6 = array[6];
ulong num7 = array[0];
array += array;
num6 += num6;
zz[0] = num7;
ulong num8 = array[2];
zz[1] = num8;
ulong num9 = array[3];
zz[2] = num9;
zz[3] = num9;
ulong num10 = array[2];
zz[4] = num10;
ulong num11 = array[3];
zz[5] = num11;
SecT131Field.ImplCompactExt(zz);
}
// Token: 0x0600A9EE RID: 43502 RVA: 0x0024BB3C File Offset: 0x00249D3C
[Token(Token = "0x600A9EE")]
[Address(RVA = "0x7F5C90", Offset = "0x7F4C90", VA = "0x1807F5C90")]
protected static void ImplMulw(ulong x, ulong y, ulong[] z, int zOff)
{
ulong[] array = new ulong[8];
array[1] = y;
int num = array.Length;
array[2] = (ulong)num;
int length = array.Length;
array[3] = (ulong)num;
num = length;
array[4] = (ulong)num;
int length2 = array.Length;
array[5] = (ulong)num;
num = length2;
array[6] = (ulong)num;
int length3 = array.Length;
array[7] = (ulong)num;
ulong num2 = array[(int)x];
int num3 = zOff + 1;
z[0] = x;
z[0] = num2;
}
// Token: 0x0600A9EF RID: 43503 RVA: 0x0024BBD0 File Offset: 0x00249DD0
[Token(Token = "0x600A9EF")]
[Address(RVA = "0x7F6070", Offset = "0x7F5070", VA = "0x1807F6070")]
protected static void ImplSquare(ulong[] x, ulong[] zz)
{
ulong num = x[0];
int num2 = 0;
Interleave.Expand64To128(num, zz, num2);
Interleave.Expand64To128(x[1], zz, 2);
uint num3 = Interleave.Expand8to16((uint)x[2]);
zz[4] = (ulong)num3;
}
// Token: 0x0600A9F0 RID: 43504 RVA: 0x0024BC18 File Offset: 0x00249E18
[Token(Token = "0x600A9F0")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecT131Field()
{
}
// Token: 0x0600A9F1 RID: 43505 RVA: 0x0024BC2C File Offset: 0x00249E2C
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A9F1")]
[Address(RVA = "0x7F6B20", Offset = "0x7F5B20", VA = "0x1807F6B20")]
static SecT131Field()
{
RuntimeHelpers.InitializeArray(new ulong[3], fieldof(<PrivateImplementationDetails>.CBF7F8D48ACC5EB9048CB8F1FCFAF93B33516965).FieldHandle);
}
// Token: 0x04006DA5 RID: 28069
[Token(Token = "0x4006DA5")]
private const ulong M03 = 7UL;
// Token: 0x04006DA6 RID: 28070
[Token(Token = "0x4006DA6")]
private const ulong M44 = 17592186044415UL;
// Token: 0x04006DA7 RID: 28071
[Token(Token = "0x4006DA7")]
private static readonly ulong[] ROOT_Z;
}
}
@@ -0,0 +1,598 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B56 RID: 6998
[Token(Token = "0x2001B56")]
internal class SecT131FieldElement : AbstractF2mFieldElement
{
// Token: 0x0600A9F2 RID: 43506 RVA: 0x0024BC4C File Offset: 0x00249E4C
[Token(Token = "0x600A9F2")]
[Address(RVA = "0x7F5020", Offset = "0x7F4020", VA = "0x1807F5020")]
public SecT131FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600A9F2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_3C:
stloc:ArgumentException(var_3_4B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecT131FieldElement"), ldstr:string("x")))
}
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: 0x0600A9F3 RID: 43507 RVA: 0x0024BCA4 File Offset: 0x00249EA4
[Token(Token = "0x600A9F3")]
[Address(RVA = "0x7F4FF0", Offset = "0x7F3FF0", VA = "0x1807F4FF0")]
public SecT131FieldElement()
{
ulong[] array = Nat192.Create64();
this.x = array;
}
// Token: 0x0600A9F4 RID: 43508 RVA: 0x0024BCC8 File Offset: 0x00249EC8
[Token(Token = "0x600A9F4")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecT131FieldElement(ulong[] x)
{
this.x = x;
}
// Token: 0x17001AA1 RID: 6817
// (get) Token: 0x0600A9F5 RID: 43509 RVA: 0x0024BCE4 File Offset: 0x00249EE4
[Token(Token = "0x17001AA1")]
public override bool IsOne
{
[Token(Token = "0x600A9F5")]
[Address(RVA = "0x7F5200", Offset = "0x7F4200", VA = "0x1807F5200", Slot = "17")]
get
{
return Nat192.IsOne64(this.x);
}
}
// Token: 0x17001AA2 RID: 6818
// (get) Token: 0x0600A9F6 RID: 43510 RVA: 0x0024BCFC File Offset: 0x00249EFC
[Token(Token = "0x17001AA2")]
public override bool IsZero
{
[Token(Token = "0x600A9F6")]
[Address(RVA = "0x7F5210", Offset = "0x7F4210", VA = "0x1807F5210", Slot = "18")]
get
{
return Nat192.IsZero64(this.x);
}
}
// Token: 0x0600A9F7 RID: 43511 RVA: 0x0024BD14 File Offset: 0x00249F14
[Token(Token = "0x600A9F7")]
[Address(RVA = "0x7B9C40", Offset = "0x7B8C40", VA = "0x1807B9C40", Slot = "24")]
public override bool TestBitZero()
{
ulong[] array = this.x;
throw new NullReferenceException();
}
// Token: 0x0600A9F8 RID: 43512 RVA: 0x0024BD30 File Offset: 0x00249F30
[Token(Token = "0x600A9F8")]
[Address(RVA = "0x7F4F30", Offset = "0x7F3F30", VA = "0x1807F4F30", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat192.ToBigInteger64(this.x);
}
// Token: 0x17001AA3 RID: 6819
// (get) Token: 0x0600A9F9 RID: 43513 RVA: 0x0024BD48 File Offset: 0x00249F48
[Token(Token = "0x17001AA3")]
public override string FieldName
{
[Token(Token = "0x600A9F9")]
[Address(RVA = "0x7F51C0", Offset = "0x7F41C0", VA = "0x1807F51C0", Slot = "5")]
get
{
return "SecT131Field";
}
}
// Token: 0x17001AA4 RID: 6820
// (get) Token: 0x0600A9FA RID: 43514 RVA: 0x0024BD5C File Offset: 0x00249F5C
[Token(Token = "0x17001AA4")]
public override int FieldSize
{
[Token(Token = "0x600A9FA")]
[Address(RVA = "0x7F51F0", Offset = "0x7F41F0", VA = "0x1807F51F0", Slot = "6")]
get
{
return 131;
}
}
// Token: 0x0600A9FB RID: 43515 RVA: 0x0024BD70 File Offset: 0x00249F70
[Token(Token = "0x600A9FB")]
[Address(RVA = "0x7F42B0", Offset = "0x7F32B0", VA = "0x1807F42B0", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
ulong[] array;
int num;
for (;;)
{
array = Nat192.Create64();
ulong[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecT131FieldElement).TypeHandle)
{
}
if (b != 0)
{
num = 0;
if (b != 0)
{
break;
}
}
}
array[0] = (ulong)num;
array[1] = (ulong)num;
array[2] = (ulong)num;
new SecT131FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A9FC RID: 43516 RVA: 0x0024BDD0 File Offset: 0x00249FD0
[Token(Token = "0x600A9FC")]
[Address(RVA = "0x7F4170", Offset = "0x7F3170", VA = "0x1807F4170", Slot = "8")]
public override ECFieldElement AddOne()
{
ulong[] array = Nat192.Create64();
ulong[] array2 = this.x;
ulong num = array2[0];
array[0] = num;
ulong num2 = array2[1];
array[1] = num2;
ulong num3 = array2[2];
array[2] = num3;
new SecT131FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A9FD RID: 43517 RVA: 0x0024BE30 File Offset: 0x0024A030
[Token(Token = "0x600A9FD")]
[Address(RVA = "0x7B9C20", Offset = "0x7B8C20", VA = "0x1807B9C20", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
/*
An exception occurred when decompiling this method (0600A9FD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131FieldElement::Subtract(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT131FieldElement[exp:ECFieldElement](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: 0x0600A9FE RID: 43518 RVA: 0x0024BE44 File Offset: 0x0024A044
[Token(Token = "0x600A9FE")]
[Address(RVA = "0x7F49D0", Offset = "0x7F39D0", VA = "0x1807F49D0", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
ulong[] array;
do
{
array = Nat192.Create64();
ulong[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecT131FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecT131FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600A9FF RID: 43519 RVA: 0x0024BE8C File Offset: 0x0024A08C
[Token(Token = "0x600A9FF")]
[Address(RVA = "0x7B9440", Offset = "0x7B8440", VA = "0x1807B9440", Slot = "19")]
public override ECFieldElement MultiplyMinusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
{
/*
An exception occurred when decompiling this method (0600A9FF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131FieldElement::MultiplyMinusProduct(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT131FieldElement[exp:ECFieldElement](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: 0x0600AA00 RID: 43520 RVA: 0x0024BEA0 File Offset: 0x0024A0A0
[Token(Token = "0x600AA00")]
[Address(RVA = "0x7F4740", Offset = "0x7F3740", VA = "0x1807F4740", Slot = "20")]
public override ECFieldElement MultiplyPlusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
{
do
{
ulong[] array = this.x;
}
while (b == 0 || b == 0 || x == 0 || x == 0 || y == 0 || y == 0);
ulong[] array2 = Nat.Create64(5);
ulong[] array3 = Nat192.Create64();
SecT131Field.Reduce(array2, array3);
new SecT131FieldElement().x = array3;
throw new NullReferenceException();
}
// Token: 0x0600AA01 RID: 43521 RVA: 0x0024BF08 File Offset: 0x0024A108
[Token(Token = "0x600AA01")]
[Address(RVA = "0x7B91D0", Offset = "0x7B81D0", VA = "0x1807B91D0", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
ECFieldElement ecfieldElement = b.Square();
BigInteger bigInteger = base.ToBigInteger();
throw new NullReferenceException();
}
// Token: 0x0600AA02 RID: 43522 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AA02")]
[Address(RVA = "0x4A65C0", Offset = "0x4A55C0", VA = "0x1804A65C0", Slot = "12")]
public override ECFieldElement Negate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AA03 RID: 43523 RVA: 0x0024BF28 File Offset: 0x0024A128
[Token(Token = "0x600AA03")]
[Address(RVA = "0x7F4EA0", Offset = "0x7F3EA0", VA = "0x1807F4EA0", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600AA03)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat192::Create64))
call:void(SecT131Field::Square, ldfld:uint64[](SecT131FieldElement::x, ldloc:SecT131FieldElement(this)), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT131FieldElement::x, newobj:SecT131FieldElement(SecT131FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600AA04 RID: 43524 RVA: 0x0024BF54 File Offset: 0x0024A154
[Token(Token = "0x600AA04")]
[Address(RVA = "0x7B98C0", Offset = "0x7B88C0", VA = "0x1807B98C0", Slot = "21")]
public override ECFieldElement SquareMinusProduct(ECFieldElement x, ECFieldElement y)
{
/*
An exception occurred when decompiling this method (0600AA04)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131FieldElement::SquareMinusProduct(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT131FieldElement[exp:ECFieldElement](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: 0x0600AA05 RID: 43525 RVA: 0x0024BF68 File Offset: 0x0024A168
[Token(Token = "0x600AA05")]
[Address(RVA = "0x7F4BA0", Offset = "0x7F3BA0", VA = "0x1807F4BA0", Slot = "22")]
public override ECFieldElement SquarePlusProduct(ECFieldElement x, ECFieldElement y)
{
ulong[] array;
do
{
array = this.x;
}
while (x == 0 || x == 0 || y == 0 || y == 0);
ulong[] array2 = Nat.Create64(5);
ulong[] array3 = Nat.Create64(5);
SecT131Field.ImplSquare(array, array3);
SecT131Field.AddExt(array2, array3, array2);
ulong[] array4 = Nat192.Create64();
SecT131Field.Reduce(array2, array4);
new SecT131FieldElement().x = array4;
throw new NullReferenceException();
}
// Token: 0x0600AA06 RID: 43526 RVA: 0x0024BFDC File Offset: 0x0024A1DC
[Token(Token = "0x600AA06")]
[Address(RVA = "0x7F4E00", Offset = "0x7F3E00", VA = "0x1807F4E00", Slot = "23")]
public override ECFieldElement SquarePow(int pow)
{
/*
An exception occurred when decompiling this method (0600AA06)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131FieldElement::SquarePow(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat192::Create64))
call:void(SecT131Field::SquareN, ldfld:uint64[](SecT131FieldElement::x, ldloc:SecT131FieldElement(this)), ldloc:int32(pow), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT131FieldElement::x, newobj:SecT131FieldElement(SecT131FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600AA07 RID: 43527 RVA: 0x0024C008 File Offset: 0x0024A208
[Token(Token = "0x600AA07")]
[Address(RVA = "0x7F4F40", Offset = "0x7F3F40", VA = "0x1807F4F40", Slot = "28")]
public override int Trace()
{
ulong[] array = this.x;
int length = array.Length;
ulong num = array[2];
throw new NullReferenceException();
}
// Token: 0x0600AA08 RID: 43528 RVA: 0x0024C030 File Offset: 0x0024A230
[Token(Token = "0x600AA08")]
[Address(RVA = "0x7F46B0", Offset = "0x7F36B0", VA = "0x1807F46B0", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600AA08)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat192::Create64))
call:void(SecT131Field::Invert, ldfld:uint64[](SecT131FieldElement::x, ldloc:SecT131FieldElement(this)), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT131FieldElement::x, newobj:SecT131FieldElement(SecT131FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600AA09 RID: 43529 RVA: 0x0024C05C File Offset: 0x0024A25C
[Token(Token = "0x600AA09")]
[Address(RVA = "0x7F4B10", Offset = "0x7F3B10", VA = "0x1807F4B10", Slot = "15")]
public override ECFieldElement Sqrt()
{
/*
An exception occurred when decompiling this method (0600AA09)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131FieldElement::Sqrt()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat192::Create64))
call:void(SecT131Field::Sqrt, ldfld:uint64[](SecT131FieldElement::x, ldloc:SecT131FieldElement(this)), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT131FieldElement::x, newobj:SecT131FieldElement(SecT131FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x17001AA5 RID: 6821
// (get) Token: 0x0600AA0A RID: 43530 RVA: 0x0024C088 File Offset: 0x0024A288
[Token(Token = "0x17001AA5")]
public virtual int Representation
{
[Token(Token = "0x600AA0A")]
[Address(RVA = "0x4DB5B0", Offset = "0x4DA5B0", VA = "0x1804DB5B0", Slot = "29")]
get
{
return 3;
}
}
// Token: 0x17001AA6 RID: 6822
// (get) Token: 0x0600AA0B RID: 43531 RVA: 0x0024C098 File Offset: 0x0024A298
[Token(Token = "0x17001AA6")]
public virtual int M
{
[Token(Token = "0x600AA0B")]
[Address(RVA = "0x7F51F0", Offset = "0x7F41F0", VA = "0x1807F51F0", Slot = "30")]
get
{
return 131;
}
}
// Token: 0x17001AA7 RID: 6823
// (get) Token: 0x0600AA0C RID: 43532 RVA: 0x0024C0AC File Offset: 0x0024A2AC
[Token(Token = "0x17001AA7")]
public virtual int K1
{
[Token(Token = "0x600AA0C")]
[Address(RVA = "0x4E86A0", Offset = "0x4E76A0", VA = "0x1804E86A0", Slot = "31")]
get
{
return 2;
}
}
// Token: 0x17001AA8 RID: 6824
// (get) Token: 0x0600AA0D RID: 43533 RVA: 0x0024C0BC File Offset: 0x0024A2BC
[Token(Token = "0x17001AA8")]
public virtual int K2
{
[Token(Token = "0x600AA0D")]
[Address(RVA = "0x4DB5B0", Offset = "0x4DA5B0", VA = "0x1804DB5B0", Slot = "32")]
get
{
return 3;
}
}
// Token: 0x17001AA9 RID: 6825
// (get) Token: 0x0600AA0E RID: 43534 RVA: 0x0024C0CC File Offset: 0x0024A2CC
[Token(Token = "0x17001AA9")]
public virtual int K3
{
[Token(Token = "0x600AA0E")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "33")]
get
{
return 8;
}
}
// Token: 0x0600AA0F RID: 43535 RVA: 0x0024C0DC File Offset: 0x0024A2DC
[Token(Token = "0x600AA0F")]
[Address(RVA = "0x7F4590", Offset = "0x7F3590", VA = "0x1807F4590", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600AA0F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT131FieldElement[exp:ECFieldElement](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: 0x0600AA10 RID: 43536 RVA: 0x0024C0F8 File Offset: 0x0024A2F8
[Token(Token = "0x600AA10")]
[Address(RVA = "0x7F4500", Offset = "0x7F3500", VA = "0x1807F4500", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600AA10)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT131FieldElement[exp:ECFieldElement](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: 0x0600AA11 RID: 43537 RVA: 0x0024C114 File Offset: 0x0024A314
[Token(Token = "0x600AA11")]
[Address(RVA = "0x7F4620", Offset = "0x7F3620", VA = "0x1807F4620", Slot = "34")]
public virtual bool Equals(SecT131FieldElement other)
{
if (this != other)
{
if (other != 0)
{
ulong[] array = other.x;
return Nat192.Eq64(this.x, array);
}
}
return true;
}
// Token: 0x0600AA12 RID: 43538 RVA: 0x0024C140 File Offset: 0x0024A340
[Token(Token = "0x600AA12")]
[Address(RVA = "0x7F4640", Offset = "0x7F3640", VA = "0x1807F4640", Slot = "2")]
public override int GetHashCode()
{
ulong[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 3);
}
// Token: 0x04006DA8 RID: 28072
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DA8")]
protected internal readonly ulong[] x;
}
}
@@ -0,0 +1,390 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B57 RID: 6999
[Token(Token = "0x2001B57")]
internal class SecT131R1Curve : AbstractF2mCurve
{
// Token: 0x0600AA13 RID: 43539 RVA: 0x0024C160 File Offset: 0x0024A360
[Token(Token = "0x600AA13")]
[Address(RVA = "0x7F7160", Offset = "0x7F6160", VA = "0x1807F7160")]
public SecT131R1Curve()
{
int num = 0;
ulong num2;
base..ctor(131, 2, 3, (int)num2);
int num3;
int num4;
SecT131R1Point secT131R1Point = new SecT131R1Point(this, num3, num4, num != 0);
num4 = 0;
num3 = 0;
this.m_infinity = secT131R1Point;
byte[] array = Hex.Decode("07A11B09A76B562144418FF3FF8C2570B8");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("0217C05610884B63B9C6C7291678F9D341");
BigInteger bigInteger2 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("0400000000000000023123953A9464B54D");
BigInteger bigInteger3 = new BigInteger(1, array3);
this.m_order = bigInteger3;
BigInteger two = BigInteger.Two;
this.m_cofactor = two;
this.m_coord = (int)((ulong)6L);
}
// Token: 0x0600AA14 RID: 43540 RVA: 0x0024C218 File Offset: 0x0024A418
[Token(Token = "0x600AA14")]
[Address(RVA = "0x7F6B80", Offset = "0x7F5B80", VA = "0x1807F6B80", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600AA14)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131R1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_1_01, ldc.i4:int32(0))
stloc:SecT131R1Point(var_3_0D, newobj:SecT131R1Point(SecT131R1Point::.ctor, ldloc:SecT131R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_4), ldloc:int32[exp:bool](var_1_01)))
stloc:int32(var_4, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecT131R1Point(SecT131R1Curve::m_infinity, ldloc:SecT131R1Curve(var_0), ldloc:SecT131R1Point(var_3_0D))
stloc:uint8[](var_6_25, call:uint8[](Hex::Decode, ldstr:string("07A11B09A76B562144418FF3FF8C2570B8")))
stloc:BigInteger(var_7_2F, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_6_25)))
stloc:int32(var_8_37, callvirtgetter:int32(SecT131R1Curve::get_FieldSize, ldloc:SecT131R1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecT131R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_8_37))
stloc:uint8[](var_9_4B, call:uint8[](Hex::Decode, ldstr:string("0217C05610884B63B9C6C7291678F9D341")))
stloc:BigInteger(var_10_55, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_9_4B)))
stloc:int32(var_11_5D, callvirtgetter:int32(SecT131R1Curve::get_FieldSize, ldloc:SecT131R1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecT131R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_11_5D))
stloc:uint8[](var_12_71, call:uint8[](Hex::Decode, ldstr:string("0400000000000000023123953A9464B54D")))
stloc:BigInteger(var_13_7B, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_12_71)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecT131R1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_13_7B))
stloc:BigInteger(var_14_8A, ldsfld:BigInteger(BigInteger::Two))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecT131R1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_14_8A))
stfld:int32(ECCurve::m_coord, ldloc:SecT131R1Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](6)))
}
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: 0x0600AA15 RID: 43541 RVA: 0x0024C2C4 File Offset: 0x0024A4C4
[Token(Token = "0x600AA15")]
[Address(RVA = "0x7BC700", Offset = "0x7BB700", VA = "0x1807BC700", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 6;
}
// Token: 0x17001AAA RID: 6826
// (get) Token: 0x0600AA16 RID: 43542 RVA: 0x0024C2D8 File Offset: 0x0024A4D8
[Token(Token = "0x17001AAA")]
public override ECPoint Infinity
{
[Token(Token = "0x600AA16")]
[Address(RVA = "0x417710", Offset = "0x416710", VA = "0x180417710", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600AA16)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131R1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT131R1Point(var_0_06, ldfld:SecT131R1Point(SecT131R1Curve::m_infinity, ldloc:SecT131R1Curve(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: 0x17001AAB RID: 6827
// (get) Token: 0x0600AA17 RID: 43543 RVA: 0x0024C2EC File Offset: 0x0024A4EC
[Token(Token = "0x17001AAB")]
public override int FieldSize
{
[Token(Token = "0x600AA17")]
[Address(RVA = "0x7F51F0", Offset = "0x7F41F0", VA = "0x1807F51F0", Slot = "4")]
get
{
return 131;
}
}
// Token: 0x0600AA18 RID: 43544 RVA: 0x0024C300 File Offset: 0x0024A500
[Token(Token = "0x600AA18")]
[Address(RVA = "0x7F7100", Offset = "0x7F6100", VA = "0x1807F7100", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AA18)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131R1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT131FieldElement(var_0_06, newobj:SecT131FieldElement(SecT131FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600AA19 RID: 43545 RVA: 0x0024C314 File Offset: 0x0024A514
[Token(Token = "0x600AA19")]
[Address(RVA = "0x7F6FD0", Offset = "0x7F5FD0", VA = "0x1807F6FD0", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AA19)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131R1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT131R1Point(var_0_09, newobj:SecT131R1Point(SecT131R1Point::.ctor, ldloc:SecT131R1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600AA1A RID: 43546 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AA1A")]
[Address(RVA = "0x7F7060", Offset = "0x7F6060", VA = "0x1807F7060", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001AAC RID: 6828
// (get) Token: 0x0600AA1B RID: 43547 RVA: 0x0024C32C File Offset: 0x0024A52C
[Token(Token = "0x17001AAC")]
public override bool IsKoblitz
{
[Token(Token = "0x600AA1B")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "39")]
get
{
}
}
// Token: 0x17001AAD RID: 6829
// (get) Token: 0x0600AA1C RID: 43548 RVA: 0x0024C33C File Offset: 0x0024A53C
[Token(Token = "0x17001AAD")]
public virtual int M
{
[Token(Token = "0x600AA1C")]
[Address(RVA = "0x7F51F0", Offset = "0x7F41F0", VA = "0x1807F51F0", Slot = "40")]
get
{
return 131;
}
}
// Token: 0x17001AAE RID: 6830
// (get) Token: 0x0600AA1D RID: 43549 RVA: 0x0024C350 File Offset: 0x0024A550
[Token(Token = "0x17001AAE")]
public virtual bool IsTrinomial
{
[Token(Token = "0x600AA1D")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "41")]
get
{
}
}
// Token: 0x17001AAF RID: 6831
// (get) Token: 0x0600AA1E RID: 43550 RVA: 0x0024C360 File Offset: 0x0024A560
[Token(Token = "0x17001AAF")]
public virtual int K1
{
[Token(Token = "0x600AA1E")]
[Address(RVA = "0x4E86A0", Offset = "0x4E76A0", VA = "0x1804E86A0", Slot = "42")]
get
{
return 2;
}
}
// Token: 0x17001AB0 RID: 6832
// (get) Token: 0x0600AA1F RID: 43551 RVA: 0x0024C370 File Offset: 0x0024A570
[Token(Token = "0x17001AB0")]
public virtual int K2
{
[Token(Token = "0x600AA1F")]
[Address(RVA = "0x4DB5B0", Offset = "0x4DA5B0", VA = "0x1804DB5B0", Slot = "43")]
get
{
return 3;
}
}
// Token: 0x17001AB1 RID: 6833
// (get) Token: 0x0600AA20 RID: 43552 RVA: 0x0024C380 File Offset: 0x0024A580
[Token(Token = "0x17001AB1")]
public virtual int K3
{
[Token(Token = "0x600AA20")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "44")]
get
{
return 8;
}
}
// Token: 0x0600AA21 RID: 43553 RVA: 0x0024C390 File Offset: 0x0024A590
[Token(Token = "0x600AA21")]
[Address(RVA = "0x7F6D70", Offset = "0x7F5D70", VA = "0x1807F6D70", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
ulong[] array;
int num;
for (;;)
{
array = new ulong[points];
num = 0;
if (len <= 0)
{
goto IL_49;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 6;
IL_49:
SecT131R1Curve.SecT131R1LookupTable secT131R1LookupTable;
secT131R1LookupTable.m_outer = 0;
secT131R1LookupTable.m_table = array;
secT131R1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006DA9 RID: 28073
[Token(Token = "0x4006DA9")]
private const int SECT131R1_DEFAULT_COORDS = 6;
// Token: 0x04006DAA RID: 28074
[Token(Token = "0x4006DAA")]
private const int SECT131R1_FE_LONGS = 3;
// Token: 0x04006DAB RID: 28075
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006DAB")]
protected readonly SecT131R1Point m_infinity;
// Token: 0x02001B58 RID: 7000
[Token(Token = "0x2001B58")]
private class SecT131R1LookupTable : ECLookupTable
{
// Token: 0x0600AA22 RID: 43554 RVA: 0x0024C404 File Offset: 0x0024A604
[Token(Token = "0x600AA22")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecT131R1LookupTable(SecT131R1Curve outer, ulong[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001AB2 RID: 6834
// (get) Token: 0x0600AA23 RID: 43555 RVA: 0x0024C42C File Offset: 0x0024A62C
[Token(Token = "0x17001AB2")]
public virtual int Size
{
[Token(Token = "0x600AA23")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600AA24 RID: 43556 RVA: 0x0024C440 File Offset: 0x0024A640
[Token(Token = "0x600AA24")]
[Address(RVA = "0x7F7320", Offset = "0x7F6320", VA = "0x1807F7320", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
ulong[] array = Nat192.Create64();
ulong[] array2 = Nat192.Create64();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
ulong[] table = this.m_table;
ulong[] table2 = this.m_table;
num3++;
num += 6;
num2++;
}
SecT131R1Curve outer = this.m_outer;
new SecT131FieldElement().x = array;
new SecT131FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006DAC RID: 28076
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DAC")]
private readonly SecT131R1Curve m_outer;
// Token: 0x04006DAD RID: 28077
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006DAD")]
private readonly ulong[] m_table;
// Token: 0x04006DAE RID: 28078
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006DAE")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,256 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B59 RID: 7001
[Token(Token = "0x2001B59")]
internal class SecT131R1Point : AbstractF2mPoint
{
// Token: 0x0600AA25 RID: 43557 RVA: 0x0024C4C0 File Offset: 0x0024A6C0
[Token(Token = "0x600AA25")]
[Address(RVA = "0x7F8A30", Offset = "0x7F7A30", VA = "0x1807F8A30")]
public SecT131R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600AA26 RID: 43558 RVA: 0x0024C4D0 File Offset: 0x0024A6D0
[Token(Token = "0x600AA26")]
[Address(RVA = "0x7F8A50", Offset = "0x7F7A50", VA = "0x1807F8A50")]
public SecT131R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AA26)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131R1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600AA27 RID: 43559 RVA: 0x0024C4F8 File Offset: 0x0024A6F8
[Token(Token = "0x600AA27")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecT131R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600AA28 RID: 43560 RVA: 0x0024C508 File Offset: 0x0024A708
[Token(Token = "0x600AA28")]
[Address(RVA = "0x7F7D30", Offset = "0x7F6D30", VA = "0x1807F7D30", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600AA28)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131R1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecT131R1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecT131R1Point[exp: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: 0x17001AB3 RID: 6835
// (get) Token: 0x0600AA29 RID: 43561 RVA: 0x0024C524 File Offset: 0x0024A724
[Token(Token = "0x17001AB3")]
public override ECFieldElement YCoord
{
[Token(Token = "0x600AA29")]
[Address(RVA = "0x7BE020", Offset = "0x7BD020", VA = "0x1807BE020", Slot = "12")]
get
{
ECFieldElement x = this.m_x;
ECFieldElement y = this.m_y;
if (!base.IsInfinity && !x.IsOne)
{
int fieldSize = y.FieldSize;
if (this.m_zs[0].BitLength == 0)
{
}
}
return y;
}
}
// Token: 0x17001AB4 RID: 6836
// (get) Token: 0x0600AA2A RID: 43562 RVA: 0x0024C574 File Offset: 0x0024A774
[Token(Token = "0x17001AB4")]
protected internal override bool CompressionYTilde
{
[Token(Token = "0x600AA2A")]
[Address(RVA = "0x7BDFA0", Offset = "0x7BCFA0", VA = "0x1807BDFA0", Slot = "25")]
get
{
if (!this.m_x.IsOne)
{
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement;
ECFieldElement ecfieldElement2;
return ecfieldElement != ecfieldElement2;
}
throw new NullReferenceException();
}
}
// Token: 0x0600AA2B RID: 43563 RVA: 0x0024C5A8 File Offset: 0x0024A7A8
[Token(Token = "0x600AA2B")]
[Address(RVA = "0x7F74F0", Offset = "0x7F64F0", VA = "0x1807F74F0", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
while (!base.IsInfinity && !b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
ECFieldElement x2 = b.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
ECFieldElement[] zs2 = b.m_zs;
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
if (ecfieldElement.BitLength == 0)
{
ECFieldElement ecfieldElement3 = x2.Subtract(ecfieldElement);
ECFieldElement ecfieldElement4 = y2.Subtract(ecfieldElement);
}
if (ecfieldElement2.BitLength != 0)
{
continue;
}
ECFieldElement ecfieldElement5 = x.Subtract(ecfieldElement2);
int fieldSize = y.Subtract(ecfieldElement2).FieldSize;
int fieldSize2 = ecfieldElement5.FieldSize;
if (fieldSize2 == 0)
{
if (!x2.IsOne)
{
sbyte b3;
sbyte b2 = b3;
TypeCode typeCode = b2.GetTypeCode();
int fieldSize3 = y.FieldSize;
bool withCompression = this.m_withCompression;
}
short num;
TypeCode typeCode2 = num.GetTypeCode();
BigInteger one = BigInteger.One;
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
ECPoint ecpoint;
if (ecpoint == 0)
{
break;
}
}
if (!x2.IsOne)
{
bool compressionYTilde = b.CompressionYTilde;
break;
}
break;
}
return b;
}
// Token: 0x0600AA2C RID: 43564 RVA: 0x0024C6FC File Offset: 0x0024A8FC
[Token(Token = "0x600AA2C")]
[Address(RVA = "0x7F85E0", Offset = "0x7F75E0", VA = "0x1807F85E0", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
int bitLength = ecfieldElement.BitLength;
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement2 = y.Subtract(ecfieldElement);
ECFieldElement ecfieldElement3 = ecfieldElement.Negate();
if (bitLength == 0)
{
}
if (y.Negate().FieldSize.GetTypeCode() == TypeCode.Empty)
{
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement4 = x.Subtract(ecfieldElement);
ECFieldElement ecfieldElement5;
TypeCode typeCode = ecfieldElement5.FieldSize.GetTypeCode();
sbyte b;
(new ECFieldElement[1])[0] = b;
bool withCompression = this.m_withCompression;
}
SecT131R1Point secT131R1Point;
ECFieldElement[] zcoords = secT131R1Point.GetZCoords();
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600AA2D RID: 43565 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AA2D")]
[Address(RVA = "0x7F7F80", Offset = "0x7F6F80", VA = "0x1807F7F80", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AA2E RID: 43566 RVA: 0x0024C7C4 File Offset: 0x0024A9C4
[Token(Token = "0x600AA2E")]
[Address(RVA = "0x7F7DD0", Offset = "0x7F6DD0", VA = "0x1807F7DD0", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity && !this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
bool flag = this.SatisfiesOrder();
int fieldSize = y.FieldSize;
ECFieldElement[] array = new ECFieldElement[1];
if (ecfieldElement != 0)
{
}
array[0] = ecfieldElement;
bool withCompression = this.m_withCompression;
}
throw new IndexOutOfRangeException();
}
}
}
@@ -0,0 +1,390 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B5A RID: 7002
[Token(Token = "0x2001B5A")]
internal class SecT131R2Curve : AbstractF2mCurve
{
// Token: 0x0600AA2F RID: 43567 RVA: 0x0024C830 File Offset: 0x0024AA30
[Token(Token = "0x600AA2F")]
[Address(RVA = "0x7F90F0", Offset = "0x7F80F0", VA = "0x1807F90F0")]
public SecT131R2Curve()
{
int num = 0;
ulong num2;
base..ctor(131, 2, 3, (int)num2);
int num3;
int num4;
SecT131R2Point secT131R2Point = new SecT131R2Point(this, num3, num4, num != 0);
num4 = 0;
num3 = 0;
this.m_infinity = secT131R2Point;
byte[] array = Hex.Decode("03E5A88919D7CAFCBF415F07C2176573B2");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("04B8266A46C55657AC734CE38F018F2192");
BigInteger bigInteger2 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("0400000000000000016954A233049BA98F");
BigInteger bigInteger3 = new BigInteger(1, array3);
this.m_order = bigInteger3;
BigInteger two = BigInteger.Two;
this.m_cofactor = two;
this.m_coord = (int)((ulong)6L);
}
// Token: 0x0600AA30 RID: 43568 RVA: 0x0024C8E8 File Offset: 0x0024AAE8
[Token(Token = "0x600AA30")]
[Address(RVA = "0x7F8B10", Offset = "0x7F7B10", VA = "0x1807F8B10", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600AA30)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131R2Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_1_01, ldc.i4:int32(0))
stloc:SecT131R2Point(var_3_0D, newobj:SecT131R2Point(SecT131R2Point::.ctor, ldloc:SecT131R2Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_4), ldloc:int32[exp:bool](var_1_01)))
stloc:int32(var_4, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecT131R2Point(SecT131R2Curve::m_infinity, ldloc:SecT131R2Curve(var_0), ldloc:SecT131R2Point(var_3_0D))
stloc:uint8[](var_6_25, call:uint8[](Hex::Decode, ldstr:string("03E5A88919D7CAFCBF415F07C2176573B2")))
stloc:BigInteger(var_7_2F, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_6_25)))
stloc:int32(var_8_37, callvirtgetter:int32(SecT131R2Curve::get_FieldSize, ldloc:SecT131R2Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecT131R2Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_8_37))
stloc:uint8[](var_9_4B, call:uint8[](Hex::Decode, ldstr:string("04B8266A46C55657AC734CE38F018F2192")))
stloc:BigInteger(var_10_55, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_9_4B)))
stloc:int32(var_11_5D, callvirtgetter:int32(SecT131R2Curve::get_FieldSize, ldloc:SecT131R2Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecT131R2Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_11_5D))
stloc:uint8[](var_12_71, call:uint8[](Hex::Decode, ldstr:string("0400000000000000016954A233049BA98F")))
stloc:BigInteger(var_13_7B, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_12_71)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecT131R2Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_13_7B))
stloc:BigInteger(var_14_8A, ldsfld:BigInteger(BigInteger::Two))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecT131R2Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_14_8A))
stfld:int32(ECCurve::m_coord, ldloc:SecT131R2Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](6)))
}
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: 0x0600AA31 RID: 43569 RVA: 0x0024C994 File Offset: 0x0024AB94
[Token(Token = "0x600AA31")]
[Address(RVA = "0x7BC700", Offset = "0x7BB700", VA = "0x1807BC700", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 6;
}
// Token: 0x17001AB5 RID: 6837
// (get) Token: 0x0600AA32 RID: 43570 RVA: 0x0024C9A8 File Offset: 0x0024ABA8
[Token(Token = "0x17001AB5")]
public override int FieldSize
{
[Token(Token = "0x600AA32")]
[Address(RVA = "0x7F51F0", Offset = "0x7F41F0", VA = "0x1807F51F0", Slot = "4")]
get
{
return 131;
}
}
// Token: 0x0600AA33 RID: 43571 RVA: 0x0024C9BC File Offset: 0x0024ABBC
[Token(Token = "0x600AA33")]
[Address(RVA = "0x7F9090", Offset = "0x7F8090", VA = "0x1807F9090", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AA33)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131R2Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT131FieldElement(var_0_06, newobj:SecT131FieldElement(SecT131FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600AA34 RID: 43572 RVA: 0x0024C9D0 File Offset: 0x0024ABD0
[Token(Token = "0x600AA34")]
[Address(RVA = "0x7F9000", Offset = "0x7F8000", VA = "0x1807F9000", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AA34)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131R2Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT131R2Point(var_0_09, newobj:SecT131R2Point(SecT131R2Point::.ctor, ldloc:SecT131R2Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600AA35 RID: 43573 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AA35")]
[Address(RVA = "0x7F8F60", Offset = "0x7F7F60", VA = "0x1807F8F60", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001AB6 RID: 6838
// (get) Token: 0x0600AA36 RID: 43574 RVA: 0x0024C9E8 File Offset: 0x0024ABE8
[Token(Token = "0x17001AB6")]
public override ECPoint Infinity
{
[Token(Token = "0x600AA36")]
[Address(RVA = "0x417710", Offset = "0x416710", VA = "0x180417710", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600AA36)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131R2Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT131R2Point(var_0_06, ldfld:SecT131R2Point(SecT131R2Curve::m_infinity, ldloc:SecT131R2Curve(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: 0x17001AB7 RID: 6839
// (get) Token: 0x0600AA37 RID: 43575 RVA: 0x0024C9FC File Offset: 0x0024ABFC
[Token(Token = "0x17001AB7")]
public override bool IsKoblitz
{
[Token(Token = "0x600AA37")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "39")]
get
{
}
}
// Token: 0x17001AB8 RID: 6840
// (get) Token: 0x0600AA38 RID: 43576 RVA: 0x0024CA0C File Offset: 0x0024AC0C
[Token(Token = "0x17001AB8")]
public virtual int M
{
[Token(Token = "0x600AA38")]
[Address(RVA = "0x7F51F0", Offset = "0x7F41F0", VA = "0x1807F51F0", Slot = "40")]
get
{
return 131;
}
}
// Token: 0x17001AB9 RID: 6841
// (get) Token: 0x0600AA39 RID: 43577 RVA: 0x0024CA20 File Offset: 0x0024AC20
[Token(Token = "0x17001AB9")]
public virtual bool IsTrinomial
{
[Token(Token = "0x600AA39")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "41")]
get
{
}
}
// Token: 0x17001ABA RID: 6842
// (get) Token: 0x0600AA3A RID: 43578 RVA: 0x0024CA30 File Offset: 0x0024AC30
[Token(Token = "0x17001ABA")]
public virtual int K1
{
[Token(Token = "0x600AA3A")]
[Address(RVA = "0x4E86A0", Offset = "0x4E76A0", VA = "0x1804E86A0", Slot = "42")]
get
{
return 2;
}
}
// Token: 0x17001ABB RID: 6843
// (get) Token: 0x0600AA3B RID: 43579 RVA: 0x0024CA40 File Offset: 0x0024AC40
[Token(Token = "0x17001ABB")]
public virtual int K2
{
[Token(Token = "0x600AA3B")]
[Address(RVA = "0x4DB5B0", Offset = "0x4DA5B0", VA = "0x1804DB5B0", Slot = "43")]
get
{
return 3;
}
}
// Token: 0x17001ABC RID: 6844
// (get) Token: 0x0600AA3C RID: 43580 RVA: 0x0024CA50 File Offset: 0x0024AC50
[Token(Token = "0x17001ABC")]
public virtual int K3
{
[Token(Token = "0x600AA3C")]
[Address(RVA = "0x681E00", Offset = "0x680E00", VA = "0x180681E00", Slot = "44")]
get
{
return 8;
}
}
// Token: 0x0600AA3D RID: 43581 RVA: 0x0024CA60 File Offset: 0x0024AC60
[Token(Token = "0x600AA3D")]
[Address(RVA = "0x7F8D00", Offset = "0x7F7D00", VA = "0x1807F8D00", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
ulong[] array;
int num;
for (;;)
{
array = new ulong[points];
num = 0;
if (len <= 0)
{
goto IL_49;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 6;
IL_49:
SecT131R2Curve.SecT131R2LookupTable secT131R2LookupTable;
secT131R2LookupTable.m_outer = 0;
secT131R2LookupTable.m_table = array;
secT131R2LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006DAF RID: 28079
[Token(Token = "0x4006DAF")]
private const int SECT131R2_DEFAULT_COORDS = 6;
// Token: 0x04006DB0 RID: 28080
[Token(Token = "0x4006DB0")]
private const int SECT131R2_FE_LONGS = 3;
// Token: 0x04006DB1 RID: 28081
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006DB1")]
protected readonly SecT131R2Point m_infinity;
// Token: 0x02001B5B RID: 7003
[Token(Token = "0x2001B5B")]
private class SecT131R2LookupTable : ECLookupTable
{
// Token: 0x0600AA3E RID: 43582 RVA: 0x0024CAD4 File Offset: 0x0024ACD4
[Token(Token = "0x600AA3E")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecT131R2LookupTable(SecT131R2Curve outer, ulong[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001ABD RID: 6845
// (get) Token: 0x0600AA3F RID: 43583 RVA: 0x0024CAFC File Offset: 0x0024ACFC
[Token(Token = "0x17001ABD")]
public virtual int Size
{
[Token(Token = "0x600AA3F")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600AA40 RID: 43584 RVA: 0x0024CB10 File Offset: 0x0024AD10
[Token(Token = "0x600AA40")]
[Address(RVA = "0x7F92B0", Offset = "0x7F82B0", VA = "0x1807F92B0", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
ulong[] array = Nat192.Create64();
ulong[] array2 = Nat192.Create64();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
ulong[] table = this.m_table;
ulong[] table2 = this.m_table;
num3++;
num += 6;
num2++;
}
SecT131R2Curve outer = this.m_outer;
new SecT131FieldElement().x = array;
new SecT131FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006DB2 RID: 28082
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DB2")]
private readonly SecT131R2Curve m_outer;
// Token: 0x04006DB3 RID: 28083
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006DB3")]
private readonly ulong[] m_table;
// Token: 0x04006DB4 RID: 28084
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006DB4")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,256 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B5C RID: 7004
[Token(Token = "0x2001B5C")]
internal class SecT131R2Point : AbstractF2mPoint
{
// Token: 0x0600AA41 RID: 43585 RVA: 0x0024CB90 File Offset: 0x0024AD90
[Token(Token = "0x600AA41")]
[Address(RVA = "0x7FA9C0", Offset = "0x7F99C0", VA = "0x1807FA9C0")]
public SecT131R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600AA42 RID: 43586 RVA: 0x0024CBA0 File Offset: 0x0024ADA0
[Token(Token = "0x600AA42")]
[Address(RVA = "0x7FA9E0", Offset = "0x7F99E0", VA = "0x1807FA9E0")]
public SecT131R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AA42)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131R2Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600AA43 RID: 43587 RVA: 0x0024CBC8 File Offset: 0x0024ADC8
[Token(Token = "0x600AA43")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecT131R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600AA44 RID: 43588 RVA: 0x0024CBD8 File Offset: 0x0024ADD8
[Token(Token = "0x600AA44")]
[Address(RVA = "0x7F9CC0", Offset = "0x7F8CC0", VA = "0x1807F9CC0", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600AA44)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT131R2Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecT131R2Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecT131R2Point[exp: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: 0x17001ABE RID: 6846
// (get) Token: 0x0600AA45 RID: 43589 RVA: 0x0024CBF4 File Offset: 0x0024ADF4
[Token(Token = "0x17001ABE")]
public override ECFieldElement YCoord
{
[Token(Token = "0x600AA45")]
[Address(RVA = "0x7BE020", Offset = "0x7BD020", VA = "0x1807BE020", Slot = "12")]
get
{
ECFieldElement x = this.m_x;
ECFieldElement y = this.m_y;
if (!base.IsInfinity && !x.IsOne)
{
int fieldSize = y.FieldSize;
if (this.m_zs[0].BitLength == 0)
{
}
}
return y;
}
}
// Token: 0x17001ABF RID: 6847
// (get) Token: 0x0600AA46 RID: 43590 RVA: 0x0024CC44 File Offset: 0x0024AE44
[Token(Token = "0x17001ABF")]
protected internal override bool CompressionYTilde
{
[Token(Token = "0x600AA46")]
[Address(RVA = "0x7BDFA0", Offset = "0x7BCFA0", VA = "0x1807BDFA0", Slot = "25")]
get
{
if (!this.m_x.IsOne)
{
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement;
ECFieldElement ecfieldElement2;
return ecfieldElement != ecfieldElement2;
}
throw new NullReferenceException();
}
}
// Token: 0x0600AA47 RID: 43591 RVA: 0x0024CC78 File Offset: 0x0024AE78
[Token(Token = "0x600AA47")]
[Address(RVA = "0x7F9480", Offset = "0x7F8480", VA = "0x1807F9480", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
while (!base.IsInfinity && !b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
ECFieldElement x2 = b.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
ECFieldElement[] zs2 = b.m_zs;
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
if (ecfieldElement.BitLength == 0)
{
ECFieldElement ecfieldElement3 = x2.Subtract(ecfieldElement);
ECFieldElement ecfieldElement4 = y2.Subtract(ecfieldElement);
}
if (ecfieldElement2.BitLength != 0)
{
continue;
}
ECFieldElement ecfieldElement5 = x.Subtract(ecfieldElement2);
int fieldSize = y.Subtract(ecfieldElement2).FieldSize;
int fieldSize2 = ecfieldElement5.FieldSize;
if (fieldSize2 == 0)
{
if (!x2.IsOne)
{
sbyte b3;
sbyte b2 = b3;
TypeCode typeCode = b2.GetTypeCode();
int fieldSize3 = y.FieldSize;
bool withCompression = this.m_withCompression;
}
short num;
TypeCode typeCode2 = num.GetTypeCode();
BigInteger one = BigInteger.One;
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
ECPoint ecpoint;
if (ecpoint == 0)
{
break;
}
}
if (!x2.IsOne)
{
bool compressionYTilde = b.CompressionYTilde;
break;
}
break;
}
return b;
}
// Token: 0x0600AA48 RID: 43592 RVA: 0x0024CDCC File Offset: 0x0024AFCC
[Token(Token = "0x600AA48")]
[Address(RVA = "0x7FA570", Offset = "0x7F9570", VA = "0x1807FA570", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
int bitLength = ecfieldElement.BitLength;
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement2 = y.Subtract(ecfieldElement);
ECFieldElement ecfieldElement3 = ecfieldElement.Negate();
if (bitLength == 0)
{
}
if (y.Negate().FieldSize.GetTypeCode() == TypeCode.Empty)
{
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement4 = x.Subtract(ecfieldElement);
ECFieldElement ecfieldElement5;
TypeCode typeCode = ecfieldElement5.FieldSize.GetTypeCode();
sbyte b;
(new ECFieldElement[1])[0] = b;
bool withCompression = this.m_withCompression;
}
SecT131R2Point secT131R2Point;
ECFieldElement[] zcoords = secT131R2Point.GetZCoords();
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600AA49 RID: 43593 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AA49")]
[Address(RVA = "0x7F9F10", Offset = "0x7F8F10", VA = "0x1807F9F10", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AA4A RID: 43594 RVA: 0x0024CE94 File Offset: 0x0024B094
[Token(Token = "0x600AA4A")]
[Address(RVA = "0x7F9D60", Offset = "0x7F8D60", VA = "0x1807F9D60", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity && !this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
bool flag = this.SatisfiesOrder();
int fieldSize = y.FieldSize;
ECFieldElement[] array = new ECFieldElement[1];
if (ecfieldElement != 0)
{
}
array[0] = ecfieldElement;
bool withCompression = this.m_withCompression;
}
throw new IndexOutOfRangeException();
}
}
}
@@ -0,0 +1,334 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B5D RID: 7005
[Token(Token = "0x2001B5D")]
internal class SecT163Field
{
// Token: 0x0600AA4B RID: 43595 RVA: 0x0024CF00 File Offset: 0x0024B100
[Token(Token = "0x600AA4B")]
[Address(RVA = "0x7F52E0", Offset = "0x7F42E0", VA = "0x1807F52E0")]
public static void Add(ulong[] x, ulong[] y, ulong[] z)
{
ulong num = y[0];
z[0] = num;
ulong num2 = y[1];
z[1] = num2;
ulong num3 = y[2];
z[2] = num3;
}
// Token: 0x0600AA4C RID: 43596 RVA: 0x0024CF44 File Offset: 0x0024B144
[Token(Token = "0x600AA4C")]
[Address(RVA = "0x7FBA80", Offset = "0x7FAA80", VA = "0x1807FBA80")]
public static void AddExt(ulong[] xx, ulong[] yy, ulong[] zz)
{
ulong num = yy[0];
zz[0] = num;
ulong num2 = yy[1];
zz[1] = num2;
ulong num3 = yy[2];
zz[2] = num3;
ulong num4 = yy[3];
zz[3] = num4;
ulong num5 = yy[4];
zz[4] = num5;
ulong num6 = yy[5];
zz[5] = num6;
}
// Token: 0x0600AA4D RID: 43597 RVA: 0x0024CFBC File Offset: 0x0024B1BC
[Token(Token = "0x600AA4D")]
[Address(RVA = "0x7F5220", Offset = "0x7F4220", VA = "0x1807F5220")]
public static void AddOne(ulong[] x, ulong[] z)
{
ulong num = x[0];
z[0] = num;
ulong num2 = x[1];
z[1] = num2;
ulong num3 = x[2];
z[2] = num3;
}
// Token: 0x0600AA4E RID: 43598 RVA: 0x0024D000 File Offset: 0x0024B200
[Token(Token = "0x600AA4E")]
[Address(RVA = "0x7FBCD0", Offset = "0x7FACD0", VA = "0x1807FBCD0")]
public static ulong[] FromBigInteger(BigInteger x)
{
ulong[] array = Nat192.FromBigInteger64(x);
ulong num = array[2];
array[0] = array;
array[2] = num;
return array;
}
// Token: 0x0600AA4F RID: 43599 RVA: 0x0024D034 File Offset: 0x0024B234
[Token(Token = "0x600AA4F")]
[Address(RVA = "0x7FC960", Offset = "0x7FB960", VA = "0x1807FC960")]
public static void Invert(ulong[] x, ulong[] z)
{
/*
An exception occurred when decompiling this method (0600AA4F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163Field::Invert(System.UInt64[],System.UInt64[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_B9:
stloc:InvalidOperationException(var_4_BE, newobj:InvalidOperationException(InvalidOperationException::.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: 0x0600AA50 RID: 43600 RVA: 0x0024D100 File Offset: 0x0024B300
[Token(Token = "0x600AA50")]
[Address(RVA = "0x7FCC00", Offset = "0x7FBC00", VA = "0x1807FCC00")]
public static void Multiply(ulong[] x, ulong[] y, ulong[] z)
{
ulong[] array = Nat192.CreateExt64();
SecT163Field.ImplMultiply(x, y, array);
SecT163Field.Reduce(array, z);
}
// Token: 0x0600AA51 RID: 43601 RVA: 0x0024D124 File Offset: 0x0024B324
[Token(Token = "0x600AA51")]
[Address(RVA = "0x7FCB60", Offset = "0x7FBB60", VA = "0x1807FCB60")]
public static void MultiplyAddToExt(ulong[] x, ulong[] y, ulong[] zz)
{
ulong[] array = Nat192.CreateExt64();
SecT163Field.ImplMultiply(x, y, array);
SecT163Field.AddExt(zz, array, zz);
}
// Token: 0x0600AA52 RID: 43602 RVA: 0x0024D14C File Offset: 0x0024B34C
[Token(Token = "0x600AA52")]
[Address(RVA = "0x7FCD40", Offset = "0x7FBD40", VA = "0x1807FCD40")]
public static void Reduce(ulong[] xx, ulong[] z)
{
int length = xx.Length;
ulong num = xx[2];
ulong num2 = xx[5];
num2 = num;
num2 += num2;
z[0] = num2;
z[1] = num2;
z[2] = num;
}
// Token: 0x0600AA53 RID: 43603 RVA: 0x0024D194 File Offset: 0x0024B394
[Token(Token = "0x600AA53")]
[Address(RVA = "0x7FCCA0", Offset = "0x7FBCA0", VA = "0x1807FCCA0")]
public static void Reduce29(ulong[] z, int zOff)
{
int length = z.Length;
z[0] = (ulong)zOff;
ulong num;
z[0] = num;
}
// Token: 0x0600AA54 RID: 43604 RVA: 0x0024D1C0 File Offset: 0x0024B3C0
[Token(Token = "0x600AA54")]
[Address(RVA = "0x7FCF60", Offset = "0x7FBF60", VA = "0x1807FCF60")]
public static void Sqrt(ulong[] x, ulong[] z)
{
ulong[] array = Nat192.Create64();
ulong num = Interleave.Unshuffle(x[0]);
ulong num2 = x[1];
ulong num3 = Interleave.Unshuffle(num2);
array[0] = num;
ulong num4 = Interleave.Unshuffle(x[2]);
array[1] = num4;
}
// Token: 0x0600AA55 RID: 43605 RVA: 0x0024D21C File Offset: 0x0024B41C
[Token(Token = "0x600AA55")]
[Address(RVA = "0x7FD2B0", Offset = "0x7FC2B0", VA = "0x1807FD2B0")]
public static void Square(ulong[] x, ulong[] z)
{
ulong[] array = Nat192.CreateExt64();
SecT163Field.ImplSquare(x, array);
SecT163Field.Reduce(array, z);
}
// Token: 0x0600AA56 RID: 43606 RVA: 0x0024D240 File Offset: 0x0024B440
[Token(Token = "0x600AA56")]
[Address(RVA = "0x7FD130", Offset = "0x7FC130", VA = "0x1807FD130")]
public static void SquareAddToExt(ulong[] x, ulong[] zz)
{
ulong[] array = Nat192.CreateExt64();
SecT163Field.ImplSquare(x, array);
SecT163Field.AddExt(zz, array, zz);
}
// Token: 0x0600AA57 RID: 43607 RVA: 0x0024D264 File Offset: 0x0024B464
[Token(Token = "0x600AA57")]
[Address(RVA = "0x7FD1C0", Offset = "0x7FC1C0", VA = "0x1807FD1C0")]
public static void SquareN(ulong[] x, int n, ulong[] z)
{
ulong[] array = Nat192.CreateExt64();
SecT163Field.ImplSquare(x, array);
SecT163Field.Reduce(array, z);
if (n > 0)
{
SecT163Field.ImplSquare(z, array);
SecT163Field.Reduce(array, z);
}
}
// Token: 0x0600AA58 RID: 43608 RVA: 0x0024D29C File Offset: 0x0024B49C
[Token(Token = "0x600AA58")]
[Address(RVA = "0x7FD340", Offset = "0x7FC340", VA = "0x1807FD340")]
public static uint Trace(ulong[] x)
{
int length = x.Length;
ulong num = x[2];
throw new NullReferenceException();
}
// Token: 0x0600AA59 RID: 43609 RVA: 0x0024D2C0 File Offset: 0x0024B4C0
[Token(Token = "0x600AA59")]
[Address(RVA = "0x7FBDA0", Offset = "0x7FADA0", VA = "0x1807FBDA0")]
protected static void ImplCompactExt(ulong[] zz)
{
int length = zz.Length;
ulong num = zz[1];
ulong num2 = zz[2];
ulong num3 = zz[3];
ulong num4 = zz[4];
ulong num5 = zz[5];
num = num2;
zz[1] = num;
zz[2] = num2;
zz[3] = num3;
zz[4] = num4;
zz[5] = num5;
}
// Token: 0x0600AA5A RID: 43610 RVA: 0x0024D338 File Offset: 0x0024B538
[Token(Token = "0x600AA5A")]
[Address(RVA = "0x7FBF50", Offset = "0x7FAF50", VA = "0x1807FBF50")]
protected static void ImplMultiply(ulong[] x, ulong[] y, ulong[] zz)
{
int length = x.Length;
ulong num = x[0];
ulong num2 = x[1];
int length2 = y.Length;
ulong num3 = y[0];
ulong[] array = new ulong[10];
int num4 = 0;
SecT163Field.ImplMulw(num, num3, array, num4);
num = num2;
SecT163Field.ImplMulw(num, num3, array, 2);
num = num2;
uint num5;
SecT163Field.ImplMulw(num, num3, array, (int)num5);
num2 += num2;
num2 += num2;
num += num;
num3 = num;
num = num2;
SecT163Field.ImplMulw(num, num3, array, 6);
num3 = num;
SecT163Field.ImplMulw(num, num3, array, 8);
int length3 = array.Length;
ulong num6 = array[6];
ulong num7 = array[0];
array += array;
num6 += num6;
zz[0] = num7;
ulong num8 = array[2];
zz[1] = num8;
ulong num9 = array[3];
zz[2] = num9;
zz[3] = num9;
ulong num10 = array[2];
zz[4] = num10;
ulong num11 = array[3];
zz[5] = num11;
SecT163Field.ImplCompactExt(zz);
}
// Token: 0x0600AA5B RID: 43611 RVA: 0x0024D464 File Offset: 0x0024B664
[Token(Token = "0x600AA5B")]
[Address(RVA = "0x7FC530", Offset = "0x7FB530", VA = "0x1807FC530")]
protected static void ImplMulw(ulong x, ulong y, ulong[] z, int zOff)
{
ulong[] array = new ulong[8];
array[1] = y;
int length = array.Length;
array[2] = typeof(ulong[]).TypeHandle;
array[3] = y;
int num = array.Length;
array[4] = (ulong)num;
int length2 = array.Length;
array[5] = (ulong)num;
num = length2;
array[6] = (ulong)num;
int length3 = array.Length;
array[7] = (ulong)num;
ulong num2 = array[(int)x];
int num3 = zOff + 1;
z[0] = x;
z[0] = num2;
}
// Token: 0x0600AA5C RID: 43612 RVA: 0x0024D4F8 File Offset: 0x0024B6F8
[Token(Token = "0x600AA5C")]
[Address(RVA = "0x7FC880", Offset = "0x7FB880", VA = "0x1807FC880")]
protected static void ImplSquare(ulong[] x, ulong[] zz)
{
ulong num = x[0];
int num2 = 0;
Interleave.Expand64To128(num, zz, num2);
ulong num3 = x[1];
Interleave.Expand64To128(num3, zz, 2);
ulong num4 = Interleave.Expand32to64((uint)num3);
zz[4] = num4;
uint num5 = Interleave.Expand8to16((uint)num3);
zz[5] = (ulong)num5;
}
// Token: 0x0600AA5D RID: 43613 RVA: 0x0024D550 File Offset: 0x0024B750
[Token(Token = "0x600AA5D")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecT163Field()
{
}
// Token: 0x0600AA5E RID: 43614 RVA: 0x0024D564 File Offset: 0x0024B764
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600AA5E")]
[Address(RVA = "0x7FD390", Offset = "0x7FC390", VA = "0x1807FD390")]
static SecT163Field()
{
RuntimeHelpers.InitializeArray(new ulong[3], fieldof(<PrivateImplementationDetails>.BCE617693C33CE2C76FE00F449CA910E4C6E117E).FieldHandle);
}
// Token: 0x04006DB5 RID: 28085
[Token(Token = "0x4006DB5")]
private const ulong M35 = 34359738367UL;
// Token: 0x04006DB6 RID: 28086
[Token(Token = "0x4006DB6")]
private const ulong M55 = 36028797018963967UL;
// Token: 0x04006DB7 RID: 28087
[Token(Token = "0x4006DB7")]
private static readonly ulong[] ROOT_Z;
}
}
@@ -0,0 +1,598 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B5E RID: 7006
[Token(Token = "0x2001B5E")]
internal class SecT163FieldElement : AbstractF2mFieldElement
{
// Token: 0x0600AA5F RID: 43615 RVA: 0x0024D584 File Offset: 0x0024B784
[Token(Token = "0x600AA5F")]
[Address(RVA = "0x7FB8C0", Offset = "0x7FA8C0", VA = "0x1807FB8C0")]
public SecT163FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AA5F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_38:
stloc:ArgumentException(var_3_47, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecT163FieldElement"), ldstr:string("x")))
}
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: 0x0600AA60 RID: 43616 RVA: 0x0024D5D8 File Offset: 0x0024B7D8
[Token(Token = "0x600AA60")]
[Address(RVA = "0x7F4FF0", Offset = "0x7F3FF0", VA = "0x1807F4FF0")]
public SecT163FieldElement()
{
ulong[] array = Nat192.Create64();
this.x = array;
}
// Token: 0x0600AA61 RID: 43617 RVA: 0x0024D5FC File Offset: 0x0024B7FC
[Token(Token = "0x600AA61")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecT163FieldElement(ulong[] x)
{
this.x = x;
}
// Token: 0x17001AC0 RID: 6848
// (get) Token: 0x0600AA62 RID: 43618 RVA: 0x0024D618 File Offset: 0x0024B818
[Token(Token = "0x17001AC0")]
public override bool IsOne
{
[Token(Token = "0x600AA62")]
[Address(RVA = "0x7F5200", Offset = "0x7F4200", VA = "0x1807F5200", Slot = "17")]
get
{
return Nat192.IsOne64(this.x);
}
}
// Token: 0x17001AC1 RID: 6849
// (get) Token: 0x0600AA63 RID: 43619 RVA: 0x0024D630 File Offset: 0x0024B830
[Token(Token = "0x17001AC1")]
public override bool IsZero
{
[Token(Token = "0x600AA63")]
[Address(RVA = "0x7F5210", Offset = "0x7F4210", VA = "0x1807F5210", Slot = "18")]
get
{
return Nat192.IsZero64(this.x);
}
}
// Token: 0x0600AA64 RID: 43620 RVA: 0x0024D648 File Offset: 0x0024B848
[Token(Token = "0x600AA64")]
[Address(RVA = "0x7B9C40", Offset = "0x7B8C40", VA = "0x1807B9C40", Slot = "24")]
public override bool TestBitZero()
{
ulong[] array = this.x;
throw new NullReferenceException();
}
// Token: 0x0600AA65 RID: 43621 RVA: 0x0024D664 File Offset: 0x0024B864
[Token(Token = "0x600AA65")]
[Address(RVA = "0x7F4F30", Offset = "0x7F3F30", VA = "0x1807F4F30", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat192.ToBigInteger64(this.x);
}
// Token: 0x17001AC2 RID: 6850
// (get) Token: 0x0600AA66 RID: 43622 RVA: 0x0024D67C File Offset: 0x0024B87C
[Token(Token = "0x17001AC2")]
public override string FieldName
{
[Token(Token = "0x600AA66")]
[Address(RVA = "0x7FBA40", Offset = "0x7FAA40", VA = "0x1807FBA40", Slot = "5")]
get
{
return "SecT163Field";
}
}
// Token: 0x17001AC3 RID: 6851
// (get) Token: 0x0600AA67 RID: 43623 RVA: 0x0024D690 File Offset: 0x0024B890
[Token(Token = "0x17001AC3")]
public override int FieldSize
{
[Token(Token = "0x600AA67")]
[Address(RVA = "0x7FBA70", Offset = "0x7FAA70", VA = "0x1807FBA70", Slot = "6")]
get
{
return 163;
}
}
// Token: 0x0600AA68 RID: 43624 RVA: 0x0024D6A4 File Offset: 0x0024B8A4
[Token(Token = "0x600AA68")]
[Address(RVA = "0x7FABE0", Offset = "0x7F9BE0", VA = "0x1807FABE0", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
ulong[] array;
int num;
for (;;)
{
array = Nat192.Create64();
ulong[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecT163FieldElement).TypeHandle)
{
}
if (b != 0)
{
num = 0;
if (b != 0)
{
break;
}
}
}
array[0] = (ulong)num;
array[1] = (ulong)num;
array[2] = (ulong)num;
new SecT163FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AA69 RID: 43625 RVA: 0x0024D704 File Offset: 0x0024B904
[Token(Token = "0x600AA69")]
[Address(RVA = "0x7FAAA0", Offset = "0x7F9AA0", VA = "0x1807FAAA0", Slot = "8")]
public override ECFieldElement AddOne()
{
ulong[] array = Nat192.Create64();
ulong[] array2 = this.x;
ulong num = array2[0];
array[0] = num;
ulong num2 = array2[1];
array[1] = num2;
ulong num3 = array2[2];
array[2] = num3;
new SecT163FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AA6A RID: 43626 RVA: 0x0024D764 File Offset: 0x0024B964
[Token(Token = "0x600AA6A")]
[Address(RVA = "0x7B9C20", Offset = "0x7B8C20", VA = "0x1807B9C20", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
/*
An exception occurred when decompiling this method (0600AA6A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163FieldElement::Subtract(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT163FieldElement[exp:ECFieldElement](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: 0x0600AA6B RID: 43627 RVA: 0x0024D778 File Offset: 0x0024B978
[Token(Token = "0x600AA6B")]
[Address(RVA = "0x7FB2E0", Offset = "0x7FA2E0", VA = "0x1807FB2E0", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
ulong[] array;
do
{
array = Nat192.Create64();
ulong[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecT163FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecT163FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AA6C RID: 43628 RVA: 0x0024D7C0 File Offset: 0x0024B9C0
[Token(Token = "0x600AA6C")]
[Address(RVA = "0x7B9440", Offset = "0x7B8440", VA = "0x1807B9440", Slot = "19")]
public override ECFieldElement MultiplyMinusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
{
/*
An exception occurred when decompiling this method (0600AA6C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163FieldElement::MultiplyMinusProduct(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT163FieldElement[exp:ECFieldElement](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: 0x0600AA6D RID: 43629 RVA: 0x0024D7D4 File Offset: 0x0024B9D4
[Token(Token = "0x600AA6D")]
[Address(RVA = "0x7FB050", Offset = "0x7FA050", VA = "0x1807FB050", Slot = "20")]
public override ECFieldElement MultiplyPlusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
{
do
{
ulong[] array = this.x;
}
while (b == 0 || b == 0 || x == 0 || x == 0 || y == 0 || y == 0);
ulong[] array2 = Nat192.CreateExt64();
ulong[] array3 = Nat192.Create64();
SecT163Field.Reduce(array2, array3);
new SecT163FieldElement().x = array3;
throw new NullReferenceException();
}
// Token: 0x0600AA6E RID: 43630 RVA: 0x0024D840 File Offset: 0x0024BA40
[Token(Token = "0x600AA6E")]
[Address(RVA = "0x7B91D0", Offset = "0x7B81D0", VA = "0x1807B91D0", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
ECFieldElement ecfieldElement = b.Square();
BigInteger bigInteger = base.ToBigInteger();
throw new NullReferenceException();
}
// Token: 0x0600AA6F RID: 43631 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AA6F")]
[Address(RVA = "0x4A65C0", Offset = "0x4A55C0", VA = "0x1804A65C0", Slot = "12")]
public override ECFieldElement Negate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AA70 RID: 43632 RVA: 0x0024D860 File Offset: 0x0024BA60
[Token(Token = "0x600AA70")]
[Address(RVA = "0x7FB7A0", Offset = "0x7FA7A0", VA = "0x1807FB7A0", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600AA70)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat192::Create64))
call:void(SecT163Field::Square, ldfld:uint64[](SecT163FieldElement::x, ldloc:SecT163FieldElement(this)), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT163FieldElement::x, newobj:SecT163FieldElement(SecT163FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600AA71 RID: 43633 RVA: 0x0024D88C File Offset: 0x0024BA8C
[Token(Token = "0x600AA71")]
[Address(RVA = "0x7B98C0", Offset = "0x7B88C0", VA = "0x1807B98C0", Slot = "21")]
public override ECFieldElement SquareMinusProduct(ECFieldElement x, ECFieldElement y)
{
/*
An exception occurred when decompiling this method (0600AA71)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163FieldElement::SquareMinusProduct(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT163FieldElement[exp:ECFieldElement](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: 0x0600AA72 RID: 43634 RVA: 0x0024D8A0 File Offset: 0x0024BAA0
[Token(Token = "0x600AA72")]
[Address(RVA = "0x7FB4B0", Offset = "0x7FA4B0", VA = "0x1807FB4B0", Slot = "22")]
public override ECFieldElement SquarePlusProduct(ECFieldElement x, ECFieldElement y)
{
ulong[] array;
do
{
array = this.x;
}
while (x == 0 || x == 0 || y == 0 || y == 0);
ulong[] array2 = Nat192.CreateExt64();
ulong[] array3 = Nat192.CreateExt64();
SecT163Field.ImplSquare(array, array3);
SecT163Field.AddExt(array2, array3, array2);
ulong[] array4 = Nat192.Create64();
SecT163Field.Reduce(array2, array4);
new SecT163FieldElement().x = array4;
throw new NullReferenceException();
}
// Token: 0x0600AA73 RID: 43635 RVA: 0x0024D918 File Offset: 0x0024BB18
[Token(Token = "0x600AA73")]
[Address(RVA = "0x7FB700", Offset = "0x7FA700", VA = "0x1807FB700", Slot = "23")]
public override ECFieldElement SquarePow(int pow)
{
/*
An exception occurred when decompiling this method (0600AA73)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163FieldElement::SquarePow(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat192::Create64))
call:void(SecT163Field::SquareN, ldfld:uint64[](SecT163FieldElement::x, ldloc:SecT163FieldElement(this)), ldloc:int32(pow), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT163FieldElement::x, newobj:SecT163FieldElement(SecT163FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600AA74 RID: 43636 RVA: 0x0024D944 File Offset: 0x0024BB44
[Token(Token = "0x600AA74")]
[Address(RVA = "0x7FB830", Offset = "0x7FA830", VA = "0x1807FB830", Slot = "28")]
public override int Trace()
{
ulong[] array = this.x;
int length = array.Length;
ulong num = array[2];
throw new NullReferenceException();
}
// Token: 0x0600AA75 RID: 43637 RVA: 0x0024D96C File Offset: 0x0024BB6C
[Token(Token = "0x600AA75")]
[Address(RVA = "0x7FAFC0", Offset = "0x7F9FC0", VA = "0x1807FAFC0", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600AA75)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat192::Create64))
call:void(SecT163Field::Invert, ldfld:uint64[](SecT163FieldElement::x, ldloc:SecT163FieldElement(this)), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT163FieldElement::x, newobj:SecT163FieldElement(SecT163FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600AA76 RID: 43638 RVA: 0x0024D998 File Offset: 0x0024BB98
[Token(Token = "0x600AA76")]
[Address(RVA = "0x7FB420", Offset = "0x7FA420", VA = "0x1807FB420", Slot = "15")]
public override ECFieldElement Sqrt()
{
/*
An exception occurred when decompiling this method (0600AA76)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163FieldElement::Sqrt()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat192::Create64))
call:void(SecT163Field::Sqrt, ldfld:uint64[](SecT163FieldElement::x, ldloc:SecT163FieldElement(this)), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT163FieldElement::x, newobj:SecT163FieldElement(SecT163FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x17001AC4 RID: 6852
// (get) Token: 0x0600AA77 RID: 43639 RVA: 0x0024D9C4 File Offset: 0x0024BBC4
[Token(Token = "0x17001AC4")]
public virtual int Representation
{
[Token(Token = "0x600AA77")]
[Address(RVA = "0x4DB5B0", Offset = "0x4DA5B0", VA = "0x1804DB5B0", Slot = "29")]
get
{
return 3;
}
}
// Token: 0x17001AC5 RID: 6853
// (get) Token: 0x0600AA78 RID: 43640 RVA: 0x0024D9D4 File Offset: 0x0024BBD4
[Token(Token = "0x17001AC5")]
public virtual int M
{
[Token(Token = "0x600AA78")]
[Address(RVA = "0x7FBA70", Offset = "0x7FAA70", VA = "0x1807FBA70", Slot = "30")]
get
{
return 163;
}
}
// Token: 0x17001AC6 RID: 6854
// (get) Token: 0x0600AA79 RID: 43641 RVA: 0x0024D9E8 File Offset: 0x0024BBE8
[Token(Token = "0x17001AC6")]
public virtual int K1
{
[Token(Token = "0x600AA79")]
[Address(RVA = "0x4DB5B0", Offset = "0x4DA5B0", VA = "0x1804DB5B0", Slot = "31")]
get
{
return 3;
}
}
// Token: 0x17001AC7 RID: 6855
// (get) Token: 0x0600AA7A RID: 43642 RVA: 0x0024D9F8 File Offset: 0x0024BBF8
[Token(Token = "0x17001AC7")]
public virtual int K2
{
[Token(Token = "0x600AA7A")]
[Address(RVA = "0x62FA10", Offset = "0x62EA10", VA = "0x18062FA10", Slot = "32")]
get
{
return 6;
}
}
// Token: 0x17001AC8 RID: 6856
// (get) Token: 0x0600AA7B RID: 43643 RVA: 0x0024DA08 File Offset: 0x0024BC08
[Token(Token = "0x17001AC8")]
public virtual int K3
{
[Token(Token = "0x600AA7B")]
[Address(RVA = "0x4B30C0", Offset = "0x4B20C0", VA = "0x1804B30C0", Slot = "33")]
get
{
return 7;
}
}
// Token: 0x0600AA7C RID: 43644 RVA: 0x0024DA18 File Offset: 0x0024BC18
[Token(Token = "0x600AA7C")]
[Address(RVA = "0x7FAE30", Offset = "0x7F9E30", VA = "0x1807FAE30", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600AA7C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT163FieldElement[exp:ECFieldElement](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: 0x0600AA7D RID: 43645 RVA: 0x0024DA34 File Offset: 0x0024BC34
[Token(Token = "0x600AA7D")]
[Address(RVA = "0x7FAEC0", Offset = "0x7F9EC0", VA = "0x1807FAEC0", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600AA7D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT163FieldElement[exp:ECFieldElement](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: 0x0600AA7E RID: 43646 RVA: 0x0024DA50 File Offset: 0x0024BC50
[Token(Token = "0x600AA7E")]
[Address(RVA = "0x7F4620", Offset = "0x7F3620", VA = "0x1807F4620", Slot = "34")]
public virtual bool Equals(SecT163FieldElement other)
{
if (this != other)
{
if (other != 0)
{
ulong[] array = other.x;
return Nat192.Eq64(this.x, array);
}
}
return true;
}
// Token: 0x0600AA7F RID: 43647 RVA: 0x0024DA7C File Offset: 0x0024BC7C
[Token(Token = "0x600AA7F")]
[Address(RVA = "0x7FAF50", Offset = "0x7F9F50", VA = "0x1807FAF50", Slot = "2")]
public override int GetHashCode()
{
ulong[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 3);
}
// Token: 0x04006DB8 RID: 28088
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DB8")]
protected internal readonly ulong[] x;
}
}
@@ -0,0 +1,408 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B5F RID: 7007
[Token(Token = "0x2001B5F")]
internal class SecT163K1Curve : AbstractF2mCurve
{
// Token: 0x0600AA80 RID: 43648 RVA: 0x0024DA9C File Offset: 0x0024BC9C
[Token(Token = "0x600AA80")]
[Address(RVA = "0x7FD9B0", Offset = "0x7FC9B0", VA = "0x1807FD9B0")]
public SecT163K1Curve()
{
int num = 0;
ulong num2;
base..ctor(163, 3, 6, (int)num2);
int num3;
int num4;
SecT163K1Point secT163K1Point = new SecT163K1Point(this, num3, num4, num != 0);
num4 = 0;
num3 = 0;
this.m_infinity = secT163K1Point;
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
this.m_b = fieldSize;
byte[] array = Hex.Decode("04000000000000000000020108A2E0CC0D99F8A5EF");
BigInteger bigInteger = new BigInteger(1, array);
this.m_order = bigInteger;
BigInteger two = BigInteger.Two;
this.m_cofactor = two;
this.m_coord = (int)((ulong)6L);
}
// Token: 0x0600AA81 RID: 43649 RVA: 0x0024DB20 File Offset: 0x0024BD20
[Token(Token = "0x600AA81")]
[Address(RVA = "0x7FD3F0", Offset = "0x7FC3F0", VA = "0x1807FD3F0", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600AA81)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163K1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_1_01, ldc.i4:int32(0))
stloc:SecT163K1Point(var_3_0D, newobj:SecT163K1Point(SecT163K1Point::.ctor, ldloc:SecT163K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_4), ldloc:int32[exp:bool](var_1_01)))
stloc:int32(var_4, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecT163K1Point(SecT163K1Curve::m_infinity, ldloc:SecT163K1Curve(var_0), ldloc:SecT163K1Point(var_3_0D))
stloc:int32(var_6_21, callvirtgetter:int32(SecT163K1Curve::get_FieldSize, ldloc:SecT163K1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecT163K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_6_21))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecT163K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_6_21))
stloc:uint8[](var_7_3D, call:uint8[](Hex::Decode, ldstr:string("04000000000000000000020108A2E0CC0D99F8A5EF")))
stloc:BigInteger(var_8_47, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_7_3D)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecT163K1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_8_47))
stloc:BigInteger(var_9_56, ldsfld:BigInteger(BigInteger::Two))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecT163K1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_9_56))
stfld:int32(ECCurve::m_coord, ldloc:SecT163K1Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](6)))
}
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: 0x0600AA82 RID: 43650 RVA: 0x0024DB98 File Offset: 0x0024BD98
[Token(Token = "0x600AA82")]
[Address(RVA = "0x7BC700", Offset = "0x7BB700", VA = "0x1807BC700", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 6;
}
// Token: 0x0600AA83 RID: 43651 RVA: 0x0024DBAC File Offset: 0x0024BDAC
[Token(Token = "0x600AA83")]
[Address(RVA = "0x7FD7D0", Offset = "0x7FC7D0", VA = "0x1807FD7D0", Slot = "15")]
protected override ECMultiplier CreateDefaultMultiplier()
{
/*
An exception occurred when decompiling this method (0600AA83)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier.ECMultiplier BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163K1Curve::CreateDefaultMultiplier()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:WTauNafMultiplier(var_0_05, newobj:WTauNafMultiplier(WTauNafMultiplier::.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.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: 0x17001AC9 RID: 6857
// (get) Token: 0x0600AA84 RID: 43652 RVA: 0x0024DBC0 File Offset: 0x0024BDC0
[Token(Token = "0x17001AC9")]
public override ECPoint Infinity
{
[Token(Token = "0x600AA84")]
[Address(RVA = "0x417710", Offset = "0x416710", VA = "0x180417710", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600AA84)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163K1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT163K1Point(var_0_06, ldfld:SecT163K1Point(SecT163K1Curve::m_infinity, ldloc:SecT163K1Curve(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: 0x17001ACA RID: 6858
// (get) Token: 0x0600AA85 RID: 43653 RVA: 0x0024DBD4 File Offset: 0x0024BDD4
[Token(Token = "0x17001ACA")]
public override int FieldSize
{
[Token(Token = "0x600AA85")]
[Address(RVA = "0x7FBA70", Offset = "0x7FAA70", VA = "0x1807FBA70", Slot = "4")]
get
{
return 163;
}
}
// Token: 0x0600AA86 RID: 43654 RVA: 0x0024DBE8 File Offset: 0x0024BDE8
[Token(Token = "0x600AA86")]
[Address(RVA = "0x7FD950", Offset = "0x7FC950", VA = "0x1807FD950", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AA86)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163K1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT163FieldElement(var_0_06, newobj:SecT163FieldElement(SecT163FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600AA87 RID: 43655 RVA: 0x0024DBFC File Offset: 0x0024BDFC
[Token(Token = "0x600AA87")]
[Address(RVA = "0x7FD820", Offset = "0x7FC820", VA = "0x1807FD820", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AA87)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163K1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT163K1Point(var_0_09, newobj:SecT163K1Point(SecT163K1Point::.ctor, ldloc:SecT163K1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600AA88 RID: 43656 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AA88")]
[Address(RVA = "0x7FD8B0", Offset = "0x7FC8B0", VA = "0x1807FD8B0", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001ACB RID: 6859
// (get) Token: 0x0600AA89 RID: 43657 RVA: 0x0024DC14 File Offset: 0x0024BE14
[Token(Token = "0x17001ACB")]
public override bool IsKoblitz
{
[Token(Token = "0x600AA89")]
[Address(RVA = "0x4246A0", Offset = "0x4236A0", VA = "0x1804246A0", Slot = "39")]
get
{
return true;
}
}
// Token: 0x17001ACC RID: 6860
// (get) Token: 0x0600AA8A RID: 43658 RVA: 0x0024DC24 File Offset: 0x0024BE24
[Token(Token = "0x17001ACC")]
public virtual int M
{
[Token(Token = "0x600AA8A")]
[Address(RVA = "0x7FBA70", Offset = "0x7FAA70", VA = "0x1807FBA70", Slot = "40")]
get
{
return 163;
}
}
// Token: 0x17001ACD RID: 6861
// (get) Token: 0x0600AA8B RID: 43659 RVA: 0x0024DC38 File Offset: 0x0024BE38
[Token(Token = "0x17001ACD")]
public virtual bool IsTrinomial
{
[Token(Token = "0x600AA8B")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "41")]
get
{
}
}
// Token: 0x17001ACE RID: 6862
// (get) Token: 0x0600AA8C RID: 43660 RVA: 0x0024DC48 File Offset: 0x0024BE48
[Token(Token = "0x17001ACE")]
public virtual int K1
{
[Token(Token = "0x600AA8C")]
[Address(RVA = "0x4DB5B0", Offset = "0x4DA5B0", VA = "0x1804DB5B0", Slot = "42")]
get
{
return 3;
}
}
// Token: 0x17001ACF RID: 6863
// (get) Token: 0x0600AA8D RID: 43661 RVA: 0x0024DC58 File Offset: 0x0024BE58
[Token(Token = "0x17001ACF")]
public virtual int K2
{
[Token(Token = "0x600AA8D")]
[Address(RVA = "0x62FA10", Offset = "0x62EA10", VA = "0x18062FA10", Slot = "43")]
get
{
return 6;
}
}
// Token: 0x17001AD0 RID: 6864
// (get) Token: 0x0600AA8E RID: 43662 RVA: 0x0024DC68 File Offset: 0x0024BE68
[Token(Token = "0x17001AD0")]
public virtual int K3
{
[Token(Token = "0x600AA8E")]
[Address(RVA = "0x4B30C0", Offset = "0x4B20C0", VA = "0x1804B30C0", Slot = "44")]
get
{
return 7;
}
}
// Token: 0x0600AA8F RID: 43663 RVA: 0x0024DC78 File Offset: 0x0024BE78
[Token(Token = "0x600AA8F")]
[Address(RVA = "0x7FD570", Offset = "0x7FC570", VA = "0x1807FD570", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
ulong[] array;
int num;
for (;;)
{
array = new ulong[points];
num = 0;
if (len <= 0)
{
goto IL_49;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 6;
IL_49:
SecT163K1Curve.SecT163K1LookupTable secT163K1LookupTable;
secT163K1LookupTable.m_outer = 0;
secT163K1LookupTable.m_table = array;
secT163K1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006DB9 RID: 28089
[Token(Token = "0x4006DB9")]
private const int SECT163K1_DEFAULT_COORDS = 6;
// Token: 0x04006DBA RID: 28090
[Token(Token = "0x4006DBA")]
private const int SECT163K1_FE_LONGS = 3;
// Token: 0x04006DBB RID: 28091
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006DBB")]
protected readonly SecT163K1Point m_infinity;
// Token: 0x02001B60 RID: 7008
[Token(Token = "0x2001B60")]
private class SecT163K1LookupTable : ECLookupTable
{
// Token: 0x0600AA90 RID: 43664 RVA: 0x0024DCEC File Offset: 0x0024BEEC
[Token(Token = "0x600AA90")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecT163K1LookupTable(SecT163K1Curve outer, ulong[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001AD1 RID: 6865
// (get) Token: 0x0600AA91 RID: 43665 RVA: 0x0024DD14 File Offset: 0x0024BF14
[Token(Token = "0x17001AD1")]
public virtual int Size
{
[Token(Token = "0x600AA91")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600AA92 RID: 43666 RVA: 0x0024DD28 File Offset: 0x0024BF28
[Token(Token = "0x600AA92")]
[Address(RVA = "0x7FDB00", Offset = "0x7FCB00", VA = "0x1807FDB00", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
ulong[] array = Nat192.Create64();
ulong[] array2 = Nat192.Create64();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
ulong[] table = this.m_table;
ulong[] table2 = this.m_table;
num3++;
num += 6;
num2++;
}
SecT163K1Curve outer = this.m_outer;
new SecT163FieldElement().x = array;
new SecT163FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006DBC RID: 28092
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DBC")]
private readonly SecT163K1Curve m_outer;
// Token: 0x04006DBD RID: 28093
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006DBD")]
private readonly ulong[] m_table;
// Token: 0x04006DBE RID: 28094
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006DBE")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,297 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B61 RID: 7009
[Token(Token = "0x2001B61")]
internal class SecT163K1Point : AbstractF2mPoint
{
// Token: 0x0600AA93 RID: 43667 RVA: 0x0024DDA8 File Offset: 0x0024BFA8
[Token(Token = "0x600AA93")]
[Address(RVA = "0x7FF110", Offset = "0x7FE110", VA = "0x1807FF110")]
public SecT163K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600AA94 RID: 43668 RVA: 0x0024DDB8 File Offset: 0x0024BFB8
[Token(Token = "0x600AA94")]
[Address(RVA = "0x7FF130", Offset = "0x7FE130", VA = "0x1807FF130")]
public SecT163K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AA94)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163K1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600AA95 RID: 43669 RVA: 0x0024DDE0 File Offset: 0x0024BFE0
[Token(Token = "0x600AA95")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecT163K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600AA96 RID: 43670 RVA: 0x0024DDF0 File Offset: 0x0024BFF0
[Token(Token = "0x600AA96")]
[Address(RVA = "0x7FE4E0", Offset = "0x7FD4E0", VA = "0x1807FE4E0", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600AA96)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163K1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecT163K1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecT163K1Point[exp: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: 0x17001AD2 RID: 6866
// (get) Token: 0x0600AA97 RID: 43671 RVA: 0x0024DE0C File Offset: 0x0024C00C
[Token(Token = "0x17001AD2")]
public override ECFieldElement YCoord
{
[Token(Token = "0x600AA97")]
[Address(RVA = "0x7BE020", Offset = "0x7BD020", VA = "0x1807BE020", Slot = "12")]
get
{
ECFieldElement x = this.m_x;
ECFieldElement y = this.m_y;
if (!base.IsInfinity && !x.IsOne)
{
int fieldSize = y.FieldSize;
if (this.m_zs[0].BitLength == 0)
{
}
}
return y;
}
}
// Token: 0x17001AD3 RID: 6867
// (get) Token: 0x0600AA98 RID: 43672 RVA: 0x0024DE5C File Offset: 0x0024C05C
[Token(Token = "0x17001AD3")]
protected internal override bool CompressionYTilde
{
[Token(Token = "0x600AA98")]
[Address(RVA = "0x7BDFA0", Offset = "0x7BCFA0", VA = "0x1807BDFA0", Slot = "25")]
get
{
if (!this.m_x.IsOne)
{
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement;
ECFieldElement ecfieldElement2;
return ecfieldElement != ecfieldElement2;
}
throw new NullReferenceException();
}
}
// Token: 0x0600AA99 RID: 43673 RVA: 0x0024DE90 File Offset: 0x0024C090
[Token(Token = "0x600AA99")]
[Address(RVA = "0x7FDCD0", Offset = "0x7FCCD0", VA = "0x1807FDCD0", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
while (!base.IsInfinity && !b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
ECFieldElement x2 = b.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
ECFieldElement[] zs2 = b.m_zs;
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
if (ecfieldElement.BitLength == 0)
{
ECFieldElement ecfieldElement3 = x2.Subtract(ecfieldElement);
ECFieldElement ecfieldElement4 = y2.Subtract(ecfieldElement);
}
if (ecfieldElement2.BitLength != 0)
{
continue;
}
ECFieldElement ecfieldElement5 = x.Subtract(ecfieldElement2);
int fieldSize = y.Subtract(ecfieldElement2).FieldSize;
int fieldSize2 = ecfieldElement5.FieldSize;
if (fieldSize2 == 0)
{
if (!x2.IsOne)
{
sbyte b3;
sbyte b2 = b3;
TypeCode typeCode = b2.GetTypeCode();
int fieldSize3 = y.FieldSize;
}
bool flag2 = this.IsNormalized();
ushort num;
TypeCode typeCode2 = num.GetTypeCode();
ushort num2;
TypeCode typeCode3 = num2.GetTypeCode().GetTypeCode();
short num3;
TypeCode typeCode4 = num3.GetTypeCode();
sbyte b4;
TypeCode typeCode5 = b4.GetTypeCode().GetTypeCode();
byte b5;
TypeCode typeCode6 = b5.GetTypeCode();
BigInteger one = BigInteger.One;
int num4 = flag.CompareTo(one);
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
ECPoint ecpoint;
if (ecpoint == 0)
{
break;
}
}
if (!x2.IsOne)
{
bool compressionYTilde = b.CompressionYTilde;
break;
}
break;
}
return b;
}
// Token: 0x0600AA9A RID: 43674 RVA: 0x0024E020 File Offset: 0x0024C220
[Token(Token = "0x600AA9A")]
[Address(RVA = "0x7FED00", Offset = "0x7FDD00", VA = "0x1807FED00", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
if (!this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
int bitLength = ecfieldElement.BitLength;
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement2 = y.Subtract(ecfieldElement);
ECFieldElement ecfieldElement3 = ecfieldElement.Negate();
if (y.Negate().FieldSize.GetTypeCode() == TypeCode.Empty)
{
if (bitLength != 0)
{
}
int fieldSize = y.FieldSize;
ushort num;
TypeCode typeCode = num.GetTypeCode().GetTypeCode();
ushort num2;
num = num2;
sbyte b;
TypeCode typeCode2 = b.GetTypeCode();
sbyte b2;
(new ECFieldElement[1])[0] = b2;
bool withCompression = this.m_withCompression;
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600AA9B RID: 43675 RVA: 0x0024E0DC File Offset: 0x0024C2DC
[Token(Token = "0x600AA9B")]
[Address(RVA = "0x7FE730", Offset = "0x7FD730", VA = "0x1807FE730", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
if (x.IsOne)
{
return b;
}
ECFieldElement[] zs = b.m_zs;
ECFieldElement x2 = b.m_x;
ECFieldElement ecfieldElement = zs[0];
if (!x2.IsOne && ecfieldElement.BitLength != 0)
{
ECFieldElement[] zs2 = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement3 = x.Negate();
ECFieldElement ecfieldElement4 = y.Negate();
ECFieldElement ecfieldElement5 = ecfieldElement2.Negate();
ECFieldElement ecfieldElement6 = y.Subtract(ecfieldElement2);
TypeCode typeCode = ecfieldElement5.FieldSize.GetTypeCode();
int fieldSize = y2.Subtract(ecfieldElement5).FieldSize;
int fieldSize2 = x2.Subtract(ecfieldElement5).FieldSize;
decimal num;
TypeCode typeCode2 = num.GetTypeCode();
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
}
throw new NullReferenceException();
}
return b;
}
// Token: 0x0600AA9C RID: 43676 RVA: 0x0024E200 File Offset: 0x0024C400
[Token(Token = "0x600AA9C")]
[Address(RVA = "0x7FE580", Offset = "0x7FD580", VA = "0x1807FE580", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity && !this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
bool flag = this.SatisfiesOrder();
int fieldSize = y.FieldSize;
ECFieldElement[] array = new ECFieldElement[1];
if (ecfieldElement != 0)
{
}
array[0] = ecfieldElement;
bool withCompression = this.m_withCompression;
}
throw new IndexOutOfRangeException();
}
}
}
@@ -0,0 +1,390 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B62 RID: 7010
[Token(Token = "0x2001B62")]
internal class SecT163R1Curve : AbstractF2mCurve
{
// Token: 0x0600AA9D RID: 43677 RVA: 0x0024E26C File Offset: 0x0024C46C
[Token(Token = "0x600AA9D")]
[Address(RVA = "0x7FF7D0", Offset = "0x7FE7D0", VA = "0x1807FF7D0")]
public SecT163R1Curve()
{
int num = 0;
ulong num2;
base..ctor(163, 3, 6, (int)num2);
int num3;
int num4;
SecT163R1Point secT163R1Point = new SecT163R1Point(this, num3, num4, num != 0);
num4 = 0;
num3 = 0;
this.m_infinity = secT163R1Point;
byte[] array = Hex.Decode("07B6882CAAEFA84F9554FF8428BD88E246D2782AE2");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("0713612DCDDCB40AAB946BDA29CA91F73AF958AFD9");
BigInteger bigInteger2 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("03FFFFFFFFFFFFFFFFFFFF48AAB689C29CA710279B");
BigInteger bigInteger3 = new BigInteger(1, array3);
this.m_order = bigInteger3;
BigInteger two = BigInteger.Two;
this.m_cofactor = two;
this.m_coord = (int)((ulong)6L);
}
// Token: 0x0600AA9E RID: 43678 RVA: 0x0024E324 File Offset: 0x0024C524
[Token(Token = "0x600AA9E")]
[Address(RVA = "0x7FF1F0", Offset = "0x7FE1F0", VA = "0x1807FF1F0", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600AA9E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163R1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_1_01, ldc.i4:int32(0))
stloc:SecT163R1Point(var_3_0D, newobj:SecT163R1Point(SecT163R1Point::.ctor, ldloc:SecT163R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_4), ldloc:int32[exp:bool](var_1_01)))
stloc:int32(var_4, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecT163R1Point(SecT163R1Curve::m_infinity, ldloc:SecT163R1Curve(var_0), ldloc:SecT163R1Point(var_3_0D))
stloc:uint8[](var_6_25, call:uint8[](Hex::Decode, ldstr:string("07B6882CAAEFA84F9554FF8428BD88E246D2782AE2")))
stloc:BigInteger(var_7_2F, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_6_25)))
stloc:int32(var_8_37, callvirtgetter:int32(SecT163R1Curve::get_FieldSize, ldloc:SecT163R1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecT163R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_8_37))
stloc:uint8[](var_9_4B, call:uint8[](Hex::Decode, ldstr:string("0713612DCDDCB40AAB946BDA29CA91F73AF958AFD9")))
stloc:BigInteger(var_10_55, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_9_4B)))
stloc:int32(var_11_5D, callvirtgetter:int32(SecT163R1Curve::get_FieldSize, ldloc:SecT163R1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecT163R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_11_5D))
stloc:uint8[](var_12_71, call:uint8[](Hex::Decode, ldstr:string("03FFFFFFFFFFFFFFFFFFFF48AAB689C29CA710279B")))
stloc:BigInteger(var_13_7B, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_12_71)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecT163R1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_13_7B))
stloc:BigInteger(var_14_8A, ldsfld:BigInteger(BigInteger::Two))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecT163R1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_14_8A))
stfld:int32(ECCurve::m_coord, ldloc:SecT163R1Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](6)))
}
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: 0x0600AA9F RID: 43679 RVA: 0x0024E3D0 File Offset: 0x0024C5D0
[Token(Token = "0x600AA9F")]
[Address(RVA = "0x7BC700", Offset = "0x7BB700", VA = "0x1807BC700", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 6;
}
// Token: 0x17001AD4 RID: 6868
// (get) Token: 0x0600AAA0 RID: 43680 RVA: 0x0024E3E4 File Offset: 0x0024C5E4
[Token(Token = "0x17001AD4")]
public override ECPoint Infinity
{
[Token(Token = "0x600AAA0")]
[Address(RVA = "0x417710", Offset = "0x416710", VA = "0x180417710", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600AAA0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163R1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT163R1Point(var_0_06, ldfld:SecT163R1Point(SecT163R1Curve::m_infinity, ldloc:SecT163R1Curve(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: 0x17001AD5 RID: 6869
// (get) Token: 0x0600AAA1 RID: 43681 RVA: 0x0024E3F8 File Offset: 0x0024C5F8
[Token(Token = "0x17001AD5")]
public override int FieldSize
{
[Token(Token = "0x600AAA1")]
[Address(RVA = "0x7FBA70", Offset = "0x7FAA70", VA = "0x1807FBA70", Slot = "4")]
get
{
return 163;
}
}
// Token: 0x0600AAA2 RID: 43682 RVA: 0x0024E40C File Offset: 0x0024C60C
[Token(Token = "0x600AAA2")]
[Address(RVA = "0x7FF770", Offset = "0x7FE770", VA = "0x1807FF770", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AAA2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163R1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT163FieldElement(var_0_06, newobj:SecT163FieldElement(SecT163FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600AAA3 RID: 43683 RVA: 0x0024E420 File Offset: 0x0024C620
[Token(Token = "0x600AAA3")]
[Address(RVA = "0x7FF6E0", Offset = "0x7FE6E0", VA = "0x1807FF6E0", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AAA3)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163R1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT163R1Point(var_0_09, newobj:SecT163R1Point(SecT163R1Point::.ctor, ldloc:SecT163R1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600AAA4 RID: 43684 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AAA4")]
[Address(RVA = "0x7FF640", Offset = "0x7FE640", VA = "0x1807FF640", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001AD6 RID: 6870
// (get) Token: 0x0600AAA5 RID: 43685 RVA: 0x0024E438 File Offset: 0x0024C638
[Token(Token = "0x17001AD6")]
public override bool IsKoblitz
{
[Token(Token = "0x600AAA5")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "39")]
get
{
}
}
// Token: 0x17001AD7 RID: 6871
// (get) Token: 0x0600AAA6 RID: 43686 RVA: 0x0024E448 File Offset: 0x0024C648
[Token(Token = "0x17001AD7")]
public virtual int M
{
[Token(Token = "0x600AAA6")]
[Address(RVA = "0x7FBA70", Offset = "0x7FAA70", VA = "0x1807FBA70", Slot = "40")]
get
{
return 163;
}
}
// Token: 0x17001AD8 RID: 6872
// (get) Token: 0x0600AAA7 RID: 43687 RVA: 0x0024E45C File Offset: 0x0024C65C
[Token(Token = "0x17001AD8")]
public virtual bool IsTrinomial
{
[Token(Token = "0x600AAA7")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "41")]
get
{
}
}
// Token: 0x17001AD9 RID: 6873
// (get) Token: 0x0600AAA8 RID: 43688 RVA: 0x0024E46C File Offset: 0x0024C66C
[Token(Token = "0x17001AD9")]
public virtual int K1
{
[Token(Token = "0x600AAA8")]
[Address(RVA = "0x4DB5B0", Offset = "0x4DA5B0", VA = "0x1804DB5B0", Slot = "42")]
get
{
return 3;
}
}
// Token: 0x17001ADA RID: 6874
// (get) Token: 0x0600AAA9 RID: 43689 RVA: 0x0024E47C File Offset: 0x0024C67C
[Token(Token = "0x17001ADA")]
public virtual int K2
{
[Token(Token = "0x600AAA9")]
[Address(RVA = "0x62FA10", Offset = "0x62EA10", VA = "0x18062FA10", Slot = "43")]
get
{
return 6;
}
}
// Token: 0x17001ADB RID: 6875
// (get) Token: 0x0600AAAA RID: 43690 RVA: 0x0024E48C File Offset: 0x0024C68C
[Token(Token = "0x17001ADB")]
public virtual int K3
{
[Token(Token = "0x600AAAA")]
[Address(RVA = "0x4B30C0", Offset = "0x4B20C0", VA = "0x1804B30C0", Slot = "44")]
get
{
return 7;
}
}
// Token: 0x0600AAAB RID: 43691 RVA: 0x0024E49C File Offset: 0x0024C69C
[Token(Token = "0x600AAAB")]
[Address(RVA = "0x7FF3E0", Offset = "0x7FE3E0", VA = "0x1807FF3E0", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
ulong[] array;
int num;
for (;;)
{
array = new ulong[points];
num = 0;
if (len <= 0)
{
goto IL_49;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 6;
IL_49:
SecT163R1Curve.SecT163R1LookupTable secT163R1LookupTable;
secT163R1LookupTable.m_outer = 0;
secT163R1LookupTable.m_table = array;
secT163R1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006DBF RID: 28095
[Token(Token = "0x4006DBF")]
private const int SECT163R1_DEFAULT_COORDS = 6;
// Token: 0x04006DC0 RID: 28096
[Token(Token = "0x4006DC0")]
private const int SECT163R1_FE_LONGS = 3;
// Token: 0x04006DC1 RID: 28097
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006DC1")]
protected readonly SecT163R1Point m_infinity;
// Token: 0x02001B63 RID: 7011
[Token(Token = "0x2001B63")]
private class SecT163R1LookupTable : ECLookupTable
{
// Token: 0x0600AAAC RID: 43692 RVA: 0x0024E510 File Offset: 0x0024C710
[Token(Token = "0x600AAAC")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecT163R1LookupTable(SecT163R1Curve outer, ulong[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001ADC RID: 6876
// (get) Token: 0x0600AAAD RID: 43693 RVA: 0x0024E538 File Offset: 0x0024C738
[Token(Token = "0x17001ADC")]
public virtual int Size
{
[Token(Token = "0x600AAAD")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600AAAE RID: 43694 RVA: 0x0024E54C File Offset: 0x0024C74C
[Token(Token = "0x600AAAE")]
[Address(RVA = "0x7FF990", Offset = "0x7FE990", VA = "0x1807FF990", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
ulong[] array = Nat192.Create64();
ulong[] array2 = Nat192.Create64();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
ulong[] table = this.m_table;
ulong[] table2 = this.m_table;
num3++;
num += 6;
num2++;
}
SecT163R1Curve outer = this.m_outer;
new SecT163FieldElement().x = array;
new SecT163FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006DC2 RID: 28098
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DC2")]
private readonly SecT163R1Curve m_outer;
// Token: 0x04006DC3 RID: 28099
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006DC3")]
private readonly ulong[] m_table;
// Token: 0x04006DC4 RID: 28100
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006DC4")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,256 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B64 RID: 7012
[Token(Token = "0x2001B64")]
internal class SecT163R1Point : AbstractF2mPoint
{
// Token: 0x0600AAAF RID: 43695 RVA: 0x0024E5CC File Offset: 0x0024C7CC
[Token(Token = "0x600AAAF")]
[Address(RVA = "0x8010A0", Offset = "0x8000A0", VA = "0x1808010A0")]
public SecT163R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600AAB0 RID: 43696 RVA: 0x0024E5DC File Offset: 0x0024C7DC
[Token(Token = "0x600AAB0")]
[Address(RVA = "0x8010C0", Offset = "0x8000C0", VA = "0x1808010C0")]
public SecT163R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AAB0)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163R1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600AAB1 RID: 43697 RVA: 0x0024E604 File Offset: 0x0024C804
[Token(Token = "0x600AAB1")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecT163R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600AAB2 RID: 43698 RVA: 0x0024E614 File Offset: 0x0024C814
[Token(Token = "0x600AAB2")]
[Address(RVA = "0x8003A0", Offset = "0x7FF3A0", VA = "0x1808003A0", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600AAB2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163R1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecT163R1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecT163R1Point[exp: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: 0x17001ADD RID: 6877
// (get) Token: 0x0600AAB3 RID: 43699 RVA: 0x0024E630 File Offset: 0x0024C830
[Token(Token = "0x17001ADD")]
public override ECFieldElement YCoord
{
[Token(Token = "0x600AAB3")]
[Address(RVA = "0x7BE020", Offset = "0x7BD020", VA = "0x1807BE020", Slot = "12")]
get
{
ECFieldElement x = this.m_x;
ECFieldElement y = this.m_y;
if (!base.IsInfinity && !x.IsOne)
{
int fieldSize = y.FieldSize;
if (this.m_zs[0].BitLength == 0)
{
}
}
return y;
}
}
// Token: 0x17001ADE RID: 6878
// (get) Token: 0x0600AAB4 RID: 43700 RVA: 0x0024E680 File Offset: 0x0024C880
[Token(Token = "0x17001ADE")]
protected internal override bool CompressionYTilde
{
[Token(Token = "0x600AAB4")]
[Address(RVA = "0x7BDFA0", Offset = "0x7BCFA0", VA = "0x1807BDFA0", Slot = "25")]
get
{
if (!this.m_x.IsOne)
{
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement;
ECFieldElement ecfieldElement2;
return ecfieldElement != ecfieldElement2;
}
throw new NullReferenceException();
}
}
// Token: 0x0600AAB5 RID: 43701 RVA: 0x0024E6B4 File Offset: 0x0024C8B4
[Token(Token = "0x600AAB5")]
[Address(RVA = "0x7FFB60", Offset = "0x7FEB60", VA = "0x1807FFB60", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
while (!base.IsInfinity && !b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
ECFieldElement x2 = b.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
ECFieldElement[] zs2 = b.m_zs;
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
if (ecfieldElement.BitLength == 0)
{
ECFieldElement ecfieldElement3 = x2.Subtract(ecfieldElement);
ECFieldElement ecfieldElement4 = y2.Subtract(ecfieldElement);
}
if (ecfieldElement2.BitLength != 0)
{
continue;
}
ECFieldElement ecfieldElement5 = x.Subtract(ecfieldElement2);
int fieldSize = y.Subtract(ecfieldElement2).FieldSize;
int fieldSize2 = ecfieldElement5.FieldSize;
if (fieldSize2 == 0)
{
if (!x2.IsOne)
{
sbyte b3;
sbyte b2 = b3;
TypeCode typeCode = b2.GetTypeCode();
int fieldSize3 = y.FieldSize;
bool withCompression = this.m_withCompression;
}
short num;
TypeCode typeCode2 = num.GetTypeCode();
BigInteger one = BigInteger.One;
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
ECPoint ecpoint;
if (ecpoint == 0)
{
break;
}
}
if (!x2.IsOne)
{
bool compressionYTilde = b.CompressionYTilde;
break;
}
break;
}
return b;
}
// Token: 0x0600AAB6 RID: 43702 RVA: 0x0024E808 File Offset: 0x0024CA08
[Token(Token = "0x600AAB6")]
[Address(RVA = "0x800C50", Offset = "0x7FFC50", VA = "0x180800C50", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
int bitLength = ecfieldElement.BitLength;
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement2 = y.Subtract(ecfieldElement);
ECFieldElement ecfieldElement3 = ecfieldElement.Negate();
if (bitLength == 0)
{
}
if (y.Negate().FieldSize.GetTypeCode() == TypeCode.Empty)
{
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement4 = x.Subtract(ecfieldElement);
ECFieldElement ecfieldElement5;
TypeCode typeCode = ecfieldElement5.FieldSize.GetTypeCode();
sbyte b;
(new ECFieldElement[1])[0] = b;
bool withCompression = this.m_withCompression;
}
SecT163R1Point secT163R1Point;
ECFieldElement[] zcoords = secT163R1Point.GetZCoords();
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600AAB7 RID: 43703 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AAB7")]
[Address(RVA = "0x8005F0", Offset = "0x7FF5F0", VA = "0x1808005F0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AAB8 RID: 43704 RVA: 0x0024E8D0 File Offset: 0x0024CAD0
[Token(Token = "0x600AAB8")]
[Address(RVA = "0x800440", Offset = "0x7FF440", VA = "0x180800440", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity && !this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
bool flag = this.SatisfiesOrder();
int fieldSize = y.FieldSize;
ECFieldElement[] array = new ECFieldElement[1];
if (ecfieldElement != 0)
{
}
array[0] = ecfieldElement;
bool withCompression = this.m_withCompression;
}
throw new IndexOutOfRangeException();
}
}
}
@@ -0,0 +1,386 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B65 RID: 7013
[Token(Token = "0x2001B65")]
internal class SecT163R2Curve : AbstractF2mCurve
{
// Token: 0x0600AAB9 RID: 43705 RVA: 0x0024E93C File Offset: 0x0024CB3C
[Token(Token = "0x600AAB9")]
[Address(RVA = "0x801730", Offset = "0x800730", VA = "0x180801730")]
public SecT163R2Curve()
{
int num = 0;
ulong num2;
base..ctor(163, 3, 6, (int)num2);
int num3;
int num4;
SecT163R2Point secT163R2Point = new SecT163R2Point(this, num3, num4, num != 0);
num4 = 0;
num3 = 0;
this.m_infinity = secT163R2Point;
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array = Hex.Decode("020A601907B8C953CA1481EB10512F78744A3205FD");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array2 = Hex.Decode("040000000000000000000292FE77E70C12A4234C33");
BigInteger bigInteger2 = new BigInteger(1, array2);
this.m_order = bigInteger2;
BigInteger two = BigInteger.Two;
this.m_cofactor = two;
this.m_coord = (int)((ulong)6L);
}
// Token: 0x0600AABA RID: 43706 RVA: 0x0024E9DC File Offset: 0x0024CBDC
[Token(Token = "0x600AABA")]
[Address(RVA = "0x801180", Offset = "0x800180", VA = "0x180801180", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600AABA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163R2Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_1_01, ldc.i4:int32(0))
stloc:SecT163R2Point(var_3_0D, newobj:SecT163R2Point(SecT163R2Point::.ctor, ldloc:SecT163R2Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_4), ldloc:int32[exp:bool](var_1_01)))
stloc:int32(var_4, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecT163R2Point(SecT163R2Curve::m_infinity, ldloc:SecT163R2Curve(var_0), ldloc:SecT163R2Point(var_3_0D))
stloc:int32(var_6_21, callvirtgetter:int32(SecT163R2Curve::get_FieldSize, ldloc:SecT163R2Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecT163R2Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_6_21))
stloc:uint8[](var_7_35, call:uint8[](Hex::Decode, ldstr:string("020A601907B8C953CA1481EB10512F78744A3205FD")))
stloc:BigInteger(var_8_3F, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_7_35)))
stloc:int32(var_9_47, callvirtgetter:int32(SecT163R2Curve::get_FieldSize, ldloc:SecT163R2Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecT163R2Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_9_47))
stloc:uint8[](var_10_5B, call:uint8[](Hex::Decode, ldstr:string("040000000000000000000292FE77E70C12A4234C33")))
stloc:BigInteger(var_11_65, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_10_5B)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecT163R2Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_11_65))
stloc:BigInteger(var_12_74, ldsfld:BigInteger(BigInteger::Two))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecT163R2Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_12_74))
stfld:int32(ECCurve::m_coord, ldloc:SecT163R2Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](6)))
}
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: 0x0600AABB RID: 43707 RVA: 0x0024EA70 File Offset: 0x0024CC70
[Token(Token = "0x600AABB")]
[Address(RVA = "0x7BC700", Offset = "0x7BB700", VA = "0x1807BC700", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 6;
}
// Token: 0x17001ADF RID: 6879
// (get) Token: 0x0600AABC RID: 43708 RVA: 0x0024EA84 File Offset: 0x0024CC84
[Token(Token = "0x17001ADF")]
public override ECPoint Infinity
{
[Token(Token = "0x600AABC")]
[Address(RVA = "0x417710", Offset = "0x416710", VA = "0x180417710", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600AABC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163R2Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT163R2Point(var_0_06, ldfld:SecT163R2Point(SecT163R2Curve::m_infinity, ldloc:SecT163R2Curve(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: 0x17001AE0 RID: 6880
// (get) Token: 0x0600AABD RID: 43709 RVA: 0x0024EA98 File Offset: 0x0024CC98
[Token(Token = "0x17001AE0")]
public override int FieldSize
{
[Token(Token = "0x600AABD")]
[Address(RVA = "0x7FBA70", Offset = "0x7FAA70", VA = "0x1807FBA70", Slot = "4")]
get
{
return 163;
}
}
// Token: 0x0600AABE RID: 43710 RVA: 0x0024EAAC File Offset: 0x0024CCAC
[Token(Token = "0x600AABE")]
[Address(RVA = "0x8016D0", Offset = "0x8006D0", VA = "0x1808016D0", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AABE)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163R2Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT163FieldElement(var_0_06, newobj:SecT163FieldElement(SecT163FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600AABF RID: 43711 RVA: 0x0024EAC0 File Offset: 0x0024CCC0
[Token(Token = "0x600AABF")]
[Address(RVA = "0x801640", Offset = "0x800640", VA = "0x180801640", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AABF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163R2Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT163R2Point(var_0_09, newobj:SecT163R2Point(SecT163R2Point::.ctor, ldloc:SecT163R2Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600AAC0 RID: 43712 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AAC0")]
[Address(RVA = "0x8015A0", Offset = "0x8005A0", VA = "0x1808015A0", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001AE1 RID: 6881
// (get) Token: 0x0600AAC1 RID: 43713 RVA: 0x0024EAD8 File Offset: 0x0024CCD8
[Token(Token = "0x17001AE1")]
public override bool IsKoblitz
{
[Token(Token = "0x600AAC1")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "39")]
get
{
}
}
// Token: 0x17001AE2 RID: 6882
// (get) Token: 0x0600AAC2 RID: 43714 RVA: 0x0024EAE8 File Offset: 0x0024CCE8
[Token(Token = "0x17001AE2")]
public virtual int M
{
[Token(Token = "0x600AAC2")]
[Address(RVA = "0x7FBA70", Offset = "0x7FAA70", VA = "0x1807FBA70", Slot = "40")]
get
{
return 163;
}
}
// Token: 0x17001AE3 RID: 6883
// (get) Token: 0x0600AAC3 RID: 43715 RVA: 0x0024EAFC File Offset: 0x0024CCFC
[Token(Token = "0x17001AE3")]
public virtual bool IsTrinomial
{
[Token(Token = "0x600AAC3")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "41")]
get
{
}
}
// Token: 0x17001AE4 RID: 6884
// (get) Token: 0x0600AAC4 RID: 43716 RVA: 0x0024EB0C File Offset: 0x0024CD0C
[Token(Token = "0x17001AE4")]
public virtual int K1
{
[Token(Token = "0x600AAC4")]
[Address(RVA = "0x4DB5B0", Offset = "0x4DA5B0", VA = "0x1804DB5B0", Slot = "42")]
get
{
return 3;
}
}
// Token: 0x17001AE5 RID: 6885
// (get) Token: 0x0600AAC5 RID: 43717 RVA: 0x0024EB1C File Offset: 0x0024CD1C
[Token(Token = "0x17001AE5")]
public virtual int K2
{
[Token(Token = "0x600AAC5")]
[Address(RVA = "0x62FA10", Offset = "0x62EA10", VA = "0x18062FA10", Slot = "43")]
get
{
return 6;
}
}
// Token: 0x17001AE6 RID: 6886
// (get) Token: 0x0600AAC6 RID: 43718 RVA: 0x0024EB2C File Offset: 0x0024CD2C
[Token(Token = "0x17001AE6")]
public virtual int K3
{
[Token(Token = "0x600AAC6")]
[Address(RVA = "0x4B30C0", Offset = "0x4B20C0", VA = "0x1804B30C0", Slot = "44")]
get
{
return 7;
}
}
// Token: 0x0600AAC7 RID: 43719 RVA: 0x0024EB3C File Offset: 0x0024CD3C
[Token(Token = "0x600AAC7")]
[Address(RVA = "0x801340", Offset = "0x800340", VA = "0x180801340", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
ulong[] array;
int num;
for (;;)
{
array = new ulong[points];
num = 0;
if (len <= 0)
{
goto IL_49;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 6;
IL_49:
SecT163R2Curve.SecT163R2LookupTable secT163R2LookupTable;
secT163R2LookupTable.m_outer = 0;
secT163R2LookupTable.m_table = array;
secT163R2LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006DC5 RID: 28101
[Token(Token = "0x4006DC5")]
private const int SECT163R2_DEFAULT_COORDS = 6;
// Token: 0x04006DC6 RID: 28102
[Token(Token = "0x4006DC6")]
private const int SECT163R2_FE_LONGS = 3;
// Token: 0x04006DC7 RID: 28103
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006DC7")]
protected readonly SecT163R2Point m_infinity;
// Token: 0x02001B66 RID: 7014
[Token(Token = "0x2001B66")]
private class SecT163R2LookupTable : ECLookupTable
{
// Token: 0x0600AAC8 RID: 43720 RVA: 0x0024EBB0 File Offset: 0x0024CDB0
[Token(Token = "0x600AAC8")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecT163R2LookupTable(SecT163R2Curve outer, ulong[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001AE7 RID: 6887
// (get) Token: 0x0600AAC9 RID: 43721 RVA: 0x0024EBD8 File Offset: 0x0024CDD8
[Token(Token = "0x17001AE7")]
public virtual int Size
{
[Token(Token = "0x600AAC9")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600AACA RID: 43722 RVA: 0x0024EBEC File Offset: 0x0024CDEC
[Token(Token = "0x600AACA")]
[Address(RVA = "0x8018D0", Offset = "0x8008D0", VA = "0x1808018D0", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
ulong[] array = Nat192.Create64();
ulong[] array2 = Nat192.Create64();
int num = 0;
int num2 = 0;
if (this.m_size > num)
{
int num3 = 0;
ulong[] table = this.m_table;
ulong[] table2 = this.m_table;
num3++;
num += 6;
num2++;
}
SecT163R2Curve outer = this.m_outer;
new SecT163FieldElement().x = array;
new SecT163FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006DC8 RID: 28104
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DC8")]
private readonly SecT163R2Curve m_outer;
// Token: 0x04006DC9 RID: 28105
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006DC9")]
private readonly ulong[] m_table;
// Token: 0x04006DCA RID: 28106
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006DCA")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,255 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B67 RID: 7015
[Token(Token = "0x2001B67")]
internal class SecT163R2Point : AbstractF2mPoint
{
// Token: 0x0600AACB RID: 43723 RVA: 0x0024EC6C File Offset: 0x0024CE6C
[Token(Token = "0x600AACB")]
[Address(RVA = "0x802F00", Offset = "0x801F00", VA = "0x180802F00")]
public SecT163R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600AACC RID: 43724 RVA: 0x0024EC7C File Offset: 0x0024CE7C
[Token(Token = "0x600AACC")]
[Address(RVA = "0x802F20", Offset = "0x801F20", VA = "0x180802F20")]
public SecT163R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AACC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163R2Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600AACD RID: 43725 RVA: 0x0024ECA4 File Offset: 0x0024CEA4
[Token(Token = "0x600AACD")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecT163R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600AACE RID: 43726 RVA: 0x0024ECB4 File Offset: 0x0024CEB4
[Token(Token = "0x600AACE")]
[Address(RVA = "0x8022C0", Offset = "0x8012C0", VA = "0x1808022C0", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600AACE)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT163R2Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecT163R2Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecT163R2Point[exp: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: 0x17001AE8 RID: 6888
// (get) Token: 0x0600AACF RID: 43727 RVA: 0x0024ECD0 File Offset: 0x0024CED0
[Token(Token = "0x17001AE8")]
public override ECFieldElement YCoord
{
[Token(Token = "0x600AACF")]
[Address(RVA = "0x7BE020", Offset = "0x7BD020", VA = "0x1807BE020", Slot = "12")]
get
{
ECFieldElement x = this.m_x;
ECFieldElement y = this.m_y;
if (!base.IsInfinity && !x.IsOne)
{
int fieldSize = y.FieldSize;
if (this.m_zs[0].BitLength == 0)
{
}
}
return y;
}
}
// Token: 0x17001AE9 RID: 6889
// (get) Token: 0x0600AAD0 RID: 43728 RVA: 0x0024ED20 File Offset: 0x0024CF20
[Token(Token = "0x17001AE9")]
protected internal override bool CompressionYTilde
{
[Token(Token = "0x600AAD0")]
[Address(RVA = "0x7BDFA0", Offset = "0x7BCFA0", VA = "0x1807BDFA0", Slot = "25")]
get
{
if (!this.m_x.IsOne)
{
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement;
ECFieldElement ecfieldElement2;
return ecfieldElement != ecfieldElement2;
}
throw new NullReferenceException();
}
}
// Token: 0x0600AAD1 RID: 43729 RVA: 0x0024ED54 File Offset: 0x0024CF54
[Token(Token = "0x600AAD1")]
[Address(RVA = "0x801AA0", Offset = "0x800AA0", VA = "0x180801AA0", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
while (!base.IsInfinity && !b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
ECFieldElement x2 = b.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
ECFieldElement[] zs2 = b.m_zs;
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
if (ecfieldElement.BitLength == 0)
{
ECFieldElement ecfieldElement3 = x2.Subtract(ecfieldElement);
ECFieldElement ecfieldElement4 = y2.Subtract(ecfieldElement);
}
if (ecfieldElement2.BitLength == 0)
{
ECFieldElement ecfieldElement5 = x.Subtract(ecfieldElement2);
int fieldSize = y.Subtract(ecfieldElement2).FieldSize;
int fieldSize2 = ecfieldElement5.FieldSize;
if (fieldSize2 == 0)
{
if (!x2.IsOne)
{
sbyte b3;
sbyte b2 = b3;
TypeCode typeCode = b2.GetTypeCode();
int fieldSize3 = y.FieldSize;
}
bool flag2 = this.IsNormalized();
ushort num;
TypeCode typeCode2 = num.GetTypeCode();
ushort num2;
TypeCode typeCode3 = num2.GetTypeCode().GetTypeCode();
short num3;
TypeCode typeCode4 = num3.GetTypeCode();
sbyte b4;
TypeCode typeCode5 = b4.GetTypeCode().GetTypeCode();
byte b5;
TypeCode typeCode6 = b5.GetTypeCode();
BigInteger one = BigInteger.One;
int num4 = flag.CompareTo(one);
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
}
}
else
{
if (!x2.IsOne)
{
bool compressionYTilde = b.CompressionYTilde;
break;
}
break;
}
}
return b;
}
// Token: 0x0600AAD2 RID: 43730 RVA: 0x0024EEF0 File Offset: 0x0024D0F0
[Token(Token = "0x600AAD2")]
[Address(RVA = "0x802B00", Offset = "0x801B00", VA = "0x180802B00", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
if (ecfieldElement.BitLength != 0)
{
}
ECFieldElement ecfieldElement2 = y.Subtract(ecfieldElement);
ECFieldElement ecfieldElement3 = ecfieldElement.Negate();
if (y.Negate().FieldSize.GetTypeCode() == TypeCode.Empty)
{
ECFieldElement ecfieldElement4 = x.Subtract(ecfieldElement);
ECFieldElement ecfieldElement5;
TypeCode typeCode = ecfieldElement5.FieldSize.GetTypeCode();
sbyte b;
(new ECFieldElement[1])[0] = b;
bool withCompression = this.m_withCompression;
}
SecT163R2Point secT163R2Point;
ECFieldElement[] zcoords = secT163R2Point.GetZCoords();
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600AAD3 RID: 43731 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AAD3")]
[Address(RVA = "0x802510", Offset = "0x801510", VA = "0x180802510", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AAD4 RID: 43732 RVA: 0x0024EFA8 File Offset: 0x0024D1A8
[Token(Token = "0x600AAD4")]
[Address(RVA = "0x802360", Offset = "0x801360", VA = "0x180802360", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity && !this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
bool flag = this.SatisfiesOrder();
int fieldSize = y.FieldSize;
ECFieldElement[] array = new ECFieldElement[1];
if (ecfieldElement != 0)
{
}
array[0] = ecfieldElement;
bool withCompression = this.m_withCompression;
}
throw new IndexOutOfRangeException();
}
}
}
@@ -0,0 +1,352 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B68 RID: 7016
[Token(Token = "0x2001B68")]
internal class SecT193Field
{
// Token: 0x0600AAD5 RID: 43733 RVA: 0x0024F014 File Offset: 0x0024D214
[Token(Token = "0x600AAD5")]
[Address(RVA = "0x7BA2D0", Offset = "0x7B92D0", VA = "0x1807BA2D0")]
public static void Add(ulong[] x, ulong[] y, ulong[] z)
{
ulong num = y[0];
z[0] = num;
ulong num2 = y[1];
z[1] = num2;
ulong num3 = y[2];
z[2] = num3;
ulong num4 = y[3];
z[3] = num4;
}
// Token: 0x0600AAD6 RID: 43734 RVA: 0x0024F068 File Offset: 0x0024D268
[Token(Token = "0x600AAD6")]
[Address(RVA = "0x7C65A0", Offset = "0x7C55A0", VA = "0x1807C65A0")]
public static void AddExt(ulong[] xx, ulong[] yy, ulong[] zz)
{
ulong num = yy[0];
zz[0] = num;
ulong num2 = yy[1];
zz[1] = num2;
ulong num3 = yy[2];
zz[2] = num3;
ulong num4 = yy[3];
zz[3] = num4;
ulong num5 = yy[4];
zz[4] = num5;
ulong num6 = yy[5];
zz[5] = num6;
ulong num7 = yy[6];
zz[6] = num7;
}
// Token: 0x0600AAD7 RID: 43735 RVA: 0x0024F0F4 File Offset: 0x0024D2F4
[Token(Token = "0x600AAD7")]
[Address(RVA = "0x7BA1E0", Offset = "0x7B91E0", VA = "0x1807BA1E0")]
public static void AddOne(ulong[] x, ulong[] z)
{
ulong num = x[0];
z[0] = num;
ulong num2 = x[1];
z[1] = num2;
ulong num3 = x[2];
z[2] = num3;
ulong num4 = x[3];
z[3] = num4;
}
// Token: 0x0600AAD8 RID: 43736 RVA: 0x0024F148 File Offset: 0x0024D348
[Token(Token = "0x600AAD8")]
[Address(RVA = "0x803D80", Offset = "0x802D80", VA = "0x180803D80")]
public static ulong[] FromBigInteger(BigInteger x)
{
ulong[] array = Nat256.FromBigInteger64(x);
ulong num = array[3];
array[0] = num;
array[3] = num;
return array;
}
// Token: 0x0600AAD9 RID: 43737 RVA: 0x0024F17C File Offset: 0x0024D37C
[Token(Token = "0x600AAD9")]
[Address(RVA = "0x804C90", Offset = "0x803C90", VA = "0x180804C90")]
public static void Invert(ulong[] x, ulong[] z)
{
/*
An exception occurred when decompiling this method (0600AAD9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193Field::Invert(System.UInt64[],System.UInt64[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_153:
stloc:InvalidOperationException(var_22_158, newobj:InvalidOperationException(InvalidOperationException::.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: 0x0600AADA RID: 43738 RVA: 0x0024F2E4 File Offset: 0x0024D4E4
[Token(Token = "0x600AADA")]
[Address(RVA = "0x804FA0", Offset = "0x803FA0", VA = "0x180804FA0")]
public static void Multiply(ulong[] x, ulong[] y, ulong[] z)
{
ulong[] array = Nat256.CreateExt64();
SecT193Field.ImplMultiply(x, y, array);
SecT193Field.Reduce(array, z);
}
// Token: 0x0600AADB RID: 43739 RVA: 0x0024F308 File Offset: 0x0024D508
[Token(Token = "0x600AADB")]
[Address(RVA = "0x804F40", Offset = "0x803F40", VA = "0x180804F40")]
public static void MultiplyAddToExt(ulong[] x, ulong[] y, ulong[] zz)
{
ulong[] array = Nat256.CreateExt64();
SecT193Field.ImplMultiply(x, y, array);
SecT193Field.AddExt(zz, array, zz);
}
// Token: 0x0600AADC RID: 43740 RVA: 0x0024F330 File Offset: 0x0024D530
[Token(Token = "0x600AADC")]
[Address(RVA = "0x8050B0", Offset = "0x8040B0", VA = "0x1808050B0")]
public static void Reduce(ulong[] xx, ulong[] z)
{
int length = xx.Length;
ulong num = xx[3];
ulong num2 = xx[6];
z[0] = num2;
z[1] = num2;
z[2] = num2;
z[3] = num;
}
// Token: 0x0600AADD RID: 43741 RVA: 0x0024F37C File Offset: 0x0024D57C
[Token(Token = "0x600AADD")]
[Address(RVA = "0x805000", Offset = "0x804000", VA = "0x180805000")]
public static void Reduce63(ulong[] z, int zOff)
{
int length = z.Length;
ulong num;
z[0] = num;
z[0] = num;
}
// Token: 0x0600AADE RID: 43742 RVA: 0x0024F3A8 File Offset: 0x0024D5A8
[Token(Token = "0x600AADE")]
[Address(RVA = "0x8052C0", Offset = "0x8042C0", VA = "0x1808052C0")]
public static void Sqrt(ulong[] x, ulong[] z)
{
ulong num = Interleave.Unshuffle(x[0]);
ulong num2 = x[1];
ulong num3 = Interleave.Unshuffle(num2);
ulong num4 = x[2];
ulong num5 = Interleave.Unshuffle(num4);
z[0] = num3;
num5 = num;
z[1] = num4;
z[2] = num;
z[3] = num5;
}
// Token: 0x0600AADF RID: 43743 RVA: 0x0024F414 File Offset: 0x0024D614
[Token(Token = "0x600AADF")]
[Address(RVA = "0x805570", Offset = "0x804570", VA = "0x180805570")]
public static void Square(ulong[] x, ulong[] z)
{
ulong[] array = Nat256.CreateExt64();
SecT193Field.ImplSquare(x, array);
SecT193Field.Reduce(array, z);
}
// Token: 0x0600AAE0 RID: 43744 RVA: 0x0024F438 File Offset: 0x0024D638
[Token(Token = "0x600AAE0")]
[Address(RVA = "0x805490", Offset = "0x804490", VA = "0x180805490")]
public static void SquareAddToExt(ulong[] x, ulong[] zz)
{
ulong[] array = Nat256.CreateExt64();
SecT193Field.ImplSquare(x, array);
SecT193Field.AddExt(zz, array, zz);
}
// Token: 0x0600AAE1 RID: 43745 RVA: 0x0024F45C File Offset: 0x0024D65C
[Token(Token = "0x600AAE1")]
[Address(RVA = "0x8054E0", Offset = "0x8044E0", VA = "0x1808054E0")]
public static void SquareN(ulong[] x, int n, ulong[] z)
{
ulong[] array = Nat256.CreateExt64();
SecT193Field.ImplSquare(x, array);
SecT193Field.Reduce(array, z);
if (n - 1 > 0)
{
SecT193Field.ImplSquare(z, array);
SecT193Field.Reduce(array, z);
}
}
// Token: 0x0600AAE2 RID: 43746 RVA: 0x0024F494 File Offset: 0x0024D694
[Token(Token = "0x600AAE2")]
[Address(RVA = "0x7C80D0", Offset = "0x7C70D0", VA = "0x1807C80D0")]
public static uint Trace(ulong[] x)
{
ulong num = x[0];
throw new NullReferenceException();
}
// Token: 0x0600AAE3 RID: 43747 RVA: 0x0024F4B0 File Offset: 0x0024D6B0
[Token(Token = "0x600AAE3")]
[Address(RVA = "0x803E10", Offset = "0x802E10", VA = "0x180803E10")]
protected static void ImplCompactExt(ulong[] zz)
{
int length = zz.Length;
ulong num = zz[1];
ulong num2 = zz[2];
ulong num3 = zz[4];
ulong num4 = zz[6];
ulong num5 = zz[7];
num = num2;
zz[1] = num;
zz[2] = num2;
zz[3] = num;
zz[4] = num3;
zz[5] = num4;
zz[6] = num5;
}
// Token: 0x0600AAE4 RID: 43748 RVA: 0x0024F530 File Offset: 0x0024D730
[Token(Token = "0x600AAE4")]
[Address(RVA = "0x804060", Offset = "0x803060", VA = "0x180804060")]
protected static void ImplExpand(ulong[] x, ulong[] z)
{
int length = x.Length;
ulong num = x[0];
ulong num2 = x[1];
ulong num3 = x[2];
z[0] = num;
num = num2;
z[1] = num;
z[2] = num2;
z[3] = num3;
}
// Token: 0x0600AAE5 RID: 43749 RVA: 0x0024F588 File Offset: 0x0024D788
[Token(Token = "0x600AAE5")]
[Address(RVA = "0x8041B0", Offset = "0x8031B0", VA = "0x1808041B0")]
protected static void ImplMultiply(ulong[] x, ulong[] y, ulong[] zz)
{
ulong[] array = new ulong[4];
ulong[] array2 = new ulong[4];
SecT193Field.ImplExpand(x, array);
SecT193Field.ImplExpand(y, array2);
ulong num = array2[0];
ulong num2 = array[0];
int num3 = 0;
SecT193Field.ImplMulwAcc(num2, num, zz, num3);
ulong num4 = array2[1];
SecT193Field.ImplMulwAcc(array[1], num4, zz, 1);
ulong num5 = array2[2];
SecT193Field.ImplMulwAcc(array[2], num5, zz, 2);
ulong num6 = array2[3];
SecT193Field.ImplMulwAcc(array[3], num6, zz, 3);
int length = zz.Length;
int length2 = array.Length;
int length3 = array2.Length;
ulong num7 = array[1];
ulong num8 = array2[1];
uint num9;
SecT193Field.ImplMulwAcc(num7, num8, zz, (int)num9);
int length4 = array.Length;
int length5 = array2.Length;
ulong num10 = array[3];
ulong num11 = array2[2];
uint num12;
SecT193Field.ImplMulwAcc(num10, num11, zz, (int)num12);
int length6 = zz.Length;
uint num13;
num13 += (uint)(-2);
int length7 = array.Length;
ulong num14 = array[2];
int length8 = array2.Length;
ulong num15 = array2[2];
ulong num16 = array2[1];
uint num17;
SecT193Field.ImplMulwAcc(num14, num16, zz, (int)num17);
ulong[] array3 = new ulong[3];
int num18 = 0;
SecT193Field.ImplMulwAcc(num14, num15, array3, num18);
num15 = num16;
uint num19;
SecT193Field.ImplMulwAcc(num14, num15, array3, (int)num19);
int length9 = array3.Length;
ulong num20 = zz[3];
zz[3] = num20;
ulong num21 = zz[4];
zz[4] = num21;
SecT193Field.ImplCompactExt(zz);
}
// Token: 0x0600AAE6 RID: 43750 RVA: 0x0024F730 File Offset: 0x0024D930
[Token(Token = "0x600AAE6")]
[Address(RVA = "0x8047B0", Offset = "0x8037B0", VA = "0x1808047B0")]
protected static void ImplMulwAcc(ulong x, ulong y, ulong[] z, int zOff)
{
ulong[] array = new ulong[8];
array[1] = y;
int num = array.Length;
array[2] = (ulong)num;
int length = array.Length;
array[3] = (ulong)num;
num = length;
array[4] = (ulong)num;
int length2 = array.Length;
array[5] = (ulong)num;
num = length2;
array[6] = (ulong)num;
int length3 = array.Length;
array[7] = (ulong)num;
ulong num2 = array[(int)x];
}
// Token: 0x0600AAE7 RID: 43751 RVA: 0x0024F7AC File Offset: 0x0024D9AC
[Token(Token = "0x600AAE7")]
[Address(RVA = "0x804BB0", Offset = "0x803BB0", VA = "0x180804BB0")]
protected static void ImplSquare(ulong[] x, ulong[] zz)
{
ulong num = x[0];
int num2 = 0;
Interleave.Expand64To128(num, zz, num2);
Interleave.Expand64To128(x[1], zz, 2);
Interleave.Expand64To128(x[2], zz, 4);
ulong num3 = x[3];
zz[6] = num3;
}
// Token: 0x0600AAE8 RID: 43752 RVA: 0x0024F800 File Offset: 0x0024DA00
[Token(Token = "0x600AAE8")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecT193Field()
{
}
// Token: 0x04006DCB RID: 28107
[Token(Token = "0x4006DCB")]
private const ulong M01 = 1UL;
// Token: 0x04006DCC RID: 28108
[Token(Token = "0x4006DCC")]
private const ulong M49 = 562949953421311UL;
}
}
@@ -0,0 +1,597 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B69 RID: 7017
[Token(Token = "0x2001B69")]
internal class SecT193FieldElement : AbstractF2mFieldElement
{
// Token: 0x0600AAE9 RID: 43753 RVA: 0x0024F814 File Offset: 0x0024DA14
[Token(Token = "0x600AAE9")]
[Address(RVA = "0x803C10", Offset = "0x802C10", VA = "0x180803C10")]
public SecT193FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AAE9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_38:
stloc:ArgumentException(var_3_47, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecT193FieldElement"), ldstr:string("x")))
}
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: 0x0600AAEA RID: 43754 RVA: 0x0024F868 File Offset: 0x0024DA68
[Token(Token = "0x600AAEA")]
[Address(RVA = "0x7B9E30", Offset = "0x7B8E30", VA = "0x1807B9E30")]
public SecT193FieldElement()
{
ulong[] array = Nat256.Create64();
this.x = array;
}
// Token: 0x0600AAEB RID: 43755 RVA: 0x0024F88C File Offset: 0x0024DA8C
[Token(Token = "0x600AAEB")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecT193FieldElement(ulong[] x)
{
this.x = x;
}
// Token: 0x17001AEA RID: 6890
// (get) Token: 0x0600AAEC RID: 43756 RVA: 0x0024F8A8 File Offset: 0x0024DAA8
[Token(Token = "0x17001AEA")]
public override bool IsOne
{
[Token(Token = "0x600AAEC")]
[Address(RVA = "0x7B9EA0", Offset = "0x7B8EA0", VA = "0x1807B9EA0", Slot = "17")]
get
{
return Nat256.IsOne64(this.x);
}
}
// Token: 0x17001AEB RID: 6891
// (get) Token: 0x0600AAED RID: 43757 RVA: 0x0024F8C0 File Offset: 0x0024DAC0
[Token(Token = "0x17001AEB")]
public override bool IsZero
{
[Token(Token = "0x600AAED")]
[Address(RVA = "0x7B9EB0", Offset = "0x7B8EB0", VA = "0x1807B9EB0", Slot = "18")]
get
{
return Nat256.IsZero64(this.x);
}
}
// Token: 0x0600AAEE RID: 43758 RVA: 0x0024F8D8 File Offset: 0x0024DAD8
[Token(Token = "0x600AAEE")]
[Address(RVA = "0x7B9C40", Offset = "0x7B8C40", VA = "0x1807B9C40", Slot = "24")]
public override bool TestBitZero()
{
ulong[] array = this.x;
throw new NullReferenceException();
}
// Token: 0x0600AAEF RID: 43759 RVA: 0x0024F8F4 File Offset: 0x0024DAF4
[Token(Token = "0x600AAEF")]
[Address(RVA = "0x7B9C80", Offset = "0x7B8C80", VA = "0x1807B9C80", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat256.ToBigInteger64(this.x);
}
// Token: 0x17001AEC RID: 6892
// (get) Token: 0x0600AAF0 RID: 43760 RVA: 0x0024F90C File Offset: 0x0024DB0C
[Token(Token = "0x17001AEC")]
public override string FieldName
{
[Token(Token = "0x600AAF0")]
[Address(RVA = "0x803D40", Offset = "0x802D40", VA = "0x180803D40", Slot = "5")]
get
{
return "SecT193Field";
}
}
// Token: 0x17001AED RID: 6893
// (get) Token: 0x0600AAF1 RID: 43761 RVA: 0x0024F920 File Offset: 0x0024DB20
[Token(Token = "0x17001AED")]
public override int FieldSize
{
[Token(Token = "0x600AAF1")]
[Address(RVA = "0x803D70", Offset = "0x802D70", VA = "0x180803D70", Slot = "6")]
get
{
return 193;
}
}
// Token: 0x0600AAF2 RID: 43762 RVA: 0x0024F934 File Offset: 0x0024DB34
[Token(Token = "0x600AAF2")]
[Address(RVA = "0x803150", Offset = "0x802150", VA = "0x180803150", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
ulong[] array;
do
{
array = Nat256.Create64();
ulong[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecT193FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecT193FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AAF3 RID: 43763 RVA: 0x0024F97C File Offset: 0x0024DB7C
[Token(Token = "0x600AAF3")]
[Address(RVA = "0x802FE0", Offset = "0x801FE0", VA = "0x180802FE0", Slot = "8")]
public override ECFieldElement AddOne()
{
ulong[] array = Nat256.Create64();
ulong[] array2 = this.x;
ulong num = array2[0];
array[0] = num;
ulong num2 = array2[1];
array[1] = num2;
ulong num3 = array2[2];
array[2] = num3;
ulong num4 = array2[3];
array[3] = num4;
new SecT193FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AAF4 RID: 43764 RVA: 0x0024F9F0 File Offset: 0x0024DBF0
[Token(Token = "0x600AAF4")]
[Address(RVA = "0x7B9C20", Offset = "0x7B8C20", VA = "0x1807B9C20", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
/*
An exception occurred when decompiling this method (0600AAF4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193FieldElement::Subtract(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT193FieldElement[exp:ECFieldElement](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: 0x0600AAF5 RID: 43765 RVA: 0x0024FA04 File Offset: 0x0024DC04
[Token(Token = "0x600AAF5")]
[Address(RVA = "0x803720", Offset = "0x802720", VA = "0x180803720", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
ulong[] array;
do
{
array = Nat256.Create64();
ulong[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecT193FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
SecT193Field.Reduce(Nat256.CreateExt64(), array);
new SecT193FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AAF6 RID: 43766 RVA: 0x0024FA58 File Offset: 0x0024DC58
[Token(Token = "0x600AAF6")]
[Address(RVA = "0x7B9440", Offset = "0x7B8440", VA = "0x1807B9440", Slot = "19")]
public override ECFieldElement MultiplyMinusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
{
/*
An exception occurred when decompiling this method (0600AAF6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193FieldElement::MultiplyMinusProduct(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT193FieldElement[exp:ECFieldElement](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: 0x0600AAF7 RID: 43767 RVA: 0x0024FA6C File Offset: 0x0024DC6C
[Token(Token = "0x600AAF7")]
[Address(RVA = "0x803470", Offset = "0x802470", VA = "0x180803470", Slot = "20")]
public override ECFieldElement MultiplyPlusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
{
do
{
ulong[] array = this.x;
}
while (b == 0 || b == 0 || x == 0 || x == 0 || y == 0 || y == 0);
ulong[] array2 = Nat256.CreateExt64();
ulong[] array3 = Nat256.CreateExt64();
SecT193Field.AddExt(array2, array3, array2);
ulong[] array4 = Nat256.CreateExt64();
SecT193Field.AddExt(array2, array4, array2);
ulong[] array5 = Nat256.Create64();
SecT193Field.Reduce(array2, array5);
new SecT193FieldElement().x = array5;
throw new NullReferenceException();
}
// Token: 0x0600AAF8 RID: 43768 RVA: 0x0024FB00 File Offset: 0x0024DD00
[Token(Token = "0x600AAF8")]
[Address(RVA = "0x7B91D0", Offset = "0x7B81D0", VA = "0x1807B91D0", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
ECFieldElement ecfieldElement = b.Square();
BigInteger bigInteger = base.ToBigInteger();
throw new NullReferenceException();
}
// Token: 0x0600AAF9 RID: 43769 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AAF9")]
[Address(RVA = "0x4A65C0", Offset = "0x4A55C0", VA = "0x1804A65C0", Slot = "12")]
public override ECFieldElement Negate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AAFA RID: 43770 RVA: 0x0024FB20 File Offset: 0x0024DD20
[Token(Token = "0x600AAFA")]
[Address(RVA = "0x803B70", Offset = "0x802B70", VA = "0x180803B70", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600AAFA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat256::Create64))
stloc:uint64[](var_2_0E, ldfld:uint64[](SecT193FieldElement::x, ldloc:SecT193FieldElement(this)))
stloc:uint64[](var_4_16, call:uint64[](Nat256::CreateExt64))
call:void(SecT193Field::ImplSquare, ldloc:uint64[](var_2_0E), ldloc:uint64[](var_4_16))
call:void(SecT193Field::Reduce, ldloc:uint64[](var_4_16), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT193FieldElement::x, newobj:SecT193FieldElement(SecT193FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600AAFB RID: 43771 RVA: 0x0024FB60 File Offset: 0x0024DD60
[Token(Token = "0x600AAFB")]
[Address(RVA = "0x7B98C0", Offset = "0x7B88C0", VA = "0x1807B98C0", Slot = "21")]
public override ECFieldElement SquareMinusProduct(ECFieldElement x, ECFieldElement y)
{
/*
An exception occurred when decompiling this method (0600AAFB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193FieldElement::SquareMinusProduct(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT193FieldElement[exp:ECFieldElement](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: 0x0600AAFC RID: 43772 RVA: 0x0024FB74 File Offset: 0x0024DD74
[Token(Token = "0x600AAFC")]
[Address(RVA = "0x8038D0", Offset = "0x8028D0", VA = "0x1808038D0", Slot = "22")]
public override ECFieldElement SquarePlusProduct(ECFieldElement x, ECFieldElement y)
{
ulong[] array;
do
{
array = this.x;
}
while (x == 0 || x == 0 || y == 0 || y == 0);
ulong[] array2 = Nat256.CreateExt64();
ulong[] array3 = Nat256.CreateExt64();
SecT193Field.ImplSquare(array, array3);
SecT193Field.AddExt(array2, array3, array2);
ulong[] array4 = Nat256.CreateExt64();
SecT193Field.AddExt(array2, array4, array2);
ulong[] array5 = Nat256.Create64();
SecT193Field.Reduce(array2, array5);
new SecT193FieldElement().x = array5;
throw new NullReferenceException();
}
// Token: 0x0600AAFD RID: 43773 RVA: 0x0024FC04 File Offset: 0x0024DE04
[Token(Token = "0x600AAFD")]
[Address(RVA = "0x803AF0", Offset = "0x802AF0", VA = "0x180803AF0", Slot = "23")]
public override ECFieldElement SquarePow(int pow)
{
/*
An exception occurred when decompiling this method (0600AAFD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193FieldElement::SquarePow(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat256::Create64))
call:void(SecT193Field::SquareN, ldfld:uint64[](SecT193FieldElement::x, ldloc:SecT193FieldElement(this)), ldloc:int32(pow), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT193FieldElement::x, newobj:SecT193FieldElement(SecT193FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600AAFE RID: 43774 RVA: 0x0024FC30 File Offset: 0x0024DE30
[Token(Token = "0x600AAFE")]
[Address(RVA = "0x7C6140", Offset = "0x7C5140", VA = "0x1807C6140", Slot = "28")]
public override int Trace()
{
ulong num = this.x[0];
throw new NullReferenceException();
}
// Token: 0x0600AAFF RID: 43775 RVA: 0x0024FC50 File Offset: 0x0024DE50
[Token(Token = "0x600AAFF")]
[Address(RVA = "0x803400", Offset = "0x802400", VA = "0x180803400", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600AAFF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat256::Create64))
call:void(SecT193Field::Invert, ldfld:uint64[](SecT193FieldElement::x, ldloc:SecT193FieldElement(this)), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT193FieldElement::x, newobj:SecT193FieldElement(SecT193FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600AB00 RID: 43776 RVA: 0x0024FC7C File Offset: 0x0024DE7C
[Token(Token = "0x600AB00")]
[Address(RVA = "0x803860", Offset = "0x802860", VA = "0x180803860", Slot = "15")]
public override ECFieldElement Sqrt()
{
/*
An exception occurred when decompiling this method (0600AB00)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193FieldElement::Sqrt()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat256::Create64))
call:void(SecT193Field::Sqrt, ldfld:uint64[](SecT193FieldElement::x, ldloc:SecT193FieldElement(this)), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT193FieldElement::x, newobj:SecT193FieldElement(SecT193FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x17001AEE RID: 6894
// (get) Token: 0x0600AB01 RID: 43777 RVA: 0x0024FCA8 File Offset: 0x0024DEA8
[Token(Token = "0x17001AEE")]
public virtual int Representation
{
[Token(Token = "0x600AB01")]
[Address(RVA = "0x4E86A0", Offset = "0x4E76A0", VA = "0x1804E86A0", Slot = "29")]
get
{
return 2;
}
}
// Token: 0x17001AEF RID: 6895
// (get) Token: 0x0600AB02 RID: 43778 RVA: 0x0024FCB8 File Offset: 0x0024DEB8
[Token(Token = "0x17001AEF")]
public virtual int M
{
[Token(Token = "0x600AB02")]
[Address(RVA = "0x803D70", Offset = "0x802D70", VA = "0x180803D70", Slot = "30")]
get
{
return 193;
}
}
// Token: 0x17001AF0 RID: 6896
// (get) Token: 0x0600AB03 RID: 43779 RVA: 0x0024FCCC File Offset: 0x0024DECC
[Token(Token = "0x17001AF0")]
public virtual int K1
{
[Token(Token = "0x600AB03")]
[Address(RVA = "0x72B370", Offset = "0x72A370", VA = "0x18072B370", Slot = "31")]
get
{
return 15;
}
}
// Token: 0x17001AF1 RID: 6897
// (get) Token: 0x0600AB04 RID: 43780 RVA: 0x0024FCDC File Offset: 0x0024DEDC
[Token(Token = "0x17001AF1")]
public virtual int K2
{
[Token(Token = "0x600AB04")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "32")]
get
{
return 0;
}
}
// Token: 0x17001AF2 RID: 6898
// (get) Token: 0x0600AB05 RID: 43781 RVA: 0x0024FCEC File Offset: 0x0024DEEC
[Token(Token = "0x17001AF2")]
public virtual int K3
{
[Token(Token = "0x600AB05")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "33")]
get
{
return 0;
}
}
// Token: 0x0600AB06 RID: 43782 RVA: 0x0024FCFC File Offset: 0x0024DEFC
[Token(Token = "0x600AB06")]
[Address(RVA = "0x803300", Offset = "0x802300", VA = "0x180803300", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600AB06)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT193FieldElement[exp:ECFieldElement](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: 0x0600AB07 RID: 43783 RVA: 0x0024FD18 File Offset: 0x0024DF18
[Token(Token = "0x600AB07")]
[Address(RVA = "0x803270", Offset = "0x802270", VA = "0x180803270", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600AB07)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT193FieldElement[exp:ECFieldElement](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: 0x0600AB08 RID: 43784 RVA: 0x0024FD34 File Offset: 0x0024DF34
[Token(Token = "0x600AB08")]
[Address(RVA = "0x7B9220", Offset = "0x7B8220", VA = "0x1807B9220", Slot = "34")]
public virtual bool Equals(SecT193FieldElement other)
{
if (this != other)
{
if (other != 0)
{
ulong[] array = other.x;
return Nat256.Eq64(this.x, array);
}
}
return true;
}
// Token: 0x0600AB09 RID: 43785 RVA: 0x0024FD60 File Offset: 0x0024DF60
[Token(Token = "0x600AB09")]
[Address(RVA = "0x803390", Offset = "0x802390", VA = "0x180803390", Slot = "2")]
public override int GetHashCode()
{
ulong[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 4);
}
// Token: 0x04006DCD RID: 28109
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DCD")]
protected internal readonly ulong[] x;
}
}
@@ -0,0 +1,391 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B6A RID: 7018
[Token(Token = "0x2001B6A")]
internal class SecT193R1Curve : AbstractF2mCurve
{
// Token: 0x0600AB0A RID: 43786 RVA: 0x0024FD80 File Offset: 0x0024DF80
[Token(Token = "0x600AB0A")]
[Address(RVA = "0x805B90", Offset = "0x804B90", VA = "0x180805B90")]
public SecT193R1Curve()
{
int num = 0;
int num2 = 0;
base..ctor(193, 15, num2, num);
int num3;
int num4;
SecT193R1Point secT193R1Point = new SecT193R1Point(this, num3, num4, num != 0);
num4 = 0;
num3 = 0;
this.m_infinity = secT193R1Point;
byte[] array = Hex.Decode("0017858FEB7A98975169E171F77B4087DE098AC8A911DF7B01");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("00FDFB49BFE6C3A89FACADAA7A1E5BBC7CC1C2E5D831478814");
BigInteger bigInteger2 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("01000000000000000000000000C7F34A778F443ACC920EBA49");
BigInteger bigInteger3 = new BigInteger(1, array3);
this.m_order = bigInteger3;
BigInteger two = BigInteger.Two;
this.m_cofactor = two;
this.m_coord = (int)((ulong)6L);
}
// Token: 0x0600AB0B RID: 43787 RVA: 0x0024FE3C File Offset: 0x0024E03C
[Token(Token = "0x600AB0B")]
[Address(RVA = "0x8055C0", Offset = "0x8045C0", VA = "0x1808055C0", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600AB0B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193R1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_1_01, ldc.i4:int32(0))
stloc:SecT193R1Point(var_3_0F, newobj:SecT193R1Point(SecT193R1Point::.ctor, ldloc:SecT193R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_4), ldloc:int32[exp:bool](var_1_01)))
stloc:int32(var_4, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecT193R1Point(SecT193R1Curve::m_infinity, ldloc:SecT193R1Curve(var_0), ldloc:SecT193R1Point(var_3_0F))
stloc:uint8[](var_6_27, call:uint8[](Hex::Decode, ldstr:string("0017858FEB7A98975169E171F77B4087DE098AC8A911DF7B01")))
stloc:BigInteger(var_7_31, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_6_27)))
stloc:int32(var_8_39, callvirtgetter:int32(SecT193R1Curve::get_FieldSize, ldloc:SecT193R1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecT193R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_8_39))
stloc:uint8[](var_9_4D, call:uint8[](Hex::Decode, ldstr:string("00FDFB49BFE6C3A89FACADAA7A1E5BBC7CC1C2E5D831478814")))
stloc:BigInteger(var_10_57, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_9_4D)))
stloc:int32(var_11_5F, callvirtgetter:int32(SecT193R1Curve::get_FieldSize, ldloc:SecT193R1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecT193R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_11_5F))
stloc:uint8[](var_12_73, call:uint8[](Hex::Decode, ldstr:string("01000000000000000000000000C7F34A778F443ACC920EBA49")))
stloc:BigInteger(var_13_7D, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_12_73)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecT193R1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_13_7D))
stloc:BigInteger(var_14_8C, ldsfld:BigInteger(BigInteger::Two))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecT193R1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_14_8C))
stfld:int32(ECCurve::m_coord, ldloc:SecT193R1Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](6)))
}
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: 0x0600AB0C RID: 43788 RVA: 0x0024FEE8 File Offset: 0x0024E0E8
[Token(Token = "0x600AB0C")]
[Address(RVA = "0x7BC700", Offset = "0x7BB700", VA = "0x1807BC700", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 6;
}
// Token: 0x17001AF3 RID: 6899
// (get) Token: 0x0600AB0D RID: 43789 RVA: 0x0024FEFC File Offset: 0x0024E0FC
[Token(Token = "0x17001AF3")]
public override ECPoint Infinity
{
[Token(Token = "0x600AB0D")]
[Address(RVA = "0x417710", Offset = "0x416710", VA = "0x180417710", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600AB0D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193R1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT193R1Point(var_0_06, ldfld:SecT193R1Point(SecT193R1Curve::m_infinity, ldloc:SecT193R1Curve(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: 0x17001AF4 RID: 6900
// (get) Token: 0x0600AB0E RID: 43790 RVA: 0x0024FF10 File Offset: 0x0024E110
[Token(Token = "0x17001AF4")]
public override int FieldSize
{
[Token(Token = "0x600AB0E")]
[Address(RVA = "0x803D70", Offset = "0x802D70", VA = "0x180803D70", Slot = "4")]
get
{
return 193;
}
}
// Token: 0x0600AB0F RID: 43791 RVA: 0x0024FF24 File Offset: 0x0024E124
[Token(Token = "0x600AB0F")]
[Address(RVA = "0x805B30", Offset = "0x804B30", VA = "0x180805B30", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AB0F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193R1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT193FieldElement(var_0_06, newobj:SecT193FieldElement(SecT193FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600AB10 RID: 43792 RVA: 0x0024FF38 File Offset: 0x0024E138
[Token(Token = "0x600AB10")]
[Address(RVA = "0x805A00", Offset = "0x804A00", VA = "0x180805A00", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AB10)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193R1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT193R1Point(var_0_09, newobj:SecT193R1Point(SecT193R1Point::.ctor, ldloc:SecT193R1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600AB11 RID: 43793 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AB11")]
[Address(RVA = "0x805A90", Offset = "0x804A90", VA = "0x180805A90", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001AF5 RID: 6901
// (get) Token: 0x0600AB12 RID: 43794 RVA: 0x0024FF50 File Offset: 0x0024E150
[Token(Token = "0x17001AF5")]
public override bool IsKoblitz
{
[Token(Token = "0x600AB12")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "39")]
get
{
}
}
// Token: 0x17001AF6 RID: 6902
// (get) Token: 0x0600AB13 RID: 43795 RVA: 0x0024FF60 File Offset: 0x0024E160
[Token(Token = "0x17001AF6")]
public virtual int M
{
[Token(Token = "0x600AB13")]
[Address(RVA = "0x803D70", Offset = "0x802D70", VA = "0x180803D70", Slot = "40")]
get
{
return 193;
}
}
// Token: 0x17001AF7 RID: 6903
// (get) Token: 0x0600AB14 RID: 43796 RVA: 0x0024FF74 File Offset: 0x0024E174
[Token(Token = "0x17001AF7")]
public virtual bool IsTrinomial
{
[Token(Token = "0x600AB14")]
[Address(RVA = "0x4246A0", Offset = "0x4236A0", VA = "0x1804246A0", Slot = "41")]
get
{
return true;
}
}
// Token: 0x17001AF8 RID: 6904
// (get) Token: 0x0600AB15 RID: 43797 RVA: 0x0024FF84 File Offset: 0x0024E184
[Token(Token = "0x17001AF8")]
public virtual int K1
{
[Token(Token = "0x600AB15")]
[Address(RVA = "0x72B370", Offset = "0x72A370", VA = "0x18072B370", Slot = "42")]
get
{
return 15;
}
}
// Token: 0x17001AF9 RID: 6905
// (get) Token: 0x0600AB16 RID: 43798 RVA: 0x0024FF94 File Offset: 0x0024E194
[Token(Token = "0x17001AF9")]
public virtual int K2
{
[Token(Token = "0x600AB16")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "43")]
get
{
return 0;
}
}
// Token: 0x17001AFA RID: 6906
// (get) Token: 0x0600AB17 RID: 43799 RVA: 0x0024FFA4 File Offset: 0x0024E1A4
[Token(Token = "0x17001AFA")]
public virtual int K3
{
[Token(Token = "0x600AB17")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "44")]
get
{
return 0;
}
}
// Token: 0x0600AB18 RID: 43800 RVA: 0x0024FFB4 File Offset: 0x0024E1B4
[Token(Token = "0x600AB18")]
[Address(RVA = "0x8057A0", Offset = "0x8047A0", VA = "0x1808057A0", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
ulong[] array;
int num;
for (;;)
{
array = new ulong[points];
num = 0;
if (len <= 0)
{
goto IL_49;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 8;
IL_49:
SecT193R1Curve.SecT193R1LookupTable secT193R1LookupTable;
secT193R1LookupTable.m_outer = 0;
secT193R1LookupTable.m_table = array;
secT193R1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006DCE RID: 28110
[Token(Token = "0x4006DCE")]
private const int SECT193R1_DEFAULT_COORDS = 6;
// Token: 0x04006DCF RID: 28111
[Token(Token = "0x4006DCF")]
private const int SECT193R1_FE_LONGS = 4;
// Token: 0x04006DD0 RID: 28112
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006DD0")]
protected readonly SecT193R1Point m_infinity;
// Token: 0x02001B6B RID: 7019
[Token(Token = "0x2001B6B")]
private class SecT193R1LookupTable : ECLookupTable
{
// Token: 0x0600AB19 RID: 43801 RVA: 0x00250028 File Offset: 0x0024E228
[Token(Token = "0x600AB19")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecT193R1LookupTable(SecT193R1Curve outer, ulong[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001AFB RID: 6907
// (get) Token: 0x0600AB1A RID: 43802 RVA: 0x00250050 File Offset: 0x0024E250
[Token(Token = "0x17001AFB")]
public virtual int Size
{
[Token(Token = "0x600AB1A")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600AB1B RID: 43803 RVA: 0x00250064 File Offset: 0x0024E264
[Token(Token = "0x600AB1B")]
[Address(RVA = "0x805D50", Offset = "0x804D50", VA = "0x180805D50", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
ulong[] array = Nat256.Create64();
ulong[] array2 = Nat256.Create64();
int num = 0;
int num2 = 0;
if (this.m_size > num2)
{
int num3 = 0;
ulong[] table = this.m_table;
ulong[] table2 = this.m_table;
num3++;
num += 8;
num2++;
}
SecT193R1Curve outer = this.m_outer;
new SecT193FieldElement().x = array;
new SecT193FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006DD1 RID: 28113
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DD1")]
private readonly SecT193R1Curve m_outer;
// Token: 0x04006DD2 RID: 28114
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006DD2")]
private readonly ulong[] m_table;
// Token: 0x04006DD3 RID: 28115
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006DD3")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,256 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B6C RID: 7020
[Token(Token = "0x2001B6C")]
internal class SecT193R1Point : AbstractF2mPoint
{
// Token: 0x0600AB1C RID: 43804 RVA: 0x002500E4 File Offset: 0x0024E2E4
[Token(Token = "0x600AB1C")]
[Address(RVA = "0x807520", Offset = "0x806520", VA = "0x180807520")]
public SecT193R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600AB1D RID: 43805 RVA: 0x002500F4 File Offset: 0x0024E2F4
[Token(Token = "0x600AB1D")]
[Address(RVA = "0x807460", Offset = "0x806460", VA = "0x180807460")]
public SecT193R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AB1D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193R1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600AB1E RID: 43806 RVA: 0x0025011C File Offset: 0x0024E31C
[Token(Token = "0x600AB1E")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecT193R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600AB1F RID: 43807 RVA: 0x0025012C File Offset: 0x0024E32C
[Token(Token = "0x600AB1F")]
[Address(RVA = "0x806760", Offset = "0x805760", VA = "0x180806760", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600AB1F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193R1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecT193R1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecT193R1Point[exp: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: 0x17001AFC RID: 6908
// (get) Token: 0x0600AB20 RID: 43808 RVA: 0x00250148 File Offset: 0x0024E348
[Token(Token = "0x17001AFC")]
public override ECFieldElement YCoord
{
[Token(Token = "0x600AB20")]
[Address(RVA = "0x7BE020", Offset = "0x7BD020", VA = "0x1807BE020", Slot = "12")]
get
{
ECFieldElement x = this.m_x;
ECFieldElement y = this.m_y;
if (!base.IsInfinity && !x.IsOne)
{
int fieldSize = y.FieldSize;
if (this.m_zs[0].BitLength == 0)
{
}
}
return y;
}
}
// Token: 0x17001AFD RID: 6909
// (get) Token: 0x0600AB21 RID: 43809 RVA: 0x00250198 File Offset: 0x0024E398
[Token(Token = "0x17001AFD")]
protected internal override bool CompressionYTilde
{
[Token(Token = "0x600AB21")]
[Address(RVA = "0x7BDFA0", Offset = "0x7BCFA0", VA = "0x1807BDFA0", Slot = "25")]
get
{
if (!this.m_x.IsOne)
{
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement;
ECFieldElement ecfieldElement2;
return ecfieldElement != ecfieldElement2;
}
throw new NullReferenceException();
}
}
// Token: 0x0600AB22 RID: 43810 RVA: 0x002501CC File Offset: 0x0024E3CC
[Token(Token = "0x600AB22")]
[Address(RVA = "0x805F20", Offset = "0x804F20", VA = "0x180805F20", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
while (!base.IsInfinity && !b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
ECFieldElement x2 = b.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
ECFieldElement[] zs2 = b.m_zs;
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
if (ecfieldElement.BitLength == 0)
{
ECFieldElement ecfieldElement3 = x2.Subtract(ecfieldElement);
ECFieldElement ecfieldElement4 = y2.Subtract(ecfieldElement);
}
if (ecfieldElement2.BitLength != 0)
{
continue;
}
ECFieldElement ecfieldElement5 = x.Subtract(ecfieldElement2);
int fieldSize = y.Subtract(ecfieldElement2).FieldSize;
int fieldSize2 = ecfieldElement5.FieldSize;
if (fieldSize2 == 0)
{
if (!x2.IsOne)
{
sbyte b3;
sbyte b2 = b3;
TypeCode typeCode = b2.GetTypeCode();
int fieldSize3 = y.FieldSize;
bool withCompression = this.m_withCompression;
}
short num;
TypeCode typeCode2 = num.GetTypeCode();
BigInteger one = BigInteger.One;
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
ECPoint ecpoint;
if (ecpoint == 0)
{
break;
}
}
if (!x2.IsOne)
{
bool compressionYTilde = b.CompressionYTilde;
break;
}
break;
}
return b;
}
// Token: 0x0600AB23 RID: 43811 RVA: 0x00250320 File Offset: 0x0024E520
[Token(Token = "0x600AB23")]
[Address(RVA = "0x807010", Offset = "0x806010", VA = "0x180807010", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
int bitLength = ecfieldElement.BitLength;
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement2 = y.Subtract(ecfieldElement);
ECFieldElement ecfieldElement3 = ecfieldElement.Negate();
if (bitLength == 0)
{
}
if (y.Negate().FieldSize.GetTypeCode() == TypeCode.Empty)
{
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement4 = x.Subtract(ecfieldElement);
ECFieldElement ecfieldElement5;
TypeCode typeCode = ecfieldElement5.FieldSize.GetTypeCode();
sbyte b;
(new ECFieldElement[1])[0] = b;
bool withCompression = this.m_withCompression;
}
SecT193R1Point secT193R1Point;
ECFieldElement[] zcoords = secT193R1Point.GetZCoords();
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600AB24 RID: 43812 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AB24")]
[Address(RVA = "0x8069B0", Offset = "0x8059B0", VA = "0x1808069B0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AB25 RID: 43813 RVA: 0x002503E8 File Offset: 0x0024E5E8
[Token(Token = "0x600AB25")]
[Address(RVA = "0x806800", Offset = "0x805800", VA = "0x180806800", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity && !this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
bool flag = this.SatisfiesOrder();
int fieldSize = y.FieldSize;
ECFieldElement[] array = new ECFieldElement[1];
if (ecfieldElement != 0)
{
}
array[0] = ecfieldElement;
bool withCompression = this.m_withCompression;
}
throw new IndexOutOfRangeException();
}
}
}
@@ -0,0 +1,391 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B6D RID: 7021
[Token(Token = "0x2001B6D")]
internal class SecT193R2Curve : AbstractF2mCurve
{
// Token: 0x0600AB26 RID: 43814 RVA: 0x00250454 File Offset: 0x0024E654
[Token(Token = "0x600AB26")]
[Address(RVA = "0x807B10", Offset = "0x806B10", VA = "0x180807B10")]
public SecT193R2Curve()
{
int num = 0;
int num2 = 0;
base..ctor(193, 15, num2, num);
int num3;
int num4;
SecT193R2Point secT193R2Point = new SecT193R2Point(this, num3, num4, num != 0);
num4 = 0;
num3 = 0;
this.m_infinity = secT193R2Point;
byte[] array = Hex.Decode("0163F35A5137C2CE3EA6ED8667190B0BC43ECD69977702709B");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array2 = Hex.Decode("00C9BB9E8927D4D64C377E2AB2856A5B16E3EFB7F61D4316AE");
BigInteger bigInteger2 = new BigInteger(1, array2);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array3 = Hex.Decode("010000000000000000000000015AAB561B005413CCD4EE99D5");
BigInteger bigInteger3 = new BigInteger(1, array3);
this.m_order = bigInteger3;
BigInteger two = BigInteger.Two;
this.m_cofactor = two;
this.m_coord = (int)((ulong)6L);
}
// Token: 0x0600AB27 RID: 43815 RVA: 0x00250510 File Offset: 0x0024E710
[Token(Token = "0x600AB27")]
[Address(RVA = "0x807540", Offset = "0x806540", VA = "0x180807540", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600AB27)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193R2Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_1_01, ldc.i4:int32(0))
stloc:SecT193R2Point(var_3_0F, newobj:SecT193R2Point(SecT193R2Point::.ctor, ldloc:SecT193R2Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_4), ldloc:int32[exp:bool](var_1_01)))
stloc:int32(var_4, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecT193R2Point(SecT193R2Curve::m_infinity, ldloc:SecT193R2Curve(var_0), ldloc:SecT193R2Point(var_3_0F))
stloc:uint8[](var_6_27, call:uint8[](Hex::Decode, ldstr:string("0163F35A5137C2CE3EA6ED8667190B0BC43ECD69977702709B")))
stloc:BigInteger(var_7_31, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_6_27)))
stloc:int32(var_8_39, callvirtgetter:int32(SecT193R2Curve::get_FieldSize, ldloc:SecT193R2Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecT193R2Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_8_39))
stloc:uint8[](var_9_4D, call:uint8[](Hex::Decode, ldstr:string("00C9BB9E8927D4D64C377E2AB2856A5B16E3EFB7F61D4316AE")))
stloc:BigInteger(var_10_57, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_9_4D)))
stloc:int32(var_11_5F, callvirtgetter:int32(SecT193R2Curve::get_FieldSize, ldloc:SecT193R2Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecT193R2Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_11_5F))
stloc:uint8[](var_12_73, call:uint8[](Hex::Decode, ldstr:string("010000000000000000000000015AAB561B005413CCD4EE99D5")))
stloc:BigInteger(var_13_7D, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_12_73)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecT193R2Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_13_7D))
stloc:BigInteger(var_14_8C, ldsfld:BigInteger(BigInteger::Two))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecT193R2Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_14_8C))
stfld:int32(ECCurve::m_coord, ldloc:SecT193R2Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](6)))
}
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: 0x0600AB28 RID: 43816 RVA: 0x002505BC File Offset: 0x0024E7BC
[Token(Token = "0x600AB28")]
[Address(RVA = "0x7BC700", Offset = "0x7BB700", VA = "0x1807BC700", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 6;
}
// Token: 0x17001AFE RID: 6910
// (get) Token: 0x0600AB29 RID: 43817 RVA: 0x002505D0 File Offset: 0x0024E7D0
[Token(Token = "0x17001AFE")]
public override ECPoint Infinity
{
[Token(Token = "0x600AB29")]
[Address(RVA = "0x417710", Offset = "0x416710", VA = "0x180417710", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600AB29)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193R2Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT193R2Point(var_0_06, ldfld:SecT193R2Point(SecT193R2Curve::m_infinity, ldloc:SecT193R2Curve(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: 0x17001AFF RID: 6911
// (get) Token: 0x0600AB2A RID: 43818 RVA: 0x002505E4 File Offset: 0x0024E7E4
[Token(Token = "0x17001AFF")]
public override int FieldSize
{
[Token(Token = "0x600AB2A")]
[Address(RVA = "0x803D70", Offset = "0x802D70", VA = "0x180803D70", Slot = "4")]
get
{
return 193;
}
}
// Token: 0x0600AB2B RID: 43819 RVA: 0x002505F8 File Offset: 0x0024E7F8
[Token(Token = "0x600AB2B")]
[Address(RVA = "0x807AB0", Offset = "0x806AB0", VA = "0x180807AB0", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AB2B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193R2Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT193FieldElement(var_0_06, newobj:SecT193FieldElement(SecT193FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600AB2C RID: 43820 RVA: 0x0025060C File Offset: 0x0024E80C
[Token(Token = "0x600AB2C")]
[Address(RVA = "0x807A20", Offset = "0x806A20", VA = "0x180807A20", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AB2C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193R2Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT193R2Point(var_0_09, newobj:SecT193R2Point(SecT193R2Point::.ctor, ldloc:SecT193R2Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600AB2D RID: 43821 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AB2D")]
[Address(RVA = "0x807980", Offset = "0x806980", VA = "0x180807980", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001B00 RID: 6912
// (get) Token: 0x0600AB2E RID: 43822 RVA: 0x00250624 File Offset: 0x0024E824
[Token(Token = "0x17001B00")]
public override bool IsKoblitz
{
[Token(Token = "0x600AB2E")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "39")]
get
{
}
}
// Token: 0x17001B01 RID: 6913
// (get) Token: 0x0600AB2F RID: 43823 RVA: 0x00250634 File Offset: 0x0024E834
[Token(Token = "0x17001B01")]
public virtual int M
{
[Token(Token = "0x600AB2F")]
[Address(RVA = "0x803D70", Offset = "0x802D70", VA = "0x180803D70", Slot = "40")]
get
{
return 193;
}
}
// Token: 0x17001B02 RID: 6914
// (get) Token: 0x0600AB30 RID: 43824 RVA: 0x00250648 File Offset: 0x0024E848
[Token(Token = "0x17001B02")]
public virtual bool IsTrinomial
{
[Token(Token = "0x600AB30")]
[Address(RVA = "0x4246A0", Offset = "0x4236A0", VA = "0x1804246A0", Slot = "41")]
get
{
return true;
}
}
// Token: 0x17001B03 RID: 6915
// (get) Token: 0x0600AB31 RID: 43825 RVA: 0x00250658 File Offset: 0x0024E858
[Token(Token = "0x17001B03")]
public virtual int K1
{
[Token(Token = "0x600AB31")]
[Address(RVA = "0x72B370", Offset = "0x72A370", VA = "0x18072B370", Slot = "42")]
get
{
return 15;
}
}
// Token: 0x17001B04 RID: 6916
// (get) Token: 0x0600AB32 RID: 43826 RVA: 0x00250668 File Offset: 0x0024E868
[Token(Token = "0x17001B04")]
public virtual int K2
{
[Token(Token = "0x600AB32")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "43")]
get
{
return 0;
}
}
// Token: 0x17001B05 RID: 6917
// (get) Token: 0x0600AB33 RID: 43827 RVA: 0x00250678 File Offset: 0x0024E878
[Token(Token = "0x17001B05")]
public virtual int K3
{
[Token(Token = "0x600AB33")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "44")]
get
{
return 0;
}
}
// Token: 0x0600AB34 RID: 43828 RVA: 0x00250688 File Offset: 0x0024E888
[Token(Token = "0x600AB34")]
[Address(RVA = "0x807720", Offset = "0x806720", VA = "0x180807720", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
ulong[] array;
int num;
for (;;)
{
array = new ulong[points];
num = 0;
if (len <= 0)
{
goto IL_49;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 8;
IL_49:
SecT193R2Curve.SecT193R2LookupTable secT193R2LookupTable;
secT193R2LookupTable.m_outer = 0;
secT193R2LookupTable.m_table = array;
secT193R2LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006DD4 RID: 28116
[Token(Token = "0x4006DD4")]
private const int SECT193R2_DEFAULT_COORDS = 6;
// Token: 0x04006DD5 RID: 28117
[Token(Token = "0x4006DD5")]
private const int SECT193R2_FE_LONGS = 4;
// Token: 0x04006DD6 RID: 28118
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006DD6")]
protected readonly SecT193R2Point m_infinity;
// Token: 0x02001B6E RID: 7022
[Token(Token = "0x2001B6E")]
private class SecT193R2LookupTable : ECLookupTable
{
// Token: 0x0600AB35 RID: 43829 RVA: 0x002506FC File Offset: 0x0024E8FC
[Token(Token = "0x600AB35")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecT193R2LookupTable(SecT193R2Curve outer, ulong[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001B06 RID: 6918
// (get) Token: 0x0600AB36 RID: 43830 RVA: 0x00250724 File Offset: 0x0024E924
[Token(Token = "0x17001B06")]
public virtual int Size
{
[Token(Token = "0x600AB36")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600AB37 RID: 43831 RVA: 0x00250738 File Offset: 0x0024E938
[Token(Token = "0x600AB37")]
[Address(RVA = "0x807CD0", Offset = "0x806CD0", VA = "0x180807CD0", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
ulong[] array = Nat256.Create64();
ulong[] array2 = Nat256.Create64();
int num = 0;
int num2 = 0;
if (this.m_size > num2)
{
int num3 = 0;
ulong[] table = this.m_table;
ulong[] table2 = this.m_table;
num3++;
num += 8;
num2++;
}
SecT193R2Curve outer = this.m_outer;
new SecT193FieldElement().x = array;
new SecT193FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006DD7 RID: 28119
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DD7")]
private readonly SecT193R2Curve m_outer;
// Token: 0x04006DD8 RID: 28120
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006DD8")]
private readonly ulong[] m_table;
// Token: 0x04006DD9 RID: 28121
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006DD9")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,256 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B6F RID: 7023
[Token(Token = "0x2001B6F")]
internal class SecT193R2Point : AbstractF2mPoint
{
// Token: 0x0600AB38 RID: 43832 RVA: 0x002507B8 File Offset: 0x0024E9B8
[Token(Token = "0x600AB38")]
[Address(RVA = "0x8093E0", Offset = "0x8083E0", VA = "0x1808093E0")]
public SecT193R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600AB39 RID: 43833 RVA: 0x002507C8 File Offset: 0x0024E9C8
[Token(Token = "0x600AB39")]
[Address(RVA = "0x809400", Offset = "0x808400", VA = "0x180809400")]
public SecT193R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AB39)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193R2Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600AB3A RID: 43834 RVA: 0x002507F0 File Offset: 0x0024E9F0
[Token(Token = "0x600AB3A")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecT193R2Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600AB3B RID: 43835 RVA: 0x00250800 File Offset: 0x0024EA00
[Token(Token = "0x600AB3B")]
[Address(RVA = "0x8086E0", Offset = "0x8076E0", VA = "0x1808086E0", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600AB3B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT193R2Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecT193R2Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecT193R2Point[exp: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: 0x17001B07 RID: 6919
// (get) Token: 0x0600AB3C RID: 43836 RVA: 0x0025081C File Offset: 0x0024EA1C
[Token(Token = "0x17001B07")]
public override ECFieldElement YCoord
{
[Token(Token = "0x600AB3C")]
[Address(RVA = "0x7BE020", Offset = "0x7BD020", VA = "0x1807BE020", Slot = "12")]
get
{
ECFieldElement x = this.m_x;
ECFieldElement y = this.m_y;
if (!base.IsInfinity && !x.IsOne)
{
int fieldSize = y.FieldSize;
if (this.m_zs[0].BitLength == 0)
{
}
}
return y;
}
}
// Token: 0x17001B08 RID: 6920
// (get) Token: 0x0600AB3D RID: 43837 RVA: 0x0025086C File Offset: 0x0024EA6C
[Token(Token = "0x17001B08")]
protected internal override bool CompressionYTilde
{
[Token(Token = "0x600AB3D")]
[Address(RVA = "0x7BDFA0", Offset = "0x7BCFA0", VA = "0x1807BDFA0", Slot = "25")]
get
{
if (!this.m_x.IsOne)
{
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement;
ECFieldElement ecfieldElement2;
return ecfieldElement != ecfieldElement2;
}
throw new NullReferenceException();
}
}
// Token: 0x0600AB3E RID: 43838 RVA: 0x002508A0 File Offset: 0x0024EAA0
[Token(Token = "0x600AB3E")]
[Address(RVA = "0x807EA0", Offset = "0x806EA0", VA = "0x180807EA0", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
while (!base.IsInfinity && !b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
ECFieldElement x2 = b.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
ECFieldElement[] zs2 = b.m_zs;
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
if (ecfieldElement.BitLength == 0)
{
ECFieldElement ecfieldElement3 = x2.Subtract(ecfieldElement);
ECFieldElement ecfieldElement4 = y2.Subtract(ecfieldElement);
}
if (ecfieldElement2.BitLength != 0)
{
continue;
}
ECFieldElement ecfieldElement5 = x.Subtract(ecfieldElement2);
int fieldSize = y.Subtract(ecfieldElement2).FieldSize;
int fieldSize2 = ecfieldElement5.FieldSize;
if (fieldSize2 == 0)
{
if (!x2.IsOne)
{
sbyte b3;
sbyte b2 = b3;
TypeCode typeCode = b2.GetTypeCode();
int fieldSize3 = y.FieldSize;
bool withCompression = this.m_withCompression;
}
short num;
TypeCode typeCode2 = num.GetTypeCode();
BigInteger one = BigInteger.One;
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
ECPoint ecpoint;
if (ecpoint == 0)
{
break;
}
}
if (!x2.IsOne)
{
bool compressionYTilde = b.CompressionYTilde;
break;
}
break;
}
return b;
}
// Token: 0x0600AB3F RID: 43839 RVA: 0x002509F4 File Offset: 0x0024EBF4
[Token(Token = "0x600AB3F")]
[Address(RVA = "0x808F90", Offset = "0x807F90", VA = "0x180808F90", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
int bitLength = ecfieldElement.BitLength;
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement2 = y.Subtract(ecfieldElement);
ECFieldElement ecfieldElement3 = ecfieldElement.Negate();
if (bitLength == 0)
{
}
if (y.Negate().FieldSize.GetTypeCode() == TypeCode.Empty)
{
if (bitLength != 0)
{
}
ECFieldElement ecfieldElement4 = x.Subtract(ecfieldElement);
ECFieldElement ecfieldElement5;
TypeCode typeCode = ecfieldElement5.FieldSize.GetTypeCode();
sbyte b;
(new ECFieldElement[1])[0] = b;
bool withCompression = this.m_withCompression;
}
SecT193R2Point secT193R2Point;
ECFieldElement[] zcoords = secT193R2Point.GetZCoords();
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600AB40 RID: 43840 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AB40")]
[Address(RVA = "0x808930", Offset = "0x807930", VA = "0x180808930", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AB41 RID: 43841 RVA: 0x00250ABC File Offset: 0x0024ECBC
[Token(Token = "0x600AB41")]
[Address(RVA = "0x808780", Offset = "0x807780", VA = "0x180808780", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity && !this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
bool flag = this.SatisfiesOrder();
int fieldSize = y.FieldSize;
ECFieldElement[] array = new ECFieldElement[1];
if (ecfieldElement != 0)
{
}
array[0] = ecfieldElement;
bool withCompression = this.m_withCompression;
}
throw new IndexOutOfRangeException();
}
}
}
@@ -0,0 +1,368 @@
using System;
using System.Runtime.CompilerServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B70 RID: 7024
[Token(Token = "0x2001B70")]
internal class SecT233Field
{
// Token: 0x0600AB42 RID: 43842 RVA: 0x00250B28 File Offset: 0x0024ED28
[Token(Token = "0x600AB42")]
[Address(RVA = "0x7BA2D0", Offset = "0x7B92D0", VA = "0x1807BA2D0")]
public static void Add(ulong[] x, ulong[] y, ulong[] z)
{
ulong num = y[0];
z[0] = num;
ulong num2 = y[1];
z[1] = num2;
ulong num3 = y[2];
z[2] = num3;
ulong num4 = y[3];
z[3] = num4;
}
// Token: 0x0600AB43 RID: 43843 RVA: 0x00250B7C File Offset: 0x0024ED7C
[Token(Token = "0x600AB43")]
[Address(RVA = "0x7B9ED0", Offset = "0x7B8ED0", VA = "0x1807B9ED0")]
public static void AddExt(ulong[] xx, ulong[] yy, ulong[] zz)
{
ulong num = yy[0];
zz[0] = num;
ulong num2 = yy[1];
zz[1] = num2;
ulong num3 = yy[2];
zz[2] = num3;
ulong num4 = yy[3];
zz[3] = num4;
ulong num5 = yy[4];
zz[4] = num5;
ulong num6 = yy[5];
zz[5] = num6;
ulong num7 = yy[6];
zz[6] = num7;
ulong num8 = yy[7];
zz[7] = num8;
}
// Token: 0x0600AB44 RID: 43844 RVA: 0x00250C18 File Offset: 0x0024EE18
[Token(Token = "0x600AB44")]
[Address(RVA = "0x7BA1E0", Offset = "0x7B91E0", VA = "0x1807BA1E0")]
public static void AddOne(ulong[] x, ulong[] z)
{
ulong num = x[0];
z[0] = num;
ulong num2 = x[1];
z[1] = num2;
ulong num3 = x[2];
z[2] = num3;
ulong num4 = x[3];
z[3] = num4;
}
// Token: 0x0600AB45 RID: 43845 RVA: 0x00250C6C File Offset: 0x0024EE6C
[Token(Token = "0x600AB45")]
[Address(RVA = "0x80A2C0", Offset = "0x8092C0", VA = "0x18080A2C0")]
public static ulong[] FromBigInteger(BigInteger x)
{
ulong[] array = Nat256.FromBigInteger64(x);
ulong num = array[3];
array[3] = num;
return array;
}
// Token: 0x0600AB46 RID: 43846 RVA: 0x00250C98 File Offset: 0x0024EE98
[Token(Token = "0x600AB46")]
[Address(RVA = "0x80B040", Offset = "0x80A040", VA = "0x18080B040")]
public static void Invert(ulong[] x, ulong[] z)
{
/*
An exception occurred when decompiling this method (0600AB46)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233Field::Invert(System.UInt64[],System.UInt64[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_1E1:
stloc:InvalidOperationException(var_34_1E6, newobj:InvalidOperationException(InvalidOperationException::.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: 0x0600AB47 RID: 43847 RVA: 0x00250E8C File Offset: 0x0024F08C
[Token(Token = "0x600AB47")]
[Address(RVA = "0x80B410", Offset = "0x80A410", VA = "0x18080B410")]
public static void Multiply(ulong[] x, ulong[] y, ulong[] z)
{
ulong[] array = Nat256.CreateExt64();
SecT233Field.ImplMultiply(x, y, array);
SecT233Field.Reduce(array, z);
}
// Token: 0x0600AB48 RID: 43848 RVA: 0x00250EB0 File Offset: 0x0024F0B0
[Token(Token = "0x600AB48")]
[Address(RVA = "0x80B3B0", Offset = "0x80A3B0", VA = "0x18080B3B0")]
public static void MultiplyAddToExt(ulong[] x, ulong[] y, ulong[] zz)
{
ulong[] array = Nat256.CreateExt64();
SecT233Field.ImplMultiply(x, y, array);
SecT233Field.AddExt(zz, array, zz);
}
// Token: 0x0600AB49 RID: 43849 RVA: 0x00250ED8 File Offset: 0x0024F0D8
[Token(Token = "0x600AB49")]
[Address(RVA = "0x80B520", Offset = "0x80A520", VA = "0x18080B520")]
public static void Reduce(ulong[] xx, ulong[] z)
{
int length = xx.Length;
ulong num = xx[3];
ulong num2 = xx[7];
num2 = num;
z[0] = num2;
z[1] = num2;
z[2] = num2;
z[3] = num;
}
// Token: 0x0600AB4A RID: 43850 RVA: 0x00250F24 File Offset: 0x0024F124
[Token(Token = "0x600AB4A")]
[Address(RVA = "0x80B470", Offset = "0x80A470", VA = "0x18080B470")]
public static void Reduce23(ulong[] z, int zOff)
{
int length = z.Length;
ulong num;
z[0] = num;
}
// Token: 0x0600AB4B RID: 43851 RVA: 0x00250F48 File Offset: 0x0024F148
[Token(Token = "0x600AB4B")]
[Address(RVA = "0x80B780", Offset = "0x80A780", VA = "0x18080B780")]
public static void Sqrt(ulong[] x, ulong[] z)
{
ulong num = Interleave.Unshuffle(x[0]);
ulong num2 = x[1];
ulong num3 = Interleave.Unshuffle(num2);
ulong num4 = Interleave.Unshuffle(x[2]);
ulong num5 = x[3];
ulong num6 = Interleave.Unshuffle(num5);
ulong[] array = Nat256.CreateExt64();
int[] array2 = new int[3];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.E0219F11D9EECC43022AA94967780250AC270D4B).FieldHandle);
int num7 = 0;
int length = array2.Length;
if (num7 < length)
{
int num8 = array2[num7];
int num9 = num8 + 1;
num8 += 3;
num7++;
}
SecT233Field.Reduce(array, z);
}
// Token: 0x0600AB4C RID: 43852 RVA: 0x00251004 File Offset: 0x0024F204
[Token(Token = "0x600AB4C")]
[Address(RVA = "0x80BB40", Offset = "0x80AB40", VA = "0x18080BB40")]
public static void Square(ulong[] x, ulong[] z)
{
ulong[] array = Nat256.CreateExt64();
SecT233Field.ImplSquare(x, array);
SecT233Field.Reduce(array, z);
}
// Token: 0x0600AB4D RID: 43853 RVA: 0x00251028 File Offset: 0x0024F228
[Token(Token = "0x600AB4D")]
[Address(RVA = "0x7BBEA0", Offset = "0x7BAEA0", VA = "0x1807BBEA0")]
public static void SquareAddToExt(ulong[] x, ulong[] zz)
{
ulong[] array = Nat256.CreateExt64();
SecT233Field.ImplSquare(x, array);
SecT233Field.AddExt(zz, array, zz);
}
// Token: 0x0600AB4E RID: 43854 RVA: 0x0025104C File Offset: 0x0024F24C
[Token(Token = "0x600AB4E")]
[Address(RVA = "0x80BAB0", Offset = "0x80AAB0", VA = "0x18080BAB0")]
public static void SquareN(ulong[] x, int n, ulong[] z)
{
ulong[] array = Nat256.CreateExt64();
SecT233Field.Reduce(array, z);
if (n - 1 > 0)
{
SecT233Field.Reduce(array, z);
}
}
// Token: 0x0600AB4F RID: 43855 RVA: 0x00251078 File Offset: 0x0024F278
[Token(Token = "0x600AB4F")]
[Address(RVA = "0x80BB90", Offset = "0x80AB90", VA = "0x18080BB90")]
public static uint Trace(ulong[] x)
{
int length = x.Length;
ulong num = x[2];
throw new NullReferenceException();
}
// Token: 0x0600AB50 RID: 43856 RVA: 0x0025109C File Offset: 0x0024F29C
[Token(Token = "0x600AB50")]
[Address(RVA = "0x80A350", Offset = "0x809350", VA = "0x18080A350")]
protected static void ImplCompactExt(ulong[] zz)
{
int length = zz.Length;
ulong num = zz[1];
ulong num2 = zz[2];
ulong num3 = zz[3];
ulong num4 = zz[4];
ulong num5 = zz[5];
ulong num6 = zz[6];
ulong num7 = zz[7];
num = num2;
zz[1] = num;
zz[2] = num2;
zz[3] = num3;
zz[4] = num4;
zz[5] = num5;
zz[6] = num6;
zz[7] = num7;
}
// Token: 0x0600AB51 RID: 43857 RVA: 0x00251140 File Offset: 0x0024F340
[Token(Token = "0x600AB51")]
[Address(RVA = "0x80A5A0", Offset = "0x8095A0", VA = "0x18080A5A0")]
protected static void ImplExpand(ulong[] x, ulong[] z)
{
int length = x.Length;
ulong num = x[0];
ulong num2 = x[1];
ulong num3 = x[2];
z[0] = num;
num = num2;
z[1] = num;
z[2] = num2;
z[3] = num3;
}
// Token: 0x0600AB52 RID: 43858 RVA: 0x00251198 File Offset: 0x0024F398
[Token(Token = "0x600AB52")]
[Address(RVA = "0x80A6F0", Offset = "0x8096F0", VA = "0x18080A6F0")]
protected static void ImplMultiply(ulong[] x, ulong[] y, ulong[] zz)
{
ulong[] array = new ulong[4];
ulong[] array2 = new ulong[4];
SecT233Field.ImplExpand(x, array);
SecT233Field.ImplExpand(y, array2);
ulong num = array2[0];
ulong num2 = array[0];
int num3 = 0;
SecT233Field.ImplMulwAcc(num2, num, zz, num3);
ulong num4 = array2[1];
SecT233Field.ImplMulwAcc(array[1], num4, zz, 1);
ulong num5 = array2[2];
SecT233Field.ImplMulwAcc(array[2], num5, zz, 2);
ulong num6 = array2[3];
SecT233Field.ImplMulwAcc(array[3], num6, zz, 3);
int length = zz.Length;
int length2 = array.Length;
int length3 = array2.Length;
ulong num7 = array[1];
ulong num8 = array2[1];
uint num9;
SecT233Field.ImplMulwAcc(num7, num8, zz, (int)num9);
int length4 = array.Length;
int length5 = array2.Length;
ulong num10 = array[3];
ulong num11 = array2[2];
uint num12;
SecT233Field.ImplMulwAcc(num10, num11, zz, (int)num12);
int length6 = zz.Length;
uint num13;
num13 += (uint)(-2);
int length7 = array.Length;
ulong num14 = array[2];
int length8 = array2.Length;
ulong num15 = array2[2];
ulong num16 = array2[1];
uint num17;
SecT233Field.ImplMulwAcc(num14, num16, zz, (int)num17);
ulong[] array3 = new ulong[3];
int num18 = 0;
SecT233Field.ImplMulwAcc(num14, num15, array3, num18);
num15 = num16;
uint num19;
SecT233Field.ImplMulwAcc(num14, num15, array3, (int)num19);
int length9 = array3.Length;
ulong num20 = zz[3];
zz[3] = num20;
ulong num21 = zz[4];
zz[4] = num21;
SecT233Field.ImplCompactExt(zz);
}
// Token: 0x0600AB53 RID: 43859 RVA: 0x00251340 File Offset: 0x0024F540
[Token(Token = "0x600AB53")]
[Address(RVA = "0x80ACF0", Offset = "0x809CF0", VA = "0x18080ACF0")]
protected static void ImplMulwAcc(ulong x, ulong y, ulong[] z, int zOff)
{
ulong[] array = new ulong[8];
array[1] = y;
int num = array.Length;
array[2] = (ulong)num;
int length = array.Length;
array[3] = (ulong)num;
num = length;
array[4] = (ulong)num;
int length2 = array.Length;
array[5] = (ulong)num;
num = length2;
array[6] = (ulong)num;
int length3 = array.Length;
array[7] = (ulong)num;
int num2 = zOff + 1;
}
// Token: 0x0600AB54 RID: 43860 RVA: 0x002513B8 File Offset: 0x0024F5B8
[Token(Token = "0x600AB54")]
[Address(RVA = "0x7BB210", Offset = "0x7BA210", VA = "0x1807BB210")]
protected static void ImplSquare(ulong[] x, ulong[] zz)
{
ulong num = x[0];
int num2 = 0;
Interleave.Expand64To128(num, zz, num2);
Interleave.Expand64To128(x[1], zz, 2);
ulong num3 = x[2];
Interleave.Expand64To128(num3, zz, 4);
ulong num4 = Interleave.Expand32to64((uint)num3);
zz[6] = num4;
uint num5 = Interleave.Expand16to32((uint)num3);
zz[7] = (ulong)num5;
}
// Token: 0x0600AB55 RID: 43861 RVA: 0x0025141C File Offset: 0x0024F61C
[Token(Token = "0x600AB55")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecT233Field()
{
}
// Token: 0x04006DDA RID: 28122
[Token(Token = "0x4006DDA")]
private const ulong M41 = 2199023255551UL;
// Token: 0x04006DDB RID: 28123
[Token(Token = "0x4006DDB")]
private const ulong M59 = 576460752303423487UL;
}
}
@@ -0,0 +1,597 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B71 RID: 7025
[Token(Token = "0x2001B71")]
internal class SecT233FieldElement : AbstractF2mFieldElement
{
// Token: 0x0600AB56 RID: 43862 RVA: 0x00251430 File Offset: 0x0024F630
[Token(Token = "0x600AB56")]
[Address(RVA = "0x80A150", Offset = "0x809150", VA = "0x18080A150")]
public SecT233FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AB56)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_30:
stloc:ArgumentException(var_3_3F, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecT233FieldElement"), ldstr:string("x")))
}
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: 0x0600AB57 RID: 43863 RVA: 0x0025147C File Offset: 0x0024F67C
[Token(Token = "0x600AB57")]
[Address(RVA = "0x7B9E30", Offset = "0x7B8E30", VA = "0x1807B9E30")]
public SecT233FieldElement()
{
ulong[] array = Nat256.Create64();
this.x = array;
}
// Token: 0x0600AB58 RID: 43864 RVA: 0x002514A0 File Offset: 0x0024F6A0
[Token(Token = "0x600AB58")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecT233FieldElement(ulong[] x)
{
this.x = x;
}
// Token: 0x17001B09 RID: 6921
// (get) Token: 0x0600AB59 RID: 43865 RVA: 0x002514BC File Offset: 0x0024F6BC
[Token(Token = "0x17001B09")]
public override bool IsOne
{
[Token(Token = "0x600AB59")]
[Address(RVA = "0x7B9EA0", Offset = "0x7B8EA0", VA = "0x1807B9EA0", Slot = "17")]
get
{
return Nat256.IsOne64(this.x);
}
}
// Token: 0x17001B0A RID: 6922
// (get) Token: 0x0600AB5A RID: 43866 RVA: 0x002514D4 File Offset: 0x0024F6D4
[Token(Token = "0x17001B0A")]
public override bool IsZero
{
[Token(Token = "0x600AB5A")]
[Address(RVA = "0x7B9EB0", Offset = "0x7B8EB0", VA = "0x1807B9EB0", Slot = "18")]
get
{
return Nat256.IsZero64(this.x);
}
}
// Token: 0x0600AB5B RID: 43867 RVA: 0x002514EC File Offset: 0x0024F6EC
[Token(Token = "0x600AB5B")]
[Address(RVA = "0x7B9C40", Offset = "0x7B8C40", VA = "0x1807B9C40", Slot = "24")]
public override bool TestBitZero()
{
ulong[] array = this.x;
throw new NullReferenceException();
}
// Token: 0x0600AB5C RID: 43868 RVA: 0x00251508 File Offset: 0x0024F708
[Token(Token = "0x600AB5C")]
[Address(RVA = "0x7B9C80", Offset = "0x7B8C80", VA = "0x1807B9C80", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat256.ToBigInteger64(this.x);
}
// Token: 0x17001B0B RID: 6923
// (get) Token: 0x0600AB5D RID: 43869 RVA: 0x00251520 File Offset: 0x0024F720
[Token(Token = "0x17001B0B")]
public override string FieldName
{
[Token(Token = "0x600AB5D")]
[Address(RVA = "0x80A270", Offset = "0x809270", VA = "0x18080A270", Slot = "5")]
get
{
return "SecT233Field";
}
}
// Token: 0x17001B0C RID: 6924
// (get) Token: 0x0600AB5E RID: 43870 RVA: 0x00251534 File Offset: 0x0024F734
[Token(Token = "0x17001B0C")]
public override int FieldSize
{
[Token(Token = "0x600AB5E")]
[Address(RVA = "0x80A2A0", Offset = "0x8092A0", VA = "0x18080A2A0", Slot = "6")]
get
{
return 233;
}
}
// Token: 0x0600AB5F RID: 43871 RVA: 0x00251548 File Offset: 0x0024F748
[Token(Token = "0x600AB5F")]
[Address(RVA = "0x809630", Offset = "0x808630", VA = "0x180809630", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
ulong[] array;
do
{
array = Nat256.Create64();
ulong[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecT233FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecT233FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AB60 RID: 43872 RVA: 0x00251590 File Offset: 0x0024F790
[Token(Token = "0x600AB60")]
[Address(RVA = "0x8094C0", Offset = "0x8084C0", VA = "0x1808094C0", Slot = "8")]
public override ECFieldElement AddOne()
{
ulong[] array = Nat256.Create64();
ulong[] array2 = this.x;
ulong num = array2[0];
array[0] = num;
ulong num2 = array2[1];
array[1] = num2;
ulong num3 = array2[2];
array[2] = num3;
ulong num4 = array2[3];
array[3] = num4;
new SecT233FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AB61 RID: 43873 RVA: 0x00251604 File Offset: 0x0024F804
[Token(Token = "0x600AB61")]
[Address(RVA = "0x7B9C20", Offset = "0x7B8C20", VA = "0x1807B9C20", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
/*
An exception occurred when decompiling this method (0600AB61)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233FieldElement::Subtract(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT233FieldElement[exp:ECFieldElement](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: 0x0600AB62 RID: 43874 RVA: 0x00251618 File Offset: 0x0024F818
[Token(Token = "0x600AB62")]
[Address(RVA = "0x809C00", Offset = "0x808C00", VA = "0x180809C00", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
ulong[] array;
do
{
array = Nat256.Create64();
ulong[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecT233FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
SecT233Field.Reduce(Nat256.CreateExt64(), array);
new SecT233FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600AB63 RID: 43875 RVA: 0x0025166C File Offset: 0x0024F86C
[Token(Token = "0x600AB63")]
[Address(RVA = "0x7B9440", Offset = "0x7B8440", VA = "0x1807B9440", Slot = "19")]
public override ECFieldElement MultiplyMinusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
{
/*
An exception occurred when decompiling this method (0600AB63)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233FieldElement::MultiplyMinusProduct(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT233FieldElement[exp:ECFieldElement](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: 0x0600AB64 RID: 43876 RVA: 0x00251680 File Offset: 0x0024F880
[Token(Token = "0x600AB64")]
[Address(RVA = "0x809950", Offset = "0x808950", VA = "0x180809950", Slot = "20")]
public override ECFieldElement MultiplyPlusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
{
do
{
ulong[] array = this.x;
}
while (b == 0 || b == 0 || x == 0 || x == 0 || y == 0 || y == 0);
ulong[] array2 = Nat256.CreateExt64();
ulong[] array3 = Nat256.CreateExt64();
SecT233Field.AddExt(array2, array3, array2);
ulong[] array4 = Nat256.CreateExt64();
SecT233Field.AddExt(array2, array4, array2);
ulong[] array5 = Nat256.Create64();
SecT233Field.Reduce(array2, array5);
new SecT233FieldElement().x = array5;
throw new NullReferenceException();
}
// Token: 0x0600AB65 RID: 43877 RVA: 0x00251714 File Offset: 0x0024F914
[Token(Token = "0x600AB65")]
[Address(RVA = "0x7B91D0", Offset = "0x7B81D0", VA = "0x1807B91D0", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
ECFieldElement ecfieldElement = b.Square();
BigInteger bigInteger = base.ToBigInteger();
throw new NullReferenceException();
}
// Token: 0x0600AB66 RID: 43878 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AB66")]
[Address(RVA = "0x4A65C0", Offset = "0x4A55C0", VA = "0x1804A65C0", Slot = "12")]
public override ECFieldElement Negate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600AB67 RID: 43879 RVA: 0x00251734 File Offset: 0x0024F934
[Token(Token = "0x600AB67")]
[Address(RVA = "0x80A050", Offset = "0x809050", VA = "0x18080A050", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600AB67)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat256::Create64))
stloc:uint64[](var_2_0E, ldfld:uint64[](SecT233FieldElement::x, ldloc:SecT233FieldElement(this)))
stloc:uint64[](var_4_16, call:uint64[](Nat256::CreateExt64))
call:void(SecT233Field::ImplSquare, ldloc:uint64[](var_2_0E), ldloc:uint64[](var_4_16))
call:void(SecT233Field::Reduce, ldloc:uint64[](var_4_16), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT233FieldElement::x, newobj:SecT233FieldElement(SecT233FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600AB68 RID: 43880 RVA: 0x00251774 File Offset: 0x0024F974
[Token(Token = "0x600AB68")]
[Address(RVA = "0x7B98C0", Offset = "0x7B88C0", VA = "0x1807B98C0", Slot = "21")]
public override ECFieldElement SquareMinusProduct(ECFieldElement x, ECFieldElement y)
{
/*
An exception occurred when decompiling this method (0600AB68)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233FieldElement::SquareMinusProduct(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT233FieldElement[exp:ECFieldElement](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: 0x0600AB69 RID: 43881 RVA: 0x00251788 File Offset: 0x0024F988
[Token(Token = "0x600AB69")]
[Address(RVA = "0x809DB0", Offset = "0x808DB0", VA = "0x180809DB0", Slot = "22")]
public override ECFieldElement SquarePlusProduct(ECFieldElement x, ECFieldElement y)
{
do
{
ulong[] array = this.x;
}
while (x == 0 || x == 0 || y == 0 || y == 0);
ulong[] array2 = Nat256.CreateExt64();
ulong[] array3 = Nat256.CreateExt64();
SecT233Field.AddExt(array2, array3, array2);
ulong[] array4 = Nat256.CreateExt64();
SecT233Field.AddExt(array2, array4, array2);
ulong[] array5 = Nat256.Create64();
SecT233Field.Reduce(array2, array5);
new SecT233FieldElement().x = array5;
throw new NullReferenceException();
}
// Token: 0x0600AB6A RID: 43882 RVA: 0x00251810 File Offset: 0x0024FA10
[Token(Token = "0x600AB6A")]
[Address(RVA = "0x809FD0", Offset = "0x808FD0", VA = "0x180809FD0", Slot = "23")]
public override ECFieldElement SquarePow(int pow)
{
/*
An exception occurred when decompiling this method (0600AB6A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233FieldElement::SquarePow(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat256::Create64))
call:void(SecT233Field::SquareN, ldfld:uint64[](SecT233FieldElement::x, ldloc:SecT233FieldElement(this)), ldloc:int32(pow), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT233FieldElement::x, newobj:SecT233FieldElement(SecT233FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600AB6B RID: 43883 RVA: 0x0025183C File Offset: 0x0024FA3C
[Token(Token = "0x600AB6B")]
[Address(RVA = "0x80A0F0", Offset = "0x8090F0", VA = "0x18080A0F0", Slot = "28")]
public override int Trace()
{
ulong[] array = this.x;
int length = array.Length;
ulong num = array[2];
throw new NullReferenceException();
}
// Token: 0x0600AB6C RID: 43884 RVA: 0x00251864 File Offset: 0x0024FA64
[Token(Token = "0x600AB6C")]
[Address(RVA = "0x8098E0", Offset = "0x8088E0", VA = "0x1808098E0", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600AB6C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat256::Create64))
call:void(SecT233Field::Invert, ldfld:uint64[](SecT233FieldElement::x, ldloc:SecT233FieldElement(this)), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT233FieldElement::x, newobj:SecT233FieldElement(SecT233FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600AB6D RID: 43885 RVA: 0x00251890 File Offset: 0x0024FA90
[Token(Token = "0x600AB6D")]
[Address(RVA = "0x809D40", Offset = "0x808D40", VA = "0x180809D40", Slot = "15")]
public override ECFieldElement Sqrt()
{
/*
An exception occurred when decompiling this method (0600AB6D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233FieldElement::Sqrt()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat256::Create64))
call:void(SecT233Field::Sqrt, ldfld:uint64[](SecT233FieldElement::x, ldloc:SecT233FieldElement(this)), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT233FieldElement::x, newobj:SecT233FieldElement(SecT233FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x17001B0D RID: 6925
// (get) Token: 0x0600AB6E RID: 43886 RVA: 0x002518BC File Offset: 0x0024FABC
[Token(Token = "0x17001B0D")]
public virtual int Representation
{
[Token(Token = "0x600AB6E")]
[Address(RVA = "0x4E86A0", Offset = "0x4E76A0", VA = "0x1804E86A0", Slot = "29")]
get
{
return 2;
}
}
// Token: 0x17001B0E RID: 6926
// (get) Token: 0x0600AB6F RID: 43887 RVA: 0x002518CC File Offset: 0x0024FACC
[Token(Token = "0x17001B0E")]
public virtual int M
{
[Token(Token = "0x600AB6F")]
[Address(RVA = "0x80A2A0", Offset = "0x8092A0", VA = "0x18080A2A0", Slot = "30")]
get
{
return 233;
}
}
// Token: 0x17001B0F RID: 6927
// (get) Token: 0x0600AB70 RID: 43888 RVA: 0x002518E0 File Offset: 0x0024FAE0
[Token(Token = "0x17001B0F")]
public virtual int K1
{
[Token(Token = "0x600AB70")]
[Address(RVA = "0x80A2B0", Offset = "0x8092B0", VA = "0x18080A2B0", Slot = "31")]
get
{
return 74;
}
}
// Token: 0x17001B10 RID: 6928
// (get) Token: 0x0600AB71 RID: 43889 RVA: 0x002518F0 File Offset: 0x0024FAF0
[Token(Token = "0x17001B10")]
public virtual int K2
{
[Token(Token = "0x600AB71")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "32")]
get
{
return 0;
}
}
// Token: 0x17001B11 RID: 6929
// (get) Token: 0x0600AB72 RID: 43890 RVA: 0x00251900 File Offset: 0x0024FB00
[Token(Token = "0x17001B11")]
public virtual int K3
{
[Token(Token = "0x600AB72")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "33")]
get
{
return 0;
}
}
// Token: 0x0600AB73 RID: 43891 RVA: 0x00251910 File Offset: 0x0024FB10
[Token(Token = "0x600AB73")]
[Address(RVA = "0x8097E0", Offset = "0x8087E0", VA = "0x1808097E0", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600AB73)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT233FieldElement[exp:ECFieldElement](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: 0x0600AB74 RID: 43892 RVA: 0x0025192C File Offset: 0x0024FB2C
[Token(Token = "0x600AB74")]
[Address(RVA = "0x809750", Offset = "0x808750", VA = "0x180809750", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600AB74)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT233FieldElement[exp:ECFieldElement](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: 0x0600AB75 RID: 43893 RVA: 0x00251948 File Offset: 0x0024FB48
[Token(Token = "0x600AB75")]
[Address(RVA = "0x7B9220", Offset = "0x7B8220", VA = "0x1807B9220", Slot = "34")]
public virtual bool Equals(SecT233FieldElement other)
{
if (this != other)
{
if (other != 0)
{
ulong[] array = other.x;
return Nat256.Eq64(this.x, array);
}
}
return true;
}
// Token: 0x0600AB76 RID: 43894 RVA: 0x00251974 File Offset: 0x0024FB74
[Token(Token = "0x600AB76")]
[Address(RVA = "0x809870", Offset = "0x808870", VA = "0x180809870", Slot = "2")]
public override int GetHashCode()
{
ulong[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 4);
}
// Token: 0x04006DDC RID: 28124
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DDC")]
protected internal readonly ulong[] x;
}
}
@@ -0,0 +1,410 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B72 RID: 7026
[Token(Token = "0x2001B72")]
internal class SecT233K1Curve : AbstractF2mCurve
{
// Token: 0x0600AB77 RID: 43895 RVA: 0x00251994 File Offset: 0x0024FB94
[Token(Token = "0x600AB77")]
[Address(RVA = "0x80C1B0", Offset = "0x80B1B0", VA = "0x18080C1B0")]
public SecT233K1Curve()
{
int num = 0;
int num2 = 0;
base..ctor(233, 74, num2, num);
int num3;
int num4;
SecT233K1Point secT233K1Point = new SecT233K1Point(this, num3, num4, num != 0);
num4 = 0;
num3 = 0;
this.m_infinity = secT233K1Point;
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array = Hex.Decode("8000000000000000000000000000069D5BB915BCD46EFB1AD5F173ABDF");
BigInteger bigInteger = new BigInteger(1, array);
this.m_order = bigInteger;
BigInteger bigInteger2;
this.m_cofactor = bigInteger2;
this.m_coord = (int)((ulong)6L);
}
// Token: 0x0600AB78 RID: 43896 RVA: 0x00251A1C File Offset: 0x0024FC1C
[Token(Token = "0x600AB78")]
[Address(RVA = "0x80BBE0", Offset = "0x80ABE0", VA = "0x18080BBE0", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600AB78)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233K1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_1_01, ldc.i4:int32(0))
stloc:SecT233K1Point(var_3_0F, newobj:SecT233K1Point(SecT233K1Point::.ctor, ldloc:SecT233K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_4), ldloc:int32[exp:bool](var_1_01)))
stloc:int32(var_4, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecT233K1Point(SecT233K1Curve::m_infinity, ldloc:SecT233K1Curve(var_0), ldloc:SecT233K1Point(var_3_0F))
stloc:int32(var_6_23, callvirtgetter:int32(SecT233K1Curve::get_FieldSize, ldloc:SecT233K1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecT233K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_6_23))
stloc:int32(var_7_33, callvirtgetter:int32(SecT233K1Curve::get_FieldSize, ldloc:SecT233K1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecT233K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_7_33))
stloc:uint8[](var_8_47, call:uint8[](Hex::Decode, ldstr:string("8000000000000000000000000000069D5BB915BCD46EFB1AD5F173ABDF")))
stloc:BigInteger(var_9_51, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_8_47)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecT233K1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_9_51))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecT233K1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_10))
stfld:int32(ECCurve::m_coord, ldloc:SecT233K1Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](6)))
}
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: 0x0600AB79 RID: 43897 RVA: 0x00251A94 File Offset: 0x0024FC94
[Token(Token = "0x600AB79")]
[Address(RVA = "0x7BC700", Offset = "0x7BB700", VA = "0x1807BC700", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 6;
}
// Token: 0x0600AB7A RID: 43898 RVA: 0x00251AA8 File Offset: 0x0024FCA8
[Token(Token = "0x600AB7A")]
[Address(RVA = "0x80BFD0", Offset = "0x80AFD0", VA = "0x18080BFD0", Slot = "15")]
protected override ECMultiplier CreateDefaultMultiplier()
{
/*
An exception occurred when decompiling this method (0600AB7A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier.ECMultiplier BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233K1Curve::CreateDefaultMultiplier()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:WTauNafMultiplier(var_0_05, newobj:WTauNafMultiplier(WTauNafMultiplier::.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.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: 0x17001B12 RID: 6930
// (get) Token: 0x0600AB7B RID: 43899 RVA: 0x00251ABC File Offset: 0x0024FCBC
[Token(Token = "0x17001B12")]
public override int FieldSize
{
[Token(Token = "0x600AB7B")]
[Address(RVA = "0x80A2A0", Offset = "0x8092A0", VA = "0x18080A2A0", Slot = "4")]
get
{
return 233;
}
}
// Token: 0x0600AB7C RID: 43900 RVA: 0x00251AD0 File Offset: 0x0024FCD0
[Token(Token = "0x600AB7C")]
[Address(RVA = "0x80C150", Offset = "0x80B150", VA = "0x18080C150", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AB7C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233K1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT233FieldElement(var_0_06, newobj:SecT233FieldElement(SecT233FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600AB7D RID: 43901 RVA: 0x00251AE4 File Offset: 0x0024FCE4
[Token(Token = "0x600AB7D")]
[Address(RVA = "0x80C020", Offset = "0x80B020", VA = "0x18080C020", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AB7D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233K1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT233K1Point(var_0_09, newobj:SecT233K1Point(SecT233K1Point::.ctor, ldloc:SecT233K1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600AB7E RID: 43902 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AB7E")]
[Address(RVA = "0x80C0B0", Offset = "0x80B0B0", VA = "0x18080C0B0", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001B13 RID: 6931
// (get) Token: 0x0600AB7F RID: 43903 RVA: 0x00251AFC File Offset: 0x0024FCFC
[Token(Token = "0x17001B13")]
public override ECPoint Infinity
{
[Token(Token = "0x600AB7F")]
[Address(RVA = "0x417710", Offset = "0x416710", VA = "0x180417710", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600AB7F)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233K1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT233K1Point(var_0_06, ldfld:SecT233K1Point(SecT233K1Curve::m_infinity, ldloc:SecT233K1Curve(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: 0x17001B14 RID: 6932
// (get) Token: 0x0600AB80 RID: 43904 RVA: 0x00251B10 File Offset: 0x0024FD10
[Token(Token = "0x17001B14")]
public override bool IsKoblitz
{
[Token(Token = "0x600AB80")]
[Address(RVA = "0x4246A0", Offset = "0x4236A0", VA = "0x1804246A0", Slot = "39")]
get
{
return true;
}
}
// Token: 0x17001B15 RID: 6933
// (get) Token: 0x0600AB81 RID: 43905 RVA: 0x00251B20 File Offset: 0x0024FD20
[Token(Token = "0x17001B15")]
public virtual int M
{
[Token(Token = "0x600AB81")]
[Address(RVA = "0x80A2A0", Offset = "0x8092A0", VA = "0x18080A2A0", Slot = "40")]
get
{
return 233;
}
}
// Token: 0x17001B16 RID: 6934
// (get) Token: 0x0600AB82 RID: 43906 RVA: 0x00251B34 File Offset: 0x0024FD34
[Token(Token = "0x17001B16")]
public virtual bool IsTrinomial
{
[Token(Token = "0x600AB82")]
[Address(RVA = "0x4246A0", Offset = "0x4236A0", VA = "0x1804246A0", Slot = "41")]
get
{
return true;
}
}
// Token: 0x17001B17 RID: 6935
// (get) Token: 0x0600AB83 RID: 43907 RVA: 0x00251B44 File Offset: 0x0024FD44
[Token(Token = "0x17001B17")]
public virtual int K1
{
[Token(Token = "0x600AB83")]
[Address(RVA = "0x80A2B0", Offset = "0x8092B0", VA = "0x18080A2B0", Slot = "42")]
get
{
return 74;
}
}
// Token: 0x17001B18 RID: 6936
// (get) Token: 0x0600AB84 RID: 43908 RVA: 0x00251B54 File Offset: 0x0024FD54
[Token(Token = "0x17001B18")]
public virtual int K2
{
[Token(Token = "0x600AB84")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "43")]
get
{
return 0;
}
}
// Token: 0x17001B19 RID: 6937
// (get) Token: 0x0600AB85 RID: 43909 RVA: 0x00251B64 File Offset: 0x0024FD64
[Token(Token = "0x17001B19")]
public virtual int K3
{
[Token(Token = "0x600AB85")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "44")]
get
{
return 0;
}
}
// Token: 0x0600AB86 RID: 43910 RVA: 0x00251B74 File Offset: 0x0024FD74
[Token(Token = "0x600AB86")]
[Address(RVA = "0x80BD70", Offset = "0x80AD70", VA = "0x18080BD70", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
ulong[] array;
int num;
for (;;)
{
array = new ulong[points];
num = 0;
if (len <= 0)
{
goto IL_49;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 8;
IL_49:
SecT233K1Curve.SecT233K1LookupTable secT233K1LookupTable;
secT233K1LookupTable.m_outer = 0;
secT233K1LookupTable.m_table = array;
secT233K1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006DDD RID: 28125
[Token(Token = "0x4006DDD")]
private const int SECT233K1_DEFAULT_COORDS = 6;
// Token: 0x04006DDE RID: 28126
[Token(Token = "0x4006DDE")]
private const int SECT233K1_FE_LONGS = 4;
// Token: 0x04006DDF RID: 28127
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006DDF")]
protected readonly SecT233K1Point m_infinity;
// Token: 0x02001B73 RID: 7027
[Token(Token = "0x2001B73")]
private class SecT233K1LookupTable : ECLookupTable
{
// Token: 0x0600AB87 RID: 43911 RVA: 0x00251BE8 File Offset: 0x0024FDE8
[Token(Token = "0x600AB87")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecT233K1LookupTable(SecT233K1Curve outer, ulong[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001B1A RID: 6938
// (get) Token: 0x0600AB88 RID: 43912 RVA: 0x00251C10 File Offset: 0x0024FE10
[Token(Token = "0x17001B1A")]
public virtual int Size
{
[Token(Token = "0x600AB88")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600AB89 RID: 43913 RVA: 0x00251C24 File Offset: 0x0024FE24
[Token(Token = "0x600AB89")]
[Address(RVA = "0x80C320", Offset = "0x80B320", VA = "0x18080C320", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
ulong[] array = Nat256.Create64();
ulong[] array2 = Nat256.Create64();
int num = 0;
int num2 = 0;
if (this.m_size > num2)
{
int num3 = 0;
ulong[] table = this.m_table;
ulong[] table2 = this.m_table;
num3++;
num += 8;
num2++;
}
SecT233K1Curve outer = this.m_outer;
new SecT233FieldElement().x = array;
new SecT233FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006DE0 RID: 28128
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DE0")]
private readonly SecT233K1Curve m_outer;
// Token: 0x04006DE1 RID: 28129
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006DE1")]
private readonly ulong[] m_table;
// Token: 0x04006DE2 RID: 28130
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006DE2")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,296 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B74 RID: 7028
[Token(Token = "0x2001B74")]
internal class SecT233K1Point : AbstractF2mPoint
{
// Token: 0x0600AB8A RID: 43914 RVA: 0x00251CA4 File Offset: 0x0024FEA4
[Token(Token = "0x600AB8A")]
[Address(RVA = "0x80DA20", Offset = "0x80CA20", VA = "0x18080DA20")]
public SecT233K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600AB8B RID: 43915 RVA: 0x00251CB4 File Offset: 0x0024FEB4
[Token(Token = "0x600AB8B")]
[Address(RVA = "0x80D960", Offset = "0x80C960", VA = "0x18080D960")]
public SecT233K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AB8B)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233K1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600AB8C RID: 43916 RVA: 0x00251CDC File Offset: 0x0024FEDC
[Token(Token = "0x600AB8C")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecT233K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600AB8D RID: 43917 RVA: 0x00251CEC File Offset: 0x0024FEEC
[Token(Token = "0x600AB8D")]
[Address(RVA = "0x80CCE0", Offset = "0x80BCE0", VA = "0x18080CCE0", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600AB8D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233K1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecT233K1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecT233K1Point[exp: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: 0x17001B1B RID: 6939
// (get) Token: 0x0600AB8E RID: 43918 RVA: 0x00251D08 File Offset: 0x0024FF08
[Token(Token = "0x17001B1B")]
public override ECFieldElement YCoord
{
[Token(Token = "0x600AB8E")]
[Address(RVA = "0x7BE020", Offset = "0x7BD020", VA = "0x1807BE020", Slot = "12")]
get
{
ECFieldElement x = this.m_x;
ECFieldElement y = this.m_y;
if (!base.IsInfinity && !x.IsOne)
{
int fieldSize = y.FieldSize;
if (this.m_zs[0].BitLength == 0)
{
}
}
return y;
}
}
// Token: 0x17001B1C RID: 6940
// (get) Token: 0x0600AB8F RID: 43919 RVA: 0x00251D58 File Offset: 0x0024FF58
[Token(Token = "0x17001B1C")]
protected internal override bool CompressionYTilde
{
[Token(Token = "0x600AB8F")]
[Address(RVA = "0x7BDFA0", Offset = "0x7BCFA0", VA = "0x1807BDFA0", Slot = "25")]
get
{
if (!this.m_x.IsOne)
{
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement;
ECFieldElement ecfieldElement2;
return ecfieldElement != ecfieldElement2;
}
throw new NullReferenceException();
}
}
// Token: 0x0600AB90 RID: 43920 RVA: 0x00251D8C File Offset: 0x0024FF8C
[Token(Token = "0x600AB90")]
[Address(RVA = "0x80C4F0", Offset = "0x80B4F0", VA = "0x18080C4F0", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
while (!base.IsInfinity && !b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
ECFieldElement x2 = b.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
ECFieldElement[] zs2 = b.m_zs;
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
if (ecfieldElement.BitLength == 0)
{
ECFieldElement ecfieldElement3 = x2.Subtract(ecfieldElement);
ECFieldElement ecfieldElement4 = y2.Subtract(ecfieldElement);
}
if (ecfieldElement2.BitLength != 0)
{
continue;
}
ECFieldElement ecfieldElement5 = x.Subtract(ecfieldElement2);
int fieldSize = y.Subtract(ecfieldElement2).FieldSize;
int fieldSize2 = ecfieldElement5.FieldSize;
if (fieldSize2 == 0)
{
if (!x2.IsOne)
{
sbyte b3;
sbyte b2 = b3;
TypeCode typeCode = b2.GetTypeCode();
int fieldSize3 = y.FieldSize;
}
bool flag2 = this.IsNormalized();
ushort num;
TypeCode typeCode2 = num.GetTypeCode();
ushort num2;
TypeCode typeCode3 = num2.GetTypeCode().GetTypeCode();
short num3;
TypeCode typeCode4 = num3.GetTypeCode();
sbyte b4;
TypeCode typeCode5 = b4.GetTypeCode().GetTypeCode();
byte b5;
TypeCode typeCode6 = b5.GetTypeCode();
BigInteger one = BigInteger.One;
int num4 = flag.CompareTo(one);
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
ECPoint ecpoint;
if (ecpoint == 0)
{
break;
}
}
if (!x2.IsOne)
{
bool compressionYTilde = b.CompressionYTilde;
break;
}
break;
}
return b;
}
// Token: 0x0600AB91 RID: 43921 RVA: 0x00251F1C File Offset: 0x0025011C
[Token(Token = "0x600AB91")]
[Address(RVA = "0x80D4F0", Offset = "0x80C4F0", VA = "0x18080D4F0", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
if (!this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
int bitLength = ecfieldElement.BitLength;
if (bitLength != 0)
{
int fieldSize = y.Negate().FieldSize;
}
ECFieldElement ecfieldElement2 = ecfieldElement.Negate();
int fieldSize2 = y.FieldSize;
if (bitLength != 0)
{
}
sbyte b2;
sbyte b = b2;
int fieldSize3 = y.FieldSize;
ECFieldElement ecfieldElement3 = ecfieldElement2.Negate();
ushort num;
TypeCode typeCode = num.GetTypeCode().GetTypeCode();
sbyte b3;
TypeCode typeCode2 = b3.GetTypeCode().GetTypeCode().GetTypeCode();
(new ECFieldElement[1])[0] = b;
bool withCompression = this.m_withCompression;
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600AB92 RID: 43922 RVA: 0x00251FE4 File Offset: 0x002501E4
[Token(Token = "0x600AB92")]
[Address(RVA = "0x80CF30", Offset = "0x80BF30", VA = "0x18080CF30", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
if (x.IsOne)
{
return b;
}
ECFieldElement[] zs = b.m_zs;
ECFieldElement x2 = b.m_x;
ECFieldElement ecfieldElement = zs[0];
if (!x2.IsOne && ecfieldElement.BitLength != 0)
{
ECFieldElement[] zs2 = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement3 = x.Negate();
ECFieldElement ecfieldElement4 = y.Negate();
ECFieldElement ecfieldElement5 = ecfieldElement2.Negate();
ECFieldElement ecfieldElement6 = y.Subtract(ecfieldElement2);
int fieldSize = ecfieldElement4.FieldSize;
ECFieldElement ecfieldElement7;
int fieldSize2 = ecfieldElement7.Subtract(ecfieldElement5).FieldSize;
int fieldSize3 = x2.Subtract(ecfieldElement5).FieldSize;
decimal num;
TypeCode typeCode = num.GetTypeCode();
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
}
throw new NullReferenceException();
}
return b;
}
// Token: 0x0600AB93 RID: 43923 RVA: 0x00252100 File Offset: 0x00250300
[Token(Token = "0x600AB93")]
[Address(RVA = "0x80CD80", Offset = "0x80BD80", VA = "0x18080CD80", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity && !this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
bool flag = this.SatisfiesOrder();
int fieldSize = y.FieldSize;
ECFieldElement[] array = new ECFieldElement[1];
if (ecfieldElement != 0)
{
}
array[0] = ecfieldElement;
bool withCompression = this.m_withCompression;
}
throw new IndexOutOfRangeException();
}
}
}
@@ -0,0 +1,387 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B75 RID: 7029
[Token(Token = "0x2001B75")]
internal class SecT233R1Curve : AbstractF2mCurve
{
// Token: 0x0600AB94 RID: 43924 RVA: 0x0025216C File Offset: 0x0025036C
[Token(Token = "0x600AB94")]
[Address(RVA = "0x80DFF0", Offset = "0x80CFF0", VA = "0x18080DFF0")]
public SecT233R1Curve()
{
int num = 0;
int num2 = 0;
base..ctor(233, 74, num2, num);
int num3;
int num4;
SecT233R1Point secT233R1Point = new SecT233R1Point(this, num3, num4, num != 0);
num4 = 0;
num3 = 0;
this.m_infinity = secT233R1Point;
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
byte[] array = Hex.Decode("0066647EDE6C332C7F8C0923BB58213B333B20E9CE4281FE115F7D8F90AD");
BigInteger bigInteger = new BigInteger(1, array);
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array2 = Hex.Decode("01000000000000000000000000000013E974E72F8A6922031D2603CFE0D7");
BigInteger bigInteger2 = new BigInteger(1, array2);
this.m_order = bigInteger2;
BigInteger two = BigInteger.Two;
this.m_cofactor = two;
this.m_coord = (int)((ulong)6L);
}
// Token: 0x0600AB95 RID: 43925 RVA: 0x00252210 File Offset: 0x00250410
[Token(Token = "0x600AB95")]
[Address(RVA = "0x80DA40", Offset = "0x80CA40", VA = "0x18080DA40", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600AB95)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233R1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_1_01, ldc.i4:int32(0))
stloc:SecT233R1Point(var_3_0F, newobj:SecT233R1Point(SecT233R1Point::.ctor, ldloc:SecT233R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_4), ldloc:int32[exp:bool](var_1_01)))
stloc:int32(var_4, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecT233R1Point(SecT233R1Curve::m_infinity, ldloc:SecT233R1Curve(var_0), ldloc:SecT233R1Point(var_3_0F))
stloc:int32(var_6_23, callvirtgetter:int32(SecT233R1Curve::get_FieldSize, ldloc:SecT233R1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecT233R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_6_23))
stloc:uint8[](var_7_37, call:uint8[](Hex::Decode, ldstr:string("0066647EDE6C332C7F8C0923BB58213B333B20E9CE4281FE115F7D8F90AD")))
stloc:BigInteger(var_8_41, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_7_37)))
stloc:int32(var_9_49, callvirtgetter:int32(SecT233R1Curve::get_FieldSize, ldloc:SecT233R1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecT233R1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_9_49))
stloc:uint8[](var_10_5D, call:uint8[](Hex::Decode, ldstr:string("01000000000000000000000000000013E974E72F8A6922031D2603CFE0D7")))
stloc:BigInteger(var_11_67, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_10_5D)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecT233R1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_11_67))
stloc:BigInteger(var_12_76, ldsfld:BigInteger(BigInteger::Two))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecT233R1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_12_76))
stfld:int32(ECCurve::m_coord, ldloc:SecT233R1Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](6)))
}
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: 0x0600AB96 RID: 43926 RVA: 0x002522A8 File Offset: 0x002504A8
[Token(Token = "0x600AB96")]
[Address(RVA = "0x7BC700", Offset = "0x7BB700", VA = "0x1807BC700", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 6;
}
// Token: 0x17001B1D RID: 6941
// (get) Token: 0x0600AB97 RID: 43927 RVA: 0x002522BC File Offset: 0x002504BC
[Token(Token = "0x17001B1D")]
public override ECPoint Infinity
{
[Token(Token = "0x600AB97")]
[Address(RVA = "0x417710", Offset = "0x416710", VA = "0x180417710", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600AB97)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233R1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT233R1Point(var_0_06, ldfld:SecT233R1Point(SecT233R1Curve::m_infinity, ldloc:SecT233R1Curve(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: 0x17001B1E RID: 6942
// (get) Token: 0x0600AB98 RID: 43928 RVA: 0x002522D0 File Offset: 0x002504D0
[Token(Token = "0x17001B1E")]
public override int FieldSize
{
[Token(Token = "0x600AB98")]
[Address(RVA = "0x80A2A0", Offset = "0x8092A0", VA = "0x18080A2A0", Slot = "4")]
get
{
return 233;
}
}
// Token: 0x0600AB99 RID: 43929 RVA: 0x002522E4 File Offset: 0x002504E4
[Token(Token = "0x600AB99")]
[Address(RVA = "0x80DF90", Offset = "0x80CF90", VA = "0x18080DF90", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600AB99)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233R1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT233FieldElement(var_0_06, newobj:SecT233FieldElement(SecT233FieldElement::.ctor, ldloc:BigInteger(x)))
}
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: 0x0600AB9A RID: 43930 RVA: 0x002522F8 File Offset: 0x002504F8
[Token(Token = "0x600AB9A")]
[Address(RVA = "0x80DF00", Offset = "0x80CF00", VA = "0x18080DF00", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600AB9A)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233R1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT233R1Point(var_0_09, newobj:SecT233R1Point(SecT233R1Point::.ctor, ldloc:SecT233R1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600AB9B RID: 43931 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600AB9B")]
[Address(RVA = "0x80DE60", Offset = "0x80CE60", VA = "0x18080DE60", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001B1F RID: 6943
// (get) Token: 0x0600AB9C RID: 43932 RVA: 0x00252310 File Offset: 0x00250510
[Token(Token = "0x17001B1F")]
public override bool IsKoblitz
{
[Token(Token = "0x600AB9C")]
[Address(RVA = "0x424690", Offset = "0x423690", VA = "0x180424690", Slot = "39")]
get
{
}
}
// Token: 0x17001B20 RID: 6944
// (get) Token: 0x0600AB9D RID: 43933 RVA: 0x00252320 File Offset: 0x00250520
[Token(Token = "0x17001B20")]
public virtual int M
{
[Token(Token = "0x600AB9D")]
[Address(RVA = "0x80A2A0", Offset = "0x8092A0", VA = "0x18080A2A0", Slot = "40")]
get
{
return 233;
}
}
// Token: 0x17001B21 RID: 6945
// (get) Token: 0x0600AB9E RID: 43934 RVA: 0x00252334 File Offset: 0x00250534
[Token(Token = "0x17001B21")]
public virtual bool IsTrinomial
{
[Token(Token = "0x600AB9E")]
[Address(RVA = "0x4246A0", Offset = "0x4236A0", VA = "0x1804246A0", Slot = "41")]
get
{
return true;
}
}
// Token: 0x17001B22 RID: 6946
// (get) Token: 0x0600AB9F RID: 43935 RVA: 0x00252344 File Offset: 0x00250544
[Token(Token = "0x17001B22")]
public virtual int K1
{
[Token(Token = "0x600AB9F")]
[Address(RVA = "0x80A2B0", Offset = "0x8092B0", VA = "0x18080A2B0", Slot = "42")]
get
{
return 74;
}
}
// Token: 0x17001B23 RID: 6947
// (get) Token: 0x0600ABA0 RID: 43936 RVA: 0x00252354 File Offset: 0x00250554
[Token(Token = "0x17001B23")]
public virtual int K2
{
[Token(Token = "0x600ABA0")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "43")]
get
{
return 0;
}
}
// Token: 0x17001B24 RID: 6948
// (get) Token: 0x0600ABA1 RID: 43937 RVA: 0x00252364 File Offset: 0x00250564
[Token(Token = "0x17001B24")]
public virtual int K3
{
[Token(Token = "0x600ABA1")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "44")]
get
{
return 0;
}
}
// Token: 0x0600ABA2 RID: 43938 RVA: 0x00252374 File Offset: 0x00250574
[Token(Token = "0x600ABA2")]
[Address(RVA = "0x80DC00", Offset = "0x80CC00", VA = "0x18080DC00", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
ulong[] array;
int num;
for (;;)
{
array = new ulong[points];
num = 0;
if (len <= 0)
{
goto IL_49;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 8;
IL_49:
SecT233R1Curve.SecT233R1LookupTable secT233R1LookupTable;
secT233R1LookupTable.m_outer = 0;
secT233R1LookupTable.m_table = array;
secT233R1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006DE3 RID: 28131
[Token(Token = "0x4006DE3")]
private const int SECT233R1_DEFAULT_COORDS = 6;
// Token: 0x04006DE4 RID: 28132
[Token(Token = "0x4006DE4")]
private const int SECT233R1_FE_LONGS = 4;
// Token: 0x04006DE5 RID: 28133
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006DE5")]
protected readonly SecT233R1Point m_infinity;
// Token: 0x02001B76 RID: 7030
[Token(Token = "0x2001B76")]
private class SecT233R1LookupTable : ECLookupTable
{
// Token: 0x0600ABA3 RID: 43939 RVA: 0x002523E8 File Offset: 0x002505E8
[Token(Token = "0x600ABA3")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecT233R1LookupTable(SecT233R1Curve outer, ulong[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001B25 RID: 6949
// (get) Token: 0x0600ABA4 RID: 43940 RVA: 0x00252410 File Offset: 0x00250610
[Token(Token = "0x17001B25")]
public virtual int Size
{
[Token(Token = "0x600ABA4")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600ABA5 RID: 43941 RVA: 0x00252424 File Offset: 0x00250624
[Token(Token = "0x600ABA5")]
[Address(RVA = "0x80E190", Offset = "0x80D190", VA = "0x18080E190", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
ulong[] array = Nat256.Create64();
ulong[] array2 = Nat256.Create64();
int num = 0;
int num2 = 0;
if (this.m_size > num2)
{
int num3 = 0;
ulong[] table = this.m_table;
ulong[] table2 = this.m_table;
num3++;
num += 8;
num2++;
}
SecT233R1Curve outer = this.m_outer;
new SecT233FieldElement().x = array;
new SecT233FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006DE6 RID: 28134
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DE6")]
private readonly SecT233R1Curve m_outer;
// Token: 0x04006DE7 RID: 28135
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006DE7")]
private readonly ulong[] m_table;
// Token: 0x04006DE8 RID: 28136
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006DE8")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,255 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B77 RID: 7031
[Token(Token = "0x2001B77")]
internal class SecT233R1Point : AbstractF2mPoint
{
// Token: 0x0600ABA6 RID: 43942 RVA: 0x002524A4 File Offset: 0x002506A4
[Token(Token = "0x600ABA6")]
[Address(RVA = "0x80F7C0", Offset = "0x80E7C0", VA = "0x18080F7C0")]
public SecT233R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600ABA7 RID: 43943 RVA: 0x002524B4 File Offset: 0x002506B4
[Token(Token = "0x600ABA7")]
[Address(RVA = "0x80F7E0", Offset = "0x80E7E0", VA = "0x18080F7E0")]
public SecT233R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600ABA7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233R1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600ABA8 RID: 43944 RVA: 0x002524DC File Offset: 0x002506DC
[Token(Token = "0x600ABA8")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecT233R1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600ABA9 RID: 43945 RVA: 0x002524EC File Offset: 0x002506EC
[Token(Token = "0x600ABA9")]
[Address(RVA = "0x80EB80", Offset = "0x80DB80", VA = "0x18080EB80", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600ABA9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT233R1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecT233R1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecT233R1Point[exp: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: 0x17001B26 RID: 6950
// (get) Token: 0x0600ABAA RID: 43946 RVA: 0x00252508 File Offset: 0x00250708
[Token(Token = "0x17001B26")]
public override ECFieldElement YCoord
{
[Token(Token = "0x600ABAA")]
[Address(RVA = "0x7BE020", Offset = "0x7BD020", VA = "0x1807BE020", Slot = "12")]
get
{
ECFieldElement x = this.m_x;
ECFieldElement y = this.m_y;
if (!base.IsInfinity && !x.IsOne)
{
int fieldSize = y.FieldSize;
if (this.m_zs[0].BitLength == 0)
{
}
}
return y;
}
}
// Token: 0x17001B27 RID: 6951
// (get) Token: 0x0600ABAB RID: 43947 RVA: 0x00252558 File Offset: 0x00250758
[Token(Token = "0x17001B27")]
protected internal override bool CompressionYTilde
{
[Token(Token = "0x600ABAB")]
[Address(RVA = "0x7BDFA0", Offset = "0x7BCFA0", VA = "0x1807BDFA0", Slot = "25")]
get
{
if (!this.m_x.IsOne)
{
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement;
ECFieldElement ecfieldElement2;
return ecfieldElement != ecfieldElement2;
}
throw new NullReferenceException();
}
}
// Token: 0x0600ABAC RID: 43948 RVA: 0x0025258C File Offset: 0x0025078C
[Token(Token = "0x600ABAC")]
[Address(RVA = "0x80E360", Offset = "0x80D360", VA = "0x18080E360", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
while (!base.IsInfinity && !b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
ECFieldElement x2 = b.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
ECFieldElement[] zs2 = b.m_zs;
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
if (ecfieldElement.BitLength == 0)
{
ECFieldElement ecfieldElement3 = x2.Subtract(ecfieldElement);
ECFieldElement ecfieldElement4 = y2.Subtract(ecfieldElement);
}
if (ecfieldElement2.BitLength == 0)
{
ECFieldElement ecfieldElement5 = x.Subtract(ecfieldElement2);
int fieldSize = y.Subtract(ecfieldElement2).FieldSize;
int fieldSize2 = ecfieldElement5.FieldSize;
if (fieldSize2 == 0)
{
if (!x2.IsOne)
{
sbyte b3;
sbyte b2 = b3;
TypeCode typeCode = b2.GetTypeCode();
int fieldSize3 = y.FieldSize;
}
bool flag2 = this.IsNormalized();
ushort num;
TypeCode typeCode2 = num.GetTypeCode();
ushort num2;
TypeCode typeCode3 = num2.GetTypeCode().GetTypeCode();
short num3;
TypeCode typeCode4 = num3.GetTypeCode();
sbyte b4;
TypeCode typeCode5 = b4.GetTypeCode().GetTypeCode();
byte b5;
TypeCode typeCode6 = b5.GetTypeCode();
BigInteger one = BigInteger.One;
int num4 = flag.CompareTo(one);
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
}
}
else
{
if (!x2.IsOne)
{
bool compressionYTilde = b.CompressionYTilde;
break;
}
break;
}
}
return b;
}
// Token: 0x0600ABAD RID: 43949 RVA: 0x00252728 File Offset: 0x00250928
[Token(Token = "0x600ABAD")]
[Address(RVA = "0x80F3C0", Offset = "0x80E3C0", VA = "0x18080F3C0", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
if (ecfieldElement.BitLength != 0)
{
}
ECFieldElement ecfieldElement2 = y.Subtract(ecfieldElement);
ECFieldElement ecfieldElement3 = ecfieldElement.Negate();
if (y.Negate().FieldSize.GetTypeCode() == TypeCode.Empty)
{
ECFieldElement ecfieldElement4 = x.Subtract(ecfieldElement);
ECFieldElement ecfieldElement5;
TypeCode typeCode = ecfieldElement5.FieldSize.GetTypeCode();
sbyte b;
(new ECFieldElement[1])[0] = b;
bool withCompression = this.m_withCompression;
}
SecT233R1Point secT233R1Point;
ECFieldElement[] zcoords = secT233R1Point.GetZCoords();
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600ABAE RID: 43950 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600ABAE")]
[Address(RVA = "0x80EDD0", Offset = "0x80DDD0", VA = "0x18080EDD0", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600ABAF RID: 43951 RVA: 0x002527E0 File Offset: 0x002509E0
[Token(Token = "0x600ABAF")]
[Address(RVA = "0x80EC20", Offset = "0x80DC20", VA = "0x18080EC20", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity && !this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
bool flag = this.SatisfiesOrder();
int fieldSize = y.FieldSize;
ECFieldElement[] array = new ECFieldElement[1];
if (ecfieldElement != 0)
{
}
array[0] = ecfieldElement;
bool withCompression = this.m_withCompression;
}
throw new IndexOutOfRangeException();
}
}
}
@@ -0,0 +1,370 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B78 RID: 7032
[Token(Token = "0x2001B78")]
internal class SecT239Field
{
// Token: 0x0600ABB0 RID: 43952 RVA: 0x0025284C File Offset: 0x00250A4C
[Token(Token = "0x600ABB0")]
[Address(RVA = "0x7BA2D0", Offset = "0x7B92D0", VA = "0x1807BA2D0")]
public static void Add(ulong[] x, ulong[] y, ulong[] z)
{
ulong num = y[0];
z[0] = num;
ulong num2 = y[1];
z[1] = num2;
ulong num3 = y[2];
z[2] = num3;
ulong num4 = y[3];
z[3] = num4;
}
// Token: 0x0600ABB1 RID: 43953 RVA: 0x002528A0 File Offset: 0x00250AA0
[Token(Token = "0x600ABB1")]
[Address(RVA = "0x7B9ED0", Offset = "0x7B8ED0", VA = "0x1807B9ED0")]
public static void AddExt(ulong[] xx, ulong[] yy, ulong[] zz)
{
ulong num = yy[0];
zz[0] = num;
ulong num2 = yy[1];
zz[1] = num2;
ulong num3 = yy[2];
zz[2] = num3;
ulong num4 = yy[3];
zz[3] = num4;
ulong num5 = yy[4];
zz[4] = num5;
ulong num6 = yy[5];
zz[5] = num6;
ulong num7 = yy[6];
zz[6] = num7;
ulong num8 = yy[7];
zz[7] = num8;
}
// Token: 0x0600ABB2 RID: 43954 RVA: 0x0025293C File Offset: 0x00250B3C
[Token(Token = "0x600ABB2")]
[Address(RVA = "0x7BA1E0", Offset = "0x7B91E0", VA = "0x1807BA1E0")]
public static void AddOne(ulong[] x, ulong[] z)
{
ulong num = x[0];
z[0] = num;
ulong num2 = x[1];
z[1] = num2;
ulong num3 = x[2];
z[2] = num3;
ulong num4 = x[3];
z[3] = num4;
}
// Token: 0x0600ABB3 RID: 43955 RVA: 0x00252990 File Offset: 0x00250B90
[Token(Token = "0x600ABB3")]
[Address(RVA = "0x7BA470", Offset = "0x7B9470", VA = "0x1807BA470")]
public static ulong[] FromBigInteger(BigInteger x)
{
ulong[] array = Nat256.FromBigInteger64(x);
ulong num = array[3];
array[3] = num;
return array;
}
// Token: 0x0600ABB4 RID: 43956 RVA: 0x002529BC File Offset: 0x00250BBC
[Token(Token = "0x600ABB4")]
[Address(RVA = "0x7BB330", Offset = "0x7BA330", VA = "0x1807BB330")]
public static void Invert(ulong[] x, ulong[] z)
{
/*
An exception occurred when decompiling this method (0600ABB4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239Field::Invert(System.UInt64[],System.UInt64[])
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_24B:
stloc:InvalidOperationException(var_42_250, newobj:InvalidOperationException(InvalidOperationException::.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: 0x0600ABB5 RID: 43957 RVA: 0x00252C1C File Offset: 0x00250E1C
[Token(Token = "0x600ABB5")]
[Address(RVA = "0x7BB7A0", Offset = "0x7BA7A0", VA = "0x1807BB7A0")]
public static void Multiply(ulong[] x, ulong[] y, ulong[] z)
{
ulong[] array = Nat256.CreateExt64();
SecT239Field.ImplMultiply(x, y, array);
SecT239Field.Reduce(array, z);
}
// Token: 0x0600ABB6 RID: 43958 RVA: 0x00252C40 File Offset: 0x00250E40
[Token(Token = "0x600ABB6")]
[Address(RVA = "0x7BB740", Offset = "0x7BA740", VA = "0x1807BB740")]
public static void MultiplyAddToExt(ulong[] x, ulong[] y, ulong[] zz)
{
ulong[] array = Nat256.CreateExt64();
SecT239Field.ImplMultiply(x, y, array);
SecT233Field.AddExt(zz, array, zz);
}
// Token: 0x0600ABB7 RID: 43959 RVA: 0x00252C68 File Offset: 0x00250E68
[Token(Token = "0x600ABB7")]
[Address(RVA = "0x7BB8B0", Offset = "0x7BA8B0", VA = "0x1807BB8B0")]
public static void Reduce(ulong[] xx, ulong[] z)
{
int length = xx.Length;
ulong num = xx[3];
ulong num2 = xx[4];
ulong num3 = xx[7];
num3 = num2;
z[0] = num3;
num3 = num2;
z[1] = num3;
z[2] = num2;
z[3] = num;
}
// Token: 0x0600ABB8 RID: 43960 RVA: 0x00252CC0 File Offset: 0x00250EC0
[Token(Token = "0x600ABB8")]
[Address(RVA = "0x7BB800", Offset = "0x7BA800", VA = "0x1807BB800")]
public static void Reduce17(ulong[] z, int zOff)
{
int length = z.Length;
ulong num;
z[0] = num;
}
// Token: 0x0600ABB9 RID: 43961 RVA: 0x00252CE4 File Offset: 0x00250EE4
[Token(Token = "0x600ABB9")]
[Address(RVA = "0x7BBB10", Offset = "0x7BAB10", VA = "0x1807BBB10")]
public static void Sqrt(ulong[] x, ulong[] z)
{
ulong num = Interleave.Unshuffle(x[0]);
ulong num2 = x[1];
ulong num3 = Interleave.Unshuffle(num2);
ulong num4 = Interleave.Unshuffle(x[2]);
ulong num5 = x[3];
ulong num6 = Interleave.Unshuffle(num5);
ulong[] array = Nat256.CreateExt64();
int[] array2 = new int[2];
array2[0] = (int)((ulong)39L);
array2[0] = (int)((ulong)120L);
int num7 = 0;
int length = array2.Length;
if (num7 < length)
{
int num8 = array2[num7];
int num9 = num8 + 1;
num8 += 4;
num7++;
}
SecT239Field.Reduce(array, z);
}
// Token: 0x0600ABBA RID: 43962 RVA: 0x00252DAC File Offset: 0x00250FAC
[Token(Token = "0x600ABBA")]
[Address(RVA = "0x7BBF80", Offset = "0x7BAF80", VA = "0x1807BBF80")]
public static void Square(ulong[] x, ulong[] z)
{
ulong[] array = Nat256.CreateExt64();
SecT233Field.ImplSquare(x, array);
SecT239Field.Reduce(array, z);
}
// Token: 0x0600ABBB RID: 43963 RVA: 0x00252DD0 File Offset: 0x00250FD0
[Token(Token = "0x600ABBB")]
[Address(RVA = "0x7BBEA0", Offset = "0x7BAEA0", VA = "0x1807BBEA0")]
public static void SquareAddToExt(ulong[] x, ulong[] zz)
{
ulong[] array = Nat256.CreateExt64();
SecT233Field.ImplSquare(x, array);
SecT233Field.AddExt(zz, array, zz);
}
// Token: 0x0600ABBC RID: 43964 RVA: 0x00252DF4 File Offset: 0x00250FF4
[Token(Token = "0x600ABBC")]
[Address(RVA = "0x7BBEF0", Offset = "0x7BAEF0", VA = "0x1807BBEF0")]
public static void SquareN(ulong[] x, int n, ulong[] z)
{
ulong[] array = Nat256.CreateExt64();
SecT239Field.Reduce(array, z);
if (n - 1 > 0)
{
SecT239Field.Reduce(array, z);
}
}
// Token: 0x0600ABBD RID: 43965 RVA: 0x00252E20 File Offset: 0x00251020
[Token(Token = "0x600ABBD")]
[Address(RVA = "0x7BBFD0", Offset = "0x7BAFD0", VA = "0x1807BBFD0")]
public static uint Trace(ulong[] x)
{
int length = x.Length;
ulong num = x[2];
throw new NullReferenceException();
}
// Token: 0x0600ABBE RID: 43966 RVA: 0x00252E44 File Offset: 0x00251044
[Token(Token = "0x600ABBE")]
[Address(RVA = "0x7BA500", Offset = "0x7B9500", VA = "0x1807BA500")]
protected static void ImplCompactExt(ulong[] zz)
{
int length = zz.Length;
ulong num = zz[1];
ulong num2 = zz[2];
ulong num3 = zz[3];
ulong num4 = zz[4];
ulong num5 = zz[5];
ulong num6 = zz[6];
ulong num7 = zz[7];
num = num2;
zz[1] = num;
zz[2] = num2;
zz[3] = num3;
zz[4] = num4;
zz[5] = num5;
zz[6] = num6;
zz[7] = num7;
}
// Token: 0x0600ABBF RID: 43967 RVA: 0x00252EE8 File Offset: 0x002510E8
[Token(Token = "0x600ABBF")]
[Address(RVA = "0x7BA750", Offset = "0x7B9750", VA = "0x1807BA750")]
protected static void ImplExpand(ulong[] x, ulong[] z)
{
int length = x.Length;
ulong num = x[0];
ulong num2 = x[1];
ulong num3 = x[2];
z[0] = num;
num = num2;
z[1] = num;
z[2] = num2;
z[3] = num3;
}
// Token: 0x0600ABC0 RID: 43968 RVA: 0x00252F40 File Offset: 0x00251140
[Token(Token = "0x600ABC0")]
[Address(RVA = "0x7BA8A0", Offset = "0x7B98A0", VA = "0x1807BA8A0")]
protected static void ImplMultiply(ulong[] x, ulong[] y, ulong[] zz)
{
ulong[] array = new ulong[4];
ulong[] array2 = new ulong[4];
SecT239Field.ImplExpand(x, array);
SecT239Field.ImplExpand(y, array2);
ulong num = array2[0];
ulong num2 = array[0];
int num3 = 0;
SecT239Field.ImplMulwAcc(num2, num, zz, num3);
ulong num4 = array2[1];
SecT239Field.ImplMulwAcc(array[1], num4, zz, 1);
ulong num5 = array2[2];
SecT239Field.ImplMulwAcc(array[2], num5, zz, 2);
ulong num6 = array2[3];
SecT239Field.ImplMulwAcc(array[3], num6, zz, 3);
int length = zz.Length;
int length2 = array.Length;
int length3 = array2.Length;
ulong num7 = array[1];
ulong num8 = array2[1];
uint num9;
SecT239Field.ImplMulwAcc(num7, num8, zz, (int)num9);
int length4 = array.Length;
int length5 = array2.Length;
ulong num10 = array[3];
ulong num11 = array2[2];
uint num12;
SecT239Field.ImplMulwAcc(num10, num11, zz, (int)num12);
int length6 = zz.Length;
uint num13;
num13 += (uint)(-2);
int length7 = array.Length;
ulong num14 = array[2];
int length8 = array2.Length;
ulong num15 = array2[2];
ulong num16 = array2[1];
uint num17;
SecT239Field.ImplMulwAcc(num14, num16, zz, (int)num17);
ulong[] array3 = new ulong[3];
int num18 = 0;
SecT239Field.ImplMulwAcc(num14, num15, array3, num18);
num15 = num16;
uint num19;
SecT239Field.ImplMulwAcc(num14, num15, array3, (int)num19);
int length9 = array3.Length;
ulong num20 = zz[3];
zz[3] = num20;
ulong num21 = zz[4];
zz[4] = num21;
SecT239Field.ImplCompactExt(zz);
}
// Token: 0x0600ABC1 RID: 43969 RVA: 0x002530E8 File Offset: 0x002512E8
[Token(Token = "0x600ABC1")]
[Address(RVA = "0x7BAEA0", Offset = "0x7B9EA0", VA = "0x1807BAEA0")]
protected static void ImplMulwAcc(ulong x, ulong y, ulong[] z, int zOff)
{
ulong[] array = new ulong[8];
array[1] = y;
int num = array.Length;
array[2] = (ulong)num;
int length = array.Length;
array[3] = (ulong)num;
num = length;
array[4] = (ulong)num;
int length2 = array.Length;
array[5] = (ulong)num;
num = length2;
array[6] = (ulong)num;
int length3 = array.Length;
array[7] = (ulong)num;
int num2 = zOff + 1;
}
// Token: 0x0600ABC2 RID: 43970 RVA: 0x00253160 File Offset: 0x00251360
[Token(Token = "0x600ABC2")]
[Address(RVA = "0x7BB210", Offset = "0x7BA210", VA = "0x1807BB210")]
protected static void ImplSquare(ulong[] x, ulong[] zz)
{
ulong num = x[0];
int num2 = 0;
Interleave.Expand64To128(num, zz, num2);
Interleave.Expand64To128(x[1], zz, 2);
ulong num3 = x[2];
Interleave.Expand64To128(num3, zz, 4);
ulong num4 = Interleave.Expand32to64((uint)num3);
zz[6] = num4;
uint num5 = Interleave.Expand16to32((uint)num3);
zz[7] = (ulong)num5;
}
// Token: 0x0600ABC3 RID: 43971 RVA: 0x002531C4 File Offset: 0x002513C4
[Token(Token = "0x600ABC3")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
public SecT239Field()
{
}
// Token: 0x04006DE9 RID: 28137
[Token(Token = "0x4006DE9")]
private const ulong M47 = 140737488355327UL;
// Token: 0x04006DEA RID: 28138
[Token(Token = "0x4006DEA")]
private const ulong M60 = 1152921504606846975UL;
}
}
@@ -0,0 +1,597 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B79 RID: 7033
[Token(Token = "0x2001B79")]
internal class SecT239FieldElement : AbstractF2mFieldElement
{
// Token: 0x0600ABC4 RID: 43972 RVA: 0x002531D8 File Offset: 0x002513D8
[Token(Token = "0x600ABC4")]
[Address(RVA = "0x7B9D10", Offset = "0x7B8D10", VA = "0x1807B9D10")]
public SecT239FieldElement(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600ABC4)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239FieldElement::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_30:
stloc:ArgumentException(var_3_3F, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecT239FieldElement"), ldstr:string("x")))
}
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: 0x0600ABC5 RID: 43973 RVA: 0x00253224 File Offset: 0x00251424
[Token(Token = "0x600ABC5")]
[Address(RVA = "0x7B9E30", Offset = "0x7B8E30", VA = "0x1807B9E30")]
public SecT239FieldElement()
{
ulong[] array = Nat256.Create64();
this.x = array;
}
// Token: 0x0600ABC6 RID: 43974 RVA: 0x00253248 File Offset: 0x00251448
[Token(Token = "0x600ABC6")]
[Address(RVA = "0x6FC310", Offset = "0x6FB310", VA = "0x1806FC310")]
protected internal SecT239FieldElement(ulong[] x)
{
this.x = x;
}
// Token: 0x17001B28 RID: 6952
// (get) Token: 0x0600ABC7 RID: 43975 RVA: 0x00253264 File Offset: 0x00251464
[Token(Token = "0x17001B28")]
public override bool IsOne
{
[Token(Token = "0x600ABC7")]
[Address(RVA = "0x7B9EA0", Offset = "0x7B8EA0", VA = "0x1807B9EA0", Slot = "17")]
get
{
return Nat256.IsOne64(this.x);
}
}
// Token: 0x17001B29 RID: 6953
// (get) Token: 0x0600ABC8 RID: 43976 RVA: 0x0025327C File Offset: 0x0025147C
[Token(Token = "0x17001B29")]
public override bool IsZero
{
[Token(Token = "0x600ABC8")]
[Address(RVA = "0x7B9EB0", Offset = "0x7B8EB0", VA = "0x1807B9EB0", Slot = "18")]
get
{
return Nat256.IsZero64(this.x);
}
}
// Token: 0x0600ABC9 RID: 43977 RVA: 0x00253294 File Offset: 0x00251494
[Token(Token = "0x600ABC9")]
[Address(RVA = "0x7B9C40", Offset = "0x7B8C40", VA = "0x1807B9C40", Slot = "24")]
public override bool TestBitZero()
{
ulong[] array = this.x;
throw new NullReferenceException();
}
// Token: 0x0600ABCA RID: 43978 RVA: 0x002532B0 File Offset: 0x002514B0
[Token(Token = "0x600ABCA")]
[Address(RVA = "0x7B9C80", Offset = "0x7B8C80", VA = "0x1807B9C80", Slot = "4")]
public override BigInteger ToBigInteger()
{
return Nat256.ToBigInteger64(this.x);
}
// Token: 0x17001B2A RID: 6954
// (get) Token: 0x0600ABCB RID: 43979 RVA: 0x002532C8 File Offset: 0x002514C8
[Token(Token = "0x17001B2A")]
public override string FieldName
{
[Token(Token = "0x600ABCB")]
[Address(RVA = "0x7B9E60", Offset = "0x7B8E60", VA = "0x1807B9E60", Slot = "5")]
get
{
return "SecT239Field";
}
}
// Token: 0x17001B2B RID: 6955
// (get) Token: 0x0600ABCC RID: 43980 RVA: 0x002532DC File Offset: 0x002514DC
[Token(Token = "0x17001B2B")]
public override int FieldSize
{
[Token(Token = "0x600ABCC")]
[Address(RVA = "0x7B9E90", Offset = "0x7B8E90", VA = "0x1807B9E90", Slot = "6")]
get
{
return 239;
}
}
// Token: 0x0600ABCD RID: 43981 RVA: 0x002532F0 File Offset: 0x002514F0
[Token(Token = "0x600ABCD")]
[Address(RVA = "0x7B90B0", Offset = "0x7B80B0", VA = "0x1807B90B0", Slot = "7")]
public override ECFieldElement Add(ECFieldElement b)
{
ulong[] array;
do
{
array = Nat256.Create64();
ulong[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecT239FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
new SecT239FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600ABCE RID: 43982 RVA: 0x00253338 File Offset: 0x00251538
[Token(Token = "0x600ABCE")]
[Address(RVA = "0x7B8F40", Offset = "0x7B7F40", VA = "0x1807B8F40", Slot = "8")]
public override ECFieldElement AddOne()
{
ulong[] array = Nat256.Create64();
ulong[] array2 = this.x;
ulong num = array2[0];
array[0] = num;
ulong num2 = array2[1];
array[1] = num2;
ulong num3 = array2[2];
array[2] = num3;
ulong num4 = array2[3];
array[3] = num4;
new SecT239FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600ABCF RID: 43983 RVA: 0x002533AC File Offset: 0x002515AC
[Token(Token = "0x600ABCF")]
[Address(RVA = "0x7B9C20", Offset = "0x7B8C20", VA = "0x1807B9C20", Slot = "9")]
public override ECFieldElement Subtract(ECFieldElement b)
{
/*
An exception occurred when decompiling this method (0600ABCF)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239FieldElement::Subtract(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT239FieldElement[exp:ECFieldElement](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: 0x0600ABD0 RID: 43984 RVA: 0x002533C0 File Offset: 0x002515C0
[Token(Token = "0x600ABD0")]
[Address(RVA = "0x7B9710", Offset = "0x7B8710", VA = "0x1807B9710", Slot = "10")]
public override ECFieldElement Multiply(ECFieldElement b)
{
ulong[] array;
do
{
array = Nat256.Create64();
ulong[] array2 = this.x;
if ("{il2cpp array field local3->}" == typeof(SecT239FieldElement).TypeHandle)
{
}
}
while (b == 0 || b == 0);
SecT239Field.Reduce(Nat256.CreateExt64(), array);
new SecT239FieldElement().x = array;
throw new NullReferenceException();
}
// Token: 0x0600ABD1 RID: 43985 RVA: 0x00253414 File Offset: 0x00251614
[Token(Token = "0x600ABD1")]
[Address(RVA = "0x7B9440", Offset = "0x7B8440", VA = "0x1807B9440", Slot = "19")]
public override ECFieldElement MultiplyMinusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
{
/*
An exception occurred when decompiling this method (0600ABD1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239FieldElement::MultiplyMinusProduct(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT239FieldElement[exp:ECFieldElement](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: 0x0600ABD2 RID: 43986 RVA: 0x00253428 File Offset: 0x00251628
[Token(Token = "0x600ABD2")]
[Address(RVA = "0x7B9460", Offset = "0x7B8460", VA = "0x1807B9460", Slot = "20")]
public override ECFieldElement MultiplyPlusProduct(ECFieldElement b, ECFieldElement x, ECFieldElement y)
{
do
{
ulong[] array = this.x;
}
while (b == 0 || b == 0 || x == 0 || x == 0 || y == 0 || y == 0);
ulong[] array2 = Nat256.CreateExt64();
ulong[] array3 = Nat256.CreateExt64();
SecT233Field.AddExt(array2, array3, array2);
ulong[] array4 = Nat256.CreateExt64();
SecT233Field.AddExt(array2, array4, array2);
ulong[] array5 = Nat256.Create64();
SecT239Field.Reduce(array2, array5);
new SecT239FieldElement().x = array5;
throw new NullReferenceException();
}
// Token: 0x0600ABD3 RID: 43987 RVA: 0x002534BC File Offset: 0x002516BC
[Token(Token = "0x600ABD3")]
[Address(RVA = "0x7B91D0", Offset = "0x7B81D0", VA = "0x1807B91D0", Slot = "11")]
public override ECFieldElement Divide(ECFieldElement b)
{
ECFieldElement ecfieldElement = b.Square();
BigInteger bigInteger = base.ToBigInteger();
throw new NullReferenceException();
}
// Token: 0x0600ABD4 RID: 43988 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600ABD4")]
[Address(RVA = "0x4A65C0", Offset = "0x4A55C0", VA = "0x1804A65C0", Slot = "12")]
public override ECFieldElement Negate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600ABD5 RID: 43989 RVA: 0x002534DC File Offset: 0x002516DC
[Token(Token = "0x600ABD5")]
[Address(RVA = "0x7B9B80", Offset = "0x7B8B80", VA = "0x1807B9B80", Slot = "13")]
public override ECFieldElement Square()
{
/*
An exception occurred when decompiling this method (0600ABD5)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239FieldElement::Square()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat256::Create64))
stloc:uint64[](var_2_0E, ldfld:uint64[](SecT239FieldElement::x, ldloc:SecT239FieldElement(this)))
stloc:uint64[](var_4_16, call:uint64[](Nat256::CreateExt64))
call:void(SecT233Field::ImplSquare, ldloc:uint64[](var_2_0E), ldloc:uint64[](var_4_16))
call:void(SecT239Field::Reduce, ldloc:uint64[](var_4_16), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT239FieldElement::x, newobj:SecT239FieldElement(SecT239FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600ABD6 RID: 43990 RVA: 0x0025351C File Offset: 0x0025171C
[Token(Token = "0x600ABD6")]
[Address(RVA = "0x7B98C0", Offset = "0x7B88C0", VA = "0x1807B98C0", Slot = "21")]
public override ECFieldElement SquareMinusProduct(ECFieldElement x, ECFieldElement y)
{
/*
An exception occurred when decompiling this method (0600ABD6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239FieldElement::SquareMinusProduct(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:BigInteger(var_0_06, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT239FieldElement[exp:ECFieldElement](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: 0x0600ABD7 RID: 43991 RVA: 0x00253530 File Offset: 0x00251730
[Token(Token = "0x600ABD7")]
[Address(RVA = "0x7B98E0", Offset = "0x7B88E0", VA = "0x1807B98E0", Slot = "22")]
public override ECFieldElement SquarePlusProduct(ECFieldElement x, ECFieldElement y)
{
do
{
ulong[] array = this.x;
}
while (x == 0 || x == 0 || y == 0 || y == 0);
ulong[] array2 = Nat256.CreateExt64();
ulong[] array3 = Nat256.CreateExt64();
SecT233Field.AddExt(array2, array3, array2);
ulong[] array4 = Nat256.CreateExt64();
SecT233Field.AddExt(array2, array4, array2);
ulong[] array5 = Nat256.Create64();
SecT239Field.Reduce(array2, array5);
new SecT239FieldElement().x = array5;
throw new NullReferenceException();
}
// Token: 0x0600ABD8 RID: 43992 RVA: 0x002535B8 File Offset: 0x002517B8
[Token(Token = "0x600ABD8")]
[Address(RVA = "0x7B9B00", Offset = "0x7B8B00", VA = "0x1807B9B00", Slot = "23")]
public override ECFieldElement SquarePow(int pow)
{
/*
An exception occurred when decompiling this method (0600ABD8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239FieldElement::SquarePow(System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat256::Create64))
call:void(SecT239Field::SquareN, ldfld:uint64[](SecT239FieldElement::x, ldloc:SecT239FieldElement(this)), ldloc:int32(pow), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT239FieldElement::x, newobj:SecT239FieldElement(SecT239FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600ABD9 RID: 43993 RVA: 0x002535E4 File Offset: 0x002517E4
[Token(Token = "0x600ABD9")]
[Address(RVA = "0x7B9C90", Offset = "0x7B8C90", VA = "0x1807B9C90", Slot = "28")]
public override int Trace()
{
ulong[] array = this.x;
int length = array.Length;
ulong num = array[2];
throw new NullReferenceException();
}
// Token: 0x0600ABDA RID: 43994 RVA: 0x0025360C File Offset: 0x0025180C
[Token(Token = "0x600ABDA")]
[Address(RVA = "0x7B93D0", Offset = "0x7B83D0", VA = "0x1807B93D0", Slot = "14")]
public override ECFieldElement Invert()
{
/*
An exception occurred when decompiling this method (0600ABDA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239FieldElement::Invert()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat256::Create64))
call:void(SecT239Field::Invert, ldfld:uint64[](SecT239FieldElement::x, ldloc:SecT239FieldElement(this)), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT239FieldElement::x, newobj:SecT239FieldElement(SecT239FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x0600ABDB RID: 43995 RVA: 0x00253638 File Offset: 0x00251838
[Token(Token = "0x600ABDB")]
[Address(RVA = "0x7B9850", Offset = "0x7B8850", VA = "0x1807B9850", Slot = "15")]
public override ECFieldElement Sqrt()
{
/*
An exception occurred when decompiling this method (0600ABDB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239FieldElement::Sqrt()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:uint64[](var_1_07, call:uint64[](Nat256::Create64))
call:void(SecT239Field::Sqrt, ldfld:uint64[](SecT239FieldElement::x, ldloc:SecT239FieldElement(this)), ldloc:uint64[](var_1_07))
stfld:uint64[](SecT239FieldElement::x, newobj:SecT239FieldElement(SecT239FieldElement::.ctor), ldloc:uint64[](var_1_07))
}
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: 0x17001B2C RID: 6956
// (get) Token: 0x0600ABDC RID: 43996 RVA: 0x00253664 File Offset: 0x00251864
[Token(Token = "0x17001B2C")]
public virtual int Representation
{
[Token(Token = "0x600ABDC")]
[Address(RVA = "0x4E86A0", Offset = "0x4E76A0", VA = "0x1804E86A0", Slot = "29")]
get
{
return 2;
}
}
// Token: 0x17001B2D RID: 6957
// (get) Token: 0x0600ABDD RID: 43997 RVA: 0x00253674 File Offset: 0x00251874
[Token(Token = "0x17001B2D")]
public virtual int M
{
[Token(Token = "0x600ABDD")]
[Address(RVA = "0x7B9E90", Offset = "0x7B8E90", VA = "0x1807B9E90", Slot = "30")]
get
{
return 239;
}
}
// Token: 0x17001B2E RID: 6958
// (get) Token: 0x0600ABDE RID: 43998 RVA: 0x00253688 File Offset: 0x00251888
[Token(Token = "0x17001B2E")]
public virtual int K1
{
[Token(Token = "0x600ABDE")]
[Address(RVA = "0x7B9EC0", Offset = "0x7B8EC0", VA = "0x1807B9EC0", Slot = "31")]
get
{
return 158;
}
}
// Token: 0x17001B2F RID: 6959
// (get) Token: 0x0600ABDF RID: 43999 RVA: 0x0025369C File Offset: 0x0025189C
[Token(Token = "0x17001B2F")]
public virtual int K2
{
[Token(Token = "0x600ABDF")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "32")]
get
{
return 0;
}
}
// Token: 0x17001B30 RID: 6960
// (get) Token: 0x0600ABE0 RID: 44000 RVA: 0x002536AC File Offset: 0x002518AC
[Token(Token = "0x17001B30")]
public virtual int K3
{
[Token(Token = "0x600ABE0")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "33")]
get
{
return 0;
}
}
// Token: 0x0600ABE1 RID: 44001 RVA: 0x002536BC File Offset: 0x002518BC
[Token(Token = "0x600ABE1")]
[Address(RVA = "0x7B9240", Offset = "0x7B8240", VA = "0x1807B9240", Slot = "0")]
public override bool Equals(object obj)
{
/*
An exception occurred when decompiling this method (0600ABE1)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239FieldElement::Equals(System.Object)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT239FieldElement[exp:ECFieldElement](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: 0x0600ABE2 RID: 44002 RVA: 0x002536D8 File Offset: 0x002518D8
[Token(Token = "0x600ABE2")]
[Address(RVA = "0x7B92D0", Offset = "0x7B82D0", VA = "0x1807B92D0", Slot = "25")]
public override bool Equals(ECFieldElement other)
{
/*
An exception occurred when decompiling this method (0600ABE2)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239FieldElement::Equals(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_04:
stloc:BigInteger(var_1_0C, call:BigInteger(ECFieldElement::ToBigInteger, ldloc:SecT239FieldElement[exp:ECFieldElement](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: 0x0600ABE3 RID: 44003 RVA: 0x002536F4 File Offset: 0x002518F4
[Token(Token = "0x600ABE3")]
[Address(RVA = "0x7B9220", Offset = "0x7B8220", VA = "0x1807B9220", Slot = "34")]
public virtual bool Equals(SecT239FieldElement other)
{
if (this != other)
{
if (other != 0)
{
ulong[] array = other.x;
return Nat256.Eq64(this.x, array);
}
}
return true;
}
// Token: 0x0600ABE4 RID: 44004 RVA: 0x00253720 File Offset: 0x00251920
[Token(Token = "0x600ABE4")]
[Address(RVA = "0x7B9360", Offset = "0x7B8360", VA = "0x1807B9360", Slot = "2")]
public override int GetHashCode()
{
ulong[] array = this.x;
int num = 0;
return Arrays.GetHashCode(array, num, 4);
}
// Token: 0x04006DEB RID: 28139
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DEB")]
protected internal readonly ulong[] x;
}
}
@@ -0,0 +1,408 @@
using System;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.Encoders;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B7A RID: 7034
[Token(Token = "0x2001B7A")]
internal class SecT239K1Curve : AbstractF2mCurve
{
// Token: 0x0600ABE5 RID: 44005 RVA: 0x00253740 File Offset: 0x00251940
[Token(Token = "0x600ABE5")]
[Address(RVA = "0x7BC710", Offset = "0x7BB710", VA = "0x1807BC710")]
public SecT239K1Curve()
{
int num = 0;
int num2;
int num3;
SecT239K1Point secT239K1Point = new SecT239K1Point(this, num2, num3, num != 0);
num3 = 0;
num2 = 0;
this.m_infinity = secT239K1Point;
int fieldSize = this.FieldSize;
this.m_a = fieldSize;
int fieldSize2 = this.FieldSize;
this.m_b = fieldSize2;
byte[] array = Hex.Decode("2000000000000000000000000000005A79FEC67CB6E91F1C1DA800E478A5");
BigInteger bigInteger = new BigInteger(1, array);
this.m_order = bigInteger;
BigInteger bigInteger2;
this.m_cofactor = bigInteger2;
this.m_coord = (int)((ulong)6L);
}
// Token: 0x0600ABE6 RID: 44006 RVA: 0x002537B8 File Offset: 0x002519B8
[Token(Token = "0x600ABE6")]
[Address(RVA = "0x7BC040", Offset = "0x7BB040", VA = "0x1807BC040", Slot = "12")]
protected override ECCurve CloneCurve()
{
/*
An exception occurred when decompiling this method (0600ABE6)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239K1Curve::CloneCurve()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_1_01, ldc.i4:int32(0))
stloc:SecT239K1Point(var_3_0F, newobj:SecT239K1Point(SecT239K1Point::.ctor, ldloc:SecT239K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_5), ldloc:int32[exp:ECFieldElement](var_4), ldloc:int32[exp:bool](var_1_01)))
stloc:int32(var_4, ldc.i4:int32(0))
stloc:int32(var_5, ldc.i4:int32(0))
stfld:SecT239K1Point(SecT239K1Curve::m_infinity, ldloc:SecT239K1Curve(var_0), ldloc:SecT239K1Point(var_3_0F))
stloc:int32(var_6_23, callvirtgetter:int32(SecT239K1Curve::get_FieldSize, ldloc:SecT239K1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_a, ldloc:SecT239K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_6_23))
stloc:int32(var_7_33, callvirtgetter:int32(SecT239K1Curve::get_FieldSize, ldloc:SecT239K1Curve(var_0)))
stfld:ECFieldElement(ECCurve::m_b, ldloc:SecT239K1Curve[exp:ECCurve](var_0), ldloc:int32[exp:ECFieldElement](var_7_33))
stloc:uint8[](var_8_47, call:uint8[](Hex::Decode, ldstr:string("2000000000000000000000000000005A79FEC67CB6E91F1C1DA800E478A5")))
stloc:BigInteger(var_9_51, newobj:BigInteger(BigInteger::.ctor, ldc.i4:int32(1), ldloc:uint8[](var_8_47)))
stfld:BigInteger(ECCurve::m_order, ldloc:SecT239K1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_9_51))
stfld:BigInteger(ECCurve::m_cofactor, ldloc:SecT239K1Curve[exp:ECCurve](var_0), ldloc:BigInteger(var_10))
stfld:int32(ECCurve::m_coord, ldloc:SecT239K1Curve[exp:ECCurve](var_0), conv.u8:uint64[exp:int32](ldc.i8:int64[exp:uint64](6)))
}
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: 0x0600ABE7 RID: 44007 RVA: 0x00253830 File Offset: 0x00251A30
[Token(Token = "0x600ABE7")]
[Address(RVA = "0x7BC700", Offset = "0x7BB700", VA = "0x1807BC700", Slot = "16")]
public override bool SupportsCoordinateSystem(int coord)
{
return coord == 6;
}
// Token: 0x0600ABE8 RID: 44008 RVA: 0x00253844 File Offset: 0x00251A44
[Token(Token = "0x600ABE8")]
[Address(RVA = "0x7BC430", Offset = "0x7BB430", VA = "0x1807BC430", Slot = "15")]
protected override ECMultiplier CreateDefaultMultiplier()
{
/*
An exception occurred when decompiling this method (0600ABE8)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Multiplier.ECMultiplier BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239K1Curve::CreateDefaultMultiplier()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:WTauNafMultiplier(var_0_05, newobj:WTauNafMultiplier(WTauNafMultiplier::.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.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: 0x17001B31 RID: 6961
// (get) Token: 0x0600ABE9 RID: 44009 RVA: 0x00253858 File Offset: 0x00251A58
[Token(Token = "0x17001B31")]
public override ECPoint Infinity
{
[Token(Token = "0x600ABE9")]
[Address(RVA = "0x417710", Offset = "0x416710", VA = "0x180417710", Slot = "22")]
get
{
/*
An exception occurred when decompiling this method (0600ABE9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239K1Curve::get_Infinity()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT239K1Point(var_0_06, ldfld:SecT239K1Point(SecT239K1Curve::m_infinity, ldloc:SecT239K1Curve(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: 0x17001B32 RID: 6962
// (get) Token: 0x0600ABEA RID: 44010 RVA: 0x0025386C File Offset: 0x00251A6C
[Token(Token = "0x17001B32")]
public override int FieldSize
{
[Token(Token = "0x600ABEA")]
[Address(RVA = "0x7B9E90", Offset = "0x7B8E90", VA = "0x1807B9E90", Slot = "4")]
get
{
return 239;
}
}
// Token: 0x0600ABEB RID: 44011 RVA: 0x00253880 File Offset: 0x00251A80
[Token(Token = "0x600ABEB")]
[Address(RVA = "0x7BC5B0", Offset = "0x7BB5B0", VA = "0x1807BC5B0", Slot = "5")]
public override ECFieldElement FromBigInteger(BigInteger x)
{
/*
An exception occurred when decompiling this method (0600ABEB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239K1Curve::FromBigInteger(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.BigInteger)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_2F:
stloc:ArgumentException(var_4_3E, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("value invalid for SecT239FieldElement"), ldstr:string("x")))
}
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: 0x0600ABEC RID: 44012 RVA: 0x002538CC File Offset: 0x00251ACC
[Token(Token = "0x600ABEC")]
[Address(RVA = "0x7BC520", Offset = "0x7BB520", VA = "0x1807BC520", Slot = "13")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600ABEC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239K1Curve::CreateRawPoint(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:SecT239K1Point(var_0_09, newobj:SecT239K1Point(SecT239K1Point::.ctor, ldloc:SecT239K1Curve[exp:ECCurve](this), ldloc:ECFieldElement(x), ldloc:ECFieldElement(y), ldloc:bool(withCompression)))
}
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: 0x0600ABED RID: 44013 RVA: 0x0000220F File Offset: 0x0000040F
[Token(Token = "0x600ABED")]
[Address(RVA = "0x7BC480", Offset = "0x7BB480", VA = "0x1807BC480", Slot = "14")]
protected internal override ECPoint CreateRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x17001B33 RID: 6963
// (get) Token: 0x0600ABEE RID: 44014 RVA: 0x002538E4 File Offset: 0x00251AE4
[Token(Token = "0x17001B33")]
public override bool IsKoblitz
{
[Token(Token = "0x600ABEE")]
[Address(RVA = "0x4246A0", Offset = "0x4236A0", VA = "0x1804246A0", Slot = "39")]
get
{
return true;
}
}
// Token: 0x17001B34 RID: 6964
// (get) Token: 0x0600ABEF RID: 44015 RVA: 0x002538F4 File Offset: 0x00251AF4
[Token(Token = "0x17001B34")]
public virtual int M
{
[Token(Token = "0x600ABEF")]
[Address(RVA = "0x7B9E90", Offset = "0x7B8E90", VA = "0x1807B9E90", Slot = "40")]
get
{
return 239;
}
}
// Token: 0x17001B35 RID: 6965
// (get) Token: 0x0600ABF0 RID: 44016 RVA: 0x00253908 File Offset: 0x00251B08
[Token(Token = "0x17001B35")]
public virtual bool IsTrinomial
{
[Token(Token = "0x600ABF0")]
[Address(RVA = "0x4246A0", Offset = "0x4236A0", VA = "0x1804246A0", Slot = "41")]
get
{
return true;
}
}
// Token: 0x17001B36 RID: 6966
// (get) Token: 0x0600ABF1 RID: 44017 RVA: 0x00253918 File Offset: 0x00251B18
[Token(Token = "0x17001B36")]
public virtual int K1
{
[Token(Token = "0x600ABF1")]
[Address(RVA = "0x7B9EC0", Offset = "0x7B8EC0", VA = "0x1807B9EC0", Slot = "42")]
get
{
return 158;
}
}
// Token: 0x17001B37 RID: 6967
// (get) Token: 0x0600ABF2 RID: 44018 RVA: 0x0025392C File Offset: 0x00251B2C
[Token(Token = "0x17001B37")]
public virtual int K2
{
[Token(Token = "0x600ABF2")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "43")]
get
{
return 0;
}
}
// Token: 0x17001B38 RID: 6968
// (get) Token: 0x0600ABF3 RID: 44019 RVA: 0x0025393C File Offset: 0x00251B3C
[Token(Token = "0x17001B38")]
public virtual int K3
{
[Token(Token = "0x600ABF3")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "44")]
get
{
return 0;
}
}
// Token: 0x0600ABF4 RID: 44020 RVA: 0x0025394C File Offset: 0x00251B4C
[Token(Token = "0x600ABF4")]
[Address(RVA = "0x7BC1D0", Offset = "0x7BB1D0", VA = "0x1807BC1D0", Slot = "29")]
public override ECLookupTable CreateCacheSafeLookupTable(ECPoint[] points, int off, int len)
{
ulong[] array;
int num;
for (;;)
{
array = new ulong[points];
num = 0;
if (len <= 0)
{
goto IL_49;
}
ECPoint ecpoint = points[off];
ECFieldElement x = ecpoint.m_x;
if (x != 0 && x != 0)
{
ECFieldElement y = ecpoint.m_y;
if (y != 0 && y != 0)
{
break;
}
}
}
num += 8;
IL_49:
SecT239K1Curve.SecT239K1LookupTable secT239K1LookupTable;
secT239K1LookupTable.m_outer = 0;
secT239K1LookupTable.m_table = array;
secT239K1LookupTable.m_size = len;
throw new NullReferenceException();
}
// Token: 0x04006DEC RID: 28140
[Token(Token = "0x4006DEC")]
private const int SECT239K1_DEFAULT_COORDS = 6;
// Token: 0x04006DED RID: 28141
[Token(Token = "0x4006DED")]
private const int SECT239K1_FE_LONGS = 4;
// Token: 0x04006DEE RID: 28142
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4006DEE")]
protected readonly SecT239K1Point m_infinity;
// Token: 0x02001B7B RID: 7035
[Token(Token = "0x2001B7B")]
private class SecT239K1LookupTable : ECLookupTable
{
// Token: 0x0600ABF5 RID: 44021 RVA: 0x002539C0 File Offset: 0x00251BC0
[Token(Token = "0x600ABF5")]
[Address(RVA = "0x6E7930", Offset = "0x6E6930", VA = "0x1806E7930")]
internal SecT239K1LookupTable(SecT239K1Curve outer, ulong[] table, int size)
{
this.m_outer = outer;
this.m_table = table;
this.m_size = size;
}
// Token: 0x17001B39 RID: 6969
// (get) Token: 0x0600ABF6 RID: 44022 RVA: 0x002539E8 File Offset: 0x00251BE8
[Token(Token = "0x17001B39")]
public virtual int Size
{
[Token(Token = "0x600ABF6")]
[Address(RVA = "0x470B70", Offset = "0x46FB70", VA = "0x180470B70", Slot = "6")]
get
{
return this.m_size;
}
}
// Token: 0x0600ABF7 RID: 44023 RVA: 0x002539FC File Offset: 0x00251BFC
[Token(Token = "0x600ABF7")]
[Address(RVA = "0x7BC880", Offset = "0x7BB880", VA = "0x1807BC880", Slot = "7")]
public virtual ECPoint Lookup(int index)
{
ulong[] array = Nat256.Create64();
ulong[] array2 = Nat256.Create64();
int num = 0;
int num2 = 0;
if (this.m_size > num2)
{
int num3 = 0;
ulong[] table = this.m_table;
ulong[] table2 = this.m_table;
num3++;
num += 8;
num2++;
}
SecT239K1Curve outer = this.m_outer;
new SecT239FieldElement().x = array;
new SecT239FieldElement().x = array2;
ECCurve eccurve = outer.CloneCurve();
throw new NullReferenceException();
}
// Token: 0x04006DEF RID: 28143
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006DEF")]
private readonly SecT239K1Curve m_outer;
// Token: 0x04006DF0 RID: 28144
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006DF0")]
private readonly ulong[] m_table;
// Token: 0x04006DF1 RID: 28145
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006DF1")]
private readonly int m_size;
}
}
}
@@ -0,0 +1,296 @@
using System;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec
{
// Token: 0x02001B7C RID: 7036
[Token(Token = "0x2001B7C")]
internal class SecT239K1Point : AbstractF2mPoint
{
// Token: 0x0600ABF8 RID: 44024 RVA: 0x00253A7C File Offset: 0x00251C7C
[Token(Token = "0x600ABF8")]
[Address(RVA = "0x7BDF80", Offset = "0x7BCF80", VA = "0x1807BDF80")]
public SecT239K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y)
{
}
// Token: 0x0600ABF9 RID: 44025 RVA: 0x00253A8C File Offset: 0x00251C8C
[Token(Token = "0x600ABF9")]
[Address(RVA = "0x7BDEC0", Offset = "0x7BCEC0", VA = "0x1807BDEC0")]
public SecT239K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, bool withCompression)
{
/*
An exception occurred when decompiling this method (0600ABF9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239K1Point::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECCurve,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11:
stloc:ArgumentException(var_3_1B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Exactly one of the field elements is null")))
}
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: 0x0600ABFA RID: 44026 RVA: 0x00253AB4 File Offset: 0x00251CB4
[Token(Token = "0x600ABFA")]
[Address(RVA = "0x6FE5B0", Offset = "0x6FD5B0", VA = "0x1806FE5B0")]
internal SecT239K1Point(ECCurve curve, ECFieldElement x, ECFieldElement y, ECFieldElement[] zs, bool withCompression)
{
}
// Token: 0x0600ABFB RID: 44027 RVA: 0x00253AC4 File Offset: 0x00251CC4
[Token(Token = "0x600ABFB")]
[Address(RVA = "0x7BD240", Offset = "0x7BC240", VA = "0x1807BD240", Slot = "7")]
protected override ECPoint Detach()
{
/*
An exception occurred when decompiling this method (0600ABFB)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.ECPoint BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Custom.Sec.SecT239K1Point::Detach()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:int32(var_0_06, callvirtgetter:int32(ECPoint::get_CurveCoordinateSystem, ldloc:SecT239K1Point[exp:ECPoint](this)))
stloc:ECFieldElement(var_1_0D, callvirtgetter:ECFieldElement(ECPoint::get_AffineXCoord, ldloc:SecT239K1Point[exp: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: 0x17001B3A RID: 6970
// (get) Token: 0x0600ABFC RID: 44028 RVA: 0x00253AE0 File Offset: 0x00251CE0
[Token(Token = "0x17001B3A")]
public override ECFieldElement YCoord
{
[Token(Token = "0x600ABFC")]
[Address(RVA = "0x7BE020", Offset = "0x7BD020", VA = "0x1807BE020", Slot = "12")]
get
{
ECFieldElement x = this.m_x;
ECFieldElement y = this.m_y;
if (!base.IsInfinity && !x.IsOne)
{
int fieldSize = y.FieldSize;
if (this.m_zs[0].BitLength == 0)
{
}
}
return y;
}
}
// Token: 0x17001B3B RID: 6971
// (get) Token: 0x0600ABFD RID: 44029 RVA: 0x00253B30 File Offset: 0x00251D30
[Token(Token = "0x17001B3B")]
protected internal override bool CompressionYTilde
{
[Token(Token = "0x600ABFD")]
[Address(RVA = "0x7BDFA0", Offset = "0x7BCFA0", VA = "0x1807BDFA0", Slot = "25")]
get
{
if (!this.m_x.IsOne)
{
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement;
ECFieldElement ecfieldElement2;
return ecfieldElement != ecfieldElement2;
}
throw new NullReferenceException();
}
}
// Token: 0x0600ABFE RID: 44030 RVA: 0x00253B64 File Offset: 0x00251D64
[Token(Token = "0x600ABFE")]
[Address(RVA = "0x7BCA50", Offset = "0x7BBA50", VA = "0x1807BCA50", Slot = "26")]
public override ECPoint Add(ECPoint b)
{
while (!base.IsInfinity && !b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
ECFieldElement x2 = b.m_x;
if (!x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
ECFieldElement[] zs2 = b.m_zs;
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
if (ecfieldElement.BitLength == 0)
{
ECFieldElement ecfieldElement3 = x2.Subtract(ecfieldElement);
ECFieldElement ecfieldElement4 = y2.Subtract(ecfieldElement);
}
if (ecfieldElement2.BitLength != 0)
{
continue;
}
ECFieldElement ecfieldElement5 = x.Subtract(ecfieldElement2);
int fieldSize = y.Subtract(ecfieldElement2).FieldSize;
int fieldSize2 = ecfieldElement5.FieldSize;
if (fieldSize2 == 0)
{
if (!x2.IsOne)
{
sbyte b3;
sbyte b2 = b3;
TypeCode typeCode = b2.GetTypeCode();
int fieldSize3 = y.FieldSize;
}
bool flag2 = this.IsNormalized();
ushort num;
TypeCode typeCode2 = num.GetTypeCode();
ushort num2;
TypeCode typeCode3 = num2.GetTypeCode().GetTypeCode();
short num3;
TypeCode typeCode4 = num3.GetTypeCode();
sbyte b4;
TypeCode typeCode5 = b4.GetTypeCode().GetTypeCode();
byte b5;
TypeCode typeCode6 = b5.GetTypeCode();
BigInteger one = BigInteger.One;
int num4 = flag.CompareTo(one);
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
ECPoint ecpoint;
if (ecpoint == 0)
{
break;
}
}
if (!x2.IsOne)
{
bool compressionYTilde = b.CompressionYTilde;
break;
}
break;
}
return b;
}
// Token: 0x0600ABFF RID: 44031 RVA: 0x00253CF4 File Offset: 0x00251EF4
[Token(Token = "0x600ABFF")]
[Address(RVA = "0x7BDA50", Offset = "0x7BCA50", VA = "0x1807BDA50", Slot = "30")]
public override ECPoint Twice()
{
if (!base.IsInfinity)
{
bool flag = this.SatisfiesOrder();
if (!this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
int bitLength = ecfieldElement.BitLength;
if (bitLength != 0)
{
int fieldSize = y.Negate().FieldSize;
}
ECFieldElement ecfieldElement2 = ecfieldElement.Negate();
int fieldSize2 = y.FieldSize;
if (bitLength != 0)
{
}
sbyte b2;
sbyte b = b2;
int fieldSize3 = y.FieldSize;
ECFieldElement ecfieldElement3 = ecfieldElement2.Negate();
ushort num;
TypeCode typeCode = num.GetTypeCode().GetTypeCode();
sbyte b3;
TypeCode typeCode2 = b3.GetTypeCode().GetTypeCode().GetTypeCode();
(new ECFieldElement[1])[0] = b;
bool withCompression = this.m_withCompression;
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600AC00 RID: 44032 RVA: 0x00253DBC File Offset: 0x00251FBC
[Token(Token = "0x600AC00")]
[Address(RVA = "0x7BD490", Offset = "0x7BC490", VA = "0x1807BD490", Slot = "32")]
public override ECPoint TwicePlus(ECPoint b)
{
if (!base.IsInfinity)
{
if (!b.IsInfinity)
{
bool flag = this.SatisfiesOrder();
ECFieldElement x = this.m_x;
if (x.IsOne)
{
return b;
}
ECFieldElement[] zs = b.m_zs;
ECFieldElement x2 = b.m_x;
ECFieldElement ecfieldElement = zs[0];
if (!x2.IsOne && ecfieldElement.BitLength != 0)
{
ECFieldElement[] zs2 = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement2 = zs2[0];
ECFieldElement y2 = b.m_y;
ECFieldElement ecfieldElement3 = x.Negate();
ECFieldElement ecfieldElement4 = y.Negate();
ECFieldElement ecfieldElement5 = ecfieldElement2.Negate();
ECFieldElement ecfieldElement6 = y.Subtract(ecfieldElement2);
int fieldSize = ecfieldElement4.FieldSize;
ECFieldElement ecfieldElement7;
int fieldSize2 = ecfieldElement7.Subtract(ecfieldElement5).FieldSize;
int fieldSize3 = x2.Subtract(ecfieldElement5).FieldSize;
decimal num;
TypeCode typeCode = num.GetTypeCode();
ECFieldElement[] array = new ECFieldElement[1];
throw new ArrayTypeMismatchException();
}
}
throw new NullReferenceException();
}
return b;
}
// Token: 0x0600AC01 RID: 44033 RVA: 0x00253ED8 File Offset: 0x002520D8
[Token(Token = "0x600AC01")]
[Address(RVA = "0x7BD2E0", Offset = "0x7BC2E0", VA = "0x1807BD2E0", Slot = "28")]
public override ECPoint Negate()
{
if (!base.IsInfinity && !this.m_x.IsOne)
{
ECFieldElement[] zs = this.m_zs;
ECFieldElement y = this.m_y;
ECFieldElement ecfieldElement = zs[0];
bool flag = this.SatisfiesOrder();
int fieldSize = y.FieldSize;
ECFieldElement[] array = new ECFieldElement[1];
if (ecfieldElement != 0)
{
}
array[0] = ecfieldElement;
bool withCompression = this.m_withCompression;
}
throw new IndexOutOfRangeException();
}
}
}

Some files were not shown because too many files have changed in this diff Show More