using System; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines { // Token: 0x02001C94 RID: 7316 [Token(Token = "0x2001C94")] public class HC256Engine : IStreamCipher { // Token: 0x0600B7BF RID: 47039 RVA: 0x0028B8C4 File Offset: 0x00289AC4 [Token(Token = "0x600B7BF")] [Address(RVA = "0x1DCFDD0", Offset = "0x1DCEBD0", VA = "0x181DCFDD0")] private uint Step() { uint num = this.cnt; uint[] array = this.q; int length = array.Length; uint num2 = array[this]; uint num3 = num + 1U; uint num4 = array[(int)num3]; uint[] array2 = this.p; uint num5 = array[(int)num3]; num3 = num4; num3 += num5; uint[] array3 = this.q; int length2 = array3.Length; uint[] array4 = this.p; int length3 = array4.Length; num4 = num2; num4 += (uint)256; uint num6 = array4[(int)num4]; num4 = num2; num4 += (uint)512; num2 += (uint)768; uint num7 = array4[(int)num2]; uint num8 = num + 1U; uint[] array5 = this.q; array3 += num6; uint[] array6 = this.p; int length4 = array6.Length; uint[] array7 = this.q; uint num9 = array6[(int)num2]; int length5 = array7.Length; uint num10 = array7[(int)num9]; num2 = num9; num9 = num2; num9 += (uint)256; uint num11 = array7[(int)num9]; num2 = num9; num9 = num2; num9 += (uint)512; num2 = num9; num2 += (uint)768; num2 += num11; num2 += num10; uint num12 = this.cnt; num12 += (uint)1; this.cnt = num12; return num2; } // Token: 0x0600B7C0 RID: 47040 RVA: 0x0028BA24 File Offset: 0x00289C24 [Token(Token = "0x600B7C0")] [Address(RVA = "0x1DCF3E0", Offset = "0x1DCE1E0", VA = "0x181DCF3E0")] private void Init() { /* An exception occurred when decompiling this method (0600B7C0) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC256Engine::Init() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_1AF: stloc:ArgumentException(var_38_1B9, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("The key must be 128/256 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: 0x17001CD1 RID: 7377 // (get) Token: 0x0600B7C1 RID: 47041 RVA: 0x0028BBEC File Offset: 0x00289DEC [Token(Token = "0x17001CD1")] public virtual string AlgorithmName { [Token(Token = "0x600B7C1")] [Address(RVA = "0x1DD0350", Offset = "0x1DCF150", VA = "0x181DD0350", Slot = "9")] get { return "HC-256"; } } // Token: 0x0600B7C2 RID: 47042 RVA: 0x0028BC00 File Offset: 0x00289E00 [Token(Token = "0x600B7C2")] [Address(RVA = "0x1DCF840", Offset = "0x1DCE640", VA = "0x181DCF840", Slot = "10")] public virtual void Init(bool forEncryption, ICipherParameters parameters) { /* An exception occurred when decompiling this method (0600B7C2) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC256Engine::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 HC256 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: 0x0600B7C3 RID: 47043 RVA: 0x0028BCA0 File Offset: 0x00289EA0 [Token(Token = "0x600B7C3")] [Address(RVA = "0x1DCF370", Offset = "0x1DCE170", VA = "0x181DCF370")] 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: 0x0600B7C4 RID: 47044 RVA: 0x0028BCEC File Offset: 0x00289EEC [Token(Token = "0x600B7C4")] [Address(RVA = "0x1DCFB60", Offset = "0x1DCE960", VA = "0x181DCFB60", Slot = "11")] public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff) { /* An exception occurred when decompiling this method (0600B7C4) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.HC256Engine::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: 0x0600B7C5 RID: 47045 RVA: 0x0028BD58 File Offset: 0x00289F58 [Token(Token = "0x600B7C5")] [Address(RVA = "0x1DCFD40", Offset = "0x1DCEB40", VA = "0x181DCFD40", Slot = "12")] public virtual void Reset() { this.Init(); } // Token: 0x0600B7C6 RID: 47046 RVA: 0x0028BD6C File Offset: 0x00289F6C [Token(Token = "0x600B7C6")] [Address(RVA = "0x1DCFD50", Offset = "0x1DCEB50", VA = "0x181DCFD50", 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: 0x0600B7C7 RID: 47047 RVA: 0x0028BDB8 File Offset: 0x00289FB8 [Token(Token = "0x600B7C7")] [Address(RVA = "0x1A607B0", Offset = "0x1A5F5B0", VA = "0x181A607B0")] private static uint RotateRight(uint x, int bits) { return x; } // Token: 0x0600B7C8 RID: 47048 RVA: 0x0028BDC8 File Offset: 0x00289FC8 [Token(Token = "0x600B7C8")] [Address(RVA = "0x1DD02D0", Offset = "0x1DCF0D0", VA = "0x181DD02D0")] public HC256Engine() { uint[] array = new uint[1024]; this.p = array; uint[] array2 = new uint[1024]; this.q = array2; byte[] array3 = new byte[4]; this.buf = array3; base..ctor(); } // Token: 0x0400748B RID: 29835 [FieldOffset(Offset = "0x10")] [Token(Token = "0x400748B")] private uint[] p; // Token: 0x0400748C RID: 29836 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400748C")] private uint[] q; // Token: 0x0400748D RID: 29837 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400748D")] private uint cnt; // Token: 0x0400748E RID: 29838 [FieldOffset(Offset = "0x28")] [Token(Token = "0x400748E")] private byte[] key; // Token: 0x0400748F RID: 29839 [FieldOffset(Offset = "0x30")] [Token(Token = "0x400748F")] private byte[] iv; // Token: 0x04007490 RID: 29840 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4007490")] private bool initialised; // Token: 0x04007491 RID: 29841 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4007491")] private byte[] buf; // Token: 0x04007492 RID: 29842 [FieldOffset(Offset = "0x48")] [Token(Token = "0x4007492")] private int idx; } }