using System; using System.Runtime.CompilerServices; using System.Runtime.Serialization.Formatters.Binary; using System.Threading; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests; using BestHTTP.SecureProtocol.Org.BouncyCastle.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: 0x02001A0D RID: 6669 [Token(Token = "0x2001A0D")] public abstract class Ed448 { // Token: 0x0600A1D5 RID: 41429 RVA: 0x0022BF38 File Offset: 0x0022A138 [Token(Token = "0x600A1D5")] [Address(RVA = "0x1F670A0", Offset = "0x1F65EA0", VA = "0x181F670A0")] 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: 0x0600A1D6 RID: 41430 RVA: 0x0022BFF8 File Offset: 0x0022A1F8 [Token(Token = "0x600A1D6")] [Address(RVA = "0x1F672C0", Offset = "0x1F660C0", VA = "0x181F672C0")] private static bool CheckContextVar(byte[] ctx) { if (ctx == 0) { } return ctx.Length < 256; } // Token: 0x0600A1D7 RID: 41431 RVA: 0x0022C018 File Offset: 0x0022A218 [Token(Token = "0x600A1D7")] [Address(RVA = "0x1F672E0", Offset = "0x1F660E0", VA = "0x181F672E0")] 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: 0x0600A1D8 RID: 41432 RVA: 0x0022C06C File Offset: 0x0022A26C [Token(Token = "0x600A1D8")] [Address(RVA = "0x1F67410", Offset = "0x1F66210", VA = "0x181F67410")] 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: 0x0600A1D9 RID: 41433 RVA: 0x0022C0B8 File Offset: 0x0022A2B8 [Token(Token = "0x600A1D9")] [Address(RVA = "0x1F67530", Offset = "0x1F66330", VA = "0x181F67530")] public static IXof CreatePrehash() { /* An exception occurred when decompiling this method (0600A1D9) 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: 0x0600A1DA RID: 41434 RVA: 0x0022C0D0 File Offset: 0x0022A2D0 [Token(Token = "0x600A1DA")] [Address(RVA = "0x1F675C0", Offset = "0x1F663C0", VA = "0x181F675C0")] private static IXof CreateXof() { /* An exception occurred when decompiling this method (0600A1DA) 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: 0x0600A1DB RID: 41435 RVA: 0x0022C0E8 File Offset: 0x0022A2E8 [Token(Token = "0x600A1DB")] [Address(RVA = "0x1F67610", Offset = "0x1F66410", VA = "0x181F67610")] private static uint Decode16(byte[] bs, int off) { int length = bs.Length; throw new NullReferenceException(); } // Token: 0x0600A1DC RID: 41436 RVA: 0x0022C104 File Offset: 0x0022A304 [Token(Token = "0x600A1DC")] [Address(RVA = "0x1F4C510", Offset = "0x1F4B310", VA = "0x181F4C510")] private static uint Decode24(byte[] bs, int off) { int length = bs.Length; int num = off + 1; throw new NullReferenceException(); } // Token: 0x0600A1DD RID: 41437 RVA: 0x0022C124 File Offset: 0x0022A324 [Token(Token = "0x600A1DD")] [Address(RVA = "0x1824CD0", Offset = "0x1823AD0", VA = "0x181824CD0")] private static uint Decode32(byte[] bs, int off) { int length = bs.Length; int num = off + 1; throw new NullReferenceException(); } // Token: 0x0600A1DE RID: 41438 RVA: 0x0022C144 File Offset: 0x0022A344 [Token(Token = "0x600A1DE")] [Address(RVA = "0x1F67670", Offset = "0x1F66470", VA = "0x181F67670")] private static void Decode32(byte[] bs, int bsOff, uint[] n, int nOff, int nLen) { } // Token: 0x0600A1DF RID: 41439 RVA: 0x0022C158 File Offset: 0x0022A358 [Token(Token = "0x600A1DF")] [Address(RVA = "0x1F67740", Offset = "0x1F66540", VA = "0x181F67740")] 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: 0x0600A1E0 RID: 41440 RVA: 0x0022C24C File Offset: 0x0022A44C [Token(Token = "0x600A1E0")] [Address(RVA = "0x1F67950", Offset = "0x1F66750", VA = "0x181F67950")] private static void DecodeScalar(byte[] k, int kOff, uint[] n) { int num = 0; ulong num2; Ed448.Decode32(k, kOff, n, num, (int)num2); } // Token: 0x0600A1E1 RID: 41441 RVA: 0x0022C268 File Offset: 0x0022A468 [Token(Token = "0x600A1E1")] [Address(RVA = "0x1F679E0", Offset = "0x1F667E0", VA = "0x181F679E0")] private static void Dom4(IXof d, byte x, byte[] y) { int length = Ed448.Dom4Prefix.Length; int length2 = y.Length; } // Token: 0x0600A1E2 RID: 41442 RVA: 0x0022C290 File Offset: 0x0022A490 [Token(Token = "0x600A1E2")] [Address(RVA = "0x1F4CB90", Offset = "0x1F4B990", VA = "0x181F4CB90")] private static void Encode24(uint n, byte[] bs, int off) { int num = off + 1; } // Token: 0x0600A1E3 RID: 41443 RVA: 0x0022C2A8 File Offset: 0x0022A4A8 [Token(Token = "0x600A1E3")] [Address(RVA = "0x1825890", Offset = "0x1824690", VA = "0x181825890")] private static void Encode32(uint n, byte[] bs, int off) { int num = off + 1; } // Token: 0x0600A1E4 RID: 41444 RVA: 0x0022C2C0 File Offset: 0x0022A4C0 [Token(Token = "0x600A1E4")] [Address(RVA = "0x1F67AF0", Offset = "0x1F668F0", VA = "0x181F67AF0")] private static void Encode56(ulong n, byte[] bs, int off) { Ed25519.Encode32((uint)n, bs, off); bs[0] = (byte)n; } // Token: 0x0600A1E5 RID: 41445 RVA: 0x0022C2E4 File Offset: 0x0022A4E4 [Token(Token = "0x600A1E5")] [Address(RVA = "0x1F67BE0", Offset = "0x1F669E0", VA = "0x181F67BE0")] 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: 0x0600A1E6 RID: 41446 RVA: 0x0022C354 File Offset: 0x0022A554 [Token(Token = "0x600A1E6")] [Address(RVA = "0x1F4CE90", Offset = "0x1F4BC90", VA = "0x181F4CE90")] public static void GeneratePrivateKey(SecureRandom random, byte[] k) { } // Token: 0x0600A1E7 RID: 41447 RVA: 0x0022C368 File Offset: 0x0022A568 [Token(Token = "0x600A1E7")] [Address(RVA = "0x1F67CE0", Offset = "0x1F66AE0", VA = "0x181F67CE0")] 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: 0x0600A1E8 RID: 41448 RVA: 0x0022C3BC File Offset: 0x0022A5BC [Token(Token = "0x600A1E8")] [Address(RVA = "0x1F67E40", Offset = "0x1F66C40", VA = "0x181F67E40")] 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: 0x0600A1E9 RID: 41449 RVA: 0x0022C44C File Offset: 0x0022A64C [Token(Token = "0x600A1E9")] [Address(RVA = "0x1F68280", Offset = "0x1F67080", VA = "0x181F68280")] 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: 0x0600A1EA RID: 41450 RVA: 0x0022C498 File Offset: 0x0022A698 [Token(Token = "0x600A1EA")] [Address(RVA = "0x1F68510", Offset = "0x1F67310", VA = "0x181F68510")] 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 (0600A1EA) 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: 0x0600A1EB RID: 41451 RVA: 0x0022C510 File Offset: 0x0022A710 [Token(Token = "0x600A1EB")] [Address(RVA = "0x1F68040", Offset = "0x1F66E40", VA = "0x181F68040")] 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: 0x0600A1EC RID: 41452 RVA: 0x0022C564 File Offset: 0x0022A764 [Token(Token = "0x600A1EC")] [Address(RVA = "0x1F68770", Offset = "0x1F67570", VA = "0x181F68770")] 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 (0600A1EC) 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: 0x0600A1ED RID: 41453 RVA: 0x0022C684 File Offset: 0x0022A884 [Token(Token = "0x600A1ED")] [Address(RVA = "0x1F68E40", Offset = "0x1F67C40", VA = "0x181F68E40")] 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: 0x0600A1EE RID: 41454 RVA: 0x0022C824 File Offset: 0x0022AA24 [Token(Token = "0x600A1EE")] [Address(RVA = "0x1F68C50", Offset = "0x1F67A50", VA = "0x181F68C50")] 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: 0x0600A1EF RID: 41455 RVA: 0x0022C998 File Offset: 0x0022AB98 [Token(Token = "0x600A1EF")] [Address(RVA = "0x1F690B0", Offset = "0x1F67EB0", VA = "0x181F690B0")] 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: 0x0600A1F0 RID: 41456 RVA: 0x0022CA48 File Offset: 0x0022AC48 [Token(Token = "0x600A1F0")] [Address(RVA = "0x1F69180", Offset = "0x1F67F80", VA = "0x181F69180")] 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: 0x0600A1F1 RID: 41457 RVA: 0x0022CB50 File Offset: 0x0022AD50 [Token(Token = "0x600A1F1")] [Address(RVA = "0x1F69300", Offset = "0x1F68100", VA = "0x181F69300")] private static void PointExtendXY(Ed448.PointExt p) { X448Field.One(p.z); } // Token: 0x0600A1F2 RID: 41458 RVA: 0x0022CB70 File Offset: 0x0022AD70 [Token(Token = "0x600A1F2")] [Address(RVA = "0x1F69320", Offset = "0x1F68120", VA = "0x181F69320")] 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: 0x0600A1F3 RID: 41459 RVA: 0x0022CBC0 File Offset: 0x0022ADC0 [Token(Token = "0x600A1F3")] [Address(RVA = "0x1F69440", Offset = "0x1F68240", VA = "0x181F69440")] 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: 0x0600A1F4 RID: 41460 RVA: 0x0022CC24 File Offset: 0x0022AE24 [Token(Token = "0x600A1F4")] [Address(RVA = "0x1F69600", Offset = "0x1F68400", VA = "0x181F69600")] private static void PointSetNeutral(Ed448.PointExt p) { X448Field.Zero(p.x); X448Field.One(p.y); X448Field.One(p.z); } // Token: 0x0600A1F5 RID: 41461 RVA: 0x0022CC58 File Offset: 0x0022AE58 [Token(Token = "0x600A1F5")] [Address(RVA = "0x1F69640", Offset = "0x1F68440", VA = "0x181F69640")] 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: 0x0600A1F6 RID: 41462 RVA: 0x0022CF28 File Offset: 0x0022B128 [Token(Token = "0x600A1F6")] [Address(RVA = "0x1F69C60", Offset = "0x1F68A60", VA = "0x181F69C60")] private static void PruneScalar(byte[] n, int nOff, byte[] r) { int num = 0; ulong num2; Array.Copy(n, nOff, r, num, (int)num2); } // Token: 0x0600A1F7 RID: 41463 RVA: 0x0022CF48 File Offset: 0x0022B148 [Token(Token = "0x600A1F7")] [Address(RVA = "0x1F69CF0", Offset = "0x1F68AF0", VA = "0x181F69CF0")] 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: 0x0600A1F8 RID: 41464 RVA: 0x0022DB68 File Offset: 0x0022BD68 [Token(Token = "0x600A1F8")] [Address(RVA = "0x1F6AE10", Offset = "0x1F69C10", VA = "0x181F6AE10")] 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: 0x0600A1F9 RID: 41465 RVA: 0x0022DC98 File Offset: 0x0022BE98 [Token(Token = "0x600A1F9")] [Address(RVA = "0x1F6AC20", Offset = "0x1F69A20", VA = "0x181F6AC20")] 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: 0x0600A1FA RID: 41466 RVA: 0x0022DCE8 File Offset: 0x0022BEE8 [Token(Token = "0x600A1FA")] [Address(RVA = "0x1F6ACF0", Offset = "0x1F69AF0", VA = "0x181F6ACF0")] 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: 0x0600A1FB RID: 41467 RVA: 0x0022DD78 File Offset: 0x0022BF78 [Token(Token = "0x600A1FB")] [Address(RVA = "0x1F6B170", Offset = "0x1F69F70", VA = "0x181F6B170")] 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: 0x0600A1FC RID: 41468 RVA: 0x0022DE14 File Offset: 0x0022C014 [Token(Token = "0x600A1FC")] [Address(RVA = "0x1F6B900", Offset = "0x1F6A700", VA = "0x181F6B900")] public static void Sign(byte[] sk, int skOff, byte[] ctx, byte[] m, int mOff, int mLen, byte[] sig, int sigOff) { } // Token: 0x0600A1FD RID: 41469 RVA: 0x0022DE24 File Offset: 0x0022C024 [Token(Token = "0x600A1FD")] [Address(RVA = "0x1F6B9C0", Offset = "0x1F6A7C0", VA = "0x181F6B9C0")] 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: 0x0600A1FE RID: 41470 RVA: 0x0022DE34 File Offset: 0x0022C034 [Token(Token = "0x600A1FE")] [Address(RVA = "0x1F6B830", Offset = "0x1F6A630", VA = "0x181F6B830")] public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, byte[] ph, int phOff, byte[] sig, int sigOff) { int prehashSize = Ed448.PrehashSize; } // Token: 0x0600A1FF RID: 41471 RVA: 0x0022DE48 File Offset: 0x0022C048 [Token(Token = "0x600A1FF")] [Address(RVA = "0x1F6B430", Offset = "0x1F6A230", VA = "0x181F6B430")] 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: 0x0600A200 RID: 41472 RVA: 0x0022DE5C File Offset: 0x0022C05C [Token(Token = "0x600A200")] [Address(RVA = "0x1F6B6B0", Offset = "0x1F6A4B0", VA = "0x181F6B6B0")] public static void SignPrehash(byte[] sk, int skOff, byte[] ctx, IXof ph, byte[] sig, int sigOff) { /* An exception occurred when decompiling this method (0600A200) 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: 0x0600A201 RID: 41473 RVA: 0x0022DE98 File Offset: 0x0022C098 [Token(Token = "0x600A201")] [Address(RVA = "0x1F6B510", Offset = "0x1F6A310", VA = "0x181F6B510")] 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 (0600A201) 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: 0x0600A202 RID: 41474 RVA: 0x0022DED4 File Offset: 0x0022C0D4 [Token(Token = "0x600A202")] [Address(RVA = "0x1F6BCF0", Offset = "0x1F6AAF0", VA = "0x181F6BCF0")] 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: 0x0600A203 RID: 41475 RVA: 0x0022DEE4 File Offset: 0x0022C0E4 [Token(Token = "0x600A203")] [Address(RVA = "0x1F6BAA0", Offset = "0x1F6A8A0", VA = "0x181F6BAA0")] 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: 0x0600A204 RID: 41476 RVA: 0x0022DEF8 File Offset: 0x0022C0F8 [Token(Token = "0x600A204")] [Address(RVA = "0x1F6BB70", Offset = "0x1F6A970", VA = "0x181F6BB70")] public static bool VerifyPrehash(byte[] sig, int sigOff, byte[] pk, int pkOff, byte[] ctx, IXof ph) { /* An exception occurred when decompiling this method (0600A204) 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: 0x0600A205 RID: 41477 RVA: 0x0022DF34 File Offset: 0x0022C134 [Token(Token = "0x600A205")] [Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")] protected Ed448() { } // Token: 0x0600A206 RID: 41478 RVA: 0x0022DF48 File Offset: 0x0022C148 // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x600A206")] [Address(RVA = "0x1F6BDB0", Offset = "0x1F6ABB0", VA = "0x181F6BDB0")] 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: 0x04006AD3 RID: 27347 [Token(Token = "0x4006AD3")] private const ulong M26UL = 67108863UL; // Token: 0x04006AD4 RID: 27348 [Token(Token = "0x4006AD4")] private const ulong M28UL = 268435455UL; // Token: 0x04006AD5 RID: 27349 [Token(Token = "0x4006AD5")] private const int PointBytes = 57; // Token: 0x04006AD6 RID: 27350 [Token(Token = "0x4006AD6")] private const int ScalarUints = 14; // Token: 0x04006AD7 RID: 27351 [Token(Token = "0x4006AD7")] private const int ScalarBytes = 57; // Token: 0x04006AD8 RID: 27352 [Token(Token = "0x4006AD8")] public static readonly int PrehashSize; // Token: 0x04006AD9 RID: 27353 [Token(Token = "0x4006AD9")] public static readonly int PublicKeySize; // Token: 0x04006ADA RID: 27354 [Token(Token = "0x4006ADA")] public static readonly int SecretKeySize; // Token: 0x04006ADB RID: 27355 [Token(Token = "0x4006ADB")] public static readonly int SignatureSize; // Token: 0x04006ADC RID: 27356 [Token(Token = "0x4006ADC")] private static readonly byte[] Dom4Prefix = Strings.ToByteArray("SigEd448"); // Token: 0x04006ADD RID: 27357 [Token(Token = "0x4006ADD")] private static readonly uint[] P; // Token: 0x04006ADE RID: 27358 [Token(Token = "0x4006ADE")] private static readonly uint[] L; // Token: 0x04006ADF RID: 27359 [Token(Token = "0x4006ADF")] private static readonly BigInteger N; // Token: 0x04006AE0 RID: 27360 [Token(Token = "0x4006AE0")] private const int L_0 = 78101261; // Token: 0x04006AE1 RID: 27361 [Token(Token = "0x4006AE1")] private const int L_1 = 141809365; // Token: 0x04006AE2 RID: 27362 [Token(Token = "0x4006AE2")] private const int L_2 = 175155932; // Token: 0x04006AE3 RID: 27363 [Token(Token = "0x4006AE3")] private const int L_3 = 64542499; // Token: 0x04006AE4 RID: 27364 [Token(Token = "0x4006AE4")] private const int L_4 = 158326419; // Token: 0x04006AE5 RID: 27365 [Token(Token = "0x4006AE5")] private const int L_5 = 191173276; // Token: 0x04006AE6 RID: 27366 [Token(Token = "0x4006AE6")] private const int L_6 = 104575268; // Token: 0x04006AE7 RID: 27367 [Token(Token = "0x4006AE7")] private const int L_7 = 137584065; // Token: 0x04006AE8 RID: 27368 [Token(Token = "0x4006AE8")] private const int L4_0 = 43969588; // Token: 0x04006AE9 RID: 27369 [Token(Token = "0x4006AE9")] private const int L4_1 = 30366549; // Token: 0x04006AEA RID: 27370 [Token(Token = "0x4006AEA")] private const int L4_2 = 163752818; // Token: 0x04006AEB RID: 27371 [Token(Token = "0x4006AEB")] private const int L4_3 = 258169998; // Token: 0x04006AEC RID: 27372 [Token(Token = "0x4006AEC")] private const int L4_4 = 96434764; // Token: 0x04006AED RID: 27373 [Token(Token = "0x4006AED")] private const int L4_5 = 227822194; // Token: 0x04006AEE RID: 27374 [Token(Token = "0x4006AEE")] private const int L4_6 = 149865618; // Token: 0x04006AEF RID: 27375 [Token(Token = "0x4006AEF")] private const int L4_7 = 550336261; // Token: 0x04006AF0 RID: 27376 [Token(Token = "0x4006AF0")] private static readonly uint[] B_x; // Token: 0x04006AF1 RID: 27377 [Token(Token = "0x4006AF1")] private static readonly uint[] B_y; // Token: 0x04006AF2 RID: 27378 [Token(Token = "0x4006AF2")] private const int C_d = -39081; // Token: 0x04006AF3 RID: 27379 [Token(Token = "0x4006AF3")] private const int WnafWidthBase = 7; // Token: 0x04006AF4 RID: 27380 [Token(Token = "0x4006AF4")] private const int PrecompBlocks = 5; // Token: 0x04006AF5 RID: 27381 [Token(Token = "0x4006AF5")] private const int PrecompTeeth = 5; // Token: 0x04006AF6 RID: 27382 [Token(Token = "0x4006AF6")] private const int PrecompSpacing = 18; // Token: 0x04006AF7 RID: 27383 [Token(Token = "0x4006AF7")] private const int PrecompPoints = 16; // Token: 0x04006AF8 RID: 27384 [Token(Token = "0x4006AF8")] private const int PrecompMask = 15; // Token: 0x04006AF9 RID: 27385 [Token(Token = "0x4006AF9")] private static readonly object precompLock; // Token: 0x04006AFA RID: 27386 [Token(Token = "0x4006AFA")] private static Ed448.PointExt[] precompBaseTable; // Token: 0x04006AFB RID: 27387 [Token(Token = "0x4006AFB")] private static uint[] precompBase; // Token: 0x02001A0E RID: 6670 [Token(Token = "0x2001A0E")] public enum Algorithm { // Token: 0x04006AFD RID: 27389 [Token(Token = "0x4006AFD")] Ed448, // Token: 0x04006AFE RID: 27390 [Token(Token = "0x4006AFE")] Ed448ph } // Token: 0x02001A0F RID: 6671 [Token(Token = "0x2001A0F")] private class PointExt { // Token: 0x0600A207 RID: 41479 RVA: 0x0022E030 File Offset: 0x0022C230 [Token(Token = "0x600A207")] [Address(RVA = "0x1F7EAA0", Offset = "0x1F7D8A0", VA = "0x181F7EAA0")] 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: 0x04006AFF RID: 27391 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4006AFF")] internal uint[] x; // Token: 0x04006B00 RID: 27392 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4006B00")] internal uint[] y; // Token: 0x04006B01 RID: 27393 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4006B01")] internal uint[] z; } // Token: 0x02001A10 RID: 6672 [Token(Token = "0x2001A10")] private class PointPrecomp { // Token: 0x0600A208 RID: 41480 RVA: 0x0022E074 File Offset: 0x0022C274 [Token(Token = "0x600A208")] [Address(RVA = "0x1F7EB60", Offset = "0x1F7D960", VA = "0x181F7EB60")] public PointPrecomp() { uint[] array = X448Field.Create(); this.x = array; uint[] array2 = X448Field.Create(); this.y = array2; base..ctor(); } // Token: 0x04006B02 RID: 27394 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4006B02")] internal uint[] x; // Token: 0x04006B03 RID: 27395 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4006B03")] internal uint[] y; } } }