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(.86B0F85AC13B58F88DEFFD8FD6EE095438B98F10).FieldHandle); Ed25519.P = array; uint[] array2 = new uint[8]; RuntimeHelpers.InitializeArray(array2, fieldof(.400E52B9E7F331D1ACC81B4EA40D228C7A6D60F8).FieldHandle); Ed25519.L = array2; int[] array3 = new int[10]; RuntimeHelpers.InitializeArray(array3, fieldof(.98CF708E75DA60C2A04D06606E726EC975E6DBAB).FieldHandle); Ed25519.B_x = array3; int[] array4 = new int[10]; RuntimeHelpers.InitializeArray(array4, fieldof(.58F8E05C1E95C042205E13B76D1BFC0F7ABA6F88).FieldHandle); Ed25519.B_y = array4; int[] array5 = new int[10]; RuntimeHelpers.InitializeArray(array5, fieldof(.4C8FA1E9ACD72AED71F3923AEC5DF6AC8B6EFFE4).FieldHandle); Ed25519.C_d = array5; int[] array6 = new int[10]; RuntimeHelpers.InitializeArray(array6, fieldof(.5BF56A4EEA44BBE4974BB61DA08B42B6EC49B72D).FieldHandle); Ed25519.C_d2 = array6; int[] array7 = new int[10]; RuntimeHelpers.InitializeArray(array7, fieldof(.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; } } }