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,1560 @@
using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization.Formatters.Binary;
using System.Threading;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc7748;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032
{
// Token: 0x02001AE8 RID: 6888
[Token(Token = "0x2001AE8")]
public abstract class Ed25519
{
// Token: 0x0600A568 RID: 42344 RVA: 0x00233188 File Offset: 0x00231388
[Token(Token = "0x600A568")]
[Address(RVA = "0x7312E0", Offset = "0x7302E0", VA = "0x1807312E0")]
private static byte[] CalculateS(byte[] r, byte[] k, byte[] s)
{
uint[] array = new uint[16];
int num = 0;
Ed25519.DecodeScalar(r, num, array);
uint[] array2 = new uint[8];
int num2 = 0;
Ed25519.DecodeScalar(k, num2, array2);
uint[] array3 = new uint[8];
int num3 = 0;
Ed25519.DecodeScalar(s, num3, array3);
uint num4 = Nat256.MulAddTo(array2, array3, array);
byte[] array4 = new byte[64];
int num5 = 0;
int length = array.Length;
if (num5 < length)
{
uint num6 = array[num5];
num5++;
}
return Ed25519.ReduceScalar(array4);
}
// Token: 0x0600A569 RID: 42345 RVA: 0x00233210 File Offset: 0x00231410
[Token(Token = "0x600A569")]
[Address(RVA = "0x731480", Offset = "0x730480", VA = "0x180731480")]
private static bool CheckContextVar(byte[] ctx, byte phflag)
{
if (ctx == 0)
{
bool flag;
return flag;
}
return ctx.Length < 256;
}
// Token: 0x0600A56A RID: 42346 RVA: 0x00233230 File Offset: 0x00231430
[Token(Token = "0x600A56A")]
[Address(RVA = "0x7314A0", Offset = "0x7304A0", VA = "0x1807314A0")]
private static bool CheckPointVar(byte[] p)
{
uint[] array = new uint[8];
int num = 0;
int num2 = 0;
ulong num3;
Ed25519.Decode32(p, num2, array, num, (int)num3);
uint[] p2 = Ed25519.P;
return !Nat256.Gte(array, p2);
}
// Token: 0x0600A56B RID: 42347 RVA: 0x0023326C File Offset: 0x0023146C
[Token(Token = "0x600A56B")]
[Address(RVA = "0x731570", Offset = "0x730570", VA = "0x180731570")]
private static bool CheckScalarVar(byte[] s)
{
uint[] array = new uint[8];
int num = 0;
Ed25519.DecodeScalar(s, num, array);
uint[] l = Ed25519.L;
return !Nat256.Gte(array, l);
}
// Token: 0x0600A56C RID: 42348 RVA: 0x0023329C File Offset: 0x0023149C
[Token(Token = "0x600A56C")]
[Address(RVA = "0x731610", Offset = "0x730610", VA = "0x180731610")]
private static IDigest CreateDigest()
{
/*
An exception occurred when decompiling this method (0600A56C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::CreateDigest()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha512Digest(var_0_05, newobj:Sha512Digest(Sha512Digest::.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: 0x0600A56D RID: 42349 RVA: 0x002332B0 File Offset: 0x002314B0
[Token(Token = "0x600A56D")]
[Address(RVA = "0x731660", Offset = "0x730660", VA = "0x180731660")]
public static IDigest CreatePrehash()
{
/*
An exception occurred when decompiling this method (0600A56D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::CreatePrehash()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:Sha512Digest(var_0_05, newobj:Sha512Digest(Sha512Digest::.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: 0x0600A56E RID: 42350 RVA: 0x002332C4 File Offset: 0x002314C4
[Token(Token = "0x600A56E")]
[Address(RVA = "0x7316E0", Offset = "0x7306E0", VA = "0x1807316E0")]
private static uint Decode24(byte[] bs, int off)
{
int length = bs.Length;
int num = off + 1;
throw new NullReferenceException();
}
// Token: 0x0600A56F RID: 42351 RVA: 0x002332E4 File Offset: 0x002314E4
[Token(Token = "0x600A56F")]
[Address(RVA = "0x45D6B0", Offset = "0x45C6B0", VA = "0x18045D6B0")]
private static uint Decode32(byte[] bs, int off)
{
int length = bs.Length;
int num = off + 1;
throw new NullReferenceException();
}
// Token: 0x0600A570 RID: 42352 RVA: 0x00233304 File Offset: 0x00231504
[Token(Token = "0x600A570")]
[Address(RVA = "0x731770", Offset = "0x730770", VA = "0x180731770")]
private static void Decode32(byte[] bs, int bsOff, uint[] n, int nOff, int nLen)
{
}
// Token: 0x0600A571 RID: 42353 RVA: 0x00233318 File Offset: 0x00231518
[Token(Token = "0x600A571")]
[Address(RVA = "0x731840", Offset = "0x730840", VA = "0x180731840")]
private static bool DecodePointVar(byte[] p, int pOff, bool negate, Ed25519.PointExt r)
{
byte[] array = Arrays.CopyOfRange(p, pOff, negate ? 1 : 0);
if (Ed25519.CheckPointVar(array))
{
byte b = array[3];
array[3] = b;
int[] y = r.y;
int num = 0;
X25519Field.Decode(array, num, y);
int[] array2 = new int[10];
int[] array3 = new int[10];
X25519Field.Sqr(r.y, array2);
X25519Field.Mul(Ed25519.C_d, array2, array3);
int[] x = r.x;
bool flag = X25519Field.SqrtRatioVar(array2, array3, x);
if (flag)
{
X25519Field.Normalize(r.x);
if (!X25519Field.IsZeroVar(r.x))
{
int[] x2 = r.x;
int num2 = x2[0];
if (num2 != (negate ? 1 : 0))
{
int num3 = 0;
int num4 = x2[num3];
num3++;
x2[0] = num4;
}
Ed25519.PointExtendXY(r);
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A572 RID: 42354 RVA: 0x00233404 File Offset: 0x00231604
[Token(Token = "0x600A572")]
[Address(RVA = "0x731BB0", Offset = "0x730BB0", VA = "0x180731BB0")]
private static void DecodeScalar(byte[] k, int kOff, uint[] n)
{
int num = 0;
ulong num2;
Ed25519.Decode32(k, kOff, n, num, (int)num2);
}
// Token: 0x0600A573 RID: 42355 RVA: 0x00233420 File Offset: 0x00231620
[Token(Token = "0x600A573")]
[Address(RVA = "0x731C40", Offset = "0x730C40", VA = "0x180731C40")]
private static void Dom2(IDigest d, byte phflag, byte[] ctx)
{
if (ctx != 0)
{
int length = Ed25519.Dom2Prefix.Length;
int length2 = ctx.Length;
}
}
// Token: 0x0600A574 RID: 42356 RVA: 0x0023344C File Offset: 0x0023164C
[Token(Token = "0x600A574")]
[Address(RVA = "0x731D60", Offset = "0x730D60", VA = "0x180731D60")]
private static void Encode24(uint n, byte[] bs, int off)
{
int num = off + 1;
}
// Token: 0x0600A575 RID: 42357 RVA: 0x00233464 File Offset: 0x00231664
[Token(Token = "0x600A575")]
[Address(RVA = "0x45E270", Offset = "0x45D270", VA = "0x18045E270")]
private static void Encode32(uint n, byte[] bs, int off)
{
int num = off + 1;
}
// Token: 0x0600A576 RID: 42358 RVA: 0x0023347C File Offset: 0x0023167C
[Token(Token = "0x600A576")]
[Address(RVA = "0x731DE0", Offset = "0x730DE0", VA = "0x180731DE0")]
private static void Encode56(ulong n, byte[] bs, int off)
{
Ed25519.Encode32((uint)n, bs, off);
bs[0] = (byte)n;
}
// Token: 0x0600A577 RID: 42359 RVA: 0x002334A0 File Offset: 0x002316A0
[Token(Token = "0x600A577")]
[Address(RVA = "0x731ED0", Offset = "0x730ED0", VA = "0x180731ED0")]
private static void EncodePoint(Ed25519.PointAccum p, byte[] r, int rOff)
{
int[] array = new int[10];
int[] array2 = new int[10];
X25519Field.Inv(p.z, array2);
X25519Field.Mul(p.x, array2, array);
X25519Field.Mul(p.y, array2, array2);
X25519Field.Normalize(array);
X25519Field.Normalize(array2);
X25519Field.Encode(array2, r, rOff);
int num = array[0];
}
// Token: 0x0600A578 RID: 42360 RVA: 0x00233508 File Offset: 0x00231708
[Token(Token = "0x600A578")]
[Address(RVA = "0x732060", Offset = "0x731060", VA = "0x180732060")]
public static void GeneratePrivateKey(SecureRandom random, byte[] k)
{
((IEditableObject)random).BeginEdit();
}
// Token: 0x0600A579 RID: 42361 RVA: 0x00233524 File Offset: 0x00231724
[Token(Token = "0x600A579")]
[Address(RVA = "0x732090", Offset = "0x731090", VA = "0x180732090")]
public static void GeneratePublicKey(byte[] sk, int skOff, byte[] pk, int pkOff)
{
byte[] array = new byte[new Sha512Digest()];
int secretKeySize = Ed25519.SecretKeySize;
byte[] array2 = new byte[32];
int num = 0;
Ed25519.PruneScalar(array, num, array2);
Ed25519.ScalarMultBaseEncoded(array2, pk, pkOff);
}
// Token: 0x0600A57A RID: 42362 RVA: 0x00233564 File Offset: 0x00231764
[Token(Token = "0x600A57A")]
[Address(RVA = "0x732200", Offset = "0x731200", VA = "0x180732200")]
private static sbyte[] GetWnaf(uint[] n, int width)
{
uint[] array = new uint[16];
int num = 0;
int num2 = array.Length;
num2 += -2;
uint num3;
array[0] = num3;
array[0] = num3;
sbyte[] array2 = new sbyte[256];
int length = array.Length;
if (num < length)
{
uint num4 = array[num];
if (num < 16)
{
if (num4 != (uint)num)
{
num4 += (uint)num;
num3 = num4;
num4 += num4;
num3 -= num4;
}
uint num5;
num += (int)num5;
}
num++;
num += 16;
}
return array2;
}
// Token: 0x0600A57B RID: 42363 RVA: 0x002335F4 File Offset: 0x002317F4
[Token(Token = "0x600A57B")]
[Address(RVA = "0x732660", Offset = "0x731660", VA = "0x180732660")]
private static void ImplSign(IDigest d, byte[] h, byte[] s, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
{
byte[] array = Ed25519.ReduceScalar(h);
byte[] array2 = new byte[32];
int num = 0;
Ed25519.ScalarMultBaseEncoded(array, array2, num);
int num2 = 0;
byte[] array3 = Ed25519.ReduceScalar(h);
uint[] array4 = new uint[16];
int num3 = 0;
Ed25519.DecodeScalar(array, num3, array4);
uint[] array5 = new uint[8];
int num4 = 0;
Ed25519.DecodeScalar(array3, num4, array5);
uint[] array6 = new uint[8];
int num5 = 0;
Ed25519.DecodeScalar(s, num5, array6);
uint num6 = Nat256.MulAddTo(array5, array6, array4);
byte[] array7 = new byte[64];
int length = array4.Length;
if (num2 < length)
{
uint num7 = array4[num2];
num2++;
}
byte[] array8 = Ed25519.ReduceScalar(array7);
}
// Token: 0x0600A57C RID: 42364 RVA: 0x002336B0 File Offset: 0x002318B0
[Token(Token = "0x600A57C")]
[Address(RVA = "0x732400", Offset = "0x731400", VA = "0x180732400")]
private static void ImplSign(byte[] sk, int skOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
{
/*
An exception occurred when decompiling this method (0600A57C)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::ImplSign(System.Byte[],System.Int32,System.Byte[],System.Byte,System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_53:
stloc:ArgumentException(var_9_5D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ctx")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(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: 0x0600A57D RID: 42365 RVA: 0x0023371C File Offset: 0x0023191C
[Token(Token = "0x600A57D")]
[Address(RVA = "0x732A40", Offset = "0x731A40", VA = "0x180732A40")]
private static void ImplSign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
{
byte[] array = new byte[new Sha512Digest()];
int secretKeySize = Ed25519.SecretKeySize;
byte[] array2 = new byte[0];
int num = 0;
Ed25519.PruneScalar(array, num, array2);
}
// Token: 0x0600A57E RID: 42366 RVA: 0x00233764 File Offset: 0x00231964
[Token(Token = "0x600A57E")]
[Address(RVA = "0x732C90", Offset = "0x731C90", VA = "0x180732C90")]
private static bool ImplVerify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen)
{
/*
An exception occurred when decompiling this method (0600A57E)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::ImplVerify(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],System.Byte,System.Byte[],System.Int32,System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_D8:
stloc:ArgumentException(var_23_E2, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ctx")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A57F RID: 42367 RVA: 0x00233854 File Offset: 0x00231A54
[Token(Token = "0x600A57F")]
[Address(RVA = "0x733740", Offset = "0x732740", VA = "0x180733740")]
private static void PointAddVar(bool negate, Ed25519.PointExt p, Ed25519.PointAccum r)
{
int[] array = new int[10];
int[] array2 = new int[10];
int[] array3 = new int[10];
int[] array4 = new int[10];
int[] u = r.u;
int[] array5 = new int[10];
int[] array6 = new int[10];
int[] v = r.v;
if (!negate)
{
}
int[] x = r.x;
X25519Field.Apm(r.y, x, array2, array);
int[] x2 = p.x;
X25519Field.Apm(p.y, x2, array3, array4);
X25519Field.Mul(array, array3, array);
X25519Field.Mul(array2, array4, array2);
int[] v2 = r.v;
X25519Field.Mul(r.u, v2, array3);
int[] t = p.t;
X25519Field.Mul(array3, t, array3);
int[] c_d = Ed25519.C_d2;
X25519Field.Mul(array3, c_d, array3);
int[] z = p.z;
X25519Field.Mul(r.z, z, array4);
X25519Field.Add(array4, array4, array4);
X25519Field.Apm(array2, array, v, u);
X25519Field.Apm(array4, array3, array5, array6);
X25519Field.Carry(array5);
int[] x3 = r.x;
X25519Field.Mul(u, array5, x3);
int[] y = r.y;
X25519Field.Mul(array6, v, y);
int[] z2 = r.z;
X25519Field.Mul(array5, array6, z2);
}
// Token: 0x0600A580 RID: 42368 RVA: 0x0023399C File Offset: 0x00231B9C
[Token(Token = "0x600A580")]
[Address(RVA = "0x733340", Offset = "0x732340", VA = "0x180733340")]
private static void PointAddVar(bool negate, Ed25519.PointExt p, Ed25519.PointExt q, Ed25519.PointExt r)
{
int[] array = new int[10];
int[] array2 = new int[10];
int[] array3 = new int[10];
int[] array4 = new int[10];
int[] array5 = new int[10];
int[] array6 = new int[10];
int[] array7 = new int[10];
int[] array8 = new int[10];
if (!negate)
{
}
int[] x = p.x;
int[] y = p.y;
X25519Field.Apm(y, x, array2, array);
X25519Field.Apm(y, x, array3, array4);
X25519Field.Mul(array, array3, array);
X25519Field.Mul(array2, array4, array2);
X25519Field.Mul(p.t, array4, array3);
int[] c_d = Ed25519.C_d2;
X25519Field.Mul(array3, c_d, array3);
X25519Field.Mul(p.z, c_d, array4);
X25519Field.Add(array4, array4, array4);
X25519Field.Apm(array2, array, array8, array5);
X25519Field.Apm(array4, array3, array6, array7);
X25519Field.Carry(array6);
int[] x2 = r.x;
X25519Field.Mul(array5, array6, x2);
int[] y2 = r.y;
X25519Field.Mul(array7, array8, y2);
int[] z = r.z;
X25519Field.Mul(array6, array7, z);
int[] t = r.t;
X25519Field.Mul(array5, array8, t);
}
// Token: 0x0600A581 RID: 42369 RVA: 0x00233ACC File Offset: 0x00231CCC
[Token(Token = "0x600A581")]
[Address(RVA = "0x7330E0", Offset = "0x7320E0", VA = "0x1807330E0")]
private static void PointAddPrecomp(Ed25519.PointPrecomp p, Ed25519.PointAccum r)
{
int[] array = new int[10];
int[] array2 = new int[10];
int[] array3 = new int[10];
int[] u = r.u;
int[] array4 = new int[10];
int[] array5 = new int[10];
int[] x = r.x;
int[] v = r.v;
X25519Field.Apm(r.y, x, array2, array);
int[] ymx_h = p.ymx_h;
X25519Field.Mul(array, ymx_h, array);
int[] ypx_h = p.ypx_h;
X25519Field.Mul(array2, ypx_h, array2);
int[] v2 = r.v;
X25519Field.Mul(r.u, v2, array3);
int[] xyd = p.xyd;
X25519Field.Mul(array3, xyd, array3);
X25519Field.Apm(array2, array, v, u);
X25519Field.Apm(r.z, array3, array5, array4);
X25519Field.Carry(array5);
int[] x2 = r.x;
X25519Field.Mul(u, array4, x2);
int[] y = r.y;
X25519Field.Mul(array5, v, y);
int[] z = r.z;
X25519Field.Mul(array4, array5, z);
}
// Token: 0x0600A582 RID: 42370 RVA: 0x00233BD4 File Offset: 0x00231DD4
[Token(Token = "0x600A582")]
[Address(RVA = "0x733AF0", Offset = "0x732AF0", VA = "0x180733AF0")]
private static Ed25519.PointExt PointCopy(Ed25519.PointAccum p)
{
Ed25519.PointExt pointExt = new Ed25519.PointExt();
int[] x = p.x;
int[] x2 = pointExt.x;
int num = 0;
int num2 = x[num];
num++;
x2[0] = num2;
int[] y = pointExt.y;
int num3 = p.y[num];
num++;
y[0] = num3;
int[] z = pointExt.z;
int num4 = p.z[num];
num++;
z[0] = num4;
int[] t = pointExt.t;
int[] v = p.v;
X25519Field.Mul(p.u, v, t);
return pointExt;
}
// Token: 0x0600A583 RID: 42371 RVA: 0x00233C7C File Offset: 0x00231E7C
[Token(Token = "0x600A583")]
[Address(RVA = "0x733CC0", Offset = "0x732CC0", VA = "0x180733CC0")]
private static Ed25519.PointExt PointCopy(Ed25519.PointExt p)
{
Ed25519.PointExt pointExt = new Ed25519.PointExt();
int[] x = p.x;
int[] x2 = pointExt.x;
int num = 0;
int num2 = x[num];
num++;
x2[0] = num2;
int[] y = pointExt.y;
int num3 = p.y[num];
num++;
y[0] = num3;
int[] z = pointExt.z;
int num4 = p.z[num];
num++;
z[0] = num4;
int[] t = pointExt.t;
int num5 = p.t[num];
num++;
t[0] = num5;
return pointExt;
}
// Token: 0x0600A584 RID: 42372 RVA: 0x00233D28 File Offset: 0x00231F28
[Token(Token = "0x600A584")]
[Address(RVA = "0x733EE0", Offset = "0x732EE0", VA = "0x180733EE0")]
private static void PointDouble(Ed25519.PointAccum r)
{
int[] array = new int[10];
int[] array2 = new int[10];
int[] array3 = new int[10];
int[] u = r.u;
int[] array4 = new int[10];
int[] array5 = new int[10];
int[] x = r.x;
int[] v = r.v;
X25519Field.Sqr(x, array);
X25519Field.Sqr(r.y, array2);
X25519Field.Sqr(r.z, array3);
X25519Field.Add(array3, array3, array3);
X25519Field.Apm(array, array2, v, array5);
int[] y = r.y;
X25519Field.Add(r.x, y, u);
X25519Field.Sqr(u, u);
X25519Field.Sub(v, u, u);
X25519Field.Add(array3, array5, array4);
X25519Field.Carry(array4);
int[] x2 = r.x;
X25519Field.Mul(u, array4, x2);
int[] y2 = r.y;
X25519Field.Mul(array5, v, y2);
int[] z = r.z;
X25519Field.Mul(array4, array5, z);
}
// Token: 0x0600A585 RID: 42373 RVA: 0x00233E20 File Offset: 0x00232020
[Token(Token = "0x600A585")]
[Address(RVA = "0x734140", Offset = "0x733140", VA = "0x180734140")]
private static void PointExtendXY(Ed25519.PointAccum p)
{
int[] z = p.z;
int num = 0;
z[0] = (int)((uint)1);
z[0] = num;
int[] u = p.u;
int num2 = p.x[num];
num++;
u[0] = num2;
int[] v = p.v;
int num3 = p.y[num];
num++;
v[0] = num3;
}
// Token: 0x0600A586 RID: 42374 RVA: 0x00233E94 File Offset: 0x00232094
[Token(Token = "0x600A586")]
[Address(RVA = "0x7342B0", Offset = "0x7332B0", VA = "0x1807342B0")]
private static void PointExtendXY(Ed25519.PointExt p)
{
int[] z = p.z;
int num = 0;
z[0] = (int)((uint)1);
z[0] = num;
int[] t = p.t;
int[] y = p.y;
X25519Field.Mul(p.x, y, t);
}
// Token: 0x0600A587 RID: 42375 RVA: 0x00233EDC File Offset: 0x002320DC
[Token(Token = "0x600A587")]
[Address(RVA = "0x734370", Offset = "0x733370", VA = "0x180734370")]
private static void PointLookup(int block, int index, Ed25519.PointPrecomp p)
{
long num = (long)(block * (int)((uint)240));
int num2 = 0;
int[] ypx_h = p.ypx_h;
int[] array = Ed25519.precompBase;
uint num3;
Nat.CMov((int)num3, num2, array, (int)num, ypx_h, num2);
int[] ymx_h = p.ymx_h;
int[] array2 = Ed25519.precompBase;
uint num4;
Nat.CMov((int)num4, num2, array2, (int)num, ymx_h, num2);
int[] xyd = p.xyd;
int[] array3 = Ed25519.precompBase;
uint num5;
Nat.CMov((int)num5, num2, array3, (int)num, xyd, num2);
num2++;
}
// Token: 0x0600A588 RID: 42376 RVA: 0x00233F54 File Offset: 0x00232154
[Token(Token = "0x600A588")]
[Address(RVA = "0x7344D0", Offset = "0x7334D0", VA = "0x1807344D0")]
private static Ed25519.PointExt[] PointPrecompVar(Ed25519.PointExt p, int count)
{
Ed25519.PointExt pointExt = new Ed25519.PointExt();
Ed25519.PointAddVar(false, p, p, pointExt);
Ed25519.PointExt[] array = new Ed25519.PointExt[count];
Ed25519.PointExt pointExt2 = Ed25519.PointCopy(p);
if (pointExt2 != 0)
{
}
array[0] = pointExt2;
if (count > 1)
{
Ed25519.PointExt pointExt3 = array[pointExt2];
Ed25519.PointExt pointExt4 = new Ed25519.PointExt();
if (pointExt4 != 0)
{
}
array[0] = pointExt4;
Ed25519.PointAddVar(false, pointExt3, pointExt, pointExt4);
}
return array;
}
// Token: 0x0600A589 RID: 42377 RVA: 0x00233FC0 File Offset: 0x002321C0
[Token(Token = "0x600A589")]
[Address(RVA = "0x734850", Offset = "0x733850", VA = "0x180734850")]
private static void PointSetNeutral(Ed25519.PointAccum p)
{
int[] x = p.x;
int num = 0;
num++;
x[0] = num;
int[] y = p.y;
y[0] = (int)((uint)1);
y[0] = num;
int[] z = p.z;
z[0] = (int)((uint)1);
z[0] = num;
int[] u = p.u;
num++;
u[0] = num;
int[] v = p.v;
v[0] = (int)((uint)1);
v[0] = num;
}
// Token: 0x0600A58A RID: 42378 RVA: 0x00234048 File Offset: 0x00232248
[Token(Token = "0x600A58A")]
[Address(RVA = "0x7346D0", Offset = "0x7336D0", VA = "0x1807346D0")]
private static void PointSetNeutral(Ed25519.PointExt p)
{
int[] x = p.x;
int num = 0;
num++;
x[0] = num;
int[] y = p.y;
y[0] = (int)((uint)1);
y[0] = num;
int[] z = p.z;
z[0] = (int)((uint)1);
z[0] = num;
int[] t = p.t;
num++;
t[0] = num;
}
// Token: 0x0600A58B RID: 42379 RVA: 0x002340B8 File Offset: 0x002322B8
[Token(Token = "0x600A58B")]
[Address(RVA = "0x734A30", Offset = "0x733A30", VA = "0x180734A30")]
public static void Precompute()
{
Ed25519.PointAccum pointAccum;
int num9;
for (;;)
{
int num = 0;
object obj = Ed25519.precompLock;
Ed25519.PointExt pointExt = new Ed25519.PointExt();
int[] b_x = Ed25519.B_x;
int[] x = pointExt.x;
if (num < 10)
{
int num2 = b_x[num];
x[0] = num2;
num++;
}
int[] b_y = Ed25519.B_y;
int[] y = pointExt.y;
int num3 = 0;
if (num3 < 10)
{
int num4 = b_y[num3];
y[0] = num4;
num3++;
}
Ed25519.PointExtendXY(pointExt);
Ed25519.precompBaseTable = Ed25519.PointPrecompVar(pointExt, 32);
pointAccum = new Ed25519.PointAccum();
int[] b_x2 = Ed25519.B_x;
int[] x2 = pointAccum.x;
int num5 = 0;
if (num5 < 10)
{
int num6 = b_x2[num5];
x2[0] = num6;
num5++;
}
int[] b_y2 = Ed25519.B_y;
int[] y2 = pointAccum.y;
int num7 = 0;
if (num7 < 10)
{
int num8 = b_y2[num7];
y2[0] = num8;
num7++;
}
Ed25519.PointExtendXY(pointAccum);
Ed25519.precompBase = new int[1920];
num9 = 0;
if (num9 < 8)
{
break;
}
Ed25519.PointPrecomp pointPrecomp;
Monitor.Exit(pointPrecomp);
int num10;
if (num10 == 0)
{
return;
}
}
Ed25519.PointExt[] array = new Ed25519.PointExt[4];
Ed25519.PointExt pointExt2 = new Ed25519.PointExt();
Ed25519.PointSetNeutral(pointExt2);
if (num9 < 4)
{
Ed25519.PointExt pointExt3 = Ed25519.PointCopy(pointAccum);
ulong num11;
Ed25519.PointAddVar(num11 != 0UL, pointExt2, pointExt3, pointExt2);
Ed25519.PointDouble(pointAccum);
Ed25519.PointExt pointExt4 = Ed25519.PointCopy(pointAccum);
throw new ArrayTypeMismatchException();
}
Ed25519.PointExt[] array2 = new Ed25519.PointExt[8];
throw new ArrayTypeMismatchException();
}
// Token: 0x0600A58C RID: 42380 RVA: 0x002344C8 File Offset: 0x002326C8
[Token(Token = "0x600A58C")]
[Address(RVA = "0x735360", Offset = "0x734360", VA = "0x180735360")]
private static void PruneScalar(byte[] n, int nOff, byte[] r)
{
int num = 0;
ulong num2;
Array.Copy(n, nOff, r, num, (int)num2);
byte b = r[3];
r[3] = b;
r[3] = b;
}
// Token: 0x0600A58D RID: 42381 RVA: 0x00234500 File Offset: 0x00232700
[Token(Token = "0x600A58D")]
[Address(RVA = "0x7353F0", Offset = "0x7343F0", VA = "0x1807353F0")]
private static byte[] ReduceScalar(byte[] n)
{
int num = 0;
int @int = SerializationHeaderRecord.GetInt32(n, num);
uint num2 = Ed25519.Decode24(n, 4);
int int2 = SerializationHeaderRecord.GetInt32(n, 7);
uint num3 = Ed25519.Decode24(n, 11);
int int3 = SerializationHeaderRecord.GetInt32(n, 14);
uint num4 = Ed25519.Decode24(n, 18);
int int4 = SerializationHeaderRecord.GetInt32(n, 21);
uint num5 = Ed25519.Decode24(n, 25);
int int5 = SerializationHeaderRecord.GetInt32(n, 28);
uint num6 = Ed25519.Decode24(n, 32);
int int6 = SerializationHeaderRecord.GetInt32(n, 35);
uint num7 = Ed25519.Decode24(n, 39);
int int7 = SerializationHeaderRecord.GetInt32(n, 42);
uint num8 = Ed25519.Decode24(n, 46);
int int8 = SerializationHeaderRecord.GetInt32(n, 49);
uint num9 = Ed25519.Decode24(n, 53);
int int9 = SerializationHeaderRecord.GetInt32(n, 56);
uint num10 = Ed25519.Decode24(n, 60);
byte b = n[7];
num10 += (uint)int9;
long num11 = (long)((ulong)b * (ulong)(-19280294L));
long num12 = (long)((ulong)num10 * (ulong)5343L);
long num13 = (long)((ulong)b * (ulong)6428113L);
num13 -= num12;
num13 += (long)int7;
long num14 = (long)((ulong)b * (ulong)127719000L);
num7 = (uint)((long)num7 - num14);
long num15 = (long)((ulong)num10 * (ulong)6428113L);
num7 = (uint)((long)num7 + num15);
long num16 = (long)((ulong)int9 * (ulong)5343L);
num7 = (uint)((long)num7 - num16);
num9 += (uint)int8;
long num17 = (long)((ulong)num10 * (ulong)127719000L);
num11 -= num17;
long num18 = (long)((ulong)int9 * (ulong)6428113L);
num11 += num18;
long num19 = (long)((ulong)num9 * (ulong)5343L);
num11 -= num19;
num11 += (long)int6;
long num20 = (long)((ulong)int9 * (ulong)127719000L);
num6 = (uint)((long)num6 - num20);
long num21 = (long)((ulong)num10 * (ulong)19280294L);
num6 = (uint)((long)num6 - num21);
long num22 = (long)((ulong)b * (ulong)50998291L);
num6 = (uint)((long)num6 + num22);
long num23 = (long)((ulong)num9 * (ulong)6428113L);
num6 = (uint)((long)num6 + num23);
long num24 = (long)((ulong)int8 * (ulong)5343L);
num6 = (uint)((long)num6 - num24);
long num25 = (long)((ulong)b * (ulong)5343L);
num8 = (uint)((long)num8 - num25);
num25 = num13;
num8 = (uint)((long)num8 + num25);
num13 += (long)num7;
long num26 = (long)((ulong)int8 * (ulong)127719000L);
num5 = (uint)((long)num5 - num26);
long num27 = (long)((ulong)num9 * (ulong)19280294L);
num5 = (uint)((long)num5 - num27);
long num28 = (long)((ulong)int9 * (ulong)50998291L);
num5 = (uint)((long)num5 + num28);
long num29 = (long)((ulong)num8 * (ulong)6428113L);
num5 = (uint)((long)num5 + num29);
long num30 = num13 * (long)((ulong)5343L);
num5 = (uint)((long)num5 - num30);
num30 = num11;
num7 = (uint)((long)num7 + num30);
num11 += (long)num6;
long num31 = (long)((ulong)int9 * (ulong)(-19280294L));
long num32 = (long)((ulong)num9 * (ulong)127719000L);
long num33 = num11 * (long)((ulong)(-19280294L));
num6 = num2;
num31 -= num32;
long num34 = (long)((ulong)num10 * (ulong)50998291L);
num31 += num34;
long num35 = (long)((ulong)int8 * (ulong)6428113L);
long num36 = num13 * (long)((ulong)(-19280294L));
num31 += num35;
long num37 = (long)((ulong)num8 * (ulong)5343L);
num31 -= num37;
num31 += (long)num5;
num31 += (long)int5;
num31 += (long)int5;
long num38 = num31 * (long)((ulong)50998291L);
num38 += (long)@int;
long num39 = num31 * (long)((ulong)19280294L);
num6 = (uint)((long)num6 - num39);
long num40 = num11 * (long)((ulong)50998291L);
num6 = (uint)((long)num6 + num40);
num40 = num38;
num6 = (uint)((long)num6 + num40);
long num41 = num31 * (long)((ulong)127719000L);
num33 -= num41;
long num42 = (long)((ulong)num7 * (ulong)50998291L);
num33 += num42;
num33 += (long)num6;
num33 += (long)int2;
long num43 = num11 * (long)((ulong)127719000L);
num3 = (uint)((long)num3 - num43);
long num44 = (long)((ulong)num7 * (ulong)19280294L);
num3 = (uint)((long)num3 - num44);
long num45 = num13 * (long)((ulong)50998291L);
num3 = (uint)((long)num3 + num45);
long num46 = num31 * (long)((ulong)6428113L);
num3 = (uint)((long)num3 + num46);
num46 = num33;
num3 = (uint)((long)num3 + num46);
long num47 = (long)((ulong)num7 * (ulong)127719000L);
num36 -= num47;
long num48 = (long)((ulong)num8 * (ulong)50998291L);
num36 += num48;
long num49 = num11 * (long)((ulong)6428113L);
num36 += num49;
long num50 = num31 * (long)((ulong)5343L);
num36 -= num50;
num36 += (long)num3;
num36 += (long)int3;
long num51 = num13 * (long)((ulong)127719000L);
num4 = (uint)((long)num4 - num51);
long num52 = (long)((ulong)num8 * (ulong)19280294L);
num4 = (uint)((long)num4 - num52);
long num53;
num4 = (uint)((long)num4 + num53);
long num54 = (long)((ulong)num7 * (ulong)6428113L);
num4 = (uint)((long)num4 + num54);
long num55 = num11 * (long)((ulong)5343L);
num4 = (uint)((long)num4 - num55);
num55 = num36;
num4 = (uint)((long)num4 + num55);
long num56 = (long)((ulong)num8 * (ulong)127719000L);
long num57;
num57 -= num56;
long num58 = (long)((ulong)num9 * (ulong)50998291L);
num57 += num58;
long num59;
num57 += num59;
long num60 = (long)((ulong)num7 * (ulong)5343L);
num57 -= num60;
num57 += (long)num4;
num57 += (long)int4;
num5 = (uint)((long)num5 + num57);
num31 += (long)num5;
num31 -= num31;
num38 += num31;
num6 = (uint)((long)num6 + num31);
num31 = num38;
num6 = (uint)((long)num6 + num31);
num33 += num31;
num33 += (long)num6;
num3 = (uint)((long)num3 + num31);
num36 += num31;
num31 = num33;
num3 = (uint)((long)num3 + num31);
num36 += (long)num3;
num4 = (uint)((long)num4 + num36);
num57 += (long)num4;
num5 = (uint)((long)num5 + num57);
byte[] array = new byte[32];
int num61 = 0;
Ed25519.Encode56((ulong)num6, array, num61);
num6 = num3;
Ed25519.Encode56((ulong)num6, array, 7);
num6 = num4;
Ed25519.Encode56((ulong)num6, array, 14);
num6 = num5;
Ed25519.Encode56((ulong)num6, array, 21);
num31 += (long)num5;
Ed25519.Encode32((uint)num31, array, 28);
return array;
}
// Token: 0x0600A58E RID: 42382 RVA: 0x00234AA0 File Offset: 0x00232CA0
[Token(Token = "0x600A58E")]
[Address(RVA = "0x735D40", Offset = "0x734D40", VA = "0x180735D40")]
private static void ScalarMultBase(byte[] k, Ed25519.PointAccum r)
{
Ed25519.Precompute();
Ed25519.PointSetNeutral(r);
uint[] array = new uint[8];
int num = 0;
Ed25519.DecodeScalar(k, num, array);
uint num2 = array[0];
uint[] l = Ed25519.L;
uint num3 = Nat.CAdd(8, (int)num2, array, l, array);
uint num4 = Nat.ShiftDownBit(8, array, (uint)1);
int num5 = 0;
uint num6 = Interleave.Shuffle2(array[num5]);
num5++;
array[0] = num6;
Ed25519.PointPrecomp pointPrecomp = new Ed25519.PointPrecomp();
int num7 = 0;
uint num8 = array[num7];
Ed25519.PointLookup(num7, (int)num8, pointPrecomp);
int[] ypx_h = pointPrecomp.ypx_h;
int[] ymx_h = pointPrecomp.ymx_h;
X25519Field.CSwap((int)num8, ypx_h, ymx_h);
int[] xyd = pointPrecomp.xyd;
X25519Field.CNegate((int)num8, xyd);
num7++;
}
// Token: 0x0600A58F RID: 42383 RVA: 0x00234B70 File Offset: 0x00232D70
[Token(Token = "0x600A58F")]
[Address(RVA = "0x735AF0", Offset = "0x734AF0", VA = "0x180735AF0")]
private static void ScalarMultBaseEncoded(byte[] k, byte[] r, int rOff)
{
Ed25519.PointAccum pointAccum = new Ed25519.PointAccum();
Ed25519.ScalarMultBase(k, pointAccum);
Ed25519.EncodePoint(pointAccum, r, rOff);
}
// Token: 0x0600A590 RID: 42384 RVA: 0x00234B94 File Offset: 0x00232D94
[Token(Token = "0x600A590")]
[Address(RVA = "0x735BA0", Offset = "0x734BA0", VA = "0x180735BA0")]
internal static void ScalarMultBaseYZ(byte[] k, int kOff, int[] y, int[] z)
{
byte[] array = new byte[32];
Ed25519.PruneScalar(k, kOff, array);
Ed25519.PointAccum pointAccum = new Ed25519.PointAccum();
Ed25519.ScalarMultBase(array, pointAccum);
int[] y2 = pointAccum.y;
int num = 0;
int num2 = y2[num];
num++;
y[0] = num2;
int num3 = pointAccum.z[num];
num++;
z[0] = num3;
}
// Token: 0x0600A591 RID: 42385 RVA: 0x00234C00 File Offset: 0x00232E00
[Token(Token = "0x600A591")]
[Address(RVA = "0x736010", Offset = "0x735010", VA = "0x180736010")]
private static void ScalarMultStraussVar(uint[] nb, uint[] np, Ed25519.PointExt p, Ed25519.PointAccum r)
{
Ed25519.Precompute();
sbyte[] wnaf = Ed25519.GetWnaf(nb, 7);
sbyte[] wnaf2 = Ed25519.GetWnaf(np, 5);
Ed25519.PointExt[] array = Ed25519.PointPrecompVar(p, 8);
Ed25519.PointSetNeutral(r);
if ((uint)255 == (uint)wnaf2.Length)
{
}
sbyte b;
Ed25519.PointExt pointExt = Ed25519.precompBaseTable[(int)b];
bool flag;
Ed25519.PointAddVar(flag, pointExt, r);
if ((uint)255 != 0U)
{
Ed25519.PointExt pointExt2;
Ed25519.PointAddVar((uint)255 != 0U, pointExt2, r);
}
Ed25519.PointDouble(r);
}
// Token: 0x0600A592 RID: 42386 RVA: 0x00234C84 File Offset: 0x00232E84
[Token(Token = "0x600A592")]
[Address(RVA = "0x7369F0", Offset = "0x7359F0", VA = "0x1807369F0")]
public static void Sign(byte[] sk, int skOff, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
{
}
// Token: 0x0600A593 RID: 42387 RVA: 0x00234C94 File Offset: 0x00232E94
[Token(Token = "0x600A593")]
[Address(RVA = "0x736780", Offset = "0x735780", VA = "0x180736780")]
public static void Sign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
{
}
// Token: 0x0600A594 RID: 42388 RVA: 0x00234CA4 File Offset: 0x00232EA4
[Token(Token = "0x600A594")]
[Address(RVA = "0x736930", Offset = "0x735930", VA = "0x180736930")]
public static void Sign(byte[] sk, int skOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
{
}
// Token: 0x0600A595 RID: 42389 RVA: 0x00234CB4 File Offset: 0x00232EB4
[Token(Token = "0x600A595")]
[Address(RVA = "0x736850", Offset = "0x735850", VA = "0x180736850")]
public static void Sign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
{
}
// Token: 0x0600A596 RID: 42390 RVA: 0x00234CC4 File Offset: 0x00232EC4
[Token(Token = "0x600A596")]
[Address(RVA = "0x7365D0", Offset = "0x7355D0", VA = "0x1807365D0")]
public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)
{
int prehashSize = Ed25519.PrehashSize;
}
// Token: 0x0600A597 RID: 42391 RVA: 0x00234CD8 File Offset: 0x00232ED8
[Token(Token = "0x600A597")]
[Address(RVA = "0x7366A0", Offset = "0x7356A0", VA = "0x1807366A0")]
public static void SignPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)
{
int prehashSize = Ed25519.PrehashSize;
}
// Token: 0x0600A598 RID: 42392 RVA: 0x00234CEC File Offset: 0x00232EEC
[Token(Token = "0x600A598")]
[Address(RVA = "0x7362B0", Offset = "0x7352B0", VA = "0x1807362B0")]
public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, IDigest ph, byte[] sig, int sigOff)
{
/*
An exception occurred when decompiling this method (0600A598)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::SignPrehash(System.Byte[],System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_21:
stloc:ArgumentException(var_5_2B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ph")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(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: 0x0600A599 RID: 42393 RVA: 0x00234D28 File Offset: 0x00232F28
[Token(Token = "0x600A599")]
[Address(RVA = "0x736430", Offset = "0x735430", VA = "0x180736430")]
public static void SignPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, IDigest ph, byte[] sig, int sigOff)
{
/*
An exception occurred when decompiling this method (0600A599)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::SignPrehash(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_21:
stloc:ArgumentException(var_6_2B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ph")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(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: 0x0600A59A RID: 42394 RVA: 0x00234D64 File Offset: 0x00232F64
[Token(Token = "0x600A59A")]
[Address(RVA = "0x736D00", Offset = "0x735D00", VA = "0x180736D00")]
public static bool Verify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] m, int mOff, int mLen)
{
bool flag;
return flag;
}
// Token: 0x0600A59B RID: 42395 RVA: 0x00234D74 File Offset: 0x00232F74
[Token(Token = "0x600A59B")]
[Address(RVA = "0x736DB0", Offset = "0x735DB0", VA = "0x180736DB0")]
public static bool Verify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen)
{
bool flag;
return flag;
}
// Token: 0x0600A59C RID: 42396 RVA: 0x00234D84 File Offset: 0x00232F84
[Token(Token = "0x600A59C")]
[Address(RVA = "0x736AB0", Offset = "0x735AB0", VA = "0x180736AB0")]
public static bool VerifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff)
{
int prehashSize = Ed25519.PrehashSize;
bool flag;
return flag;
}
// Token: 0x0600A59D RID: 42397 RVA: 0x00234D98 File Offset: 0x00232F98
[Token(Token = "0x600A59D")]
[Address(RVA = "0x736B80", Offset = "0x735B80", VA = "0x180736B80")]
public static bool VerifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, IDigest ph)
{
/*
An exception occurred when decompiling this method (0600A59D)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::VerifyPrehash(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_23:
stloc:ArgumentException(var_7_2D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ph")))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(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: 0x0600A59E RID: 42398 RVA: 0x00234DD4 File Offset: 0x00232FD4
[Token(Token = "0x600A59E")]
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
protected Ed25519()
{
}
// Token: 0x0600A59F RID: 42399 RVA: 0x00234DE8 File Offset: 0x00232FE8
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A59F")]
[Address(RVA = "0x736E70", Offset = "0x735E70", VA = "0x180736E70")]
static Ed25519()
{
uint[] array = new uint[8];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.86B0F85AC13B58F88DEFFD8FD6EE095438B98F10).FieldHandle);
Ed25519.P = array;
uint[] array2 = new uint[8];
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.400E52B9E7F331D1ACC81B4EA40D228C7A6D60F8).FieldHandle);
Ed25519.L = array2;
int[] array3 = new int[10];
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.98CF708E75DA60C2A04D06606E726EC975E6DBAB).FieldHandle);
Ed25519.B_x = array3;
int[] array4 = new int[10];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.58F8E05C1E95C042205E13B76D1BFC0F7ABA6F88).FieldHandle);
Ed25519.B_y = array4;
int[] array5 = new int[10];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.4C8FA1E9ACD72AED71F3923AEC5DF6AC8B6EFFE4).FieldHandle);
Ed25519.C_d = array5;
int[] array6 = new int[10];
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.5BF56A4EEA44BBE4974BB61DA08B42B6EC49B72D).FieldHandle);
Ed25519.C_d2 = array6;
int[] array7 = new int[10];
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.BBBDF1388DDDDEEC01227AF1738F138452242E3A).FieldHandle);
Ed25519.C_d4 = array7;
Ed25519.precompLock = new object();
int num = 0;
Ed25519.precompBaseTable = num;
Ed25519.precompBase = num;
}
// Token: 0x04006C5D RID: 27741
[Token(Token = "0x4006C5D")]
private const long M28L = 268435455L;
// Token: 0x04006C5E RID: 27742
[Token(Token = "0x4006C5E")]
private const long M32L = 4294967295L;
// Token: 0x04006C5F RID: 27743
[Token(Token = "0x4006C5F")]
private const int PointBytes = 32;
// Token: 0x04006C60 RID: 27744
[Token(Token = "0x4006C60")]
private const int ScalarUints = 8;
// Token: 0x04006C61 RID: 27745
[Token(Token = "0x4006C61")]
private const int ScalarBytes = 32;
// Token: 0x04006C62 RID: 27746
[Token(Token = "0x4006C62")]
public static readonly int PrehashSize;
// Token: 0x04006C63 RID: 27747
[Token(Token = "0x4006C63")]
public static readonly int PublicKeySize;
// Token: 0x04006C64 RID: 27748
[Token(Token = "0x4006C64")]
public static readonly int SecretKeySize;
// Token: 0x04006C65 RID: 27749
[Token(Token = "0x4006C65")]
public static readonly int SignatureSize;
// Token: 0x04006C66 RID: 27750
[Token(Token = "0x4006C66")]
private static readonly byte[] Dom2Prefix = Strings.ToByteArray("SigEd25519 no Ed25519 collisions");
// Token: 0x04006C67 RID: 27751
[Token(Token = "0x4006C67")]
private static readonly uint[] P;
// Token: 0x04006C68 RID: 27752
[Token(Token = "0x4006C68")]
private static readonly uint[] L;
// Token: 0x04006C69 RID: 27753
[Token(Token = "0x4006C69")]
private const int L0 = -50998291;
// Token: 0x04006C6A RID: 27754
[Token(Token = "0x4006C6A")]
private const int L1 = 19280294;
// Token: 0x04006C6B RID: 27755
[Token(Token = "0x4006C6B")]
private const int L2 = 127719000;
// Token: 0x04006C6C RID: 27756
[Token(Token = "0x4006C6C")]
private const int L3 = -6428113;
// Token: 0x04006C6D RID: 27757
[Token(Token = "0x4006C6D")]
private const int L4 = 5343;
// Token: 0x04006C6E RID: 27758
[Token(Token = "0x4006C6E")]
private static readonly int[] B_x;
// Token: 0x04006C6F RID: 27759
[Token(Token = "0x4006C6F")]
private static readonly int[] B_y;
// Token: 0x04006C70 RID: 27760
[Token(Token = "0x4006C70")]
private static readonly int[] C_d;
// Token: 0x04006C71 RID: 27761
[Token(Token = "0x4006C71")]
private static readonly int[] C_d2;
// Token: 0x04006C72 RID: 27762
[Token(Token = "0x4006C72")]
private static readonly int[] C_d4;
// Token: 0x04006C73 RID: 27763
[Token(Token = "0x4006C73")]
private const int WnafWidthBase = 7;
// Token: 0x04006C74 RID: 27764
[Token(Token = "0x4006C74")]
private const int PrecompBlocks = 8;
// Token: 0x04006C75 RID: 27765
[Token(Token = "0x4006C75")]
private const int PrecompTeeth = 4;
// Token: 0x04006C76 RID: 27766
[Token(Token = "0x4006C76")]
private const int PrecompSpacing = 8;
// Token: 0x04006C77 RID: 27767
[Token(Token = "0x4006C77")]
private const int PrecompPoints = 8;
// Token: 0x04006C78 RID: 27768
[Token(Token = "0x4006C78")]
private const int PrecompMask = 7;
// Token: 0x04006C79 RID: 27769
[Token(Token = "0x4006C79")]
private static readonly object precompLock;
// Token: 0x04006C7A RID: 27770
[Token(Token = "0x4006C7A")]
private static Ed25519.PointExt[] precompBaseTable;
// Token: 0x04006C7B RID: 27771
[Token(Token = "0x4006C7B")]
private static int[] precompBase;
// Token: 0x02001AE9 RID: 6889
[Token(Token = "0x2001AE9")]
public enum Algorithm
{
// Token: 0x04006C7D RID: 27773
[Token(Token = "0x4006C7D")]
Ed25519,
// Token: 0x04006C7E RID: 27774
[Token(Token = "0x4006C7E")]
Ed25519ctx,
// Token: 0x04006C7F RID: 27775
[Token(Token = "0x4006C7F")]
Ed25519ph
}
// Token: 0x02001AEA RID: 6890
[Token(Token = "0x2001AEA")]
private class PointAccum
{
// Token: 0x0600A5A0 RID: 42400 RVA: 0x00234ED8 File Offset: 0x002330D8
[Token(Token = "0x600A5A0")]
[Address(RVA = "0x763CE0", Offset = "0x762CE0", VA = "0x180763CE0")]
public PointAccum()
{
int[] array = X25519Field.Create();
this.x = array;
int[] array2 = X25519Field.Create();
this.y = array2;
int[] array3 = X25519Field.Create();
this.z = array3;
int[] array4 = X25519Field.Create();
this.u = array4;
int[] array5 = X25519Field.Create();
this.v = array5;
base..ctor();
}
// Token: 0x04006C80 RID: 27776
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006C80")]
internal int[] x;
// Token: 0x04006C81 RID: 27777
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006C81")]
internal int[] y;
// Token: 0x04006C82 RID: 27778
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006C82")]
internal int[] z;
// Token: 0x04006C83 RID: 27779
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006C83")]
internal int[] u;
// Token: 0x04006C84 RID: 27780
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006C84")]
internal int[] v;
}
// Token: 0x02001AEB RID: 6891
[Token(Token = "0x2001AEB")]
private class PointExt
{
// Token: 0x0600A5A1 RID: 42401 RVA: 0x00234F40 File Offset: 0x00233140
[Token(Token = "0x600A5A1")]
[Address(RVA = "0x763D70", Offset = "0x762D70", VA = "0x180763D70")]
public PointExt()
{
int[] array = X25519Field.Create();
this.x = array;
int[] array2 = X25519Field.Create();
this.y = array2;
int[] array3 = X25519Field.Create();
this.z = array3;
int[] array4 = X25519Field.Create();
this.t = array4;
base..ctor();
}
// Token: 0x04006C85 RID: 27781
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006C85")]
internal int[] x;
// Token: 0x04006C86 RID: 27782
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006C86")]
internal int[] y;
// Token: 0x04006C87 RID: 27783
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006C87")]
internal int[] z;
// Token: 0x04006C88 RID: 27784
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006C88")]
internal int[] t;
}
// Token: 0x02001AEC RID: 6892
[Token(Token = "0x2001AEC")]
private class PointPrecomp
{
// Token: 0x0600A5A2 RID: 42402 RVA: 0x00234F98 File Offset: 0x00233198
[Token(Token = "0x600A5A2")]
[Address(RVA = "0x763E30", Offset = "0x762E30", VA = "0x180763E30")]
public PointPrecomp()
{
int[] array = X25519Field.Create();
this.ypx_h = array;
int[] array2 = X25519Field.Create();
this.ymx_h = array2;
int[] array3 = X25519Field.Create();
this.xyd = array3;
base..ctor();
}
// Token: 0x04006C89 RID: 27785
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006C89")]
internal int[] ypx_h;
// Token: 0x04006C8A RID: 27786
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006C8A")]
internal int[] ymx_h;
// Token: 0x04006C8B RID: 27787
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006C8B")]
internal int[] xyd;
}
}
}