1663 lines
69 KiB
C#
1663 lines
69 KiB
C#
using System;
|
|
using System.ComponentModel;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.InteropServices;
|
|
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: 0x02001430 RID: 5168
|
|
[Token(Token = "0x2001430")]
|
|
[StructLayout(3)]
|
|
public abstract class Ed448
|
|
{
|
|
// Token: 0x060085FB RID: 34299 RVA: 0x001D4948 File Offset: 0x001D2B48
|
|
[Token(Token = "0x60085FB")]
|
|
[Address(RVA = "0x20A9A60", Offset = "0x20A8460", VA = "0x1820A9A60")]
|
|
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: 0x060085FC RID: 34300 RVA: 0x001D4A08 File Offset: 0x001D2C08
|
|
[Token(Token = "0x60085FC")]
|
|
[Address(RVA = "0x20A9C80", Offset = "0x20A8680", VA = "0x1820A9C80")]
|
|
private static bool CheckContextVar(byte[] ctx)
|
|
{
|
|
if (ctx == 0)
|
|
{
|
|
}
|
|
return ctx.Length < 256;
|
|
}
|
|
|
|
// Token: 0x060085FD RID: 34301 RVA: 0x001D4A28 File Offset: 0x001D2C28
|
|
[Token(Token = "0x60085FD")]
|
|
[Address(RVA = "0x20A9CA0", Offset = "0x20A86A0", VA = "0x1820A9CA0")]
|
|
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: 0x060085FE RID: 34302 RVA: 0x001D4A7C File Offset: 0x001D2C7C
|
|
[Token(Token = "0x60085FE")]
|
|
[Address(RVA = "0x20A9DD0", Offset = "0x20A87D0", VA = "0x1820A9DD0")]
|
|
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: 0x060085FF RID: 34303 RVA: 0x001D4AC8 File Offset: 0x001D2CC8
|
|
[Token(Token = "0x60085FF")]
|
|
[Address(RVA = "0x20A9EF0", Offset = "0x20A88F0", VA = "0x1820A9EF0")]
|
|
public static IXof CreatePrehash()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (060085FF)
|
|
|
|
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: 0x06008600 RID: 34304 RVA: 0x001D4AE0 File Offset: 0x001D2CE0
|
|
[Token(Token = "0x6008600")]
|
|
[Address(RVA = "0x20A9F80", Offset = "0x20A8980", VA = "0x1820A9F80")]
|
|
private static IXof CreateXof()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06008600)
|
|
|
|
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: 0x06008601 RID: 34305 RVA: 0x001D4AF8 File Offset: 0x001D2CF8
|
|
[Token(Token = "0x6008601")]
|
|
[Address(RVA = "0x20A9FD0", Offset = "0x20A89D0", VA = "0x1820A9FD0")]
|
|
private static uint Decode16(byte[] bs, int off)
|
|
{
|
|
int length = bs.Length;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06008602 RID: 34306 RVA: 0x001D4B14 File Offset: 0x001D2D14
|
|
[Token(Token = "0x6008602")]
|
|
[Address(RVA = "0x2086EE0", Offset = "0x20858E0", VA = "0x182086EE0")]
|
|
private static uint Decode24(byte[] bs, int off)
|
|
{
|
|
int length = bs.Length;
|
|
int num = off + 1;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06008603 RID: 34307 RVA: 0x001D4B34 File Offset: 0x001D2D34
|
|
[Token(Token = "0x6008603")]
|
|
[Address(RVA = "0x74C4E0", Offset = "0x74AEE0", VA = "0x18074C4E0")]
|
|
private static uint Decode32(byte[] bs, int off)
|
|
{
|
|
int length = bs.Length;
|
|
int num = off + 1;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06008604 RID: 34308 RVA: 0x001D4B54 File Offset: 0x001D2D54
|
|
[Token(Token = "0x6008604")]
|
|
[Address(RVA = "0x20AA030", Offset = "0x20A8A30", VA = "0x1820AA030")]
|
|
private static void Decode32(byte[] bs, int bsOff, uint[] n, int nOff, int nLen)
|
|
{
|
|
}
|
|
|
|
// Token: 0x06008605 RID: 34309 RVA: 0x001D4B68 File Offset: 0x001D2D68
|
|
[Token(Token = "0x6008605")]
|
|
[Address(RVA = "0x20AA100", Offset = "0x20A8B00", VA = "0x1820AA100")]
|
|
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: 0x06008606 RID: 34310 RVA: 0x001D4C5C File Offset: 0x001D2E5C
|
|
[Token(Token = "0x6008606")]
|
|
[Address(RVA = "0x20AA310", Offset = "0x20A8D10", VA = "0x1820AA310")]
|
|
private static void DecodeScalar(byte[] k, int kOff, uint[] n)
|
|
{
|
|
int num = 0;
|
|
ulong num2;
|
|
Ed448.Decode32(k, kOff, n, num, (int)num2);
|
|
}
|
|
|
|
// Token: 0x06008607 RID: 34311 RVA: 0x001D4C78 File Offset: 0x001D2E78
|
|
[Token(Token = "0x6008607")]
|
|
[Address(RVA = "0x20AA3A0", Offset = "0x20A8DA0", VA = "0x1820AA3A0")]
|
|
private static void Dom4(IXof d, byte x, byte[] y)
|
|
{
|
|
int length = Ed448.Dom4Prefix.Length;
|
|
int length2 = y.Length;
|
|
}
|
|
|
|
// Token: 0x06008608 RID: 34312 RVA: 0x001D4CA0 File Offset: 0x001D2EA0
|
|
[Token(Token = "0x6008608")]
|
|
[Address(RVA = "0x2087560", Offset = "0x2085F60", VA = "0x182087560")]
|
|
private static void Encode24(uint n, byte[] bs, int off)
|
|
{
|
|
int num = off + 1;
|
|
}
|
|
|
|
// Token: 0x06008609 RID: 34313 RVA: 0x001D4CB8 File Offset: 0x001D2EB8
|
|
[Token(Token = "0x6008609")]
|
|
[Address(RVA = "0x1DFD250", Offset = "0x1DFBC50", VA = "0x181DFD250")]
|
|
private static void Encode32(uint n, byte[] bs, int off)
|
|
{
|
|
int num = off + 1;
|
|
}
|
|
|
|
// Token: 0x0600860A RID: 34314 RVA: 0x001D4CD0 File Offset: 0x001D2ED0
|
|
[Token(Token = "0x600860A")]
|
|
[Address(RVA = "0x20AA4B0", Offset = "0x20A8EB0", VA = "0x1820AA4B0")]
|
|
private static void Encode56(ulong n, byte[] bs, int off)
|
|
{
|
|
Ed25519.Encode32((uint)n, bs, off);
|
|
bs[0] = (byte)n;
|
|
}
|
|
|
|
// Token: 0x0600860B RID: 34315 RVA: 0x001D4CF4 File Offset: 0x001D2EF4
|
|
[Token(Token = "0x600860B")]
|
|
[Address(RVA = "0x20AA5A0", Offset = "0x20A8FA0", VA = "0x1820AA5A0")]
|
|
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: 0x0600860C RID: 34316 RVA: 0x001D4D64 File Offset: 0x001D2F64
|
|
[Token(Token = "0x600860C")]
|
|
[Address(RVA = "0x2087860", Offset = "0x2086260", VA = "0x182087860")]
|
|
public static void GeneratePrivateKey(SecureRandom random, byte[] k)
|
|
{
|
|
bool isChanged = ((IChangeTracking)random).IsChanged;
|
|
}
|
|
|
|
// Token: 0x0600860D RID: 34317 RVA: 0x001D4D80 File Offset: 0x001D2F80
|
|
[Token(Token = "0x600860D")]
|
|
[Address(RVA = "0x20AA6A0", Offset = "0x20A90A0", VA = "0x1820AA6A0")]
|
|
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: 0x0600860E RID: 34318 RVA: 0x001D4DD4 File Offset: 0x001D2FD4
|
|
[Token(Token = "0x600860E")]
|
|
[Address(RVA = "0x20AA800", Offset = "0x20A9200", VA = "0x1820AA800")]
|
|
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: 0x0600860F RID: 34319 RVA: 0x001D4E64 File Offset: 0x001D3064
|
|
[Token(Token = "0x600860F")]
|
|
[Address(RVA = "0x20AAC40", Offset = "0x20A9640", VA = "0x1820AAC40")]
|
|
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: 0x06008610 RID: 34320 RVA: 0x001D4EB0 File Offset: 0x001D30B0
|
|
[Token(Token = "0x6008610")]
|
|
[Address(RVA = "0x20AAED0", Offset = "0x20A98D0", VA = "0x1820AAED0")]
|
|
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 (06008610)
|
|
|
|
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: 0x06008611 RID: 34321 RVA: 0x001D4F28 File Offset: 0x001D3128
|
|
[Token(Token = "0x6008611")]
|
|
[Address(RVA = "0x20AAA00", Offset = "0x20A9400", VA = "0x1820AAA00")]
|
|
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: 0x06008612 RID: 34322 RVA: 0x001D4F7C File Offset: 0x001D317C
|
|
[Token(Token = "0x6008612")]
|
|
[Address(RVA = "0x20AB130", Offset = "0x20A9B30", VA = "0x1820AB130")]
|
|
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 (06008612)
|
|
|
|
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: 0x06008613 RID: 34323 RVA: 0x001D509C File Offset: 0x001D329C
|
|
[Token(Token = "0x6008613")]
|
|
[Address(RVA = "0x20AB800", Offset = "0x20AA200", VA = "0x1820AB800")]
|
|
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: 0x06008614 RID: 34324 RVA: 0x001D523C File Offset: 0x001D343C
|
|
[Token(Token = "0x6008614")]
|
|
[Address(RVA = "0x20AB610", Offset = "0x20AA010", VA = "0x1820AB610")]
|
|
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: 0x06008615 RID: 34325 RVA: 0x001D53B0 File Offset: 0x001D35B0
|
|
[Token(Token = "0x6008615")]
|
|
[Address(RVA = "0x20ABA70", Offset = "0x20AA470", VA = "0x1820ABA70")]
|
|
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: 0x06008616 RID: 34326 RVA: 0x001D5460 File Offset: 0x001D3660
|
|
[Token(Token = "0x6008616")]
|
|
[Address(RVA = "0x20ABB40", Offset = "0x20AA540", VA = "0x1820ABB40")]
|
|
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: 0x06008617 RID: 34327 RVA: 0x001D5568 File Offset: 0x001D3768
|
|
[Token(Token = "0x6008617")]
|
|
[Address(RVA = "0x20ABCC0", Offset = "0x20AA6C0", VA = "0x1820ABCC0")]
|
|
private static void PointExtendXY(Ed448.PointExt p)
|
|
{
|
|
X448Field.One(p.z);
|
|
}
|
|
|
|
// Token: 0x06008618 RID: 34328 RVA: 0x001D5588 File Offset: 0x001D3788
|
|
[Token(Token = "0x6008618")]
|
|
[Address(RVA = "0x20ABCE0", Offset = "0x20AA6E0", VA = "0x1820ABCE0")]
|
|
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: 0x06008619 RID: 34329 RVA: 0x001D55D8 File Offset: 0x001D37D8
|
|
[Token(Token = "0x6008619")]
|
|
[Address(RVA = "0x20ABE00", Offset = "0x20AA800", VA = "0x1820ABE00")]
|
|
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: 0x0600861A RID: 34330 RVA: 0x001D563C File Offset: 0x001D383C
|
|
[Token(Token = "0x600861A")]
|
|
[Address(RVA = "0x20ABFC0", Offset = "0x20AA9C0", VA = "0x1820ABFC0")]
|
|
private static void PointSetNeutral(Ed448.PointExt p)
|
|
{
|
|
X448Field.Zero(p.x);
|
|
X448Field.One(p.y);
|
|
X448Field.One(p.z);
|
|
}
|
|
|
|
// Token: 0x0600861B RID: 34331 RVA: 0x001D5670 File Offset: 0x001D3870
|
|
[Token(Token = "0x600861B")]
|
|
[Address(RVA = "0x20AC000", Offset = "0x20AAA00", VA = "0x1820AC000")]
|
|
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 != -1)
|
|
{
|
|
}
|
|
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: 0x0600861C RID: 34332 RVA: 0x001D5944 File Offset: 0x001D3B44
|
|
[Token(Token = "0x600861C")]
|
|
[Address(RVA = "0x20AC660", Offset = "0x20AB060", VA = "0x1820AC660")]
|
|
private static void PruneScalar(byte[] n, int nOff, byte[] r)
|
|
{
|
|
int num = 0;
|
|
ulong num2;
|
|
Array.Copy(n, nOff, r, num, (int)num2);
|
|
}
|
|
|
|
// Token: 0x0600861D RID: 34333 RVA: 0x001D5964 File Offset: 0x001D3B64
|
|
[Token(Token = "0x600861D")]
|
|
[Address(RVA = "0x20AC6F0", Offset = "0x20AB0F0", VA = "0x1820AC6F0")]
|
|
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: 0x0600861E RID: 34334 RVA: 0x001D6584 File Offset: 0x001D4784
|
|
[Token(Token = "0x600861E")]
|
|
[Address(RVA = "0x20AD810", Offset = "0x20AC210", VA = "0x1820AD810")]
|
|
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: 0x0600861F RID: 34335 RVA: 0x001D66B4 File Offset: 0x001D48B4
|
|
[Token(Token = "0x600861F")]
|
|
[Address(RVA = "0x20AD620", Offset = "0x20AC020", VA = "0x1820AD620")]
|
|
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: 0x06008620 RID: 34336 RVA: 0x001D6704 File Offset: 0x001D4904
|
|
[Token(Token = "0x6008620")]
|
|
[Address(RVA = "0x20AD6F0", Offset = "0x20AC0F0", VA = "0x1820AD6F0")]
|
|
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: 0x06008621 RID: 34337 RVA: 0x001D6794 File Offset: 0x001D4994
|
|
[Token(Token = "0x6008621")]
|
|
[Address(RVA = "0x20ADB70", Offset = "0x20AC570", VA = "0x1820ADB70")]
|
|
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: 0x06008622 RID: 34338 RVA: 0x001D6830 File Offset: 0x001D4A30
|
|
[Token(Token = "0x6008622")]
|
|
[Address(RVA = "0x20AE300", Offset = "0x20ACD00", VA = "0x1820AE300")]
|
|
public static void Sign(byte[] sk, int skOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
|
|
{
|
|
}
|
|
|
|
// Token: 0x06008623 RID: 34339 RVA: 0x001D6840 File Offset: 0x001D4A40
|
|
[Token(Token = "0x6008623")]
|
|
[Address(RVA = "0x20AE3C0", Offset = "0x20ACDC0", VA = "0x1820AE3C0")]
|
|
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: 0x06008624 RID: 34340 RVA: 0x001D6850 File Offset: 0x001D4A50
|
|
[Token(Token = "0x6008624")]
|
|
[Address(RVA = "0x20AE230", Offset = "0x20ACC30", VA = "0x1820AE230")]
|
|
public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)
|
|
{
|
|
int prehashSize = Ed448.PrehashSize;
|
|
}
|
|
|
|
// Token: 0x06008625 RID: 34341 RVA: 0x001D6864 File Offset: 0x001D4A64
|
|
[Token(Token = "0x6008625")]
|
|
[Address(RVA = "0x20ADE30", Offset = "0x20AC830", VA = "0x1820ADE30")]
|
|
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: 0x06008626 RID: 34342 RVA: 0x001D6878 File Offset: 0x001D4A78
|
|
[Token(Token = "0x6008626")]
|
|
[Address(RVA = "0x20AE0B0", Offset = "0x20ACAB0", VA = "0x1820AE0B0")]
|
|
public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, IXof ph, byte[] sig, int sigOff)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (06008626)
|
|
|
|
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: 0x06008627 RID: 34343 RVA: 0x001D68B4 File Offset: 0x001D4AB4
|
|
[Token(Token = "0x6008627")]
|
|
[Address(RVA = "0x20ADF10", Offset = "0x20AC910", VA = "0x1820ADF10")]
|
|
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 (06008627)
|
|
|
|
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: 0x06008628 RID: 34344 RVA: 0x001D68F0 File Offset: 0x001D4AF0
|
|
[Token(Token = "0x6008628")]
|
|
[Address(RVA = "0x20AE6F0", Offset = "0x20AD0F0", VA = "0x1820AE6F0")]
|
|
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: 0x06008629 RID: 34345 RVA: 0x001D6900 File Offset: 0x001D4B00
|
|
[Token(Token = "0x6008629")]
|
|
[Address(RVA = "0x20AE4A0", Offset = "0x20ACEA0", VA = "0x1820AE4A0")]
|
|
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: 0x0600862A RID: 34346 RVA: 0x001D6914 File Offset: 0x001D4B14
|
|
[Token(Token = "0x600862A")]
|
|
[Address(RVA = "0x20AE570", Offset = "0x20ACF70", VA = "0x1820AE570")]
|
|
public static bool VerifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, IXof ph)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600862A)
|
|
|
|
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: 0x0600862B RID: 34347 RVA: 0x001D6950 File Offset: 0x001D4B50
|
|
[Token(Token = "0x600862B")]
|
|
[Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")]
|
|
protected Ed448()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600862C RID: 34348 RVA: 0x001D6964 File Offset: 0x001D4B64
|
|
// Note: this type is marked as 'beforefieldinit'.
|
|
[Token(Token = "0x600862C")]
|
|
[Address(RVA = "0x20AE7B0", Offset = "0x20AD1B0", VA = "0x1820AE7B0")]
|
|
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: 0x04005C90 RID: 23696
|
|
[Token(Token = "0x4005C90")]
|
|
private const ulong M26UL = 67108863UL;
|
|
|
|
// Token: 0x04005C91 RID: 23697
|
|
[Token(Token = "0x4005C91")]
|
|
private const ulong M28UL = 268435455UL;
|
|
|
|
// Token: 0x04005C92 RID: 23698
|
|
[Token(Token = "0x4005C92")]
|
|
private const int PointBytes = 57;
|
|
|
|
// Token: 0x04005C93 RID: 23699
|
|
[Token(Token = "0x4005C93")]
|
|
private const int ScalarUints = 14;
|
|
|
|
// Token: 0x04005C94 RID: 23700
|
|
[Token(Token = "0x4005C94")]
|
|
private const int ScalarBytes = 57;
|
|
|
|
// Token: 0x04005C95 RID: 23701
|
|
[Token(Token = "0x4005C95")]
|
|
public static readonly int PrehashSize;
|
|
|
|
// Token: 0x04005C96 RID: 23702
|
|
[Token(Token = "0x4005C96")]
|
|
public static readonly int PublicKeySize;
|
|
|
|
// Token: 0x04005C97 RID: 23703
|
|
[Token(Token = "0x4005C97")]
|
|
public static readonly int SecretKeySize;
|
|
|
|
// Token: 0x04005C98 RID: 23704
|
|
[Token(Token = "0x4005C98")]
|
|
public static readonly int SignatureSize;
|
|
|
|
// Token: 0x04005C99 RID: 23705
|
|
[Token(Token = "0x4005C99")]
|
|
private static readonly byte[] Dom4Prefix = Strings.ToByteArray("SigEd448");
|
|
|
|
// Token: 0x04005C9A RID: 23706
|
|
[Token(Token = "0x4005C9A")]
|
|
private static readonly uint[] P;
|
|
|
|
// Token: 0x04005C9B RID: 23707
|
|
[Token(Token = "0x4005C9B")]
|
|
private static readonly uint[] L;
|
|
|
|
// Token: 0x04005C9C RID: 23708
|
|
[Token(Token = "0x4005C9C")]
|
|
private static readonly BigInteger N;
|
|
|
|
// Token: 0x04005C9D RID: 23709
|
|
[Token(Token = "0x4005C9D")]
|
|
private const int L_0 = 78101261;
|
|
|
|
// Token: 0x04005C9E RID: 23710
|
|
[Token(Token = "0x4005C9E")]
|
|
private const int L_1 = 141809365;
|
|
|
|
// Token: 0x04005C9F RID: 23711
|
|
[Token(Token = "0x4005C9F")]
|
|
private const int L_2 = 175155932;
|
|
|
|
// Token: 0x04005CA0 RID: 23712
|
|
[Token(Token = "0x4005CA0")]
|
|
private const int L_3 = 64542499;
|
|
|
|
// Token: 0x04005CA1 RID: 23713
|
|
[Token(Token = "0x4005CA1")]
|
|
private const int L_4 = 158326419;
|
|
|
|
// Token: 0x04005CA2 RID: 23714
|
|
[Token(Token = "0x4005CA2")]
|
|
private const int L_5 = 191173276;
|
|
|
|
// Token: 0x04005CA3 RID: 23715
|
|
[Token(Token = "0x4005CA3")]
|
|
private const int L_6 = 104575268;
|
|
|
|
// Token: 0x04005CA4 RID: 23716
|
|
[Token(Token = "0x4005CA4")]
|
|
private const int L_7 = 137584065;
|
|
|
|
// Token: 0x04005CA5 RID: 23717
|
|
[Token(Token = "0x4005CA5")]
|
|
private const int L4_0 = 43969588;
|
|
|
|
// Token: 0x04005CA6 RID: 23718
|
|
[Token(Token = "0x4005CA6")]
|
|
private const int L4_1 = 30366549;
|
|
|
|
// Token: 0x04005CA7 RID: 23719
|
|
[Token(Token = "0x4005CA7")]
|
|
private const int L4_2 = 163752818;
|
|
|
|
// Token: 0x04005CA8 RID: 23720
|
|
[Token(Token = "0x4005CA8")]
|
|
private const int L4_3 = 258169998;
|
|
|
|
// Token: 0x04005CA9 RID: 23721
|
|
[Token(Token = "0x4005CA9")]
|
|
private const int L4_4 = 96434764;
|
|
|
|
// Token: 0x04005CAA RID: 23722
|
|
[Token(Token = "0x4005CAA")]
|
|
private const int L4_5 = 227822194;
|
|
|
|
// Token: 0x04005CAB RID: 23723
|
|
[Token(Token = "0x4005CAB")]
|
|
private const int L4_6 = 149865618;
|
|
|
|
// Token: 0x04005CAC RID: 23724
|
|
[Token(Token = "0x4005CAC")]
|
|
private const int L4_7 = 550336261;
|
|
|
|
// Token: 0x04005CAD RID: 23725
|
|
[Token(Token = "0x4005CAD")]
|
|
private static readonly uint[] B_x;
|
|
|
|
// Token: 0x04005CAE RID: 23726
|
|
[Token(Token = "0x4005CAE")]
|
|
private static readonly uint[] B_y;
|
|
|
|
// Token: 0x04005CAF RID: 23727
|
|
[Token(Token = "0x4005CAF")]
|
|
private const int C_d = -39081;
|
|
|
|
// Token: 0x04005CB0 RID: 23728
|
|
[Token(Token = "0x4005CB0")]
|
|
private const int WnafWidthBase = 7;
|
|
|
|
// Token: 0x04005CB1 RID: 23729
|
|
[Token(Token = "0x4005CB1")]
|
|
private const int PrecompBlocks = 5;
|
|
|
|
// Token: 0x04005CB2 RID: 23730
|
|
[Token(Token = "0x4005CB2")]
|
|
private const int PrecompTeeth = 5;
|
|
|
|
// Token: 0x04005CB3 RID: 23731
|
|
[Token(Token = "0x4005CB3")]
|
|
private const int PrecompSpacing = 18;
|
|
|
|
// Token: 0x04005CB4 RID: 23732
|
|
[Token(Token = "0x4005CB4")]
|
|
private const int PrecompPoints = 16;
|
|
|
|
// Token: 0x04005CB5 RID: 23733
|
|
[Token(Token = "0x4005CB5")]
|
|
private const int PrecompMask = 15;
|
|
|
|
// Token: 0x04005CB6 RID: 23734
|
|
[Token(Token = "0x4005CB6")]
|
|
private static readonly object precompLock;
|
|
|
|
// Token: 0x04005CB7 RID: 23735
|
|
[Token(Token = "0x4005CB7")]
|
|
private static Ed448.PointExt[] precompBaseTable;
|
|
|
|
// Token: 0x04005CB8 RID: 23736
|
|
[Token(Token = "0x4005CB8")]
|
|
private static uint[] precompBase;
|
|
|
|
// Token: 0x02001431 RID: 5169
|
|
[Token(Token = "0x2001431")]
|
|
public enum Algorithm
|
|
{
|
|
// Token: 0x04005CBA RID: 23738
|
|
[Token(Token = "0x4005CBA")]
|
|
Ed448,
|
|
// Token: 0x04005CBB RID: 23739
|
|
[Token(Token = "0x4005CBB")]
|
|
Ed448ph
|
|
}
|
|
|
|
// Token: 0x02001432 RID: 5170
|
|
[Token(Token = "0x2001432")]
|
|
private class PointExt
|
|
{
|
|
// Token: 0x0600862D RID: 34349 RVA: 0x001D6A4C File Offset: 0x001D4C4C
|
|
[Token(Token = "0x600862D")]
|
|
[Address(RVA = "0x20C14A0", Offset = "0x20BFEA0", VA = "0x1820C14A0")]
|
|
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: 0x04005CBC RID: 23740
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4005CBC")]
|
|
internal uint[] x;
|
|
|
|
// Token: 0x04005CBD RID: 23741
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4005CBD")]
|
|
internal uint[] y;
|
|
|
|
// Token: 0x04005CBE RID: 23742
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4005CBE")]
|
|
internal uint[] z;
|
|
}
|
|
|
|
// Token: 0x02001433 RID: 5171
|
|
[Token(Token = "0x2001433")]
|
|
private class PointPrecomp
|
|
{
|
|
// Token: 0x0600862E RID: 34350 RVA: 0x001D6A90 File Offset: 0x001D4C90
|
|
[Token(Token = "0x600862E")]
|
|
[Address(RVA = "0x20C1560", Offset = "0x20BFF60", VA = "0x1820C1560")]
|
|
public PointPrecomp()
|
|
{
|
|
uint[] array = X448Field.Create();
|
|
this.x = array;
|
|
uint[] array2 = X448Field.Create();
|
|
this.y = array2;
|
|
base..ctor();
|
|
}
|
|
|
|
// Token: 0x04005CBF RID: 23743
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4005CBF")]
|
|
internal uint[] x;
|
|
|
|
// Token: 0x04005CC0 RID: 23744
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4005CC0")]
|
|
internal uint[] y;
|
|
}
|
|
}
|
|
}
|