using System; using System.Runtime.InteropServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines { // Token: 0x020016B6 RID: 5814 [Token(Token = "0x20016B6")] [StructLayout(3)] public class HC128Engine : IStreamCipher { // Token: 0x06009BD1 RID: 39889 RVA: 0x00233CA0 File Offset: 0x00231EA0 [Token(Token = "0x6009BD1")] [Address(RVA = "0x2120A90", Offset = "0x211F490", VA = "0x182120A90")] private static uint F1(uint x) { return x; } // Token: 0x06009BD2 RID: 39890 RVA: 0x00233CB0 File Offset: 0x00231EB0 [Token(Token = "0x6009BD2")] [Address(RVA = "0x2120AC0", Offset = "0x211F4C0", VA = "0x182120AC0")] private static uint F2(uint x) { return x; } // Token: 0x06009BD3 RID: 39891 RVA: 0x00233CC0 File Offset: 0x00231EC0 [Token(Token = "0x6009BD3")] [Address(RVA = "0x2120AF0", Offset = "0x211F4F0", VA = "0x182120AF0")] private uint G1(uint x, uint y, uint z) { return x; } // Token: 0x06009BD4 RID: 39892 RVA: 0x00233CD0 File Offset: 0x00231ED0 [Token(Token = "0x6009BD4")] [Address(RVA = "0x2120B20", Offset = "0x211F520", VA = "0x182120B20")] private uint G2(uint x, uint y, uint z) { return x; } // Token: 0x06009BD5 RID: 39893 RVA: 0x00233CE0 File Offset: 0x00231EE0 [Token(Token = "0x6009BD5")] [Address(RVA = "0x21009B0", Offset = "0x20FF3B0", VA = "0x1821009B0")] private static uint RotateLeft(uint x, int bits) { return x; } // Token: 0x06009BD6 RID: 39894 RVA: 0x00233CF0 File Offset: 0x00231EF0 [Token(Token = "0x6009BD6")] [Address(RVA = "0x7051F0", Offset = "0x703BF0", VA = "0x1807051F0")] private static uint RotateRight(uint x, int bits) { return x; } // Token: 0x06009BD7 RID: 39895 RVA: 0x00233D00 File Offset: 0x00231F00 [Token(Token = "0x6009BD7")] [Address(RVA = "0x2120BC0", Offset = "0x211F5C0", VA = "0x182120BC0")] private uint H1(uint x) { uint[] array = this.q; int length = array.Length; uint num = array[(int)x]; uint num2 = array[(int)x]; return num2 + num; } // Token: 0x06009BD8 RID: 39896 RVA: 0x00233D38 File Offset: 0x00231F38 [Token(Token = "0x6009BD8")] [Address(RVA = "0x2120C30", Offset = "0x211F630", VA = "0x182120C30")] private uint H2(uint x) { uint[] array = this.p; int length = array.Length; uint num = array[(int)x]; uint num2 = array[(int)x]; return num2 + num; } // Token: 0x06009BD9 RID: 39897 RVA: 0x00233D70 File Offset: 0x00231F70 [Token(Token = "0x6009BD9")] [Address(RVA = "0x21213D0", Offset = "0x211FDD0", VA = "0x1821213D0")] private static uint Mod1024(uint x) { return x; } // Token: 0x06009BDA RID: 39898 RVA: 0x00233D80 File Offset: 0x00231F80 [Token(Token = "0x6009BDA")] [Address(RVA = "0x21213E0", Offset = "0x211FDE0", VA = "0x1821213E0")] private static uint Mod512(uint x) { return x; } // Token: 0x06009BDB RID: 39899 RVA: 0x00233D90 File Offset: 0x00231F90 [Token(Token = "0x6009BDB")] [Address(RVA = "0x2120A80", Offset = "0x211F480", VA = "0x182120A80")] private static uint Dim(uint x, uint y) { return x; } // Token: 0x06009BDC RID: 39900 RVA: 0x00233DA0 File Offset: 0x00231FA0 [Token(Token = "0x6009BDC")] [Address(RVA = "0x2121660", Offset = "0x2120060", VA = "0x182121660")] private uint Step() { uint num = this.cnt; uint[] array = this.q; int length = array.Length; uint num2 = num + 1U; uint num3 = array[(int)num2]; uint num4; num3 += num4; uint num5; num5 += num3; uint[] array2 = this.q; int length2 = array2.Length; uint[] array3 = this.p; int length3 = array3.Length; num3 += (uint)256; uint num6 = array3[(int)num3]; int length4 = array3.Length; uint num7 = array3[(int)num6]; uint num8 = num + 1U; uint num9 = array3[(int)num8]; uint num10; num9 += num10; num7 += num9; array2.m_value = num7; int length5 = this.p.Length; uint[] array4 = this.q; int length6 = array4.Length; uint num11 = array4[(int)num9]; num9 += (uint)256; uint num12 = array4[(int)num9]; num12 += num11; uint num13 = this.cnt; num13 += (uint)1; this.cnt = num13; return num12; } // Token: 0x06009BDD RID: 39901 RVA: 0x00233EB8 File Offset: 0x002320B8 [Token(Token = "0x6009BDD")] [Address(RVA = "0x2120CA0", Offset = "0x211F6A0", VA = "0x182120CA0")] private void Init() { /* An exception occurred when decompiling this method (06009BDD) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC128Engine::Init() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_12B: stloc:ArgumentException(var_26_135, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("The key must be 128 bits long"))) } 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: 0x170018CF RID: 6351 // (get) Token: 0x06009BDE RID: 39902 RVA: 0x00233FFC File Offset: 0x002321FC [Token(Token = "0x170018CF")] public virtual string AlgorithmName { [Token(Token = "0x6009BDE")] [Address(RVA = "0x2121AA0", Offset = "0x21204A0", VA = "0x182121AA0", Slot = "9")] get { return "HC-128"; } } // Token: 0x06009BDF RID: 39903 RVA: 0x00234010 File Offset: 0x00232210 [Token(Token = "0x6009BDF")] [Address(RVA = "0x21210B0", Offset = "0x211FAB0", VA = "0x1821210B0", Slot = "10")] public virtual void Init(bool forEncryption, ICipherParameters parameters) { /* An exception occurred when decompiling this method (06009BDF) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC128Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_7B: stloc:ArgumentException(var_12_91, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string("Invalid parameter passed to HC128 init - "), ldloc:string(var_11)), ldstr:string("parameters"))) } 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: 0x06009BE0 RID: 39904 RVA: 0x002340B0 File Offset: 0x002322B0 [Token(Token = "0x6009BE0")] [Address(RVA = "0x2120B50", Offset = "0x211F550", VA = "0x182120B50")] private byte GetByte() { if (this.idx == 0) { uint num = this.Step(); byte[] array = this.buf; Pack.UInt32_To_LE(num, array); } byte[] array2 = this.buf; int num2 = this.idx + 1; this.idx = num2; byte b; return b; } // Token: 0x06009BE1 RID: 39905 RVA: 0x002340FC File Offset: 0x002322FC [Token(Token = "0x6009BE1")] [Address(RVA = "0x21213F0", Offset = "0x211FDF0", VA = "0x1821213F0", Slot = "11")] public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff) { /* An exception occurred when decompiling this method (06009BE1) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC128Engine::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_54: stloc:InvalidOperationException(var_7_5B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_6))) } 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: 0x06009BE2 RID: 39906 RVA: 0x00234168 File Offset: 0x00232368 [Token(Token = "0x6009BE2")] [Address(RVA = "0x21215D0", Offset = "0x211FFD0", VA = "0x1821215D0", Slot = "12")] public virtual void Reset() { this.Init(); } // Token: 0x06009BE3 RID: 39907 RVA: 0x0023417C File Offset: 0x0023237C [Token(Token = "0x6009BE3")] [Address(RVA = "0x21215E0", Offset = "0x211FFE0", VA = "0x1821215E0", Slot = "13")] public virtual byte ReturnByte(byte input) { if (this.idx == 0) { uint num = this.Step(); byte[] array = this.buf; Pack.UInt32_To_LE(num, array); } byte[] array2 = this.buf; int num2 = this.idx + 1; this.idx = num2; byte b; return b; } // Token: 0x06009BE4 RID: 39908 RVA: 0x002341C8 File Offset: 0x002323C8 [Token(Token = "0x6009BE4")] [Address(RVA = "0x2121A20", Offset = "0x2120420", VA = "0x182121A20")] public HC128Engine() { uint[] array = new uint[512]; this.p = array; uint[] array2 = new uint[512]; this.q = array2; byte[] array3 = new byte[4]; this.buf = array3; base..ctor(); } // Token: 0x04006640 RID: 26176 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4006640")] private uint[] p; // Token: 0x04006641 RID: 26177 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4006641")] private uint[] q; // Token: 0x04006642 RID: 26178 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4006642")] private uint cnt; // Token: 0x04006643 RID: 26179 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x4006643")] private byte[] key; // Token: 0x04006644 RID: 26180 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x4006644")] private byte[] iv; // Token: 0x04006645 RID: 26181 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x4006645")] private bool initialised; // Token: 0x04006646 RID: 26182 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x4006646")] private byte[] buf; // Token: 0x04006647 RID: 26183 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x4006647")] private int idx; } }