1559 lines
64 KiB
C#
1559 lines
64 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|