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(.6E92E42774698E4C089FE0FE4F7539D0D5F845F5).FieldHandle); Ed448.P = array; uint[] array2 = new uint[14]; int num = 0; RuntimeHelpers.InitializeArray(array2, fieldof(.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(.17BCB27C371D710141A300DA5A9A3EADF78D7A35).FieldHandle); Ed448.B_x = array4; uint[] array5 = new uint[16]; RuntimeHelpers.InitializeArray(array5, fieldof(.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; } } }