m
This commit is contained in:
@@ -0,0 +1,1560 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.Serialization.Formatters.Binary;
|
||||
using System.Threading;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc7748;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Math.Raw;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Security;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032
|
||||
{
|
||||
// Token: 0x02001AE8 RID: 6888
|
||||
[Token(Token = "0x2001AE8")]
|
||||
public abstract class Ed25519
|
||||
{
|
||||
// Token: 0x0600A568 RID: 42344 RVA: 0x00233188 File Offset: 0x00231388
|
||||
[Token(Token = "0x600A568")]
|
||||
[Address(RVA = "0x7312E0", Offset = "0x7302E0", VA = "0x1807312E0")]
|
||||
private static byte[] CalculateS(byte[] r, byte[] k, byte[] s)
|
||||
{
|
||||
uint[] array = new uint[16];
|
||||
int num = 0;
|
||||
Ed25519.DecodeScalar(r, num, array);
|
||||
uint[] array2 = new uint[8];
|
||||
int num2 = 0;
|
||||
Ed25519.DecodeScalar(k, num2, array2);
|
||||
uint[] array3 = new uint[8];
|
||||
int num3 = 0;
|
||||
Ed25519.DecodeScalar(s, num3, array3);
|
||||
uint num4 = Nat256.MulAddTo(array2, array3, array);
|
||||
byte[] array4 = new byte[64];
|
||||
int num5 = 0;
|
||||
int length = array.Length;
|
||||
if (num5 < length)
|
||||
{
|
||||
uint num6 = array[num5];
|
||||
num5++;
|
||||
}
|
||||
return Ed25519.ReduceScalar(array4);
|
||||
}
|
||||
|
||||
// Token: 0x0600A569 RID: 42345 RVA: 0x00233210 File Offset: 0x00231410
|
||||
[Token(Token = "0x600A569")]
|
||||
[Address(RVA = "0x731480", Offset = "0x730480", VA = "0x180731480")]
|
||||
private static bool CheckContextVar(byte[] ctx, byte phflag)
|
||||
{
|
||||
if (ctx == 0)
|
||||
{
|
||||
bool flag;
|
||||
return flag;
|
||||
}
|
||||
return ctx.Length < 256;
|
||||
}
|
||||
|
||||
// Token: 0x0600A56A RID: 42346 RVA: 0x00233230 File Offset: 0x00231430
|
||||
[Token(Token = "0x600A56A")]
|
||||
[Address(RVA = "0x7314A0", Offset = "0x7304A0", VA = "0x1807314A0")]
|
||||
private static bool CheckPointVar(byte[] p)
|
||||
{
|
||||
uint[] array = new uint[8];
|
||||
int num = 0;
|
||||
int num2 = 0;
|
||||
ulong num3;
|
||||
Ed25519.Decode32(p, num2, array, num, (int)num3);
|
||||
uint[] p2 = Ed25519.P;
|
||||
return !Nat256.Gte(array, p2);
|
||||
}
|
||||
|
||||
// Token: 0x0600A56B RID: 42347 RVA: 0x0023326C File Offset: 0x0023146C
|
||||
[Token(Token = "0x600A56B")]
|
||||
[Address(RVA = "0x731570", Offset = "0x730570", VA = "0x180731570")]
|
||||
private static bool CheckScalarVar(byte[] s)
|
||||
{
|
||||
uint[] array = new uint[8];
|
||||
int num = 0;
|
||||
Ed25519.DecodeScalar(s, num, array);
|
||||
uint[] l = Ed25519.L;
|
||||
return !Nat256.Gte(array, l);
|
||||
}
|
||||
|
||||
// Token: 0x0600A56C RID: 42348 RVA: 0x0023329C File Offset: 0x0023149C
|
||||
[Token(Token = "0x600A56C")]
|
||||
[Address(RVA = "0x731610", Offset = "0x730610", VA = "0x180731610")]
|
||||
private static IDigest CreateDigest()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A56C)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::CreateDigest()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:Sha512Digest(var_0_05, newobj:Sha512Digest(Sha512Digest::.ctor))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600A56D RID: 42349 RVA: 0x002332B0 File Offset: 0x002314B0
|
||||
[Token(Token = "0x600A56D")]
|
||||
[Address(RVA = "0x731660", Offset = "0x730660", VA = "0x180731660")]
|
||||
public static IDigest CreatePrehash()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A56D)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::CreatePrehash()
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
Block_0:
|
||||
stloc:Sha512Digest(var_0_05, newobj:Sha512Digest(Sha512Digest::.ctor))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600A56E RID: 42350 RVA: 0x002332C4 File Offset: 0x002314C4
|
||||
[Token(Token = "0x600A56E")]
|
||||
[Address(RVA = "0x7316E0", Offset = "0x7306E0", VA = "0x1807316E0")]
|
||||
private static uint Decode24(byte[] bs, int off)
|
||||
{
|
||||
int length = bs.Length;
|
||||
int num = off + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600A56F RID: 42351 RVA: 0x002332E4 File Offset: 0x002314E4
|
||||
[Token(Token = "0x600A56F")]
|
||||
[Address(RVA = "0x45D6B0", Offset = "0x45C6B0", VA = "0x18045D6B0")]
|
||||
private static uint Decode32(byte[] bs, int off)
|
||||
{
|
||||
int length = bs.Length;
|
||||
int num = off + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600A570 RID: 42352 RVA: 0x00233304 File Offset: 0x00231504
|
||||
[Token(Token = "0x600A570")]
|
||||
[Address(RVA = "0x731770", Offset = "0x730770", VA = "0x180731770")]
|
||||
private static void Decode32(byte[] bs, int bsOff, uint[] n, int nOff, int nLen)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A571 RID: 42353 RVA: 0x00233318 File Offset: 0x00231518
|
||||
[Token(Token = "0x600A571")]
|
||||
[Address(RVA = "0x731840", Offset = "0x730840", VA = "0x180731840")]
|
||||
private static bool DecodePointVar(byte[] p, int pOff, bool negate, Ed25519.PointExt r)
|
||||
{
|
||||
byte[] array = Arrays.CopyOfRange(p, pOff, negate ? 1 : 0);
|
||||
if (Ed25519.CheckPointVar(array))
|
||||
{
|
||||
byte b = array[3];
|
||||
array[3] = b;
|
||||
int[] y = r.y;
|
||||
int num = 0;
|
||||
X25519Field.Decode(array, num, y);
|
||||
int[] array2 = new int[10];
|
||||
int[] array3 = new int[10];
|
||||
X25519Field.Sqr(r.y, array2);
|
||||
X25519Field.Mul(Ed25519.C_d, array2, array3);
|
||||
int[] x = r.x;
|
||||
bool flag = X25519Field.SqrtRatioVar(array2, array3, x);
|
||||
if (flag)
|
||||
{
|
||||
X25519Field.Normalize(r.x);
|
||||
if (!X25519Field.IsZeroVar(r.x))
|
||||
{
|
||||
int[] x2 = r.x;
|
||||
int num2 = x2[0];
|
||||
if (num2 != (negate ? 1 : 0))
|
||||
{
|
||||
int num3 = 0;
|
||||
int num4 = x2[num3];
|
||||
num3++;
|
||||
x2[0] = num4;
|
||||
}
|
||||
Ed25519.PointExtendXY(r);
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
|
||||
// Token: 0x0600A572 RID: 42354 RVA: 0x00233404 File Offset: 0x00231604
|
||||
[Token(Token = "0x600A572")]
|
||||
[Address(RVA = "0x731BB0", Offset = "0x730BB0", VA = "0x180731BB0")]
|
||||
private static void DecodeScalar(byte[] k, int kOff, uint[] n)
|
||||
{
|
||||
int num = 0;
|
||||
ulong num2;
|
||||
Ed25519.Decode32(k, kOff, n, num, (int)num2);
|
||||
}
|
||||
|
||||
// Token: 0x0600A573 RID: 42355 RVA: 0x00233420 File Offset: 0x00231620
|
||||
[Token(Token = "0x600A573")]
|
||||
[Address(RVA = "0x731C40", Offset = "0x730C40", VA = "0x180731C40")]
|
||||
private static void Dom2(IDigest d, byte phflag, byte[] ctx)
|
||||
{
|
||||
if (ctx != 0)
|
||||
{
|
||||
int length = Ed25519.Dom2Prefix.Length;
|
||||
int length2 = ctx.Length;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600A574 RID: 42356 RVA: 0x0023344C File Offset: 0x0023164C
|
||||
[Token(Token = "0x600A574")]
|
||||
[Address(RVA = "0x731D60", Offset = "0x730D60", VA = "0x180731D60")]
|
||||
private static void Encode24(uint n, byte[] bs, int off)
|
||||
{
|
||||
int num = off + 1;
|
||||
}
|
||||
|
||||
// Token: 0x0600A575 RID: 42357 RVA: 0x00233464 File Offset: 0x00231664
|
||||
[Token(Token = "0x600A575")]
|
||||
[Address(RVA = "0x45E270", Offset = "0x45D270", VA = "0x18045E270")]
|
||||
private static void Encode32(uint n, byte[] bs, int off)
|
||||
{
|
||||
int num = off + 1;
|
||||
}
|
||||
|
||||
// Token: 0x0600A576 RID: 42358 RVA: 0x0023347C File Offset: 0x0023167C
|
||||
[Token(Token = "0x600A576")]
|
||||
[Address(RVA = "0x731DE0", Offset = "0x730DE0", VA = "0x180731DE0")]
|
||||
private static void Encode56(ulong n, byte[] bs, int off)
|
||||
{
|
||||
Ed25519.Encode32((uint)n, bs, off);
|
||||
bs[0] = (byte)n;
|
||||
}
|
||||
|
||||
// Token: 0x0600A577 RID: 42359 RVA: 0x002334A0 File Offset: 0x002316A0
|
||||
[Token(Token = "0x600A577")]
|
||||
[Address(RVA = "0x731ED0", Offset = "0x730ED0", VA = "0x180731ED0")]
|
||||
private static void EncodePoint(Ed25519.PointAccum p, byte[] r, int rOff)
|
||||
{
|
||||
int[] array = new int[10];
|
||||
int[] array2 = new int[10];
|
||||
X25519Field.Inv(p.z, array2);
|
||||
X25519Field.Mul(p.x, array2, array);
|
||||
X25519Field.Mul(p.y, array2, array2);
|
||||
X25519Field.Normalize(array);
|
||||
X25519Field.Normalize(array2);
|
||||
X25519Field.Encode(array2, r, rOff);
|
||||
int num = array[0];
|
||||
}
|
||||
|
||||
// Token: 0x0600A578 RID: 42360 RVA: 0x00233508 File Offset: 0x00231708
|
||||
[Token(Token = "0x600A578")]
|
||||
[Address(RVA = "0x732060", Offset = "0x731060", VA = "0x180732060")]
|
||||
public static void GeneratePrivateKey(SecureRandom random, byte[] k)
|
||||
{
|
||||
((IEditableObject)random).BeginEdit();
|
||||
}
|
||||
|
||||
// Token: 0x0600A579 RID: 42361 RVA: 0x00233524 File Offset: 0x00231724
|
||||
[Token(Token = "0x600A579")]
|
||||
[Address(RVA = "0x732090", Offset = "0x731090", VA = "0x180732090")]
|
||||
public static void GeneratePublicKey(byte[] sk, int skOff, byte[] pk, int pkOff)
|
||||
{
|
||||
byte[] array = new byte[new Sha512Digest()];
|
||||
int secretKeySize = Ed25519.SecretKeySize;
|
||||
byte[] array2 = new byte[32];
|
||||
int num = 0;
|
||||
Ed25519.PruneScalar(array, num, array2);
|
||||
Ed25519.ScalarMultBaseEncoded(array2, pk, pkOff);
|
||||
}
|
||||
|
||||
// Token: 0x0600A57A RID: 42362 RVA: 0x00233564 File Offset: 0x00231764
|
||||
[Token(Token = "0x600A57A")]
|
||||
[Address(RVA = "0x732200", Offset = "0x731200", VA = "0x180732200")]
|
||||
private static sbyte[] GetWnaf(uint[] n, int width)
|
||||
{
|
||||
uint[] array = new uint[16];
|
||||
int num = 0;
|
||||
int num2 = array.Length;
|
||||
num2 += -2;
|
||||
uint num3;
|
||||
array[0] = num3;
|
||||
array[0] = num3;
|
||||
sbyte[] array2 = new sbyte[256];
|
||||
int length = array.Length;
|
||||
if (num < length)
|
||||
{
|
||||
uint num4 = array[num];
|
||||
if (num < 16)
|
||||
{
|
||||
if (num4 != (uint)num)
|
||||
{
|
||||
num4 += (uint)num;
|
||||
num3 = num4;
|
||||
num4 += num4;
|
||||
num3 -= num4;
|
||||
}
|
||||
uint num5;
|
||||
num += (int)num5;
|
||||
}
|
||||
num++;
|
||||
num += 16;
|
||||
}
|
||||
return array2;
|
||||
}
|
||||
|
||||
// Token: 0x0600A57B RID: 42363 RVA: 0x002335F4 File Offset: 0x002317F4
|
||||
[Token(Token = "0x600A57B")]
|
||||
[Address(RVA = "0x732660", Offset = "0x731660", VA = "0x180732660")]
|
||||
private static void ImplSign(IDigest d, byte[] h, byte[] s, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
|
||||
{
|
||||
byte[] array = Ed25519.ReduceScalar(h);
|
||||
byte[] array2 = new byte[32];
|
||||
int num = 0;
|
||||
Ed25519.ScalarMultBaseEncoded(array, array2, num);
|
||||
int num2 = 0;
|
||||
byte[] array3 = Ed25519.ReduceScalar(h);
|
||||
uint[] array4 = new uint[16];
|
||||
int num3 = 0;
|
||||
Ed25519.DecodeScalar(array, num3, array4);
|
||||
uint[] array5 = new uint[8];
|
||||
int num4 = 0;
|
||||
Ed25519.DecodeScalar(array3, num4, array5);
|
||||
uint[] array6 = new uint[8];
|
||||
int num5 = 0;
|
||||
Ed25519.DecodeScalar(s, num5, array6);
|
||||
uint num6 = Nat256.MulAddTo(array5, array6, array4);
|
||||
byte[] array7 = new byte[64];
|
||||
int length = array4.Length;
|
||||
if (num2 < length)
|
||||
{
|
||||
uint num7 = array4[num2];
|
||||
num2++;
|
||||
}
|
||||
byte[] array8 = Ed25519.ReduceScalar(array7);
|
||||
}
|
||||
|
||||
// Token: 0x0600A57C RID: 42364 RVA: 0x002336B0 File Offset: 0x002318B0
|
||||
[Token(Token = "0x600A57C")]
|
||||
[Address(RVA = "0x732400", Offset = "0x731400", VA = "0x180732400")]
|
||||
private static void ImplSign(byte[] sk, int skOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A57C)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::ImplSign(System.Byte[],System.Int32,System.Byte[],System.Byte,System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_53:
|
||||
stloc:ArgumentException(var_9_5D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ctx")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600A57D RID: 42365 RVA: 0x0023371C File Offset: 0x0023191C
|
||||
[Token(Token = "0x600A57D")]
|
||||
[Address(RVA = "0x732A40", Offset = "0x731A40", VA = "0x180732A40")]
|
||||
private static void ImplSign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
|
||||
{
|
||||
byte[] array = new byte[new Sha512Digest()];
|
||||
int secretKeySize = Ed25519.SecretKeySize;
|
||||
byte[] array2 = new byte[0];
|
||||
int num = 0;
|
||||
Ed25519.PruneScalar(array, num, array2);
|
||||
}
|
||||
|
||||
// Token: 0x0600A57E RID: 42366 RVA: 0x00233764 File Offset: 0x00231964
|
||||
[Token(Token = "0x600A57E")]
|
||||
[Address(RVA = "0x732C90", Offset = "0x731C90", VA = "0x180732C90")]
|
||||
private static bool ImplVerify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte phflag, byte[] m, int mOff, int mLen)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A57E)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::ImplVerify(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],System.Byte,System.Byte[],System.Int32,System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_D8:
|
||||
stloc:ArgumentException(var_23_E2, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ctx")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600A57F RID: 42367 RVA: 0x00233854 File Offset: 0x00231A54
|
||||
[Token(Token = "0x600A57F")]
|
||||
[Address(RVA = "0x733740", Offset = "0x732740", VA = "0x180733740")]
|
||||
private static void PointAddVar(bool negate, Ed25519.PointExt p, Ed25519.PointAccum r)
|
||||
{
|
||||
int[] array = new int[10];
|
||||
int[] array2 = new int[10];
|
||||
int[] array3 = new int[10];
|
||||
int[] array4 = new int[10];
|
||||
int[] u = r.u;
|
||||
int[] array5 = new int[10];
|
||||
int[] array6 = new int[10];
|
||||
int[] v = r.v;
|
||||
if (!negate)
|
||||
{
|
||||
}
|
||||
int[] x = r.x;
|
||||
X25519Field.Apm(r.y, x, array2, array);
|
||||
int[] x2 = p.x;
|
||||
X25519Field.Apm(p.y, x2, array3, array4);
|
||||
X25519Field.Mul(array, array3, array);
|
||||
X25519Field.Mul(array2, array4, array2);
|
||||
int[] v2 = r.v;
|
||||
X25519Field.Mul(r.u, v2, array3);
|
||||
int[] t = p.t;
|
||||
X25519Field.Mul(array3, t, array3);
|
||||
int[] c_d = Ed25519.C_d2;
|
||||
X25519Field.Mul(array3, c_d, array3);
|
||||
int[] z = p.z;
|
||||
X25519Field.Mul(r.z, z, array4);
|
||||
X25519Field.Add(array4, array4, array4);
|
||||
X25519Field.Apm(array2, array, v, u);
|
||||
X25519Field.Apm(array4, array3, array5, array6);
|
||||
X25519Field.Carry(array5);
|
||||
int[] x3 = r.x;
|
||||
X25519Field.Mul(u, array5, x3);
|
||||
int[] y = r.y;
|
||||
X25519Field.Mul(array6, v, y);
|
||||
int[] z2 = r.z;
|
||||
X25519Field.Mul(array5, array6, z2);
|
||||
}
|
||||
|
||||
// Token: 0x0600A580 RID: 42368 RVA: 0x0023399C File Offset: 0x00231B9C
|
||||
[Token(Token = "0x600A580")]
|
||||
[Address(RVA = "0x733340", Offset = "0x732340", VA = "0x180733340")]
|
||||
private static void PointAddVar(bool negate, Ed25519.PointExt p, Ed25519.PointExt q, Ed25519.PointExt r)
|
||||
{
|
||||
int[] array = new int[10];
|
||||
int[] array2 = new int[10];
|
||||
int[] array3 = new int[10];
|
||||
int[] array4 = new int[10];
|
||||
int[] array5 = new int[10];
|
||||
int[] array6 = new int[10];
|
||||
int[] array7 = new int[10];
|
||||
int[] array8 = new int[10];
|
||||
if (!negate)
|
||||
{
|
||||
}
|
||||
int[] x = p.x;
|
||||
int[] y = p.y;
|
||||
X25519Field.Apm(y, x, array2, array);
|
||||
X25519Field.Apm(y, x, array3, array4);
|
||||
X25519Field.Mul(array, array3, array);
|
||||
X25519Field.Mul(array2, array4, array2);
|
||||
X25519Field.Mul(p.t, array4, array3);
|
||||
int[] c_d = Ed25519.C_d2;
|
||||
X25519Field.Mul(array3, c_d, array3);
|
||||
X25519Field.Mul(p.z, c_d, array4);
|
||||
X25519Field.Add(array4, array4, array4);
|
||||
X25519Field.Apm(array2, array, array8, array5);
|
||||
X25519Field.Apm(array4, array3, array6, array7);
|
||||
X25519Field.Carry(array6);
|
||||
int[] x2 = r.x;
|
||||
X25519Field.Mul(array5, array6, x2);
|
||||
int[] y2 = r.y;
|
||||
X25519Field.Mul(array7, array8, y2);
|
||||
int[] z = r.z;
|
||||
X25519Field.Mul(array6, array7, z);
|
||||
int[] t = r.t;
|
||||
X25519Field.Mul(array5, array8, t);
|
||||
}
|
||||
|
||||
// Token: 0x0600A581 RID: 42369 RVA: 0x00233ACC File Offset: 0x00231CCC
|
||||
[Token(Token = "0x600A581")]
|
||||
[Address(RVA = "0x7330E0", Offset = "0x7320E0", VA = "0x1807330E0")]
|
||||
private static void PointAddPrecomp(Ed25519.PointPrecomp p, Ed25519.PointAccum r)
|
||||
{
|
||||
int[] array = new int[10];
|
||||
int[] array2 = new int[10];
|
||||
int[] array3 = new int[10];
|
||||
int[] u = r.u;
|
||||
int[] array4 = new int[10];
|
||||
int[] array5 = new int[10];
|
||||
int[] x = r.x;
|
||||
int[] v = r.v;
|
||||
X25519Field.Apm(r.y, x, array2, array);
|
||||
int[] ymx_h = p.ymx_h;
|
||||
X25519Field.Mul(array, ymx_h, array);
|
||||
int[] ypx_h = p.ypx_h;
|
||||
X25519Field.Mul(array2, ypx_h, array2);
|
||||
int[] v2 = r.v;
|
||||
X25519Field.Mul(r.u, v2, array3);
|
||||
int[] xyd = p.xyd;
|
||||
X25519Field.Mul(array3, xyd, array3);
|
||||
X25519Field.Apm(array2, array, v, u);
|
||||
X25519Field.Apm(r.z, array3, array5, array4);
|
||||
X25519Field.Carry(array5);
|
||||
int[] x2 = r.x;
|
||||
X25519Field.Mul(u, array4, x2);
|
||||
int[] y = r.y;
|
||||
X25519Field.Mul(array5, v, y);
|
||||
int[] z = r.z;
|
||||
X25519Field.Mul(array4, array5, z);
|
||||
}
|
||||
|
||||
// Token: 0x0600A582 RID: 42370 RVA: 0x00233BD4 File Offset: 0x00231DD4
|
||||
[Token(Token = "0x600A582")]
|
||||
[Address(RVA = "0x733AF0", Offset = "0x732AF0", VA = "0x180733AF0")]
|
||||
private static Ed25519.PointExt PointCopy(Ed25519.PointAccum p)
|
||||
{
|
||||
Ed25519.PointExt pointExt = new Ed25519.PointExt();
|
||||
int[] x = p.x;
|
||||
int[] x2 = pointExt.x;
|
||||
int num = 0;
|
||||
int num2 = x[num];
|
||||
num++;
|
||||
x2[0] = num2;
|
||||
int[] y = pointExt.y;
|
||||
int num3 = p.y[num];
|
||||
num++;
|
||||
y[0] = num3;
|
||||
int[] z = pointExt.z;
|
||||
int num4 = p.z[num];
|
||||
num++;
|
||||
z[0] = num4;
|
||||
int[] t = pointExt.t;
|
||||
int[] v = p.v;
|
||||
X25519Field.Mul(p.u, v, t);
|
||||
return pointExt;
|
||||
}
|
||||
|
||||
// Token: 0x0600A583 RID: 42371 RVA: 0x00233C7C File Offset: 0x00231E7C
|
||||
[Token(Token = "0x600A583")]
|
||||
[Address(RVA = "0x733CC0", Offset = "0x732CC0", VA = "0x180733CC0")]
|
||||
private static Ed25519.PointExt PointCopy(Ed25519.PointExt p)
|
||||
{
|
||||
Ed25519.PointExt pointExt = new Ed25519.PointExt();
|
||||
int[] x = p.x;
|
||||
int[] x2 = pointExt.x;
|
||||
int num = 0;
|
||||
int num2 = x[num];
|
||||
num++;
|
||||
x2[0] = num2;
|
||||
int[] y = pointExt.y;
|
||||
int num3 = p.y[num];
|
||||
num++;
|
||||
y[0] = num3;
|
||||
int[] z = pointExt.z;
|
||||
int num4 = p.z[num];
|
||||
num++;
|
||||
z[0] = num4;
|
||||
int[] t = pointExt.t;
|
||||
int num5 = p.t[num];
|
||||
num++;
|
||||
t[0] = num5;
|
||||
return pointExt;
|
||||
}
|
||||
|
||||
// Token: 0x0600A584 RID: 42372 RVA: 0x00233D28 File Offset: 0x00231F28
|
||||
[Token(Token = "0x600A584")]
|
||||
[Address(RVA = "0x733EE0", Offset = "0x732EE0", VA = "0x180733EE0")]
|
||||
private static void PointDouble(Ed25519.PointAccum r)
|
||||
{
|
||||
int[] array = new int[10];
|
||||
int[] array2 = new int[10];
|
||||
int[] array3 = new int[10];
|
||||
int[] u = r.u;
|
||||
int[] array4 = new int[10];
|
||||
int[] array5 = new int[10];
|
||||
int[] x = r.x;
|
||||
int[] v = r.v;
|
||||
X25519Field.Sqr(x, array);
|
||||
X25519Field.Sqr(r.y, array2);
|
||||
X25519Field.Sqr(r.z, array3);
|
||||
X25519Field.Add(array3, array3, array3);
|
||||
X25519Field.Apm(array, array2, v, array5);
|
||||
int[] y = r.y;
|
||||
X25519Field.Add(r.x, y, u);
|
||||
X25519Field.Sqr(u, u);
|
||||
X25519Field.Sub(v, u, u);
|
||||
X25519Field.Add(array3, array5, array4);
|
||||
X25519Field.Carry(array4);
|
||||
int[] x2 = r.x;
|
||||
X25519Field.Mul(u, array4, x2);
|
||||
int[] y2 = r.y;
|
||||
X25519Field.Mul(array5, v, y2);
|
||||
int[] z = r.z;
|
||||
X25519Field.Mul(array4, array5, z);
|
||||
}
|
||||
|
||||
// Token: 0x0600A585 RID: 42373 RVA: 0x00233E20 File Offset: 0x00232020
|
||||
[Token(Token = "0x600A585")]
|
||||
[Address(RVA = "0x734140", Offset = "0x733140", VA = "0x180734140")]
|
||||
private static void PointExtendXY(Ed25519.PointAccum p)
|
||||
{
|
||||
int[] z = p.z;
|
||||
int num = 0;
|
||||
z[0] = (int)((uint)1);
|
||||
z[0] = num;
|
||||
int[] u = p.u;
|
||||
int num2 = p.x[num];
|
||||
num++;
|
||||
u[0] = num2;
|
||||
int[] v = p.v;
|
||||
int num3 = p.y[num];
|
||||
num++;
|
||||
v[0] = num3;
|
||||
}
|
||||
|
||||
// Token: 0x0600A586 RID: 42374 RVA: 0x00233E94 File Offset: 0x00232094
|
||||
[Token(Token = "0x600A586")]
|
||||
[Address(RVA = "0x7342B0", Offset = "0x7332B0", VA = "0x1807342B0")]
|
||||
private static void PointExtendXY(Ed25519.PointExt p)
|
||||
{
|
||||
int[] z = p.z;
|
||||
int num = 0;
|
||||
z[0] = (int)((uint)1);
|
||||
z[0] = num;
|
||||
int[] t = p.t;
|
||||
int[] y = p.y;
|
||||
X25519Field.Mul(p.x, y, t);
|
||||
}
|
||||
|
||||
// Token: 0x0600A587 RID: 42375 RVA: 0x00233EDC File Offset: 0x002320DC
|
||||
[Token(Token = "0x600A587")]
|
||||
[Address(RVA = "0x734370", Offset = "0x733370", VA = "0x180734370")]
|
||||
private static void PointLookup(int block, int index, Ed25519.PointPrecomp p)
|
||||
{
|
||||
long num = (long)(block * (int)((uint)240));
|
||||
int num2 = 0;
|
||||
int[] ypx_h = p.ypx_h;
|
||||
int[] array = Ed25519.precompBase;
|
||||
uint num3;
|
||||
Nat.CMov((int)num3, num2, array, (int)num, ypx_h, num2);
|
||||
int[] ymx_h = p.ymx_h;
|
||||
int[] array2 = Ed25519.precompBase;
|
||||
uint num4;
|
||||
Nat.CMov((int)num4, num2, array2, (int)num, ymx_h, num2);
|
||||
int[] xyd = p.xyd;
|
||||
int[] array3 = Ed25519.precompBase;
|
||||
uint num5;
|
||||
Nat.CMov((int)num5, num2, array3, (int)num, xyd, num2);
|
||||
num2++;
|
||||
}
|
||||
|
||||
// Token: 0x0600A588 RID: 42376 RVA: 0x00233F54 File Offset: 0x00232154
|
||||
[Token(Token = "0x600A588")]
|
||||
[Address(RVA = "0x7344D0", Offset = "0x7334D0", VA = "0x1807344D0")]
|
||||
private static Ed25519.PointExt[] PointPrecompVar(Ed25519.PointExt p, int count)
|
||||
{
|
||||
Ed25519.PointExt pointExt = new Ed25519.PointExt();
|
||||
Ed25519.PointAddVar(false, p, p, pointExt);
|
||||
Ed25519.PointExt[] array = new Ed25519.PointExt[count];
|
||||
Ed25519.PointExt pointExt2 = Ed25519.PointCopy(p);
|
||||
if (pointExt2 != 0)
|
||||
{
|
||||
}
|
||||
array[0] = pointExt2;
|
||||
if (count > 1)
|
||||
{
|
||||
Ed25519.PointExt pointExt3 = array[pointExt2];
|
||||
Ed25519.PointExt pointExt4 = new Ed25519.PointExt();
|
||||
if (pointExt4 != 0)
|
||||
{
|
||||
}
|
||||
array[0] = pointExt4;
|
||||
Ed25519.PointAddVar(false, pointExt3, pointExt, pointExt4);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600A589 RID: 42377 RVA: 0x00233FC0 File Offset: 0x002321C0
|
||||
[Token(Token = "0x600A589")]
|
||||
[Address(RVA = "0x734850", Offset = "0x733850", VA = "0x180734850")]
|
||||
private static void PointSetNeutral(Ed25519.PointAccum p)
|
||||
{
|
||||
int[] x = p.x;
|
||||
int num = 0;
|
||||
num++;
|
||||
x[0] = num;
|
||||
int[] y = p.y;
|
||||
y[0] = (int)((uint)1);
|
||||
y[0] = num;
|
||||
int[] z = p.z;
|
||||
z[0] = (int)((uint)1);
|
||||
z[0] = num;
|
||||
int[] u = p.u;
|
||||
num++;
|
||||
u[0] = num;
|
||||
int[] v = p.v;
|
||||
v[0] = (int)((uint)1);
|
||||
v[0] = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600A58A RID: 42378 RVA: 0x00234048 File Offset: 0x00232248
|
||||
[Token(Token = "0x600A58A")]
|
||||
[Address(RVA = "0x7346D0", Offset = "0x7336D0", VA = "0x1807346D0")]
|
||||
private static void PointSetNeutral(Ed25519.PointExt p)
|
||||
{
|
||||
int[] x = p.x;
|
||||
int num = 0;
|
||||
num++;
|
||||
x[0] = num;
|
||||
int[] y = p.y;
|
||||
y[0] = (int)((uint)1);
|
||||
y[0] = num;
|
||||
int[] z = p.z;
|
||||
z[0] = (int)((uint)1);
|
||||
z[0] = num;
|
||||
int[] t = p.t;
|
||||
num++;
|
||||
t[0] = num;
|
||||
}
|
||||
|
||||
// Token: 0x0600A58B RID: 42379 RVA: 0x002340B8 File Offset: 0x002322B8
|
||||
[Token(Token = "0x600A58B")]
|
||||
[Address(RVA = "0x734A30", Offset = "0x733A30", VA = "0x180734A30")]
|
||||
public static void Precompute()
|
||||
{
|
||||
Ed25519.PointAccum pointAccum;
|
||||
int num9;
|
||||
for (;;)
|
||||
{
|
||||
int num = 0;
|
||||
object obj = Ed25519.precompLock;
|
||||
Ed25519.PointExt pointExt = new Ed25519.PointExt();
|
||||
int[] b_x = Ed25519.B_x;
|
||||
int[] x = pointExt.x;
|
||||
if (num < 10)
|
||||
{
|
||||
int num2 = b_x[num];
|
||||
x[0] = num2;
|
||||
num++;
|
||||
}
|
||||
int[] b_y = Ed25519.B_y;
|
||||
int[] y = pointExt.y;
|
||||
int num3 = 0;
|
||||
if (num3 < 10)
|
||||
{
|
||||
int num4 = b_y[num3];
|
||||
y[0] = num4;
|
||||
num3++;
|
||||
}
|
||||
Ed25519.PointExtendXY(pointExt);
|
||||
Ed25519.precompBaseTable = Ed25519.PointPrecompVar(pointExt, 32);
|
||||
pointAccum = new Ed25519.PointAccum();
|
||||
int[] b_x2 = Ed25519.B_x;
|
||||
int[] x2 = pointAccum.x;
|
||||
int num5 = 0;
|
||||
if (num5 < 10)
|
||||
{
|
||||
int num6 = b_x2[num5];
|
||||
x2[0] = num6;
|
||||
num5++;
|
||||
}
|
||||
int[] b_y2 = Ed25519.B_y;
|
||||
int[] y2 = pointAccum.y;
|
||||
int num7 = 0;
|
||||
if (num7 < 10)
|
||||
{
|
||||
int num8 = b_y2[num7];
|
||||
y2[0] = num8;
|
||||
num7++;
|
||||
}
|
||||
Ed25519.PointExtendXY(pointAccum);
|
||||
Ed25519.precompBase = new int[1920];
|
||||
num9 = 0;
|
||||
if (num9 < 8)
|
||||
{
|
||||
break;
|
||||
}
|
||||
Ed25519.PointPrecomp pointPrecomp;
|
||||
Monitor.Exit(pointPrecomp);
|
||||
int num10;
|
||||
if (num10 == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
Ed25519.PointExt[] array = new Ed25519.PointExt[4];
|
||||
Ed25519.PointExt pointExt2 = new Ed25519.PointExt();
|
||||
Ed25519.PointSetNeutral(pointExt2);
|
||||
if (num9 < 4)
|
||||
{
|
||||
Ed25519.PointExt pointExt3 = Ed25519.PointCopy(pointAccum);
|
||||
ulong num11;
|
||||
Ed25519.PointAddVar(num11 != 0UL, pointExt2, pointExt3, pointExt2);
|
||||
Ed25519.PointDouble(pointAccum);
|
||||
Ed25519.PointExt pointExt4 = Ed25519.PointCopy(pointAccum);
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
Ed25519.PointExt[] array2 = new Ed25519.PointExt[8];
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
|
||||
// Token: 0x0600A58C RID: 42380 RVA: 0x002344C8 File Offset: 0x002326C8
|
||||
[Token(Token = "0x600A58C")]
|
||||
[Address(RVA = "0x735360", Offset = "0x734360", VA = "0x180735360")]
|
||||
private static void PruneScalar(byte[] n, int nOff, byte[] r)
|
||||
{
|
||||
int num = 0;
|
||||
ulong num2;
|
||||
Array.Copy(n, nOff, r, num, (int)num2);
|
||||
byte b = r[3];
|
||||
r[3] = b;
|
||||
r[3] = b;
|
||||
}
|
||||
|
||||
// Token: 0x0600A58D RID: 42381 RVA: 0x00234500 File Offset: 0x00232700
|
||||
[Token(Token = "0x600A58D")]
|
||||
[Address(RVA = "0x7353F0", Offset = "0x7343F0", VA = "0x1807353F0")]
|
||||
private static byte[] ReduceScalar(byte[] n)
|
||||
{
|
||||
int num = 0;
|
||||
int @int = SerializationHeaderRecord.GetInt32(n, num);
|
||||
uint num2 = Ed25519.Decode24(n, 4);
|
||||
int int2 = SerializationHeaderRecord.GetInt32(n, 7);
|
||||
uint num3 = Ed25519.Decode24(n, 11);
|
||||
int int3 = SerializationHeaderRecord.GetInt32(n, 14);
|
||||
uint num4 = Ed25519.Decode24(n, 18);
|
||||
int int4 = SerializationHeaderRecord.GetInt32(n, 21);
|
||||
uint num5 = Ed25519.Decode24(n, 25);
|
||||
int int5 = SerializationHeaderRecord.GetInt32(n, 28);
|
||||
uint num6 = Ed25519.Decode24(n, 32);
|
||||
int int6 = SerializationHeaderRecord.GetInt32(n, 35);
|
||||
uint num7 = Ed25519.Decode24(n, 39);
|
||||
int int7 = SerializationHeaderRecord.GetInt32(n, 42);
|
||||
uint num8 = Ed25519.Decode24(n, 46);
|
||||
int int8 = SerializationHeaderRecord.GetInt32(n, 49);
|
||||
uint num9 = Ed25519.Decode24(n, 53);
|
||||
int int9 = SerializationHeaderRecord.GetInt32(n, 56);
|
||||
uint num10 = Ed25519.Decode24(n, 60);
|
||||
byte b = n[7];
|
||||
num10 += (uint)int9;
|
||||
long num11 = (long)((ulong)b * (ulong)(-19280294L));
|
||||
long num12 = (long)((ulong)num10 * (ulong)5343L);
|
||||
long num13 = (long)((ulong)b * (ulong)6428113L);
|
||||
num13 -= num12;
|
||||
num13 += (long)int7;
|
||||
long num14 = (long)((ulong)b * (ulong)127719000L);
|
||||
num7 = (uint)((long)num7 - num14);
|
||||
long num15 = (long)((ulong)num10 * (ulong)6428113L);
|
||||
num7 = (uint)((long)num7 + num15);
|
||||
long num16 = (long)((ulong)int9 * (ulong)5343L);
|
||||
num7 = (uint)((long)num7 - num16);
|
||||
num9 += (uint)int8;
|
||||
long num17 = (long)((ulong)num10 * (ulong)127719000L);
|
||||
num11 -= num17;
|
||||
long num18 = (long)((ulong)int9 * (ulong)6428113L);
|
||||
num11 += num18;
|
||||
long num19 = (long)((ulong)num9 * (ulong)5343L);
|
||||
num11 -= num19;
|
||||
num11 += (long)int6;
|
||||
long num20 = (long)((ulong)int9 * (ulong)127719000L);
|
||||
num6 = (uint)((long)num6 - num20);
|
||||
long num21 = (long)((ulong)num10 * (ulong)19280294L);
|
||||
num6 = (uint)((long)num6 - num21);
|
||||
long num22 = (long)((ulong)b * (ulong)50998291L);
|
||||
num6 = (uint)((long)num6 + num22);
|
||||
long num23 = (long)((ulong)num9 * (ulong)6428113L);
|
||||
num6 = (uint)((long)num6 + num23);
|
||||
long num24 = (long)((ulong)int8 * (ulong)5343L);
|
||||
num6 = (uint)((long)num6 - num24);
|
||||
long num25 = (long)((ulong)b * (ulong)5343L);
|
||||
num8 = (uint)((long)num8 - num25);
|
||||
num25 = num13;
|
||||
num8 = (uint)((long)num8 + num25);
|
||||
num13 += (long)num7;
|
||||
long num26 = (long)((ulong)int8 * (ulong)127719000L);
|
||||
num5 = (uint)((long)num5 - num26);
|
||||
long num27 = (long)((ulong)num9 * (ulong)19280294L);
|
||||
num5 = (uint)((long)num5 - num27);
|
||||
long num28 = (long)((ulong)int9 * (ulong)50998291L);
|
||||
num5 = (uint)((long)num5 + num28);
|
||||
long num29 = (long)((ulong)num8 * (ulong)6428113L);
|
||||
num5 = (uint)((long)num5 + num29);
|
||||
long num30 = num13 * (long)((ulong)5343L);
|
||||
num5 = (uint)((long)num5 - num30);
|
||||
num30 = num11;
|
||||
num7 = (uint)((long)num7 + num30);
|
||||
num11 += (long)num6;
|
||||
long num31 = (long)((ulong)int9 * (ulong)(-19280294L));
|
||||
long num32 = (long)((ulong)num9 * (ulong)127719000L);
|
||||
long num33 = num11 * (long)((ulong)(-19280294L));
|
||||
num6 = num2;
|
||||
num31 -= num32;
|
||||
long num34 = (long)((ulong)num10 * (ulong)50998291L);
|
||||
num31 += num34;
|
||||
long num35 = (long)((ulong)int8 * (ulong)6428113L);
|
||||
long num36 = num13 * (long)((ulong)(-19280294L));
|
||||
num31 += num35;
|
||||
long num37 = (long)((ulong)num8 * (ulong)5343L);
|
||||
num31 -= num37;
|
||||
num31 += (long)num5;
|
||||
num31 += (long)int5;
|
||||
num31 += (long)int5;
|
||||
long num38 = num31 * (long)((ulong)50998291L);
|
||||
num38 += (long)@int;
|
||||
long num39 = num31 * (long)((ulong)19280294L);
|
||||
num6 = (uint)((long)num6 - num39);
|
||||
long num40 = num11 * (long)((ulong)50998291L);
|
||||
num6 = (uint)((long)num6 + num40);
|
||||
num40 = num38;
|
||||
num6 = (uint)((long)num6 + num40);
|
||||
long num41 = num31 * (long)((ulong)127719000L);
|
||||
num33 -= num41;
|
||||
long num42 = (long)((ulong)num7 * (ulong)50998291L);
|
||||
num33 += num42;
|
||||
num33 += (long)num6;
|
||||
num33 += (long)int2;
|
||||
long num43 = num11 * (long)((ulong)127719000L);
|
||||
num3 = (uint)((long)num3 - num43);
|
||||
long num44 = (long)((ulong)num7 * (ulong)19280294L);
|
||||
num3 = (uint)((long)num3 - num44);
|
||||
long num45 = num13 * (long)((ulong)50998291L);
|
||||
num3 = (uint)((long)num3 + num45);
|
||||
long num46 = num31 * (long)((ulong)6428113L);
|
||||
num3 = (uint)((long)num3 + num46);
|
||||
num46 = num33;
|
||||
num3 = (uint)((long)num3 + num46);
|
||||
long num47 = (long)((ulong)num7 * (ulong)127719000L);
|
||||
num36 -= num47;
|
||||
long num48 = (long)((ulong)num8 * (ulong)50998291L);
|
||||
num36 += num48;
|
||||
long num49 = num11 * (long)((ulong)6428113L);
|
||||
num36 += num49;
|
||||
long num50 = num31 * (long)((ulong)5343L);
|
||||
num36 -= num50;
|
||||
num36 += (long)num3;
|
||||
num36 += (long)int3;
|
||||
long num51 = num13 * (long)((ulong)127719000L);
|
||||
num4 = (uint)((long)num4 - num51);
|
||||
long num52 = (long)((ulong)num8 * (ulong)19280294L);
|
||||
num4 = (uint)((long)num4 - num52);
|
||||
long num53;
|
||||
num4 = (uint)((long)num4 + num53);
|
||||
long num54 = (long)((ulong)num7 * (ulong)6428113L);
|
||||
num4 = (uint)((long)num4 + num54);
|
||||
long num55 = num11 * (long)((ulong)5343L);
|
||||
num4 = (uint)((long)num4 - num55);
|
||||
num55 = num36;
|
||||
num4 = (uint)((long)num4 + num55);
|
||||
long num56 = (long)((ulong)num8 * (ulong)127719000L);
|
||||
long num57;
|
||||
num57 -= num56;
|
||||
long num58 = (long)((ulong)num9 * (ulong)50998291L);
|
||||
num57 += num58;
|
||||
long num59;
|
||||
num57 += num59;
|
||||
long num60 = (long)((ulong)num7 * (ulong)5343L);
|
||||
num57 -= num60;
|
||||
num57 += (long)num4;
|
||||
num57 += (long)int4;
|
||||
num5 = (uint)((long)num5 + num57);
|
||||
num31 += (long)num5;
|
||||
num31 -= num31;
|
||||
num38 += num31;
|
||||
num6 = (uint)((long)num6 + num31);
|
||||
num31 = num38;
|
||||
num6 = (uint)((long)num6 + num31);
|
||||
num33 += num31;
|
||||
num33 += (long)num6;
|
||||
num3 = (uint)((long)num3 + num31);
|
||||
num36 += num31;
|
||||
num31 = num33;
|
||||
num3 = (uint)((long)num3 + num31);
|
||||
num36 += (long)num3;
|
||||
num4 = (uint)((long)num4 + num36);
|
||||
num57 += (long)num4;
|
||||
num5 = (uint)((long)num5 + num57);
|
||||
byte[] array = new byte[32];
|
||||
int num61 = 0;
|
||||
Ed25519.Encode56((ulong)num6, array, num61);
|
||||
num6 = num3;
|
||||
Ed25519.Encode56((ulong)num6, array, 7);
|
||||
num6 = num4;
|
||||
Ed25519.Encode56((ulong)num6, array, 14);
|
||||
num6 = num5;
|
||||
Ed25519.Encode56((ulong)num6, array, 21);
|
||||
num31 += (long)num5;
|
||||
Ed25519.Encode32((uint)num31, array, 28);
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600A58E RID: 42382 RVA: 0x00234AA0 File Offset: 0x00232CA0
|
||||
[Token(Token = "0x600A58E")]
|
||||
[Address(RVA = "0x735D40", Offset = "0x734D40", VA = "0x180735D40")]
|
||||
private static void ScalarMultBase(byte[] k, Ed25519.PointAccum r)
|
||||
{
|
||||
Ed25519.Precompute();
|
||||
Ed25519.PointSetNeutral(r);
|
||||
uint[] array = new uint[8];
|
||||
int num = 0;
|
||||
Ed25519.DecodeScalar(k, num, array);
|
||||
uint num2 = array[0];
|
||||
uint[] l = Ed25519.L;
|
||||
uint num3 = Nat.CAdd(8, (int)num2, array, l, array);
|
||||
uint num4 = Nat.ShiftDownBit(8, array, (uint)1);
|
||||
int num5 = 0;
|
||||
uint num6 = Interleave.Shuffle2(array[num5]);
|
||||
num5++;
|
||||
array[0] = num6;
|
||||
Ed25519.PointPrecomp pointPrecomp = new Ed25519.PointPrecomp();
|
||||
int num7 = 0;
|
||||
uint num8 = array[num7];
|
||||
Ed25519.PointLookup(num7, (int)num8, pointPrecomp);
|
||||
int[] ypx_h = pointPrecomp.ypx_h;
|
||||
int[] ymx_h = pointPrecomp.ymx_h;
|
||||
X25519Field.CSwap((int)num8, ypx_h, ymx_h);
|
||||
int[] xyd = pointPrecomp.xyd;
|
||||
X25519Field.CNegate((int)num8, xyd);
|
||||
num7++;
|
||||
}
|
||||
|
||||
// Token: 0x0600A58F RID: 42383 RVA: 0x00234B70 File Offset: 0x00232D70
|
||||
[Token(Token = "0x600A58F")]
|
||||
[Address(RVA = "0x735AF0", Offset = "0x734AF0", VA = "0x180735AF0")]
|
||||
private static void ScalarMultBaseEncoded(byte[] k, byte[] r, int rOff)
|
||||
{
|
||||
Ed25519.PointAccum pointAccum = new Ed25519.PointAccum();
|
||||
Ed25519.ScalarMultBase(k, pointAccum);
|
||||
Ed25519.EncodePoint(pointAccum, r, rOff);
|
||||
}
|
||||
|
||||
// Token: 0x0600A590 RID: 42384 RVA: 0x00234B94 File Offset: 0x00232D94
|
||||
[Token(Token = "0x600A590")]
|
||||
[Address(RVA = "0x735BA0", Offset = "0x734BA0", VA = "0x180735BA0")]
|
||||
internal static void ScalarMultBaseYZ(byte[] k, int kOff, int[] y, int[] z)
|
||||
{
|
||||
byte[] array = new byte[32];
|
||||
Ed25519.PruneScalar(k, kOff, array);
|
||||
Ed25519.PointAccum pointAccum = new Ed25519.PointAccum();
|
||||
Ed25519.ScalarMultBase(array, pointAccum);
|
||||
int[] y2 = pointAccum.y;
|
||||
int num = 0;
|
||||
int num2 = y2[num];
|
||||
num++;
|
||||
y[0] = num2;
|
||||
int num3 = pointAccum.z[num];
|
||||
num++;
|
||||
z[0] = num3;
|
||||
}
|
||||
|
||||
// Token: 0x0600A591 RID: 42385 RVA: 0x00234C00 File Offset: 0x00232E00
|
||||
[Token(Token = "0x600A591")]
|
||||
[Address(RVA = "0x736010", Offset = "0x735010", VA = "0x180736010")]
|
||||
private static void ScalarMultStraussVar(uint[] nb, uint[] np, Ed25519.PointExt p, Ed25519.PointAccum r)
|
||||
{
|
||||
Ed25519.Precompute();
|
||||
sbyte[] wnaf = Ed25519.GetWnaf(nb, 7);
|
||||
sbyte[] wnaf2 = Ed25519.GetWnaf(np, 5);
|
||||
Ed25519.PointExt[] array = Ed25519.PointPrecompVar(p, 8);
|
||||
Ed25519.PointSetNeutral(r);
|
||||
if ((uint)255 == (uint)wnaf2.Length)
|
||||
{
|
||||
}
|
||||
sbyte b;
|
||||
Ed25519.PointExt pointExt = Ed25519.precompBaseTable[(int)b];
|
||||
bool flag;
|
||||
Ed25519.PointAddVar(flag, pointExt, r);
|
||||
if ((uint)255 != 0U)
|
||||
{
|
||||
Ed25519.PointExt pointExt2;
|
||||
Ed25519.PointAddVar((uint)255 != 0U, pointExt2, r);
|
||||
}
|
||||
Ed25519.PointDouble(r);
|
||||
}
|
||||
|
||||
// Token: 0x0600A592 RID: 42386 RVA: 0x00234C84 File Offset: 0x00232E84
|
||||
[Token(Token = "0x600A592")]
|
||||
[Address(RVA = "0x7369F0", Offset = "0x7359F0", VA = "0x1807369F0")]
|
||||
public static void Sign(byte[] sk, int skOff, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A593 RID: 42387 RVA: 0x00234C94 File Offset: 0x00232E94
|
||||
[Token(Token = "0x600A593")]
|
||||
[Address(RVA = "0x736780", Offset = "0x735780", VA = "0x180736780")]
|
||||
public static void Sign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A594 RID: 42388 RVA: 0x00234CA4 File Offset: 0x00232EA4
|
||||
[Token(Token = "0x600A594")]
|
||||
[Address(RVA = "0x736930", Offset = "0x735930", VA = "0x180736930")]
|
||||
public static void Sign(byte[] sk, int skOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A595 RID: 42389 RVA: 0x00234CB4 File Offset: 0x00232EB4
|
||||
[Token(Token = "0x600A595")]
|
||||
[Address(RVA = "0x736850", Offset = "0x735850", VA = "0x180736850")]
|
||||
public static void Sign(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A596 RID: 42390 RVA: 0x00234CC4 File Offset: 0x00232EC4
|
||||
[Token(Token = "0x600A596")]
|
||||
[Address(RVA = "0x7365D0", Offset = "0x7355D0", VA = "0x1807365D0")]
|
||||
public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)
|
||||
{
|
||||
int prehashSize = Ed25519.PrehashSize;
|
||||
}
|
||||
|
||||
// Token: 0x0600A597 RID: 42391 RVA: 0x00234CD8 File Offset: 0x00232ED8
|
||||
[Token(Token = "0x600A597")]
|
||||
[Address(RVA = "0x7366A0", Offset = "0x7356A0", VA = "0x1807366A0")]
|
||||
public static void SignPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)
|
||||
{
|
||||
int prehashSize = Ed25519.PrehashSize;
|
||||
}
|
||||
|
||||
// Token: 0x0600A598 RID: 42392 RVA: 0x00234CEC File Offset: 0x00232EEC
|
||||
[Token(Token = "0x600A598")]
|
||||
[Address(RVA = "0x7362B0", Offset = "0x7352B0", VA = "0x1807362B0")]
|
||||
public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, IDigest ph, byte[] sig, int sigOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A598)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::SignPrehash(System.Byte[],System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_21:
|
||||
stloc:ArgumentException(var_5_2B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ph")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600A599 RID: 42393 RVA: 0x00234D28 File Offset: 0x00232F28
|
||||
[Token(Token = "0x600A599")]
|
||||
[Address(RVA = "0x736430", Offset = "0x735430", VA = "0x180736430")]
|
||||
public static void SignPrehash(byte[] sk, int skOff, byte[] pk, int pkOff, byte[] ctx, IDigest ph, byte[] sig, int sigOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A599)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::SignPrehash(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest,System.Byte[],System.Int32)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_21:
|
||||
stloc:ArgumentException(var_6_2B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ph")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600A59A RID: 42394 RVA: 0x00234D64 File Offset: 0x00232F64
|
||||
[Token(Token = "0x600A59A")]
|
||||
[Address(RVA = "0x736D00", Offset = "0x735D00", VA = "0x180736D00")]
|
||||
public static bool Verify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] m, int mOff, int mLen)
|
||||
{
|
||||
bool flag;
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x0600A59B RID: 42395 RVA: 0x00234D74 File Offset: 0x00232F74
|
||||
[Token(Token = "0x600A59B")]
|
||||
[Address(RVA = "0x736DB0", Offset = "0x735DB0", VA = "0x180736DB0")]
|
||||
public static bool Verify(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] m, int mOff, int mLen)
|
||||
{
|
||||
bool flag;
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x0600A59C RID: 42396 RVA: 0x00234D84 File Offset: 0x00232F84
|
||||
[Token(Token = "0x600A59C")]
|
||||
[Address(RVA = "0x736AB0", Offset = "0x735AB0", VA = "0x180736AB0")]
|
||||
public static bool VerifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, byte[] ph, int phOff)
|
||||
{
|
||||
int prehashSize = Ed25519.PrehashSize;
|
||||
bool flag;
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x0600A59D RID: 42397 RVA: 0x00234D98 File Offset: 0x00232F98
|
||||
[Token(Token = "0x600A59D")]
|
||||
[Address(RVA = "0x736B80", Offset = "0x735B80", VA = "0x180736B80")]
|
||||
public static bool VerifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, IDigest ph)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A59D)
|
||||
|
||||
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Math.EC.Rfc8032.Ed25519::VerifyPrehash(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Byte[],BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IDigest)
|
||||
|
||||
---> System.Exception: Basic block has to end with unconditional control flow.
|
||||
{
|
||||
IL_23:
|
||||
stloc:ArgumentException(var_7_2D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("ph")))
|
||||
}
|
||||
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
|
||||
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
|
||||
--- End of inner exception stack trace ---
|
||||
at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
|
||||
at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1663
|
||||
*/;
|
||||
}
|
||||
|
||||
// Token: 0x0600A59E RID: 42398 RVA: 0x00234DD4 File Offset: 0x00232FD4
|
||||
[Token(Token = "0x600A59E")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
protected Ed25519()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A59F RID: 42399 RVA: 0x00234DE8 File Offset: 0x00232FE8
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600A59F")]
|
||||
[Address(RVA = "0x736E70", Offset = "0x735E70", VA = "0x180736E70")]
|
||||
static Ed25519()
|
||||
{
|
||||
uint[] array = new uint[8];
|
||||
RuntimeHelpers.InitializeArray(array, fieldof(<PrivateImplementationDetails>.86B0F85AC13B58F88DEFFD8FD6EE095438B98F10).FieldHandle);
|
||||
Ed25519.P = array;
|
||||
uint[] array2 = new uint[8];
|
||||
RuntimeHelpers.InitializeArray(array2, fieldof(<PrivateImplementationDetails>.400E52B9E7F331D1ACC81B4EA40D228C7A6D60F8).FieldHandle);
|
||||
Ed25519.L = array2;
|
||||
int[] array3 = new int[10];
|
||||
RuntimeHelpers.InitializeArray(array3, fieldof(<PrivateImplementationDetails>.98CF708E75DA60C2A04D06606E726EC975E6DBAB).FieldHandle);
|
||||
Ed25519.B_x = array3;
|
||||
int[] array4 = new int[10];
|
||||
RuntimeHelpers.InitializeArray(array4, fieldof(<PrivateImplementationDetails>.58F8E05C1E95C042205E13B76D1BFC0F7ABA6F88).FieldHandle);
|
||||
Ed25519.B_y = array4;
|
||||
int[] array5 = new int[10];
|
||||
RuntimeHelpers.InitializeArray(array5, fieldof(<PrivateImplementationDetails>.4C8FA1E9ACD72AED71F3923AEC5DF6AC8B6EFFE4).FieldHandle);
|
||||
Ed25519.C_d = array5;
|
||||
int[] array6 = new int[10];
|
||||
RuntimeHelpers.InitializeArray(array6, fieldof(<PrivateImplementationDetails>.5BF56A4EEA44BBE4974BB61DA08B42B6EC49B72D).FieldHandle);
|
||||
Ed25519.C_d2 = array6;
|
||||
int[] array7 = new int[10];
|
||||
RuntimeHelpers.InitializeArray(array7, fieldof(<PrivateImplementationDetails>.BBBDF1388DDDDEEC01227AF1738F138452242E3A).FieldHandle);
|
||||
Ed25519.C_d4 = array7;
|
||||
Ed25519.precompLock = new object();
|
||||
int num = 0;
|
||||
Ed25519.precompBaseTable = num;
|
||||
Ed25519.precompBase = num;
|
||||
}
|
||||
|
||||
// Token: 0x04006C5D RID: 27741
|
||||
[Token(Token = "0x4006C5D")]
|
||||
private const long M28L = 268435455L;
|
||||
|
||||
// Token: 0x04006C5E RID: 27742
|
||||
[Token(Token = "0x4006C5E")]
|
||||
private const long M32L = 4294967295L;
|
||||
|
||||
// Token: 0x04006C5F RID: 27743
|
||||
[Token(Token = "0x4006C5F")]
|
||||
private const int PointBytes = 32;
|
||||
|
||||
// Token: 0x04006C60 RID: 27744
|
||||
[Token(Token = "0x4006C60")]
|
||||
private const int ScalarUints = 8;
|
||||
|
||||
// Token: 0x04006C61 RID: 27745
|
||||
[Token(Token = "0x4006C61")]
|
||||
private const int ScalarBytes = 32;
|
||||
|
||||
// Token: 0x04006C62 RID: 27746
|
||||
[Token(Token = "0x4006C62")]
|
||||
public static readonly int PrehashSize;
|
||||
|
||||
// Token: 0x04006C63 RID: 27747
|
||||
[Token(Token = "0x4006C63")]
|
||||
public static readonly int PublicKeySize;
|
||||
|
||||
// Token: 0x04006C64 RID: 27748
|
||||
[Token(Token = "0x4006C64")]
|
||||
public static readonly int SecretKeySize;
|
||||
|
||||
// Token: 0x04006C65 RID: 27749
|
||||
[Token(Token = "0x4006C65")]
|
||||
public static readonly int SignatureSize;
|
||||
|
||||
// Token: 0x04006C66 RID: 27750
|
||||
[Token(Token = "0x4006C66")]
|
||||
private static readonly byte[] Dom2Prefix = Strings.ToByteArray("SigEd25519 no Ed25519 collisions");
|
||||
|
||||
// Token: 0x04006C67 RID: 27751
|
||||
[Token(Token = "0x4006C67")]
|
||||
private static readonly uint[] P;
|
||||
|
||||
// Token: 0x04006C68 RID: 27752
|
||||
[Token(Token = "0x4006C68")]
|
||||
private static readonly uint[] L;
|
||||
|
||||
// Token: 0x04006C69 RID: 27753
|
||||
[Token(Token = "0x4006C69")]
|
||||
private const int L0 = -50998291;
|
||||
|
||||
// Token: 0x04006C6A RID: 27754
|
||||
[Token(Token = "0x4006C6A")]
|
||||
private const int L1 = 19280294;
|
||||
|
||||
// Token: 0x04006C6B RID: 27755
|
||||
[Token(Token = "0x4006C6B")]
|
||||
private const int L2 = 127719000;
|
||||
|
||||
// Token: 0x04006C6C RID: 27756
|
||||
[Token(Token = "0x4006C6C")]
|
||||
private const int L3 = -6428113;
|
||||
|
||||
// Token: 0x04006C6D RID: 27757
|
||||
[Token(Token = "0x4006C6D")]
|
||||
private const int L4 = 5343;
|
||||
|
||||
// Token: 0x04006C6E RID: 27758
|
||||
[Token(Token = "0x4006C6E")]
|
||||
private static readonly int[] B_x;
|
||||
|
||||
// Token: 0x04006C6F RID: 27759
|
||||
[Token(Token = "0x4006C6F")]
|
||||
private static readonly int[] B_y;
|
||||
|
||||
// Token: 0x04006C70 RID: 27760
|
||||
[Token(Token = "0x4006C70")]
|
||||
private static readonly int[] C_d;
|
||||
|
||||
// Token: 0x04006C71 RID: 27761
|
||||
[Token(Token = "0x4006C71")]
|
||||
private static readonly int[] C_d2;
|
||||
|
||||
// Token: 0x04006C72 RID: 27762
|
||||
[Token(Token = "0x4006C72")]
|
||||
private static readonly int[] C_d4;
|
||||
|
||||
// Token: 0x04006C73 RID: 27763
|
||||
[Token(Token = "0x4006C73")]
|
||||
private const int WnafWidthBase = 7;
|
||||
|
||||
// Token: 0x04006C74 RID: 27764
|
||||
[Token(Token = "0x4006C74")]
|
||||
private const int PrecompBlocks = 8;
|
||||
|
||||
// Token: 0x04006C75 RID: 27765
|
||||
[Token(Token = "0x4006C75")]
|
||||
private const int PrecompTeeth = 4;
|
||||
|
||||
// Token: 0x04006C76 RID: 27766
|
||||
[Token(Token = "0x4006C76")]
|
||||
private const int PrecompSpacing = 8;
|
||||
|
||||
// Token: 0x04006C77 RID: 27767
|
||||
[Token(Token = "0x4006C77")]
|
||||
private const int PrecompPoints = 8;
|
||||
|
||||
// Token: 0x04006C78 RID: 27768
|
||||
[Token(Token = "0x4006C78")]
|
||||
private const int PrecompMask = 7;
|
||||
|
||||
// Token: 0x04006C79 RID: 27769
|
||||
[Token(Token = "0x4006C79")]
|
||||
private static readonly object precompLock;
|
||||
|
||||
// Token: 0x04006C7A RID: 27770
|
||||
[Token(Token = "0x4006C7A")]
|
||||
private static Ed25519.PointExt[] precompBaseTable;
|
||||
|
||||
// Token: 0x04006C7B RID: 27771
|
||||
[Token(Token = "0x4006C7B")]
|
||||
private static int[] precompBase;
|
||||
|
||||
// Token: 0x02001AE9 RID: 6889
|
||||
[Token(Token = "0x2001AE9")]
|
||||
public enum Algorithm
|
||||
{
|
||||
// Token: 0x04006C7D RID: 27773
|
||||
[Token(Token = "0x4006C7D")]
|
||||
Ed25519,
|
||||
// Token: 0x04006C7E RID: 27774
|
||||
[Token(Token = "0x4006C7E")]
|
||||
Ed25519ctx,
|
||||
// Token: 0x04006C7F RID: 27775
|
||||
[Token(Token = "0x4006C7F")]
|
||||
Ed25519ph
|
||||
}
|
||||
|
||||
// Token: 0x02001AEA RID: 6890
|
||||
[Token(Token = "0x2001AEA")]
|
||||
private class PointAccum
|
||||
{
|
||||
// Token: 0x0600A5A0 RID: 42400 RVA: 0x00234ED8 File Offset: 0x002330D8
|
||||
[Token(Token = "0x600A5A0")]
|
||||
[Address(RVA = "0x763CE0", Offset = "0x762CE0", VA = "0x180763CE0")]
|
||||
public PointAccum()
|
||||
{
|
||||
int[] array = X25519Field.Create();
|
||||
this.x = array;
|
||||
int[] array2 = X25519Field.Create();
|
||||
this.y = array2;
|
||||
int[] array3 = X25519Field.Create();
|
||||
this.z = array3;
|
||||
int[] array4 = X25519Field.Create();
|
||||
this.u = array4;
|
||||
int[] array5 = X25519Field.Create();
|
||||
this.v = array5;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x04006C80 RID: 27776
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006C80")]
|
||||
internal int[] x;
|
||||
|
||||
// Token: 0x04006C81 RID: 27777
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006C81")]
|
||||
internal int[] y;
|
||||
|
||||
// Token: 0x04006C82 RID: 27778
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006C82")]
|
||||
internal int[] z;
|
||||
|
||||
// Token: 0x04006C83 RID: 27779
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4006C83")]
|
||||
internal int[] u;
|
||||
|
||||
// Token: 0x04006C84 RID: 27780
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x4006C84")]
|
||||
internal int[] v;
|
||||
}
|
||||
|
||||
// Token: 0x02001AEB RID: 6891
|
||||
[Token(Token = "0x2001AEB")]
|
||||
private class PointExt
|
||||
{
|
||||
// Token: 0x0600A5A1 RID: 42401 RVA: 0x00234F40 File Offset: 0x00233140
|
||||
[Token(Token = "0x600A5A1")]
|
||||
[Address(RVA = "0x763D70", Offset = "0x762D70", VA = "0x180763D70")]
|
||||
public PointExt()
|
||||
{
|
||||
int[] array = X25519Field.Create();
|
||||
this.x = array;
|
||||
int[] array2 = X25519Field.Create();
|
||||
this.y = array2;
|
||||
int[] array3 = X25519Field.Create();
|
||||
this.z = array3;
|
||||
int[] array4 = X25519Field.Create();
|
||||
this.t = array4;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x04006C85 RID: 27781
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006C85")]
|
||||
internal int[] x;
|
||||
|
||||
// Token: 0x04006C86 RID: 27782
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006C86")]
|
||||
internal int[] y;
|
||||
|
||||
// Token: 0x04006C87 RID: 27783
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006C87")]
|
||||
internal int[] z;
|
||||
|
||||
// Token: 0x04006C88 RID: 27784
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x4006C88")]
|
||||
internal int[] t;
|
||||
}
|
||||
|
||||
// Token: 0x02001AEC RID: 6892
|
||||
[Token(Token = "0x2001AEC")]
|
||||
private class PointPrecomp
|
||||
{
|
||||
// Token: 0x0600A5A2 RID: 42402 RVA: 0x00234F98 File Offset: 0x00233198
|
||||
[Token(Token = "0x600A5A2")]
|
||||
[Address(RVA = "0x763E30", Offset = "0x762E30", VA = "0x180763E30")]
|
||||
public PointPrecomp()
|
||||
{
|
||||
int[] array = X25519Field.Create();
|
||||
this.ypx_h = array;
|
||||
int[] array2 = X25519Field.Create();
|
||||
this.ymx_h = array2;
|
||||
int[] array3 = X25519Field.Create();
|
||||
this.xyd = array3;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x04006C89 RID: 27785
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006C89")]
|
||||
internal int[] ypx_h;
|
||||
|
||||
// Token: 0x04006C8A RID: 27786
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006C8A")]
|
||||
internal int[] ymx_h;
|
||||
|
||||
// Token: 0x04006C8B RID: 27787
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006C8B")]
|
||||
internal int[] xyd;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,1657 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.Serialization.Formatters.Binary;
|
||||
using System.Threading;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.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: 0x02001AED RID: 6893
|
||||
[Token(Token = "0x2001AED")]
|
||||
public abstract class Ed448
|
||||
{
|
||||
// Token: 0x0600A5A3 RID: 42403 RVA: 0x00234FDC File Offset: 0x002331DC
|
||||
[Token(Token = "0x600A5A3")]
|
||||
[Address(RVA = "0x74C3B0", Offset = "0x74B3B0", VA = "0x18074C3B0")]
|
||||
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: 0x0600A5A4 RID: 42404 RVA: 0x0023509C File Offset: 0x0023329C
|
||||
[Token(Token = "0x600A5A4")]
|
||||
[Address(RVA = "0x74C5D0", Offset = "0x74B5D0", VA = "0x18074C5D0")]
|
||||
private static bool CheckContextVar(byte[] ctx)
|
||||
{
|
||||
if (ctx == 0)
|
||||
{
|
||||
}
|
||||
return ctx.Length < 256;
|
||||
}
|
||||
|
||||
// Token: 0x0600A5A5 RID: 42405 RVA: 0x002350BC File Offset: 0x002332BC
|
||||
[Token(Token = "0x600A5A5")]
|
||||
[Address(RVA = "0x74C5F0", Offset = "0x74B5F0", VA = "0x18074C5F0")]
|
||||
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: 0x0600A5A6 RID: 42406 RVA: 0x00235110 File Offset: 0x00233310
|
||||
[Token(Token = "0x600A5A6")]
|
||||
[Address(RVA = "0x74C720", Offset = "0x74B720", VA = "0x18074C720")]
|
||||
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: 0x0600A5A7 RID: 42407 RVA: 0x0023515C File Offset: 0x0023335C
|
||||
[Token(Token = "0x600A5A7")]
|
||||
[Address(RVA = "0x74C840", Offset = "0x74B840", VA = "0x18074C840")]
|
||||
public static IXof CreatePrehash()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A5A7)
|
||||
|
||||
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: 0x0600A5A8 RID: 42408 RVA: 0x00235174 File Offset: 0x00233374
|
||||
[Token(Token = "0x600A5A8")]
|
||||
[Address(RVA = "0x74C8D0", Offset = "0x74B8D0", VA = "0x18074C8D0")]
|
||||
private static IXof CreateXof()
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A5A8)
|
||||
|
||||
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: 0x0600A5A9 RID: 42409 RVA: 0x0023518C File Offset: 0x0023338C
|
||||
[Token(Token = "0x600A5A9")]
|
||||
[Address(RVA = "0x74C920", Offset = "0x74B920", VA = "0x18074C920")]
|
||||
private static uint Decode16(byte[] bs, int off)
|
||||
{
|
||||
int length = bs.Length;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600A5AA RID: 42410 RVA: 0x002351A8 File Offset: 0x002333A8
|
||||
[Token(Token = "0x600A5AA")]
|
||||
[Address(RVA = "0x7316E0", Offset = "0x7306E0", VA = "0x1807316E0")]
|
||||
private static uint Decode24(byte[] bs, int off)
|
||||
{
|
||||
int length = bs.Length;
|
||||
int num = off + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600A5AB RID: 42411 RVA: 0x002351C8 File Offset: 0x002333C8
|
||||
[Token(Token = "0x600A5AB")]
|
||||
[Address(RVA = "0x45D6B0", Offset = "0x45C6B0", VA = "0x18045D6B0")]
|
||||
private static uint Decode32(byte[] bs, int off)
|
||||
{
|
||||
int length = bs.Length;
|
||||
int num = off + 1;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600A5AC RID: 42412 RVA: 0x002351E8 File Offset: 0x002333E8
|
||||
[Token(Token = "0x600A5AC")]
|
||||
[Address(RVA = "0x74C980", Offset = "0x74B980", VA = "0x18074C980")]
|
||||
private static void Decode32(byte[] bs, int bsOff, uint[] n, int nOff, int nLen)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A5AD RID: 42413 RVA: 0x002351FC File Offset: 0x002333FC
|
||||
[Token(Token = "0x600A5AD")]
|
||||
[Address(RVA = "0x74CA50", Offset = "0x74BA50", VA = "0x18074CA50")]
|
||||
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: 0x0600A5AE RID: 42414 RVA: 0x002352F0 File Offset: 0x002334F0
|
||||
[Token(Token = "0x600A5AE")]
|
||||
[Address(RVA = "0x74CC60", Offset = "0x74BC60", VA = "0x18074CC60")]
|
||||
private static void DecodeScalar(byte[] k, int kOff, uint[] n)
|
||||
{
|
||||
int num = 0;
|
||||
ulong num2;
|
||||
Ed448.Decode32(k, kOff, n, num, (int)num2);
|
||||
}
|
||||
|
||||
// Token: 0x0600A5AF RID: 42415 RVA: 0x0023530C File Offset: 0x0023350C
|
||||
[Token(Token = "0x600A5AF")]
|
||||
[Address(RVA = "0x74CCF0", Offset = "0x74BCF0", VA = "0x18074CCF0")]
|
||||
private static void Dom4(IXof d, byte x, byte[] y)
|
||||
{
|
||||
int length = Ed448.Dom4Prefix.Length;
|
||||
int length2 = y.Length;
|
||||
}
|
||||
|
||||
// Token: 0x0600A5B0 RID: 42416 RVA: 0x00235334 File Offset: 0x00233534
|
||||
[Token(Token = "0x600A5B0")]
|
||||
[Address(RVA = "0x731D60", Offset = "0x730D60", VA = "0x180731D60")]
|
||||
private static void Encode24(uint n, byte[] bs, int off)
|
||||
{
|
||||
int num = off + 1;
|
||||
}
|
||||
|
||||
// Token: 0x0600A5B1 RID: 42417 RVA: 0x0023534C File Offset: 0x0023354C
|
||||
[Token(Token = "0x600A5B1")]
|
||||
[Address(RVA = "0x45E270", Offset = "0x45D270", VA = "0x18045E270")]
|
||||
private static void Encode32(uint n, byte[] bs, int off)
|
||||
{
|
||||
int num = off + 1;
|
||||
}
|
||||
|
||||
// Token: 0x0600A5B2 RID: 42418 RVA: 0x00235364 File Offset: 0x00233564
|
||||
[Token(Token = "0x600A5B2")]
|
||||
[Address(RVA = "0x74CE00", Offset = "0x74BE00", VA = "0x18074CE00")]
|
||||
private static void Encode56(ulong n, byte[] bs, int off)
|
||||
{
|
||||
Ed25519.Encode32((uint)n, bs, off);
|
||||
bs[0] = (byte)n;
|
||||
}
|
||||
|
||||
// Token: 0x0600A5B3 RID: 42419 RVA: 0x00235388 File Offset: 0x00233588
|
||||
[Token(Token = "0x600A5B3")]
|
||||
[Address(RVA = "0x74CEF0", Offset = "0x74BEF0", VA = "0x18074CEF0")]
|
||||
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: 0x0600A5B4 RID: 42420 RVA: 0x002353F8 File Offset: 0x002335F8
|
||||
[Token(Token = "0x600A5B4")]
|
||||
[Address(RVA = "0x732060", Offset = "0x731060", VA = "0x180732060")]
|
||||
public static void GeneratePrivateKey(SecureRandom random, byte[] k)
|
||||
{
|
||||
((IEditableObject)random).BeginEdit();
|
||||
}
|
||||
|
||||
// Token: 0x0600A5B5 RID: 42421 RVA: 0x00235414 File Offset: 0x00233614
|
||||
[Token(Token = "0x600A5B5")]
|
||||
[Address(RVA = "0x74CFF0", Offset = "0x74BFF0", VA = "0x18074CFF0")]
|
||||
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: 0x0600A5B6 RID: 42422 RVA: 0x00235468 File Offset: 0x00233668
|
||||
[Token(Token = "0x600A5B6")]
|
||||
[Address(RVA = "0x74D150", Offset = "0x74C150", VA = "0x18074D150")]
|
||||
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: 0x0600A5B7 RID: 42423 RVA: 0x002354F8 File Offset: 0x002336F8
|
||||
[Token(Token = "0x600A5B7")]
|
||||
[Address(RVA = "0x74D590", Offset = "0x74C590", VA = "0x18074D590")]
|
||||
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: 0x0600A5B8 RID: 42424 RVA: 0x00235544 File Offset: 0x00233744
|
||||
[Token(Token = "0x600A5B8")]
|
||||
[Address(RVA = "0x74D820", Offset = "0x74C820", VA = "0x18074D820")]
|
||||
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 (0600A5B8)
|
||||
|
||||
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: 0x0600A5B9 RID: 42425 RVA: 0x002355BC File Offset: 0x002337BC
|
||||
[Token(Token = "0x600A5B9")]
|
||||
[Address(RVA = "0x74D350", Offset = "0x74C350", VA = "0x18074D350")]
|
||||
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: 0x0600A5BA RID: 42426 RVA: 0x00235610 File Offset: 0x00233810
|
||||
[Token(Token = "0x600A5BA")]
|
||||
[Address(RVA = "0x74DA80", Offset = "0x74CA80", VA = "0x18074DA80")]
|
||||
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 (0600A5BA)
|
||||
|
||||
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: 0x0600A5BB RID: 42427 RVA: 0x00235730 File Offset: 0x00233930
|
||||
[Token(Token = "0x600A5BB")]
|
||||
[Address(RVA = "0x74E150", Offset = "0x74D150", VA = "0x18074E150")]
|
||||
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: 0x0600A5BC RID: 42428 RVA: 0x002358D0 File Offset: 0x00233AD0
|
||||
[Token(Token = "0x600A5BC")]
|
||||
[Address(RVA = "0x74DF60", Offset = "0x74CF60", VA = "0x18074DF60")]
|
||||
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: 0x0600A5BD RID: 42429 RVA: 0x00235A44 File Offset: 0x00233C44
|
||||
[Token(Token = "0x600A5BD")]
|
||||
[Address(RVA = "0x74E3C0", Offset = "0x74D3C0", VA = "0x18074E3C0")]
|
||||
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: 0x0600A5BE RID: 42430 RVA: 0x00235AF4 File Offset: 0x00233CF4
|
||||
[Token(Token = "0x600A5BE")]
|
||||
[Address(RVA = "0x74E490", Offset = "0x74D490", VA = "0x18074E490")]
|
||||
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: 0x0600A5BF RID: 42431 RVA: 0x00235BFC File Offset: 0x00233DFC
|
||||
[Token(Token = "0x600A5BF")]
|
||||
[Address(RVA = "0x74E610", Offset = "0x74D610", VA = "0x18074E610")]
|
||||
private static void PointExtendXY(Ed448.PointExt p)
|
||||
{
|
||||
X448Field.One(p.z);
|
||||
}
|
||||
|
||||
// Token: 0x0600A5C0 RID: 42432 RVA: 0x00235C1C File Offset: 0x00233E1C
|
||||
[Token(Token = "0x600A5C0")]
|
||||
[Address(RVA = "0x74E630", Offset = "0x74D630", VA = "0x18074E630")]
|
||||
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: 0x0600A5C1 RID: 42433 RVA: 0x00235C6C File Offset: 0x00233E6C
|
||||
[Token(Token = "0x600A5C1")]
|
||||
[Address(RVA = "0x74E750", Offset = "0x74D750", VA = "0x18074E750")]
|
||||
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: 0x0600A5C2 RID: 42434 RVA: 0x00235CD0 File Offset: 0x00233ED0
|
||||
[Token(Token = "0x600A5C2")]
|
||||
[Address(RVA = "0x74E910", Offset = "0x74D910", VA = "0x18074E910")]
|
||||
private static void PointSetNeutral(Ed448.PointExt p)
|
||||
{
|
||||
X448Field.Zero(p.x);
|
||||
X448Field.One(p.y);
|
||||
X448Field.One(p.z);
|
||||
}
|
||||
|
||||
// Token: 0x0600A5C3 RID: 42435 RVA: 0x00235D04 File Offset: 0x00233F04
|
||||
[Token(Token = "0x600A5C3")]
|
||||
[Address(RVA = "0x74E950", Offset = "0x74D950", VA = "0x18074E950")]
|
||||
public static void Precompute()
|
||||
{
|
||||
int num;
|
||||
Ed448.PointExt pointExt;
|
||||
for (;;)
|
||||
{
|
||||
num = 0;
|
||||
object obj = Ed448.precompLock;
|
||||
uint[] array = X448Field.Create();
|
||||
pointExt.x = array;
|
||||
uint[] array2 = X448Field.Create();
|
||||
pointExt.y = array2;
|
||||
uint[] array3 = X448Field.Create();
|
||||
pointExt.z = array3;
|
||||
int num2 = 0;
|
||||
uint[] x = pointExt.x;
|
||||
int num3 = 0;
|
||||
X448Field.Copy(Ed448.B_x, num3, x, num2);
|
||||
int num4 = 0;
|
||||
uint[] y = pointExt.y;
|
||||
int num5 = 0;
|
||||
X448Field.Copy(Ed448.B_y, num5, y, num4);
|
||||
X448Field.One(pointExt.z);
|
||||
Ed448.precompBaseTable = Ed448.PointPrecompVar(pointExt, 32);
|
||||
Ed448.precompBase = new uint[2560];
|
||||
if (num < 5)
|
||||
{
|
||||
break;
|
||||
}
|
||||
Monitor.Exit(obj);
|
||||
if (num == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
Ed448.PointExt[] array4 = new Ed448.PointExt[5];
|
||||
uint[] array5 = X448Field.Create();
|
||||
Ed448.PointExt pointExt2;
|
||||
pointExt2.x = array5;
|
||||
uint[] array6 = X448Field.Create();
|
||||
pointExt2.y = array6;
|
||||
uint[] array7 = X448Field.Create();
|
||||
pointExt2.z = array7;
|
||||
Ed448.PointSetNeutral(pointExt2);
|
||||
if (num < 5)
|
||||
{
|
||||
ulong num6;
|
||||
Ed448.PointAddVar(num6 != 0UL, pointExt, pointExt2);
|
||||
Ed448.PointDouble(pointExt);
|
||||
Ed448.PointExt pointExt3 = Ed448.PointCopy(pointExt);
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
Ed448.PointExt[] array8 = new Ed448.PointExt[16];
|
||||
throw new ArrayTypeMismatchException();
|
||||
}
|
||||
|
||||
// Token: 0x0600A5C4 RID: 42436 RVA: 0x00235FD4 File Offset: 0x002341D4
|
||||
[Token(Token = "0x600A5C4")]
|
||||
[Address(RVA = "0x74EF70", Offset = "0x74DF70", VA = "0x18074EF70")]
|
||||
private static void PruneScalar(byte[] n, int nOff, byte[] r)
|
||||
{
|
||||
int num = 0;
|
||||
ulong num2;
|
||||
Array.Copy(n, nOff, r, num, (int)num2);
|
||||
}
|
||||
|
||||
// Token: 0x0600A5C5 RID: 42437 RVA: 0x00235FF4 File Offset: 0x002341F4
|
||||
[Token(Token = "0x600A5C5")]
|
||||
[Address(RVA = "0x74F000", Offset = "0x74E000", VA = "0x18074F000")]
|
||||
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: 0x0600A5C6 RID: 42438 RVA: 0x00236C14 File Offset: 0x00234E14
|
||||
[Token(Token = "0x600A5C6")]
|
||||
[Address(RVA = "0x750120", Offset = "0x74F120", VA = "0x180750120")]
|
||||
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: 0x0600A5C7 RID: 42439 RVA: 0x00236D44 File Offset: 0x00234F44
|
||||
[Token(Token = "0x600A5C7")]
|
||||
[Address(RVA = "0x74FF30", Offset = "0x74EF30", VA = "0x18074FF30")]
|
||||
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: 0x0600A5C8 RID: 42440 RVA: 0x00236D94 File Offset: 0x00234F94
|
||||
[Token(Token = "0x600A5C8")]
|
||||
[Address(RVA = "0x750000", Offset = "0x74F000", VA = "0x180750000")]
|
||||
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: 0x0600A5C9 RID: 42441 RVA: 0x00236E24 File Offset: 0x00235024
|
||||
[Token(Token = "0x600A5C9")]
|
||||
[Address(RVA = "0x750480", Offset = "0x74F480", VA = "0x180750480")]
|
||||
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: 0x0600A5CA RID: 42442 RVA: 0x00236EC0 File Offset: 0x002350C0
|
||||
[Token(Token = "0x600A5CA")]
|
||||
[Address(RVA = "0x750C10", Offset = "0x74FC10", VA = "0x180750C10")]
|
||||
public static void Sign(byte[] sk, int skOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A5CB RID: 42443 RVA: 0x00236ED0 File Offset: 0x002350D0
|
||||
[Token(Token = "0x600A5CB")]
|
||||
[Address(RVA = "0x750CD0", Offset = "0x74FCD0", VA = "0x180750CD0")]
|
||||
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: 0x0600A5CC RID: 42444 RVA: 0x00236EE0 File Offset: 0x002350E0
|
||||
[Token(Token = "0x600A5CC")]
|
||||
[Address(RVA = "0x750B40", Offset = "0x74FB40", VA = "0x180750B40")]
|
||||
public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff)
|
||||
{
|
||||
int prehashSize = Ed448.PrehashSize;
|
||||
}
|
||||
|
||||
// Token: 0x0600A5CD RID: 42445 RVA: 0x00236EF4 File Offset: 0x002350F4
|
||||
[Token(Token = "0x600A5CD")]
|
||||
[Address(RVA = "0x750740", Offset = "0x74F740", VA = "0x180750740")]
|
||||
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: 0x0600A5CE RID: 42446 RVA: 0x00236F08 File Offset: 0x00235108
|
||||
[Token(Token = "0x600A5CE")]
|
||||
[Address(RVA = "0x7509C0", Offset = "0x74F9C0", VA = "0x1807509C0")]
|
||||
public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, IXof ph, byte[] sig, int sigOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A5CE)
|
||||
|
||||
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: 0x0600A5CF RID: 42447 RVA: 0x00236F44 File Offset: 0x00235144
|
||||
[Token(Token = "0x600A5CF")]
|
||||
[Address(RVA = "0x750820", Offset = "0x74F820", VA = "0x180750820")]
|
||||
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 (0600A5CF)
|
||||
|
||||
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: 0x0600A5D0 RID: 42448 RVA: 0x00236F80 File Offset: 0x00235180
|
||||
[Token(Token = "0x600A5D0")]
|
||||
[Address(RVA = "0x751000", Offset = "0x750000", VA = "0x180751000")]
|
||||
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: 0x0600A5D1 RID: 42449 RVA: 0x00236F90 File Offset: 0x00235190
|
||||
[Token(Token = "0x600A5D1")]
|
||||
[Address(RVA = "0x750DB0", Offset = "0x74FDB0", VA = "0x180750DB0")]
|
||||
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: 0x0600A5D2 RID: 42450 RVA: 0x00236FA4 File Offset: 0x002351A4
|
||||
[Token(Token = "0x600A5D2")]
|
||||
[Address(RVA = "0x750E80", Offset = "0x74FE80", VA = "0x180750E80")]
|
||||
public static bool VerifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, IXof ph)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600A5D2)
|
||||
|
||||
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: 0x0600A5D3 RID: 42451 RVA: 0x00236FE0 File Offset: 0x002351E0
|
||||
[Token(Token = "0x600A5D3")]
|
||||
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
||||
protected Ed448()
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600A5D4 RID: 42452 RVA: 0x00236FF4 File Offset: 0x002351F4
|
||||
// Note: this type is marked as 'beforefieldinit'.
|
||||
[Token(Token = "0x600A5D4")]
|
||||
[Address(RVA = "0x7510C0", Offset = "0x7500C0", VA = "0x1807510C0")]
|
||||
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: 0x04006C8C RID: 27788
|
||||
[Token(Token = "0x4006C8C")]
|
||||
private const ulong M26UL = 67108863UL;
|
||||
|
||||
// Token: 0x04006C8D RID: 27789
|
||||
[Token(Token = "0x4006C8D")]
|
||||
private const ulong M28UL = 268435455UL;
|
||||
|
||||
// Token: 0x04006C8E RID: 27790
|
||||
[Token(Token = "0x4006C8E")]
|
||||
private const int PointBytes = 57;
|
||||
|
||||
// Token: 0x04006C8F RID: 27791
|
||||
[Token(Token = "0x4006C8F")]
|
||||
private const int ScalarUints = 14;
|
||||
|
||||
// Token: 0x04006C90 RID: 27792
|
||||
[Token(Token = "0x4006C90")]
|
||||
private const int ScalarBytes = 57;
|
||||
|
||||
// Token: 0x04006C91 RID: 27793
|
||||
[Token(Token = "0x4006C91")]
|
||||
public static readonly int PrehashSize;
|
||||
|
||||
// Token: 0x04006C92 RID: 27794
|
||||
[Token(Token = "0x4006C92")]
|
||||
public static readonly int PublicKeySize;
|
||||
|
||||
// Token: 0x04006C93 RID: 27795
|
||||
[Token(Token = "0x4006C93")]
|
||||
public static readonly int SecretKeySize;
|
||||
|
||||
// Token: 0x04006C94 RID: 27796
|
||||
[Token(Token = "0x4006C94")]
|
||||
public static readonly int SignatureSize;
|
||||
|
||||
// Token: 0x04006C95 RID: 27797
|
||||
[Token(Token = "0x4006C95")]
|
||||
private static readonly byte[] Dom4Prefix = Strings.ToByteArray("SigEd448");
|
||||
|
||||
// Token: 0x04006C96 RID: 27798
|
||||
[Token(Token = "0x4006C96")]
|
||||
private static readonly uint[] P;
|
||||
|
||||
// Token: 0x04006C97 RID: 27799
|
||||
[Token(Token = "0x4006C97")]
|
||||
private static readonly uint[] L;
|
||||
|
||||
// Token: 0x04006C98 RID: 27800
|
||||
[Token(Token = "0x4006C98")]
|
||||
private static readonly BigInteger N;
|
||||
|
||||
// Token: 0x04006C99 RID: 27801
|
||||
[Token(Token = "0x4006C99")]
|
||||
private const int L_0 = 78101261;
|
||||
|
||||
// Token: 0x04006C9A RID: 27802
|
||||
[Token(Token = "0x4006C9A")]
|
||||
private const int L_1 = 141809365;
|
||||
|
||||
// Token: 0x04006C9B RID: 27803
|
||||
[Token(Token = "0x4006C9B")]
|
||||
private const int L_2 = 175155932;
|
||||
|
||||
// Token: 0x04006C9C RID: 27804
|
||||
[Token(Token = "0x4006C9C")]
|
||||
private const int L_3 = 64542499;
|
||||
|
||||
// Token: 0x04006C9D RID: 27805
|
||||
[Token(Token = "0x4006C9D")]
|
||||
private const int L_4 = 158326419;
|
||||
|
||||
// Token: 0x04006C9E RID: 27806
|
||||
[Token(Token = "0x4006C9E")]
|
||||
private const int L_5 = 191173276;
|
||||
|
||||
// Token: 0x04006C9F RID: 27807
|
||||
[Token(Token = "0x4006C9F")]
|
||||
private const int L_6 = 104575268;
|
||||
|
||||
// Token: 0x04006CA0 RID: 27808
|
||||
[Token(Token = "0x4006CA0")]
|
||||
private const int L_7 = 137584065;
|
||||
|
||||
// Token: 0x04006CA1 RID: 27809
|
||||
[Token(Token = "0x4006CA1")]
|
||||
private const int L4_0 = 43969588;
|
||||
|
||||
// Token: 0x04006CA2 RID: 27810
|
||||
[Token(Token = "0x4006CA2")]
|
||||
private const int L4_1 = 30366549;
|
||||
|
||||
// Token: 0x04006CA3 RID: 27811
|
||||
[Token(Token = "0x4006CA3")]
|
||||
private const int L4_2 = 163752818;
|
||||
|
||||
// Token: 0x04006CA4 RID: 27812
|
||||
[Token(Token = "0x4006CA4")]
|
||||
private const int L4_3 = 258169998;
|
||||
|
||||
// Token: 0x04006CA5 RID: 27813
|
||||
[Token(Token = "0x4006CA5")]
|
||||
private const int L4_4 = 96434764;
|
||||
|
||||
// Token: 0x04006CA6 RID: 27814
|
||||
[Token(Token = "0x4006CA6")]
|
||||
private const int L4_5 = 227822194;
|
||||
|
||||
// Token: 0x04006CA7 RID: 27815
|
||||
[Token(Token = "0x4006CA7")]
|
||||
private const int L4_6 = 149865618;
|
||||
|
||||
// Token: 0x04006CA8 RID: 27816
|
||||
[Token(Token = "0x4006CA8")]
|
||||
private const int L4_7 = 550336261;
|
||||
|
||||
// Token: 0x04006CA9 RID: 27817
|
||||
[Token(Token = "0x4006CA9")]
|
||||
private static readonly uint[] B_x;
|
||||
|
||||
// Token: 0x04006CAA RID: 27818
|
||||
[Token(Token = "0x4006CAA")]
|
||||
private static readonly uint[] B_y;
|
||||
|
||||
// Token: 0x04006CAB RID: 27819
|
||||
[Token(Token = "0x4006CAB")]
|
||||
private const int C_d = -39081;
|
||||
|
||||
// Token: 0x04006CAC RID: 27820
|
||||
[Token(Token = "0x4006CAC")]
|
||||
private const int WnafWidthBase = 7;
|
||||
|
||||
// Token: 0x04006CAD RID: 27821
|
||||
[Token(Token = "0x4006CAD")]
|
||||
private const int PrecompBlocks = 5;
|
||||
|
||||
// Token: 0x04006CAE RID: 27822
|
||||
[Token(Token = "0x4006CAE")]
|
||||
private const int PrecompTeeth = 5;
|
||||
|
||||
// Token: 0x04006CAF RID: 27823
|
||||
[Token(Token = "0x4006CAF")]
|
||||
private const int PrecompSpacing = 18;
|
||||
|
||||
// Token: 0x04006CB0 RID: 27824
|
||||
[Token(Token = "0x4006CB0")]
|
||||
private const int PrecompPoints = 16;
|
||||
|
||||
// Token: 0x04006CB1 RID: 27825
|
||||
[Token(Token = "0x4006CB1")]
|
||||
private const int PrecompMask = 15;
|
||||
|
||||
// Token: 0x04006CB2 RID: 27826
|
||||
[Token(Token = "0x4006CB2")]
|
||||
private static readonly object precompLock;
|
||||
|
||||
// Token: 0x04006CB3 RID: 27827
|
||||
[Token(Token = "0x4006CB3")]
|
||||
private static Ed448.PointExt[] precompBaseTable;
|
||||
|
||||
// Token: 0x04006CB4 RID: 27828
|
||||
[Token(Token = "0x4006CB4")]
|
||||
private static uint[] precompBase;
|
||||
|
||||
// Token: 0x02001AEE RID: 6894
|
||||
[Token(Token = "0x2001AEE")]
|
||||
public enum Algorithm
|
||||
{
|
||||
// Token: 0x04006CB6 RID: 27830
|
||||
[Token(Token = "0x4006CB6")]
|
||||
Ed448,
|
||||
// Token: 0x04006CB7 RID: 27831
|
||||
[Token(Token = "0x4006CB7")]
|
||||
Ed448ph
|
||||
}
|
||||
|
||||
// Token: 0x02001AEF RID: 6895
|
||||
[Token(Token = "0x2001AEF")]
|
||||
private class PointExt
|
||||
{
|
||||
// Token: 0x0600A5D5 RID: 42453 RVA: 0x002370DC File Offset: 0x002352DC
|
||||
[Token(Token = "0x600A5D5")]
|
||||
[Address(RVA = "0x763DF0", Offset = "0x762DF0", VA = "0x180763DF0")]
|
||||
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: 0x04006CB8 RID: 27832
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006CB8")]
|
||||
internal uint[] x;
|
||||
|
||||
// Token: 0x04006CB9 RID: 27833
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006CB9")]
|
||||
internal uint[] y;
|
||||
|
||||
// Token: 0x04006CBA RID: 27834
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x4006CBA")]
|
||||
internal uint[] z;
|
||||
}
|
||||
|
||||
// Token: 0x02001AF0 RID: 6896
|
||||
[Token(Token = "0x2001AF0")]
|
||||
private class PointPrecomp
|
||||
{
|
||||
// Token: 0x0600A5D6 RID: 42454 RVA: 0x00237120 File Offset: 0x00235320
|
||||
[Token(Token = "0x600A5D6")]
|
||||
[Address(RVA = "0x763EB0", Offset = "0x762EB0", VA = "0x180763EB0")]
|
||||
public PointPrecomp()
|
||||
{
|
||||
uint[] array = X448Field.Create();
|
||||
this.x = array;
|
||||
uint[] array2 = X448Field.Create();
|
||||
this.y = array2;
|
||||
base..ctor();
|
||||
}
|
||||
|
||||
// Token: 0x04006CBB RID: 27835
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x4006CBB")]
|
||||
internal uint[] x;
|
||||
|
||||
// Token: 0x04006CBC RID: 27836
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x4006CBC")]
|
||||
internal uint[] y;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user