This commit is contained in:
niko
2026-04-10 22:50:51 +02:00
parent 6d1607d5a2
commit f18d448581
17033 changed files with 2863270 additions and 0 deletions
@@ -0,0 +1,1558 @@
using System;
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: 0x02001A08 RID: 6664
[Token(Token = "0x2001A08")]
public abstract class Ed25519
{
// Token: 0x0600A19A RID: 41370 RVA: 0x0022A0EC File Offset: 0x002282EC
[Token(Token = "0x600A19A")]
[Address(RVA = "0x1F4C110", Offset = "0x1F4AF10", VA = "0x181F4C110")]
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: 0x0600A19B RID: 41371 RVA: 0x0022A174 File Offset: 0x00228374
[Token(Token = "0x600A19B")]
[Address(RVA = "0x1F4C2B0", Offset = "0x1F4B0B0", VA = "0x181F4C2B0")]
private static bool CheckContextVar(byte[] ctx, byte phflag)
{
if (ctx == 0)
{
bool flag;
return flag;
}
return ctx.Length < 256;
}
// Token: 0x0600A19C RID: 41372 RVA: 0x0022A194 File Offset: 0x00228394
[Token(Token = "0x600A19C")]
[Address(RVA = "0x1F4C2D0", Offset = "0x1F4B0D0", VA = "0x181F4C2D0")]
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: 0x0600A19D RID: 41373 RVA: 0x0022A1D0 File Offset: 0x002283D0
[Token(Token = "0x600A19D")]
[Address(RVA = "0x1F4C3A0", Offset = "0x1F4B1A0", VA = "0x181F4C3A0")]
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: 0x0600A19E RID: 41374 RVA: 0x0022A200 File Offset: 0x00228400
[Token(Token = "0x600A19E")]
[Address(RVA = "0x1F4C440", Offset = "0x1F4B240", VA = "0x181F4C440")]
private static IDigest CreateDigest()
{
/*
An exception occurred when decompiling this method (0600A19E)
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: 0x0600A19F RID: 41375 RVA: 0x0022A214 File Offset: 0x00228414
[Token(Token = "0x600A19F")]
[Address(RVA = "0x1F4C490", Offset = "0x1F4B290", VA = "0x181F4C490")]
public static IDigest CreatePrehash()
{
/*
An exception occurred when decompiling this method (0600A19F)
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: 0x0600A1A0 RID: 41376 RVA: 0x0022A228 File Offset: 0x00228428
[Token(Token = "0x600A1A0")]
[Address(RVA = "0x1F4C510", Offset = "0x1F4B310", VA = "0x181F4C510")]
private static uint Decode24(byte[] bs, int off)
{
int length = bs.Length;
int num = off + 1;
throw new NullReferenceException();
}
// Token: 0x0600A1A1 RID: 41377 RVA: 0x0022A248 File Offset: 0x00228448
[Token(Token = "0x600A1A1")]
[Address(RVA = "0x1824CD0", Offset = "0x1823AD0", VA = "0x181824CD0")]
private static uint Decode32(byte[] bs, int off)
{
int length = bs.Length;
int num = off + 1;
throw new NullReferenceException();
}
// Token: 0x0600A1A2 RID: 41378 RVA: 0x0022A268 File Offset: 0x00228468
[Token(Token = "0x600A1A2")]
[Address(RVA = "0x1F4C5A0", Offset = "0x1F4B3A0", VA = "0x181F4C5A0")]
private static void Decode32(byte[] bs, int bsOff, uint[] n, int nOff, int nLen)
{
}
// Token: 0x0600A1A3 RID: 41379 RVA: 0x0022A27C File Offset: 0x0022847C
[Token(Token = "0x600A1A3")]
[Address(RVA = "0x1F4C670", Offset = "0x1F4B470", VA = "0x181F4C670")]
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: 0x0600A1A4 RID: 41380 RVA: 0x0022A368 File Offset: 0x00228568
[Token(Token = "0x600A1A4")]
[Address(RVA = "0x1F4C9E0", Offset = "0x1F4B7E0", VA = "0x181F4C9E0")]
private static void DecodeScalar(byte[] k, int kOff, uint[] n)
{
int num = 0;
ulong num2;
Ed25519.Decode32(k, kOff, n, num, (int)num2);
}
// Token: 0x0600A1A5 RID: 41381 RVA: 0x0022A384 File Offset: 0x00228584
[Token(Token = "0x600A1A5")]
[Address(RVA = "0x1F4CA70", Offset = "0x1F4B870", VA = "0x181F4CA70")]
private static void Dom2(IDigest d, byte phflag, byte[] ctx)
{
if (ctx != 0)
{
int length = Ed25519.Dom2Prefix.Length;
int length2 = ctx.Length;
}
}
// Token: 0x0600A1A6 RID: 41382 RVA: 0x0022A3B0 File Offset: 0x002285B0
[Token(Token = "0x600A1A6")]
[Address(RVA = "0x1F4CB90", Offset = "0x1F4B990", VA = "0x181F4CB90")]
private static void Encode24(uint n, byte[] bs, int off)
{
int num = off + 1;
}
// Token: 0x0600A1A7 RID: 41383 RVA: 0x0022A3C8 File Offset: 0x002285C8
[Token(Token = "0x600A1A7")]
[Address(RVA = "0x1825890", Offset = "0x1824690", VA = "0x181825890")]
private static void Encode32(uint n, byte[] bs, int off)
{
int num = off + 1;
}
// Token: 0x0600A1A8 RID: 41384 RVA: 0x0022A3E0 File Offset: 0x002285E0
[Token(Token = "0x600A1A8")]
[Address(RVA = "0x1F4CC10", Offset = "0x1F4BA10", VA = "0x181F4CC10")]
private static void Encode56(ulong n, byte[] bs, int off)
{
Ed25519.Encode32((uint)n, bs, off);
bs[0] = (byte)n;
}
// Token: 0x0600A1A9 RID: 41385 RVA: 0x0022A404 File Offset: 0x00228604
[Token(Token = "0x600A1A9")]
[Address(RVA = "0x1F4CD00", Offset = "0x1F4BB00", VA = "0x181F4CD00")]
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: 0x0600A1AA RID: 41386 RVA: 0x0022A46C File Offset: 0x0022866C
[Token(Token = "0x600A1AA")]
[Address(RVA = "0x1F4CE90", Offset = "0x1F4BC90", VA = "0x181F4CE90")]
public static void GeneratePrivateKey(SecureRandom random, byte[] k)
{
}
// Token: 0x0600A1AB RID: 41387 RVA: 0x0022A480 File Offset: 0x00228680
[Token(Token = "0x600A1AB")]
[Address(RVA = "0x1F4CEC0", Offset = "0x1F4BCC0", VA = "0x181F4CEC0")]
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: 0x0600A1AC RID: 41388 RVA: 0x0022A4C0 File Offset: 0x002286C0
[Token(Token = "0x600A1AC")]
[Address(RVA = "0x1F4D030", Offset = "0x1F4BE30", VA = "0x181F4D030")]
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: 0x0600A1AD RID: 41389 RVA: 0x0022A550 File Offset: 0x00228750
[Token(Token = "0x600A1AD")]
[Address(RVA = "0x1F4D490", Offset = "0x1F4C290", VA = "0x181F4D490")]
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: 0x0600A1AE RID: 41390 RVA: 0x0022A60C File Offset: 0x0022880C
[Token(Token = "0x600A1AE")]
[Address(RVA = "0x1F4D230", Offset = "0x1F4C030", VA = "0x181F4D230")]
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 (0600A1AE)
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: 0x0600A1AF RID: 41391 RVA: 0x0022A678 File Offset: 0x00228878
[Token(Token = "0x600A1AF")]
[Address(RVA = "0x1F4D870", Offset = "0x1F4C670", VA = "0x181F4D870")]
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: 0x0600A1B0 RID: 41392 RVA: 0x0022A6C0 File Offset: 0x002288C0
[Token(Token = "0x600A1B0")]
[Address(RVA = "0x1F4DAC0", Offset = "0x1F4C8C0", VA = "0x181F4DAC0")]
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 (0600A1B0)
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: 0x0600A1B1 RID: 41393 RVA: 0x0022A7B0 File Offset: 0x002289B0
[Token(Token = "0x600A1B1")]
[Address(RVA = "0x1F4E570", Offset = "0x1F4D370", VA = "0x181F4E570")]
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: 0x0600A1B2 RID: 41394 RVA: 0x0022A8F8 File Offset: 0x00228AF8
[Token(Token = "0x600A1B2")]
[Address(RVA = "0x1F4E170", Offset = "0x1F4CF70", VA = "0x181F4E170")]
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: 0x0600A1B3 RID: 41395 RVA: 0x0022AA28 File Offset: 0x00228C28
[Token(Token = "0x600A1B3")]
[Address(RVA = "0x1F4DF10", Offset = "0x1F4CD10", VA = "0x181F4DF10")]
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: 0x0600A1B4 RID: 41396 RVA: 0x0022AB30 File Offset: 0x00228D30
[Token(Token = "0x600A1B4")]
[Address(RVA = "0x1F4E920", Offset = "0x1F4D720", VA = "0x181F4E920")]
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: 0x0600A1B5 RID: 41397 RVA: 0x0022ABD8 File Offset: 0x00228DD8
[Token(Token = "0x600A1B5")]
[Address(RVA = "0x1F4EAF0", Offset = "0x1F4D8F0", VA = "0x181F4EAF0")]
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: 0x0600A1B6 RID: 41398 RVA: 0x0022AC84 File Offset: 0x00228E84
[Token(Token = "0x600A1B6")]
[Address(RVA = "0x1F4ED10", Offset = "0x1F4DB10", VA = "0x181F4ED10")]
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: 0x0600A1B7 RID: 41399 RVA: 0x0022AD7C File Offset: 0x00228F7C
[Token(Token = "0x600A1B7")]
[Address(RVA = "0x1F4EF70", Offset = "0x1F4DD70", VA = "0x181F4EF70")]
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: 0x0600A1B8 RID: 41400 RVA: 0x0022ADF0 File Offset: 0x00228FF0
[Token(Token = "0x600A1B8")]
[Address(RVA = "0x1F4F0E0", Offset = "0x1F4DEE0", VA = "0x181F4F0E0")]
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: 0x0600A1B9 RID: 41401 RVA: 0x0022AE38 File Offset: 0x00229038
[Token(Token = "0x600A1B9")]
[Address(RVA = "0x1F4F1A0", Offset = "0x1F4DFA0", VA = "0x181F4F1A0")]
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: 0x0600A1BA RID: 41402 RVA: 0x0022AEB0 File Offset: 0x002290B0
[Token(Token = "0x600A1BA")]
[Address(RVA = "0x1F4F300", Offset = "0x1F4E100", VA = "0x181F4F300")]
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: 0x0600A1BB RID: 41403 RVA: 0x0022AF1C File Offset: 0x0022911C
[Token(Token = "0x600A1BB")]
[Address(RVA = "0x1F4F680", Offset = "0x1F4E480", VA = "0x181F4F680")]
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: 0x0600A1BC RID: 41404 RVA: 0x0022AFA4 File Offset: 0x002291A4
[Token(Token = "0x600A1BC")]
[Address(RVA = "0x1F4F500", Offset = "0x1F4E300", VA = "0x181F4F500")]
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: 0x0600A1BD RID: 41405 RVA: 0x0022B014 File Offset: 0x00229214
[Token(Token = "0x600A1BD")]
[Address(RVA = "0x1F4F860", Offset = "0x1F4E660", VA = "0x181F4F860")]
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: 0x0600A1BE RID: 41406 RVA: 0x0022B424 File Offset: 0x00229624
[Token(Token = "0x600A1BE")]
[Address(RVA = "0x1F50190", Offset = "0x1F4EF90", VA = "0x181F50190")]
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: 0x0600A1BF RID: 41407 RVA: 0x0022B45C File Offset: 0x0022965C
[Token(Token = "0x600A1BF")]
[Address(RVA = "0x1F50220", Offset = "0x1F4F020", VA = "0x181F50220")]
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: 0x0600A1C0 RID: 41408 RVA: 0x0022B9FC File Offset: 0x00229BFC
[Token(Token = "0x600A1C0")]
[Address(RVA = "0x1F50B70", Offset = "0x1F4F970", VA = "0x181F50B70")]
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: 0x0600A1C1 RID: 41409 RVA: 0x0022BACC File Offset: 0x00229CCC
[Token(Token = "0x600A1C1")]
[Address(RVA = "0x1F50920", Offset = "0x1F4F720", VA = "0x181F50920")]
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: 0x0600A1C2 RID: 41410 RVA: 0x0022BAF0 File Offset: 0x00229CF0
[Token(Token = "0x600A1C2")]
[Address(RVA = "0x1F509D0", Offset = "0x1F4F7D0", VA = "0x181F509D0")]
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: 0x0600A1C3 RID: 41411 RVA: 0x0022BB5C File Offset: 0x00229D5C
[Token(Token = "0x600A1C3")]
[Address(RVA = "0x1F50E40", Offset = "0x1F4FC40", VA = "0x181F50E40")]
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: 0x0600A1C4 RID: 41412 RVA: 0x0022BBE0 File Offset: 0x00229DE0
[Token(Token = "0x600A1C4")]
[Address(RVA = "0x1F51820", Offset = "0x1F50620", VA = "0x181F51820")]
public static void Sign(byte[] sk, int skOff, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
{
}
// Token: 0x0600A1C5 RID: 41413 RVA: 0x0022BBF0 File Offset: 0x00229DF0
[Token(Token = "0x600A1C5")]
[Address(RVA = "0x1F515B0", Offset = "0x1F503B0", VA = "0x181F515B0")]
public static void Sign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
{
}
// Token: 0x0600A1C6 RID: 41414 RVA: 0x0022BC00 File Offset: 0x00229E00
[Token(Token = "0x600A1C6")]
[Address(RVA = "0x1F51760", Offset = "0x1F50560", VA = "0x181F51760")]
public static void Sign(byte[] sk, int skOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
{
}
// Token: 0x0600A1C7 RID: 41415 RVA: 0x0022BC10 File Offset: 0x00229E10
[Token(Token = "0x600A1C7")]
[Address(RVA = "0x1F51680", Offset = "0x1F50480", VA = "0x181F51680")]
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: 0x0600A1C8 RID: 41416 RVA: 0x0022BC20 File Offset: 0x00229E20
[Token(Token = "0x600A1C8")]
[Address(RVA = "0x1F51400", Offset = "0x1F50200", VA = "0x181F51400")]
public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)
{
int prehashSize = Ed25519.PrehashSize;
}
// Token: 0x0600A1C9 RID: 41417 RVA: 0x0022BC34 File Offset: 0x00229E34
[Token(Token = "0x600A1C9")]
[Address(RVA = "0x1F514D0", Offset = "0x1F502D0", VA = "0x181F514D0")]
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: 0x0600A1CA RID: 41418 RVA: 0x0022BC48 File Offset: 0x00229E48
[Token(Token = "0x600A1CA")]
[Address(RVA = "0x1F510E0", Offset = "0x1F4FEE0", VA = "0x181F510E0")]
public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, IDigest ph, byte[] sig, int sigOff)
{
/*
An exception occurred when decompiling this method (0600A1CA)
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: 0x0600A1CB RID: 41419 RVA: 0x0022BC84 File Offset: 0x00229E84
[Token(Token = "0x600A1CB")]
[Address(RVA = "0x1F51260", Offset = "0x1F50060", VA = "0x181F51260")]
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 (0600A1CB)
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: 0x0600A1CC RID: 41420 RVA: 0x0022BCC0 File Offset: 0x00229EC0
[Token(Token = "0x600A1CC")]
[Address(RVA = "0x1F51B30", Offset = "0x1F50930", VA = "0x181F51B30")]
public static bool Verify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] m, int mOff, int mLen)
{
bool flag;
return flag;
}
// Token: 0x0600A1CD RID: 41421 RVA: 0x0022BCD0 File Offset: 0x00229ED0
[Token(Token = "0x600A1CD")]
[Address(RVA = "0x1F51BE0", Offset = "0x1F509E0", VA = "0x181F51BE0")]
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: 0x0600A1CE RID: 41422 RVA: 0x0022BCE0 File Offset: 0x00229EE0
[Token(Token = "0x600A1CE")]
[Address(RVA = "0x1F518E0", Offset = "0x1F506E0", VA = "0x181F518E0")]
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: 0x0600A1CF RID: 41423 RVA: 0x0022BCF4 File Offset: 0x00229EF4
[Token(Token = "0x600A1CF")]
[Address(RVA = "0x1F519B0", Offset = "0x1F507B0", VA = "0x181F519B0")]
public static bool VerifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, IDigest ph)
{
/*
An exception occurred when decompiling this method (0600A1CF)
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: 0x0600A1D0 RID: 41424 RVA: 0x0022BD30 File Offset: 0x00229F30
[Token(Token = "0x600A1D0")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
protected Ed25519()
{
}
// Token: 0x0600A1D1 RID: 41425 RVA: 0x0022BD44 File Offset: 0x00229F44
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A1D1")]
[Address(RVA = "0x1F51CA0", Offset = "0x1F50AA0", VA = "0x181F51CA0")]
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: 0x04006AA4 RID: 27300
[Token(Token = "0x4006AA4")]
private const long M28L = 268435455L;
// Token: 0x04006AA5 RID: 27301
[Token(Token = "0x4006AA5")]
private const long M32L = 4294967295L;
// Token: 0x04006AA6 RID: 27302
[Token(Token = "0x4006AA6")]
private const int PointBytes = 32;
// Token: 0x04006AA7 RID: 27303
[Token(Token = "0x4006AA7")]
private const int ScalarUints = 8;
// Token: 0x04006AA8 RID: 27304
[Token(Token = "0x4006AA8")]
private const int ScalarBytes = 32;
// Token: 0x04006AA9 RID: 27305
[Token(Token = "0x4006AA9")]
public static readonly int PrehashSize;
// Token: 0x04006AAA RID: 27306
[Token(Token = "0x4006AAA")]
public static readonly int PublicKeySize;
// Token: 0x04006AAB RID: 27307
[Token(Token = "0x4006AAB")]
public static readonly int SecretKeySize;
// Token: 0x04006AAC RID: 27308
[Token(Token = "0x4006AAC")]
public static readonly int SignatureSize;
// Token: 0x04006AAD RID: 27309
[Token(Token = "0x4006AAD")]
private static readonly byte[] Dom2Prefix = Strings.ToByteArray("SigEd25519 no Ed25519 collisions");
// Token: 0x04006AAE RID: 27310
[Token(Token = "0x4006AAE")]
private static readonly uint[] P;
// Token: 0x04006AAF RID: 27311
[Token(Token = "0x4006AAF")]
private static readonly uint[] L;
// Token: 0x04006AB0 RID: 27312
[Token(Token = "0x4006AB0")]
private const int L0 = -50998291;
// Token: 0x04006AB1 RID: 27313
[Token(Token = "0x4006AB1")]
private const int L1 = 19280294;
// Token: 0x04006AB2 RID: 27314
[Token(Token = "0x4006AB2")]
private const int L2 = 127719000;
// Token: 0x04006AB3 RID: 27315
[Token(Token = "0x4006AB3")]
private const int L3 = -6428113;
// Token: 0x04006AB4 RID: 27316
[Token(Token = "0x4006AB4")]
private const int L4 = 5343;
// Token: 0x04006AB5 RID: 27317
[Token(Token = "0x4006AB5")]
private static readonly int[] B_x;
// Token: 0x04006AB6 RID: 27318
[Token(Token = "0x4006AB6")]
private static readonly int[] B_y;
// Token: 0x04006AB7 RID: 27319
[Token(Token = "0x4006AB7")]
private static readonly int[] C_d;
// Token: 0x04006AB8 RID: 27320
[Token(Token = "0x4006AB8")]
private static readonly int[] C_d2;
// Token: 0x04006AB9 RID: 27321
[Token(Token = "0x4006AB9")]
private static readonly int[] C_d4;
// Token: 0x04006ABA RID: 27322
[Token(Token = "0x4006ABA")]
private const int WnafWidthBase = 7;
// Token: 0x04006ABB RID: 27323
[Token(Token = "0x4006ABB")]
private const int PrecompBlocks = 8;
// Token: 0x04006ABC RID: 27324
[Token(Token = "0x4006ABC")]
private const int PrecompTeeth = 4;
// Token: 0x04006ABD RID: 27325
[Token(Token = "0x4006ABD")]
private const int PrecompSpacing = 8;
// Token: 0x04006ABE RID: 27326
[Token(Token = "0x4006ABE")]
private const int PrecompPoints = 8;
// Token: 0x04006ABF RID: 27327
[Token(Token = "0x4006ABF")]
private const int PrecompMask = 7;
// Token: 0x04006AC0 RID: 27328
[Token(Token = "0x4006AC0")]
private static readonly object precompLock;
// Token: 0x04006AC1 RID: 27329
[Token(Token = "0x4006AC1")]
private static Ed25519.PointExt[] precompBaseTable;
// Token: 0x04006AC2 RID: 27330
[Token(Token = "0x4006AC2")]
private static int[] precompBase;
// Token: 0x02001A09 RID: 6665
[Token(Token = "0x2001A09")]
public enum Algorithm
{
// Token: 0x04006AC4 RID: 27332
[Token(Token = "0x4006AC4")]
Ed25519,
// Token: 0x04006AC5 RID: 27333
[Token(Token = "0x4006AC5")]
Ed25519ctx,
// Token: 0x04006AC6 RID: 27334
[Token(Token = "0x4006AC6")]
Ed25519ph
}
// Token: 0x02001A0A RID: 6666
[Token(Token = "0x2001A0A")]
private class PointAccum
{
// Token: 0x0600A1D2 RID: 41426 RVA: 0x0022BE34 File Offset: 0x0022A034
[Token(Token = "0x600A1D2")]
[Address(RVA = "0x1F7E990", Offset = "0x1F7D790", VA = "0x181F7E990")]
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: 0x04006AC7 RID: 27335
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006AC7")]
internal int[] x;
// Token: 0x04006AC8 RID: 27336
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006AC8")]
internal int[] y;
// Token: 0x04006AC9 RID: 27337
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006AC9")]
internal int[] z;
// Token: 0x04006ACA RID: 27338
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006ACA")]
internal int[] u;
// Token: 0x04006ACB RID: 27339
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006ACB")]
internal int[] v;
}
// Token: 0x02001A0B RID: 6667
[Token(Token = "0x2001A0B")]
private class PointExt
{
// Token: 0x0600A1D3 RID: 41427 RVA: 0x0022BE9C File Offset: 0x0022A09C
[Token(Token = "0x600A1D3")]
[Address(RVA = "0x1F7EA20", Offset = "0x1F7D820", VA = "0x181F7EA20")]
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: 0x04006ACC RID: 27340
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006ACC")]
internal int[] x;
// Token: 0x04006ACD RID: 27341
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006ACD")]
internal int[] y;
// Token: 0x04006ACE RID: 27342
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006ACE")]
internal int[] z;
// Token: 0x04006ACF RID: 27343
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006ACF")]
internal int[] t;
}
// Token: 0x02001A0C RID: 6668
[Token(Token = "0x2001A0C")]
private class PointPrecomp
{
// Token: 0x0600A1D4 RID: 41428 RVA: 0x0022BEF4 File Offset: 0x0022A0F4
[Token(Token = "0x600A1D4")]
[Address(RVA = "0x1F7EAE0", Offset = "0x1F7D8E0", VA = "0x181F7EAE0")]
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: 0x04006AD0 RID: 27344
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006AD0")]
internal int[] ypx_h;
// Token: 0x04006AD1 RID: 27345
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006AD1")]
internal int[] ymx_h;
// Token: 0x04006AD2 RID: 27346
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006AD2")]
internal int[] xyd;
}
}
}
@@ -0,0 +1,1655 @@
using System;
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.Crypto.Utilities;
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: 0x02001A0D RID: 6669
[Token(Token = "0x2001A0D")]
public abstract class Ed448
{
// Token: 0x0600A1D5 RID: 41429 RVA: 0x0022BF38 File Offset: 0x0022A138
[Token(Token = "0x600A1D5")]
[Address(RVA = "0x1F670A0", Offset = "0x1F65EA0", VA = "0x181F670A0")]
private static byte[] CalculateS(byte[] r, byte[] k, byte[] s)
{
uint[] array = new uint[28];
int num = 0;
Ed448.DecodeScalar(r, num, array);
uint[] array2 = new uint[14];
int num2 = 0;
Ed448.DecodeScalar(k, num2, array2);
uint[] array3 = new uint[14];
int num3 = 0;
Ed448.DecodeScalar(s, num3, array3);
int num4 = 0;
int num5 = 0;
uint num6 = array2[num4];
num6 = Nat.MulWordAddTo(14, num6, array3, num5, array, num4);
num4++;
uint num7;
num7 += num6;
num4 += (int)num7;
array[0] = (uint)num4;
byte[] array4 = new byte[114];
int length = array.Length;
if (num4 < length)
{
uint num8 = array[num4];
num4++;
}
return Ed448.ReduceScalar(array4);
}
// Token: 0x0600A1D6 RID: 41430 RVA: 0x0022BFF8 File Offset: 0x0022A1F8
[Token(Token = "0x600A1D6")]
[Address(RVA = "0x1F672C0", Offset = "0x1F660C0", VA = "0x181F672C0")]
private static bool CheckContextVar(byte[] ctx)
{
if (ctx == 0)
{
}
return ctx.Length < 256;
}
// Token: 0x0600A1D7 RID: 41431 RVA: 0x0022C018 File Offset: 0x0022A218
[Token(Token = "0x600A1D7")]
[Address(RVA = "0x1F672E0", Offset = "0x1F660E0", VA = "0x181F672E0")]
private static bool CheckPointVar(byte[] p)
{
if ("{il2cpp array field p->}" == (ulong)127L)
{
uint[] array = new uint[14];
int num = 0;
int num2 = 0;
ulong num3;
Ed448.Decode32(p, num2, array, num, (int)num3);
uint num5;
uint num4 = Ed448.P[(int)num5];
if (array[(int)num5] <= num4)
{
}
}
throw new NullReferenceException();
}
// Token: 0x0600A1D8 RID: 41432 RVA: 0x0022C06C File Offset: 0x0022A26C
[Token(Token = "0x600A1D8")]
[Address(RVA = "0x1F67410", Offset = "0x1F66210", VA = "0x181F67410")]
private static bool CheckScalarVar(byte[] s)
{
if ("{il2cpp array field s->}" == (ulong)0L)
{
uint[] array = new uint[14];
int num = 0;
Ed448.DecodeScalar(s, num, array);
uint num3;
uint num2 = Ed448.L[(int)num3];
if (array[(int)num3] <= num2)
{
}
}
throw new NullReferenceException();
}
// Token: 0x0600A1D9 RID: 41433 RVA: 0x0022C0B8 File Offset: 0x0022A2B8
[Token(Token = "0x600A1D9")]
[Address(RVA = "0x1F67530", Offset = "0x1F66330", VA = "0x181F67530")]
public static IXof CreatePrehash()
{
/*
An exception occurred when decompiling this method (0600A1D9)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IXof BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::CreatePrehash()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:ShakeDigest(var_0_0A, newobj:ShakeDigest(ShakeDigest::.ctor, ldc.i4:int32(256)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A1DA RID: 41434 RVA: 0x0022C0D0 File Offset: 0x0022A2D0
[Token(Token = "0x600A1DA")]
[Address(RVA = "0x1F675C0", Offset = "0x1F663C0", VA = "0x181F675C0")]
private static IXof CreateXof()
{
/*
An exception occurred when decompiling this method (0600A1DA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IXof BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::CreateXof()
---> System.Exception: Basic block has to end with unconditional control flow.
{
Block_0:
stloc:ShakeDigest(var_0_0A, newobj:ShakeDigest(ShakeDigest::.ctor, ldc.i4:int32(256)))
}
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
--- End of inner exception stack trace ---
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
*/;
}
// Token: 0x0600A1DB RID: 41435 RVA: 0x0022C0E8 File Offset: 0x0022A2E8
[Token(Token = "0x600A1DB")]
[Address(RVA = "0x1F67610", Offset = "0x1F66410", VA = "0x181F67610")]
private static uint Decode16(byte[] bs, int off)
{
int length = bs.Length;
throw new NullReferenceException();
}
// Token: 0x0600A1DC RID: 41436 RVA: 0x0022C104 File Offset: 0x0022A304
[Token(Token = "0x600A1DC")]
[Address(RVA = "0x1F4C510", Offset = "0x1F4B310", VA = "0x181F4C510")]
private static uint Decode24(byte[] bs, int off)
{
int length = bs.Length;
int num = off + 1;
throw new NullReferenceException();
}
// Token: 0x0600A1DD RID: 41437 RVA: 0x0022C124 File Offset: 0x0022A324
[Token(Token = "0x600A1DD")]
[Address(RVA = "0x1824CD0", Offset = "0x1823AD0", VA = "0x181824CD0")]
private static uint Decode32(byte[] bs, int off)
{
int length = bs.Length;
int num = off + 1;
throw new NullReferenceException();
}
// Token: 0x0600A1DE RID: 41438 RVA: 0x0022C144 File Offset: 0x0022A344
[Token(Token = "0x600A1DE")]
[Address(RVA = "0x1F67670", Offset = "0x1F66470", VA = "0x181F67670")]
private static void Decode32(byte[] bs, int bsOff, uint[] n, int nOff, int nLen)
{
}
// Token: 0x0600A1DF RID: 41439 RVA: 0x0022C158 File Offset: 0x0022A358
[Token(Token = "0x600A1DF")]
[Address(RVA = "0x1F67740", Offset = "0x1F66540", VA = "0x181F67740")]
private static bool DecodePointVar(byte[] p, int pOff, bool negate, Ed448.PointExt r)
{
byte[] array = Arrays.CopyOfRange(p, pOff, negate ? 1 : 0);
if (Ed448.CheckPointVar(array))
{
byte b = array[7];
array[7] = b;
uint[] y = r.y;
int num = 0;
X448Field.Decode(array, num, y);
uint[] array2 = X448Field.Create();
uint[] array3 = X448Field.Create();
X448Field.Sqr(r.y, array2);
X448Field.Mul(array2, (uint)39081, array3);
X448Field.Negate(array2, array2);
X448Field.AddOne(array2);
X448Field.AddOne(array3);
uint[] x = r.x;
if (X448Field.SqrtRatioVar(array2, array3, x))
{
X448Field.Normalize(r.x);
if (!X448Field.IsZeroVar(r.x))
{
uint[] x2 = r.x;
uint num2 = x2[0];
if ((uint)b != num2 != negate)
{
X448Field.Negate(x2, x2);
}
X448Field.One(r.z);
}
}
}
throw new IndexOutOfRangeException();
}
// Token: 0x0600A1E0 RID: 41440 RVA: 0x0022C24C File Offset: 0x0022A44C
[Token(Token = "0x600A1E0")]
[Address(RVA = "0x1F67950", Offset = "0x1F66750", VA = "0x181F67950")]
private static void DecodeScalar(byte[] k, int kOff, uint[] n)
{
int num = 0;
ulong num2;
Ed448.Decode32(k, kOff, n, num, (int)num2);
}
// Token: 0x0600A1E1 RID: 41441 RVA: 0x0022C268 File Offset: 0x0022A468
[Token(Token = "0x600A1E1")]
[Address(RVA = "0x1F679E0", Offset = "0x1F667E0", VA = "0x181F679E0")]
private static void Dom4(IXof d, byte x, byte[] y)
{
int length = Ed448.Dom4Prefix.Length;
int length2 = y.Length;
}
// Token: 0x0600A1E2 RID: 41442 RVA: 0x0022C290 File Offset: 0x0022A490
[Token(Token = "0x600A1E2")]
[Address(RVA = "0x1F4CB90", Offset = "0x1F4B990", VA = "0x181F4CB90")]
private static void Encode24(uint n, byte[] bs, int off)
{
int num = off + 1;
}
// Token: 0x0600A1E3 RID: 41443 RVA: 0x0022C2A8 File Offset: 0x0022A4A8
[Token(Token = "0x600A1E3")]
[Address(RVA = "0x1825890", Offset = "0x1824690", VA = "0x181825890")]
private static void Encode32(uint n, byte[] bs, int off)
{
int num = off + 1;
}
// Token: 0x0600A1E4 RID: 41444 RVA: 0x0022C2C0 File Offset: 0x0022A4C0
[Token(Token = "0x600A1E4")]
[Address(RVA = "0x1F67AF0", Offset = "0x1F668F0", VA = "0x181F67AF0")]
private static void Encode56(ulong n, byte[] bs, int off)
{
Ed25519.Encode32((uint)n, bs, off);
bs[0] = (byte)n;
}
// Token: 0x0600A1E5 RID: 41445 RVA: 0x0022C2E4 File Offset: 0x0022A4E4
[Token(Token = "0x600A1E5")]
[Address(RVA = "0x1F67BE0", Offset = "0x1F669E0", VA = "0x181F67BE0")]
private static void EncodePoint(Ed448.PointExt p, byte[] r, int rOff)
{
uint[] array = X448Field.Create();
uint[] array2 = X448Field.Create();
X448Field.Inv(p.z, array2);
X448Field.Mul(p.x, array2, array);
X448Field.Mul(p.y, array2, array2);
X448Field.Normalize(array);
X448Field.Normalize(array2);
X448Field.Encode(array2, r, rOff);
uint num = array[0];
array2[0] = num;
}
// Token: 0x0600A1E6 RID: 41446 RVA: 0x0022C354 File Offset: 0x0022A554
[Token(Token = "0x600A1E6")]
[Address(RVA = "0x1F4CE90", Offset = "0x1F4BC90", VA = "0x181F4CE90")]
public static void GeneratePrivateKey(SecureRandom random, byte[] k)
{
}
// Token: 0x0600A1E7 RID: 41447 RVA: 0x0022C368 File Offset: 0x0022A568
[Token(Token = "0x600A1E7")]
[Address(RVA = "0x1F67CE0", Offset = "0x1F66AE0", VA = "0x181F67CE0")]
public static void GeneratePublicKey(byte[] sk, int skOff, byte[] pk, int pkOff)
{
ShakeDigest shakeDigest = new ShakeDigest(256);
byte[] array = new byte[114];
int secretKeySize = Ed448.SecretKeySize;
int length = array.Length;
byte[] array2 = new byte[57];
int num = 0;
Ed448.PruneScalar(array, num, array2);
Ed448.ScalarMultBaseEncoded(array2, pk, pkOff);
}
// Token: 0x0600A1E8 RID: 41448 RVA: 0x0022C3BC File Offset: 0x0022A5BC
[Token(Token = "0x600A1E8")]
[Address(RVA = "0x1F67E40", Offset = "0x1F66C40", VA = "0x181F67E40")]
private static sbyte[] GetWnaf(uint[] n, int width)
{
uint[] array = new uint[28];
int num = 0;
int num2 = array.Length;
num2 += -2;
uint num3;
array[0] = num3;
array[0] = num3;
sbyte[] array2 = new sbyte[448];
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: 0x0600A1E9 RID: 41449 RVA: 0x0022C44C File Offset: 0x0022A64C
[Token(Token = "0x600A1E9")]
[Address(RVA = "0x1F68280", Offset = "0x1F67080", VA = "0x181F68280")]
private static void ImplSign(IXof d, byte[] h, byte[] s, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
{
int length = h.Length;
byte[] array = Ed448.ReduceScalar(h);
byte[] array2 = new byte[57];
int num = 0;
Ed448.ScalarMultBaseEncoded(array, array2, num);
int length2 = h.Length;
byte[] array3 = Ed448.ReduceScalar(h);
}
// Token: 0x0600A1EA RID: 41450 RVA: 0x0022C498 File Offset: 0x0022A698
[Token(Token = "0x600A1EA")]
[Address(RVA = "0x1F68510", Offset = "0x1F67310", VA = "0x181F68510")]
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 (0600A1EA)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::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_5F:
stloc:ArgumentException(var_11_69, 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: 0x0600A1EB RID: 41451 RVA: 0x0022C510 File Offset: 0x0022A710
[Token(Token = "0x600A1EB")]
[Address(RVA = "0x1F68040", Offset = "0x1F66E40", VA = "0x181F68040")]
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)
{
ShakeDigest shakeDigest = new ShakeDigest(256);
byte[] array = new byte[114];
int secretKeySize = Ed448.SecretKeySize;
int length = array.Length;
byte[] array2 = new byte[0];
int num = 0;
Ed448.PruneScalar(array, num, array2);
}
// Token: 0x0600A1EC RID: 41452 RVA: 0x0022C564 File Offset: 0x0022A764
[Token(Token = "0x600A1EC")]
[Address(RVA = "0x1F68770", Offset = "0x1F67570", VA = "0x181F68770")]
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 (0600A1EC)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::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.
{
Block_3:
stloc:IXof(var_19_A0, call:IXof(Ed448::CreateXof))
stloc:uint8[](var_21_A9, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(114)))
stloc:int32(var_25_B5, callgetter:int32(Array::get_Length, ldloc:uint8[][exp:Array](var_21_A9)))
stloc:uint8[](var_26_BE, call:uint8[](Ed448::ReduceScalar, ldloc:uint8[](var_21_A9)))
stloc:uint32[](var_27_C6, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(0)))
stloc:uint32[](var_28_CE, newarr:uint32[]([mscorlib]System.UInt32, ldc.i4:int32(0)))
stloc:int32(var_29_D1, ldc.i4:int32(0))
call:void(Ed448::DecodeScalar, ldloc:uint8[](var_26_BE), ldloc:int32(var_29_D1), ldloc:uint32[](var_28_CE))
stloc:PointExt(var_30_E3, newobj:PointExt(PointExt::.ctor))
call:void(Ed448::ScalarMultStraussVar, ldloc:uint32[](var_27_C6), ldloc:uint32[](var_28_CE), ldloc:PointExt(var_9), ldloc:PointExt(var_30_E3))
stloc:uint8[](var_31_F8, newarr:uint8[]([mscorlib]System.Byte, ldc.i4:int32(0)))
stloc:int32(var_32_FB, ldc.i4:int32(0))
call:void(Ed448::EncodePoint, ldloc:PointExt(var_30_E3), ldloc:uint8[](var_31_F8), ldloc:int32(var_32_FB))
stloc:ArgumentException(var_34_112, 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: 0x0600A1ED RID: 41453 RVA: 0x0022C684 File Offset: 0x0022A884
[Token(Token = "0x600A1ED")]
[Address(RVA = "0x1F68E40", Offset = "0x1F67C40", VA = "0x181F68E40")]
private static void PointAddVar(bool negate, Ed448.PointExt p, Ed448.PointExt r)
{
uint[] array = X448Field.Create();
uint[] array2 = X448Field.Create();
uint[] array3 = X448Field.Create();
uint[] array4 = X448Field.Create();
uint[] array5 = X448Field.Create();
uint[] array6 = X448Field.Create();
uint[] array7 = X448Field.Create();
uint[] array8 = X448Field.Create();
if (!negate)
{
uint[] x = p.x;
X448Field.Add(p.y, x, array8);
}
uint[] x2 = p.x;
X448Field.Sub(p.y, x2, array8);
uint[] z = r.z;
X448Field.Mul(p.z, z, array);
X448Field.Sqr(array, array2);
uint[] x3 = r.x;
X448Field.Mul(p.x, x3, array3);
uint[] y = r.y;
X448Field.Mul(p.y, y, array4);
X448Field.Mul(array3, array4, array5);
X448Field.Mul(array5, (uint)39081, array5);
X448Field.Add(array2, array5, array7);
X448Field.Sub(array2, array5, array6);
uint[] y2 = r.y;
X448Field.Add(r.x, y2, array5);
X448Field.Mul(array8, array5, array8);
X448Field.Add(array4, array3, array5);
X448Field.Sub(array4, array3, array2);
X448Field.Carry(array5);
X448Field.Sub(array8, array2, array8);
X448Field.Mul(array8, array, array8);
X448Field.Mul(array5, array, array5);
uint[] x4 = r.x;
X448Field.Mul(array6, array8, x4);
uint[] y3 = r.y;
X448Field.Mul(array5, array7, y3);
uint[] z2 = r.z;
X448Field.Mul(array6, array7, z2);
}
// Token: 0x0600A1EE RID: 41454 RVA: 0x0022C824 File Offset: 0x0022AA24
[Token(Token = "0x600A1EE")]
[Address(RVA = "0x1F68C50", Offset = "0x1F67A50", VA = "0x181F68C50")]
private static void PointAddPrecomp(Ed448.PointPrecomp p, Ed448.PointExt r)
{
uint[] array = X448Field.Create();
uint[] array2 = X448Field.Create();
uint[] array3 = X448Field.Create();
uint[] array4 = X448Field.Create();
uint[] array5 = X448Field.Create();
uint[] array6 = X448Field.Create();
uint[] array7 = X448Field.Create();
X448Field.Sqr(r.z, array);
uint[] x = r.x;
X448Field.Mul(p.x, x, array2);
uint[] y = r.y;
X448Field.Mul(p.y, y, array3);
X448Field.Mul(array2, array3, array4);
X448Field.Mul(array4, (uint)39081, array4);
X448Field.Add(array, array4, array5);
X448Field.Sub(array, array4, array6);
uint[] y2 = p.y;
X448Field.Add(p.x, y2, array);
uint[] y3 = r.y;
X448Field.Add(r.x, y3, array4);
X448Field.Mul(array, array4, array7);
X448Field.Add(array3, array2, array);
X448Field.Sub(array3, array2, array4);
X448Field.Carry(array);
X448Field.Sub(array7, array, array7);
uint[] z = r.z;
X448Field.Mul(array7, z, array7);
uint[] z2 = r.z;
X448Field.Mul(array4, z2, array4);
uint[] x2 = r.x;
X448Field.Mul(array5, array7, x2);
uint[] y4 = r.y;
X448Field.Mul(array4, array6, y4);
uint[] z3 = r.z;
X448Field.Mul(array5, array6, z3);
}
// Token: 0x0600A1EF RID: 41455 RVA: 0x0022C998 File Offset: 0x0022AB98
[Token(Token = "0x600A1EF")]
[Address(RVA = "0x1F690B0", Offset = "0x1F67EB0", VA = "0x181F690B0")]
private static Ed448.PointExt PointCopy(Ed448.PointExt p)
{
uint[] array = X448Field.Create();
Ed448.PointExt pointExt;
pointExt.x = array;
uint[] array2 = X448Field.Create();
pointExt.y = array2;
uint[] array3 = X448Field.Create();
pointExt.z = array3;
uint[] x = pointExt.x;
int num = 0;
uint[] x2 = p.x;
int num2 = 0;
X448Field.Copy(x2, num2, x, num);
uint[] y = pointExt.y;
int num3 = 0;
uint[] y2 = p.y;
int num4 = 0;
X448Field.Copy(y2, num4, y, num3);
uint[] z = pointExt.z;
int num5 = 0;
uint[] z2 = p.z;
int num6 = 0;
X448Field.Copy(z2, num6, z, num5);
return pointExt;
}
// Token: 0x0600A1F0 RID: 41456 RVA: 0x0022CA48 File Offset: 0x0022AC48
[Token(Token = "0x600A1F0")]
[Address(RVA = "0x1F69180", Offset = "0x1F67F80", VA = "0x181F69180")]
private static void PointDouble(Ed448.PointExt r)
{
uint[] array = X448Field.Create();
uint[] array2 = X448Field.Create();
uint[] array3 = X448Field.Create();
uint[] array4 = X448Field.Create();
uint[] array5 = X448Field.Create();
uint[] array6 = X448Field.Create();
uint[] y = r.y;
X448Field.Add(r.x, y, array);
X448Field.Sqr(array, array);
X448Field.Sqr(r.x, array2);
X448Field.Sqr(r.y, array3);
X448Field.Add(array2, array3, array4);
X448Field.Carry(array4);
X448Field.Sqr(r.z, array5);
X448Field.Add(array5, array5, array5);
X448Field.Carry(array5);
X448Field.Sub(array4, array5, array6);
X448Field.Sub(array, array4, array);
X448Field.Sub(array2, array3, array2);
uint[] x = r.x;
X448Field.Mul(array, array6, x);
uint[] y2 = r.y;
X448Field.Mul(array4, array2, y2);
uint[] z = r.z;
X448Field.Mul(array4, array6, z);
}
// Token: 0x0600A1F1 RID: 41457 RVA: 0x0022CB50 File Offset: 0x0022AD50
[Token(Token = "0x600A1F1")]
[Address(RVA = "0x1F69300", Offset = "0x1F68100", VA = "0x181F69300")]
private static void PointExtendXY(Ed448.PointExt p)
{
X448Field.One(p.z);
}
// Token: 0x0600A1F2 RID: 41458 RVA: 0x0022CB70 File Offset: 0x0022AD70
[Token(Token = "0x600A1F2")]
[Address(RVA = "0x1F69320", Offset = "0x1F68120", VA = "0x181F69320")]
private static void PointLookup(int block, int index, Ed448.PointPrecomp p)
{
int num = 0;
uint[] x = p.x;
uint[] array = Ed448.precompBase;
uint num2;
Nat.CMov((int)num2, num, array, block, x, num);
uint[] y = p.y;
uint[] array2 = Ed448.precompBase;
uint num3;
Nat.CMov((int)num3, num, array2, block, y, num);
num++;
}
// Token: 0x0600A1F3 RID: 41459 RVA: 0x0022CBC0 File Offset: 0x0022ADC0
[Token(Token = "0x600A1F3")]
[Address(RVA = "0x1F69440", Offset = "0x1F68240", VA = "0x181F69440")]
private static Ed448.PointExt[] PointPrecompVar(Ed448.PointExt p, int count)
{
Ed448.PointExt pointExt = Ed448.PointCopy(p);
Ed448.PointDouble(pointExt);
Ed448.PointExt[] array = new Ed448.PointExt[count];
Ed448.PointExt pointExt2 = Ed448.PointCopy(p);
if (pointExt2 != 0)
{
}
array[0] = pointExt2;
if (count > 1)
{
Ed448.PointExt pointExt3 = Ed448.PointCopy(array[pointExt2]);
throw new ArrayTypeMismatchException();
}
return array;
}
// Token: 0x0600A1F4 RID: 41460 RVA: 0x0022CC24 File Offset: 0x0022AE24
[Token(Token = "0x600A1F4")]
[Address(RVA = "0x1F69600", Offset = "0x1F68400", VA = "0x181F69600")]
private static void PointSetNeutral(Ed448.PointExt p)
{
X448Field.Zero(p.x);
X448Field.One(p.y);
X448Field.One(p.z);
}
// Token: 0x0600A1F5 RID: 41461 RVA: 0x0022CC58 File Offset: 0x0022AE58
[Token(Token = "0x600A1F5")]
[Address(RVA = "0x1F69640", Offset = "0x1F68440", VA = "0x181F69640")]
public static void Precompute()
{
int num;
Ed448.PointExt pointExt;
for (;;)
{
num = 0;
object obj = Ed448.precompLock;
uint[] array = X448Field.Create();
pointExt.x = array;
uint[] array2 = X448Field.Create();
pointExt.y = array2;
uint[] array3 = X448Field.Create();
pointExt.z = array3;
int num2 = 0;
uint[] x = pointExt.x;
int num3 = 0;
X448Field.Copy(Ed448.B_x, num3, x, num2);
int num4 = 0;
uint[] y = pointExt.y;
int num5 = 0;
X448Field.Copy(Ed448.B_y, num5, y, num4);
X448Field.One(pointExt.z);
Ed448.precompBaseTable = Ed448.PointPrecompVar(pointExt, 32);
Ed448.precompBase = new uint[2560];
if (num < 5)
{
break;
}
Monitor.Exit(obj);
if (num == 0)
{
return;
}
}
Ed448.PointExt[] array4 = new Ed448.PointExt[5];
uint[] array5 = X448Field.Create();
Ed448.PointExt pointExt2;
pointExt2.x = array5;
uint[] array6 = X448Field.Create();
pointExt2.y = array6;
uint[] array7 = X448Field.Create();
pointExt2.z = array7;
Ed448.PointSetNeutral(pointExt2);
if (num < 5)
{
ulong num6;
Ed448.PointAddVar(num6 != 0UL, pointExt, pointExt2);
Ed448.PointDouble(pointExt);
Ed448.PointExt pointExt3 = Ed448.PointCopy(pointExt);
throw new ArrayTypeMismatchException();
}
Ed448.PointExt[] array8 = new Ed448.PointExt[16];
throw new ArrayTypeMismatchException();
}
// Token: 0x0600A1F6 RID: 41462 RVA: 0x0022CF28 File Offset: 0x0022B128
[Token(Token = "0x600A1F6")]
[Address(RVA = "0x1F69C60", Offset = "0x1F68A60", VA = "0x181F69C60")]
private static void PruneScalar(byte[] n, int nOff, byte[] r)
{
int num = 0;
ulong num2;
Array.Copy(n, nOff, r, num, (int)num2);
}
// Token: 0x0600A1F7 RID: 41463 RVA: 0x0022CF48 File Offset: 0x0022B148
[Token(Token = "0x600A1F7")]
[Address(RVA = "0x1F69CF0", Offset = "0x1F68AF0", VA = "0x181F69CF0")]
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);
int int10 = SerializationHeaderRecord.GetInt32(n, 63);
uint num11 = Ed25519.Decode24(n, 67);
int num12 = SerializationHeaderRecord.GetInt32(n, 70);
uint num13 = Ed25519.Decode24(n, 74);
int int11 = SerializationHeaderRecord.GetInt32(n, 77);
uint num14 = Ed25519.Decode24(n, 81);
int num15 = SerializationHeaderRecord.GetInt32(n, 84);
uint num16 = Ed25519.Decode24(n, 88);
int int12 = SerializationHeaderRecord.GetInt32(n, 91);
uint num17 = Ed25519.Decode24(n, 95);
int int13 = SerializationHeaderRecord.GetInt32(n, 98);
uint num18 = Ed25519.Decode24(n, 102);
int num19 = SerializationHeaderRecord.GetInt32(n, 105);
uint num20 = Ed25519.Decode24(n, 109);
int length = n.Length;
byte b = n[14];
num20 += (uint)num19;
num19 = int13;
num18 += (uint)num19;
long num21 = (long)((ulong)num19 * (ulong)149865618L);
long num22 = (long)((ulong)num18 * (ulong)550336261L);
long num23 = (long)((ulong)num20 * (ulong)550336261L);
num22 += num21;
long num24 = (long)((ulong)num20 * (ulong)227822194L);
num22 += num24;
long num25 = (long)((ulong)b * (ulong)96434764L);
num22 += num25;
num22 += (long)num12;
num12 = int12;
num17 += (uint)num12;
long num26 = (long)((ulong)b * (ulong)30366549L);
num10 = (uint)((long)num10 + num26);
long num27 = (long)((ulong)num19 * (ulong)258169998L);
num10 = (uint)((long)num10 + num27);
long num28 = (long)((ulong)int12 * (ulong)550336261L);
num10 = (uint)((long)num10 + num28);
long num29 = (long)((ulong)num17 * (ulong)149865618L);
num10 = (uint)((long)num10 + num29);
long num30 = (long)((ulong)int13 * (ulong)227822194L);
num10 = (uint)((long)num10 + num30);
long num31 = (long)((ulong)num20 * (ulong)163752818L);
num10 = (uint)((long)num10 + num31);
long num32 = (long)((ulong)num18 * (ulong)96434764L);
num10 = (uint)((long)num10 + num32);
num16 += (uint)num15;
long num33 = (long)((ulong)num19 * (ulong)550336261L);
num13 = (uint)((long)num13 + num33);
long num34 = (long)((ulong)num20 * (ulong)149865618L);
num13 = (uint)((long)num13 + num34);
long num35 = (long)((ulong)b * (ulong)227822194L);
num13 = (uint)((long)num13 + num35);
num35 = num22;
num13 = (uint)((long)num13 + num35);
long num36 = (long)((ulong)b * (ulong)149865618L);
num23 += num36;
num23 += (long)num13;
num23 += (long)int11;
long num37 = (long)((ulong)b * (ulong)550336261L);
num14 = (uint)((long)num14 + num37);
long num38 = (long)((ulong)num19 * (ulong)43969588L);
num37 = num23;
num14 = (uint)((long)num14 + num37);
num15 += (int)num14;
long num39 = (long)((ulong)num18 * (ulong)30366549L);
num38 += num39;
long num40 = (long)((ulong)num14 * (ulong)550336261L);
long num41 = (long)((ulong)num20 * (ulong)258169998L);
num38 += num40;
long num42 = (long)((ulong)num17 * (ulong)258169998L);
num38 += num42;
long num43 = (long)((ulong)num15 * (ulong)149865618L);
num38 += num43;
long num44 = (long)((ulong)num16 * (ulong)227822194L);
num38 += num44;
long num45 = (long)((ulong)int13 * (ulong)163752818L);
num38 += num45;
long num46 = (long)((ulong)int12 * (ulong)96434764L);
num38 += num46;
num38 += (long)int8;
long num47 = (long)((ulong)num17 * (ulong)550336261L);
num41 += num47;
long num48 = (long)((ulong)num18 * (ulong)227822194L);
num41 += num48;
long num49 = (long)((ulong)int13 * (ulong)149865618L);
num41 += num49;
long num50 = (long)((ulong)b * (ulong)163752818L);
num41 += num50;
long num51;
num41 += num51;
num41 += (long)num10;
num41 += (long)int10;
long num52 = (long)((ulong)b * (ulong)258169998L);
num11 = (uint)((long)num11 + num52);
long num53;
num11 = (uint)((long)num11 + num53);
long num54 = (long)((ulong)num18 * (ulong)149865618L);
num11 = (uint)((long)num11 + num54);
long num55;
num11 = (uint)((long)num11 + num55);
long num56 = (long)((ulong)num20 * (ulong)96434764L);
num11 = (uint)((long)num11 + num56);
num56 = num41;
num11 = (uint)((long)num11 + num56);
num22 += (long)num11;
num13 = (uint)((long)num13 + num22);
long num57 = (long)((ulong)num20 * (ulong)43969588L);
num9 = (uint)((long)num9 + num57);
long num58;
num9 = (uint)((long)num9 + num58);
long num59 = (long)((ulong)num15 * (ulong)550336261L);
num9 = (uint)((long)num9 + num59);
long num60 = (long)((ulong)b * (ulong)43969588L);
long num61;
num9 = (uint)((long)num9 + num61);
long num62 = (long)((ulong)num16 * (ulong)149865618L);
num9 = (uint)((long)num9 + num62);
long num63;
num9 = (uint)((long)num9 + num63);
long num64 = (long)((ulong)num18 * (ulong)163752818L);
num9 = (uint)((long)num9 + num64);
long num65 = (long)((ulong)num17 * (ulong)96434764L);
num9 = (uint)((long)num9 + num65);
num65 = num38;
num9 = (uint)((long)num9 + num65);
long num66 = (long)((ulong)num20 * (ulong)30366549L);
num60 += num66;
long num67 = (long)((ulong)num18 * (ulong)258169998L);
num60 += num67;
long num68 = (long)((ulong)num16 * (ulong)550336261L);
num60 += num68;
long num69;
num60 += num69;
long num70 = (long)((ulong)num17 * (ulong)227822194L);
num60 += num70;
long num71;
num60 += num71;
long num72;
num60 += num72;
num60 += (long)num9;
num60 += (long)int9;
num10 = (uint)((long)num10 + num60);
num41 += (long)num10;
num10 = num9;
long num73 = (long)((ulong)(num20 + 1U) * (ulong)78101261L);
num73 += (long)@int;
long num74 = (long)((ulong)(num20 + 1U) * (ulong)141809365L);
long num75 = (long)((ulong)num10 * (ulong)43969588L);
num2 = (uint)((long)num2 + num74);
num2 = (uint)((long)num2 + num75);
num75 = num73;
num2 = (uint)((long)num2 + num75);
long num76 = (long)((ulong)(num20 + 1U) * (ulong)175155932L);
long num77 = num41 * (long)((ulong)43969588L);
num76 += num77;
long num78 = (long)((ulong)num10 * (ulong)30366549L);
num76 += num78;
num76 += (long)num2;
num76 += (long)int2;
long num79 = (long)((ulong)(num20 + 1U) * (ulong)64542499L);
num3 = (uint)((long)num3 + num79);
long num80 = (long)((ulong)num11 * (ulong)43969588L);
num3 = (uint)((long)num3 + num80);
long num81 = num41 * (long)((ulong)30366549L);
num3 = (uint)((long)num3 + num81);
long num82 = (long)((ulong)num10 * (ulong)163752818L);
num3 = (uint)((long)num3 + num82);
num82 = num76;
num3 = (uint)((long)num3 + num82);
long num83 = (long)((ulong)(num20 + 1U) * (ulong)158326419L);
long num84 = num22 * (long)((ulong)43969588L);
num83 += num84;
long num85 = (long)((ulong)num11 * (ulong)30366549L);
num83 += num85;
long num86 = (long)((ulong)num10 * (ulong)258169998L);
num83 += num86;
long num87 = num41 * (long)((ulong)163752818L);
num83 += num87;
num83 += (long)num3;
num83 += (long)int3;
long num88 = (long)((ulong)(num20 + 1U) * (ulong)191173276L);
long num89 = (long)((ulong)num13 * (ulong)43969588L);
num4 = (uint)((long)num4 + num88);
num4 = (uint)((long)num4 + num89);
long num90 = num22 * (long)((ulong)30366549L);
num4 = (uint)((long)num4 + num90);
long num91 = num41 * (long)((ulong)258169998L);
num4 = (uint)((long)num4 + num91);
long num92 = (long)((ulong)num11 * (ulong)163752818L);
num4 = (uint)((long)num4 + num92);
long num93 = (long)((ulong)num10 * (ulong)96434764L);
num4 = (uint)((long)num4 + num93);
num93 = num83;
num4 = (uint)((long)num4 + num93);
long num94 = (long)((ulong)(num20 + 1U) * (ulong)104575268L);
long num95 = num23 * (long)((ulong)43969588L);
num94 += num95;
long num96 = (long)((ulong)num13 * (ulong)30366549L);
num94 += num96;
long num97 = (long)((ulong)num11 * (ulong)258169998L);
num94 += num97;
long num98 = (long)((ulong)num10 * (ulong)227822194L);
num94 += num98;
long num99 = num22 * (long)((ulong)163752818L);
num94 += num99;
long num100 = num41 * (long)((ulong)96434764L);
num94 += num100;
num94 += (long)num4;
num94 += (long)int4;
long num101 = (long)((ulong)(num20 + 1U) * (ulong)137584065L);
long num102 = (long)((ulong)num14 * (ulong)43969588L);
num5 = (uint)((long)num5 + num101);
num5 = (uint)((long)num5 + num102);
long num103;
num5 = (uint)((long)num5 + num103);
long num104 = num22 * (long)((ulong)258169998L);
num5 = (uint)((long)num5 + num104);
long num105 = (long)((ulong)num10 * (ulong)149865618L);
num5 = (uint)((long)num5 + num105);
long num106 = num41 * (long)((ulong)227822194L);
num5 = (uint)((long)num5 + num106);
long num107 = (long)((ulong)num13 * (ulong)163752818L);
num5 = (uint)((long)num5 + num107);
long num108 = (long)((ulong)num11 * (ulong)96434764L);
num5 = (uint)((long)num5 + num108);
num108 = num94;
num5 = (uint)((long)num5 + num108);
long num109 = (long)((ulong)num14 * (ulong)30366549L);
long num110;
num110 += num109;
long num111 = (long)((ulong)num10 * (ulong)550336261L);
num110 += num111;
long num112 = (long)((ulong)num13 * (ulong)258169998L);
num110 += num112;
long num113 = num41 * (long)((ulong)149865618L);
num110 += num113;
long num114 = (long)((ulong)num11 * (ulong)227822194L);
num110 += num114;
long num115;
num110 += num115;
long num116 = num22 * (long)((ulong)96434764L);
num110 += num116;
num110 += (long)num5;
num110 += (long)int5;
long num117;
num6 = (uint)((long)num6 + num117);
long num118;
num6 = (uint)((long)num6 + num118);
long num119 = num41 * (long)((ulong)550336261L);
num6 = (uint)((long)num6 + num119);
long num120 = num23 * (long)((ulong)258169998L);
num6 = (uint)((long)num6 + num120);
long num121 = (long)((ulong)num11 * (ulong)149865618L);
num6 = (uint)((long)num6 + num121);
long num122 = num22 * (long)((ulong)227822194L);
num6 = (uint)((long)num6 + num122);
long num123 = (long)((ulong)num14 * (ulong)163752818L);
num6 = (uint)((long)num6 + num123);
long num124 = (long)((ulong)num13 * (ulong)96434764L);
num6 = (uint)((long)num6 + num124);
num124 = num110;
num6 = (uint)((long)num6 + num124);
long num125;
long num126;
num125 += num126;
long num127 = (long)((ulong)num11 * (ulong)550336261L);
num125 += num127;
long num128 = (long)((ulong)num14 * (ulong)258169998L);
num125 += num128;
long num129 = num22 * (long)((ulong)149865618L);
num125 += num129;
long num130 = (long)((ulong)num13 * (ulong)227822194L);
num125 += num130;
long num131;
num125 += num131;
long num132 = num23 * (long)((ulong)96434764L);
num125 += num132;
num125 += (long)num6;
num125 += (long)int6;
long num133;
num7 = (uint)((long)num7 + num133);
long num134;
num7 = (uint)((long)num7 + num134);
long num135;
num7 = (uint)((long)num7 + num135);
long num136;
num7 = (uint)((long)num7 + num136);
long num137 = (long)((ulong)num13 * (ulong)149865618L);
num7 = (uint)((long)num7 + num137);
long num138 = num23 * (long)((ulong)227822194L);
num7 = (uint)((long)num7 + num138);
long num139;
num7 = (uint)((long)num7 + num139);
long num140 = (long)((ulong)num14 * (ulong)96434764L);
num7 = (uint)((long)num7 + num140);
num140 = num125;
num7 = (uint)((long)num7 + num140);
long num141;
long num142;
num141 += num142;
long num143 = (long)((ulong)num13 * (ulong)550336261L);
num141 += num143;
long num144;
num141 += num144;
long num145 = num23 * (long)((ulong)149865618L);
num141 += num145;
long num146 = (long)((ulong)num14 * (ulong)227822194L);
num141 += num146;
long num147;
num141 += num147;
long num148;
num141 += num148;
num141 += (long)num7;
num141 += (long)int7;
long num149;
num8 = (uint)((long)num8 + num149);
long num150;
num8 = (uint)((long)num8 + num150);
long num151;
num8 = (uint)((long)num8 + num151);
long num152;
num8 = (uint)((long)num8 + num152);
long num153 = (long)((ulong)num14 * (ulong)149865618L);
num8 = (uint)((long)num8 + num153);
long num154;
num8 = (uint)((long)num8 + num154);
long num155;
num8 = (uint)((long)num8 + num155);
long num156;
num8 = (uint)((long)num8 + num156);
num156 = num141;
num8 = (uint)((long)num8 + num156);
num38 += (long)num8;
num9 = (uint)((long)num9 + num38);
num73 -= (long)num9;
num73 -= (long)num9;
num73 += (long)num2;
num2 = num9;
num73 -= (long)num2;
num73 += num76;
num2 = num9;
num73 -= (long)num2;
num73 += (long)num3;
num2 = num9;
num73 -= (long)num2;
num73 += num83;
num2 = num9;
num73 -= (long)num2;
num73 += (long)num4;
num2 = num9;
num73 -= (long)num2;
num73 += num94;
num73 -= (long)num9;
num73 += (long)num5;
num73 += num110;
num73 += (long)num6;
num83 = num73;
num83 += num125;
num110 = num83;
num110 += (long)num7;
num110 += num141;
num110 += (long)num8;
num76 = num110;
num76 += num38;
byte[] array = new byte[57];
int num157 = 0;
Ed448.Encode56((ulong)num73, array, num157);
Ed448.Encode56((ulong)num73, array, 7);
Ed448.Encode56((ulong)num73, array, 14);
Ed448.Encode56((ulong)num73, array, 21);
Ed448.Encode56((ulong)num73, array, 28);
num73 = num110;
Ed448.Encode56((ulong)num73, array, 35);
num73 = num110;
Ed448.Encode56((ulong)num73, array, 42);
num73 = num76;
num9 = (uint)((long)num9 + num73);
Ed448.Encode56((ulong)num9, array, 49);
return array;
}
// Token: 0x0600A1F8 RID: 41464 RVA: 0x0022DB68 File Offset: 0x0022BD68
[Token(Token = "0x600A1F8")]
[Address(RVA = "0x1F6AE10", Offset = "0x1F69C10", VA = "0x181F6AE10")]
private static void ScalarMultBase(byte[] k, Ed448.PointExt r)
{
Ed448.Precompute();
X448Field.Zero(r.x);
X448Field.One(r.y);
X448Field.One(r.z);
uint[] array = new uint[15];
int num = 0;
Ed448.DecodeScalar(k, num, array);
int num2 = 0;
int num3 = 0;
uint num4 = Ed448.L[num3];
num3++;
uint num5 = array[num3];
num2 += (int)num5;
num2 += (int)num4;
array[0] = (uint)num2;
array[7] = 4U;
int length = array.Length;
uint num6 = array[length];
array[0] = num6;
uint[] array2 = X448Field.Create();
Ed448.PointPrecomp pointPrecomp;
pointPrecomp.x = array2;
uint[] array3 = X448Field.Create();
pointPrecomp.y = array3;
int num7 = 0;
int length2 = array.Length;
int num8 = 0;
uint num9;
num9 += (uint)18;
num8++;
uint num10 = array[(int)num9];
Ed448.PointLookup(num7, (int)num10, pointPrecomp);
uint[] x = pointPrecomp.x;
X448Field.CNegate((int)num10, x);
Ed448.PointAddPrecomp(pointPrecomp, r);
num7++;
uint num11 = num9 - 1U;
Ed448.PointDouble(r);
}
// Token: 0x0600A1F9 RID: 41465 RVA: 0x0022DC98 File Offset: 0x0022BE98
[Token(Token = "0x600A1F9")]
[Address(RVA = "0x1F6AC20", Offset = "0x1F69A20", VA = "0x181F6AC20")]
private static void ScalarMultBaseEncoded(byte[] k, byte[] r, int rOff)
{
uint[] array = X448Field.Create();
Ed448.PointExt pointExt;
pointExt.x = array;
uint[] array2 = X448Field.Create();
pointExt.y = array2;
uint[] array3 = X448Field.Create();
pointExt.z = array3;
Ed448.ScalarMultBase(k, pointExt);
Ed448.EncodePoint(pointExt, r, rOff);
}
// Token: 0x0600A1FA RID: 41466 RVA: 0x0022DCE8 File Offset: 0x0022BEE8
[Token(Token = "0x600A1FA")]
[Address(RVA = "0x1F6ACF0", Offset = "0x1F69AF0", VA = "0x181F6ACF0")]
internal static void ScalarMultBaseXY(byte[] k, int kOff, uint[] x, uint[] y)
{
byte[] array = new byte[57];
Ed448.PruneScalar(k, kOff, array);
uint[] array2 = X448Field.Create();
Ed448.PointExt pointExt;
pointExt.x = array2;
uint[] array3 = X448Field.Create();
pointExt.y = array3;
uint[] array4 = X448Field.Create();
pointExt.z = array4;
Ed448.ScalarMultBase(array, pointExt);
uint[] x2 = pointExt.x;
int num = 0;
int num2 = 0;
X448Field.Copy(x2, num2, x, num);
uint[] y2 = pointExt.y;
int num3 = 0;
int num4 = 0;
X448Field.Copy(y2, num4, y, num3);
}
// Token: 0x0600A1FB RID: 41467 RVA: 0x0022DD78 File Offset: 0x0022BF78
[Token(Token = "0x600A1FB")]
[Address(RVA = "0x1F6B170", Offset = "0x1F69F70", VA = "0x181F6B170")]
private static void ScalarMultStraussVar(uint[] nb, uint[] np, Ed448.PointExt p, Ed448.PointExt r)
{
Ed448.Precompute();
sbyte[] wnaf = Ed448.GetWnaf(nb, 7);
sbyte[] wnaf2 = Ed448.GetWnaf(np, 5);
Ed448.PointExt[] array = Ed448.PointPrecompVar(p, 8);
X448Field.Zero(r.x);
X448Field.One(r.y);
X448Field.One(r.z);
if ((uint)447 == (uint)wnaf2.Length)
{
}
sbyte b;
Ed448.PointExt pointExt = Ed448.precompBaseTable[(int)b];
bool flag;
Ed448.PointAddVar(flag, pointExt, r);
if ((uint)447 != 0U)
{
Ed448.PointExt pointExt2;
Ed448.PointAddVar((uint)447 != 0U, pointExt2, r);
}
Ed448.PointDouble(r);
}
// Token: 0x0600A1FC RID: 41468 RVA: 0x0022DE14 File Offset: 0x0022C014
[Token(Token = "0x600A1FC")]
[Address(RVA = "0x1F6B900", Offset = "0x1F6A700", VA = "0x181F6B900")]
public static void Sign(byte[] sk, int skOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
{
}
// Token: 0x0600A1FD RID: 41469 RVA: 0x0022DE24 File Offset: 0x0022C024
[Token(Token = "0x600A1FD")]
[Address(RVA = "0x1F6B9C0", Offset = "0x1F6A7C0", VA = "0x181F6B9C0")]
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: 0x0600A1FE RID: 41470 RVA: 0x0022DE34 File Offset: 0x0022C034
[Token(Token = "0x600A1FE")]
[Address(RVA = "0x1F6B830", Offset = "0x1F6A630", VA = "0x181F6B830")]
public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)
{
int prehashSize = Ed448.PrehashSize;
}
// Token: 0x0600A1FF RID: 41471 RVA: 0x0022DE48 File Offset: 0x0022C048
[Token(Token = "0x600A1FF")]
[Address(RVA = "0x1F6B430", Offset = "0x1F6A230", VA = "0x181F6B430")]
public static void SignPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)
{
int prehashSize = Ed448.PrehashSize;
}
// Token: 0x0600A200 RID: 41472 RVA: 0x0022DE5C File Offset: 0x0022C05C
[Token(Token = "0x600A200")]
[Address(RVA = "0x1F6B6B0", Offset = "0x1F6A4B0", VA = "0x181F6B6B0")]
public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, IXof ph, byte[] sig, int sigOff)
{
/*
An exception occurred when decompiling this method (0600A200)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::SignPrehash(System.Byte[],System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IXof,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: 0x0600A201 RID: 41473 RVA: 0x0022DE98 File Offset: 0x0022C098
[Token(Token = "0x600A201")]
[Address(RVA = "0x1F6B510", Offset = "0x1F6A310", VA = "0x181F6B510")]
public static void SignPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, IXof ph, byte[] sig, int sigOff)
{
/*
An exception occurred when decompiling this method (0600A201)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::SignPrehash(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IXof,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: 0x0600A202 RID: 41474 RVA: 0x0022DED4 File Offset: 0x0022C0D4
[Token(Token = "0x600A202")]
[Address(RVA = "0x1F6BCF0", Offset = "0x1F6AAF0", VA = "0x181F6BCF0")]
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: 0x0600A203 RID: 41475 RVA: 0x0022DEE4 File Offset: 0x0022C0E4
[Token(Token = "0x600A203")]
[Address(RVA = "0x1F6BAA0", Offset = "0x1F6A8A0", VA = "0x181F6BAA0")]
public static bool VerifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff)
{
int prehashSize = Ed448.PrehashSize;
bool flag;
return flag;
}
// Token: 0x0600A204 RID: 41476 RVA: 0x0022DEF8 File Offset: 0x0022C0F8
[Token(Token = "0x600A204")]
[Address(RVA = "0x1F6BB70", Offset = "0x1F6A970", VA = "0x181F6BB70")]
public static bool VerifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, IXof ph)
{
/*
An exception occurred when decompiling this method (0600A204)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed448::VerifyPrehash(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IXof)
---> 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: 0x0600A205 RID: 41477 RVA: 0x0022DF34 File Offset: 0x0022C134
[Token(Token = "0x600A205")]
[Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")]
protected Ed448()
{
}
// Token: 0x0600A206 RID: 41478 RVA: 0x0022DF48 File Offset: 0x0022C148
// Note: this type is marked as 'beforefieldinit'.
[Token(Token = "0x600A206")]
[Address(RVA = "0x1F6BDB0", Offset = "0x1F6ABB0", VA = "0x181F6BDB0")]
static Ed448()
{
uint[] array = new uint[14];
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.6E92E42774698E4C089FE0FE4F7539D0D5F845F5).FieldHandle);
Ed448.P = array;
uint[] array2 = new uint[14];
int num = 0;
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.14353D63A97A25640437E7C0DAE8B1596F34AB2C).FieldHandle);
Ed448.L = array2;
uint[] l = Ed448.L;
int length = l.Length;
byte[] array3 = new byte[0];
int num2 = 0;
if (length > 0)
{
uint num3 = l[num2];
if (num3 != (uint)0)
{
Pack.UInt32_To_BE(num3, array3, num);
}
num2++;
}
Ed448.N = new BigInteger(1, array3);
uint[] array4 = new uint[16];
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.17BCB27C371D710141A300DA5A9A3EADF78D7A35).FieldHandle);
Ed448.B_x = array4;
uint[] array5 = new uint[16];
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.0060620709E93572EB9D62564332C778F7AE32E9).FieldHandle);
Ed448.B_y = array5;
Ed448.precompLock = new object();
}
// Token: 0x04006AD3 RID: 27347
[Token(Token = "0x4006AD3")]
private const ulong M26UL = 67108863UL;
// Token: 0x04006AD4 RID: 27348
[Token(Token = "0x4006AD4")]
private const ulong M28UL = 268435455UL;
// Token: 0x04006AD5 RID: 27349
[Token(Token = "0x4006AD5")]
private const int PointBytes = 57;
// Token: 0x04006AD6 RID: 27350
[Token(Token = "0x4006AD6")]
private const int ScalarUints = 14;
// Token: 0x04006AD7 RID: 27351
[Token(Token = "0x4006AD7")]
private const int ScalarBytes = 57;
// Token: 0x04006AD8 RID: 27352
[Token(Token = "0x4006AD8")]
public static readonly int PrehashSize;
// Token: 0x04006AD9 RID: 27353
[Token(Token = "0x4006AD9")]
public static readonly int PublicKeySize;
// Token: 0x04006ADA RID: 27354
[Token(Token = "0x4006ADA")]
public static readonly int SecretKeySize;
// Token: 0x04006ADB RID: 27355
[Token(Token = "0x4006ADB")]
public static readonly int SignatureSize;
// Token: 0x04006ADC RID: 27356
[Token(Token = "0x4006ADC")]
private static readonly byte[] Dom4Prefix = Strings.ToByteArray("SigEd448");
// Token: 0x04006ADD RID: 27357
[Token(Token = "0x4006ADD")]
private static readonly uint[] P;
// Token: 0x04006ADE RID: 27358
[Token(Token = "0x4006ADE")]
private static readonly uint[] L;
// Token: 0x04006ADF RID: 27359
[Token(Token = "0x4006ADF")]
private static readonly BigInteger N;
// Token: 0x04006AE0 RID: 27360
[Token(Token = "0x4006AE0")]
private const int L_0 = 78101261;
// Token: 0x04006AE1 RID: 27361
[Token(Token = "0x4006AE1")]
private const int L_1 = 141809365;
// Token: 0x04006AE2 RID: 27362
[Token(Token = "0x4006AE2")]
private const int L_2 = 175155932;
// Token: 0x04006AE3 RID: 27363
[Token(Token = "0x4006AE3")]
private const int L_3 = 64542499;
// Token: 0x04006AE4 RID: 27364
[Token(Token = "0x4006AE4")]
private const int L_4 = 158326419;
// Token: 0x04006AE5 RID: 27365
[Token(Token = "0x4006AE5")]
private const int L_5 = 191173276;
// Token: 0x04006AE6 RID: 27366
[Token(Token = "0x4006AE6")]
private const int L_6 = 104575268;
// Token: 0x04006AE7 RID: 27367
[Token(Token = "0x4006AE7")]
private const int L_7 = 137584065;
// Token: 0x04006AE8 RID: 27368
[Token(Token = "0x4006AE8")]
private const int L4_0 = 43969588;
// Token: 0x04006AE9 RID: 27369
[Token(Token = "0x4006AE9")]
private const int L4_1 = 30366549;
// Token: 0x04006AEA RID: 27370
[Token(Token = "0x4006AEA")]
private const int L4_2 = 163752818;
// Token: 0x04006AEB RID: 27371
[Token(Token = "0x4006AEB")]
private const int L4_3 = 258169998;
// Token: 0x04006AEC RID: 27372
[Token(Token = "0x4006AEC")]
private const int L4_4 = 96434764;
// Token: 0x04006AED RID: 27373
[Token(Token = "0x4006AED")]
private const int L4_5 = 227822194;
// Token: 0x04006AEE RID: 27374
[Token(Token = "0x4006AEE")]
private const int L4_6 = 149865618;
// Token: 0x04006AEF RID: 27375
[Token(Token = "0x4006AEF")]
private const int L4_7 = 550336261;
// Token: 0x04006AF0 RID: 27376
[Token(Token = "0x4006AF0")]
private static readonly uint[] B_x;
// Token: 0x04006AF1 RID: 27377
[Token(Token = "0x4006AF1")]
private static readonly uint[] B_y;
// Token: 0x04006AF2 RID: 27378
[Token(Token = "0x4006AF2")]
private const int C_d = -39081;
// Token: 0x04006AF3 RID: 27379
[Token(Token = "0x4006AF3")]
private const int WnafWidthBase = 7;
// Token: 0x04006AF4 RID: 27380
[Token(Token = "0x4006AF4")]
private const int PrecompBlocks = 5;
// Token: 0x04006AF5 RID: 27381
[Token(Token = "0x4006AF5")]
private const int PrecompTeeth = 5;
// Token: 0x04006AF6 RID: 27382
[Token(Token = "0x4006AF6")]
private const int PrecompSpacing = 18;
// Token: 0x04006AF7 RID: 27383
[Token(Token = "0x4006AF7")]
private const int PrecompPoints = 16;
// Token: 0x04006AF8 RID: 27384
[Token(Token = "0x4006AF8")]
private const int PrecompMask = 15;
// Token: 0x04006AF9 RID: 27385
[Token(Token = "0x4006AF9")]
private static readonly object precompLock;
// Token: 0x04006AFA RID: 27386
[Token(Token = "0x4006AFA")]
private static Ed448.PointExt[] precompBaseTable;
// Token: 0x04006AFB RID: 27387
[Token(Token = "0x4006AFB")]
private static uint[] precompBase;
// Token: 0x02001A0E RID: 6670
[Token(Token = "0x2001A0E")]
public enum Algorithm
{
// Token: 0x04006AFD RID: 27389
[Token(Token = "0x4006AFD")]
Ed448,
// Token: 0x04006AFE RID: 27390
[Token(Token = "0x4006AFE")]
Ed448ph
}
// Token: 0x02001A0F RID: 6671
[Token(Token = "0x2001A0F")]
private class PointExt
{
// Token: 0x0600A207 RID: 41479 RVA: 0x0022E030 File Offset: 0x0022C230
[Token(Token = "0x600A207")]
[Address(RVA = "0x1F7EAA0", Offset = "0x1F7D8A0", VA = "0x181F7EAA0")]
public PointExt()
{
uint[] array = X448Field.Create();
this.x = array;
uint[] array2 = X448Field.Create();
this.y = array2;
uint[] array3 = X448Field.Create();
this.z = array3;
base..ctor();
}
// Token: 0x04006AFF RID: 27391
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006AFF")]
internal uint[] x;
// Token: 0x04006B00 RID: 27392
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006B00")]
internal uint[] y;
// Token: 0x04006B01 RID: 27393
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006B01")]
internal uint[] z;
}
// Token: 0x02001A10 RID: 6672
[Token(Token = "0x2001A10")]
private class PointPrecomp
{
// Token: 0x0600A208 RID: 41480 RVA: 0x0022E074 File Offset: 0x0022C274
[Token(Token = "0x600A208")]
[Address(RVA = "0x1F7EB60", Offset = "0x1F7D960", VA = "0x181F7EB60")]
public PointPrecomp()
{
uint[] array = X448Field.Create();
this.x = array;
uint[] array2 = X448Field.Create();
this.y = array2;
base..ctor();
}
// Token: 0x04006B02 RID: 27394
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4006B02")]
internal uint[] x;
// Token: 0x04006B03 RID: 27395
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4006B03")]
internal uint[] y;
}
}
}