using System; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines { // Token: 0x02001CAC RID: 7340 [Token(Token = "0x2001CAC")] public class Salsa20Engine : IStreamCipher { // Token: 0x0600B8C8 RID: 47304 RVA: 0x00291E10 File Offset: 0x00290010 [Token(Token = "0x600B8C8")] [Address(RVA = "0x1DFD1E0", Offset = "0x1DFBFE0", VA = "0x181DFD1E0")] internal void PackTauOrSigma(int keyLength, uint[] state, int stateOffset) { uint num = Salsa20Engine.TAU_SIGMA[keyLength]; state[0] = num; uint[] tau_SIGMA = Salsa20Engine.TAU_SIGMA; int num2 = keyLength + 1; uint num3 = tau_SIGMA[num2]; int num4 = stateOffset + 1; state[0] = num3; uint[] tau_SIGMA2 = Salsa20Engine.TAU_SIGMA; uint num5; state[0] = num5; uint num6 = Salsa20Engine.TAU_SIGMA[keyLength]; state[0] = num6; } // Token: 0x0600B8C9 RID: 47305 RVA: 0x00291E7C File Offset: 0x0029007C [Token(Token = "0x600B8C9")] [Address(RVA = "0x1DFE3B0", Offset = "0x1DFD1B0", VA = "0x181DFE3B0")] public Salsa20Engine() { /* An exception occurred when decompiling this method (0600B8C9) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::.ctor() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_49: stloc:ArgumentException(var_4_53, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("'rounds' must be a positive, even number"))) } 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: 0x0600B8CA RID: 47306 RVA: 0x00291EE0 File Offset: 0x002900E0 [Token(Token = "0x600B8CA")] [Address(RVA = "0x1DFE4C0", Offset = "0x1DFD2C0", VA = "0x181DFE4C0")] public Salsa20Engine(int rounds) { /* An exception occurred when decompiling this method (0600B8CA) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::.ctor(System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_43: stloc:ArgumentException(var_3_4D, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("'rounds' must be a positive, even number"))) } 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: 0x0600B8CB RID: 47307 RVA: 0x00291F3C File Offset: 0x0029013C [Token(Token = "0x600B8CB")] [Address(RVA = "0x1DFCE00", Offset = "0x1DFBC00", VA = "0x181DFCE00", Slot = "9")] public virtual void Init(bool forEncryption, ICipherParameters parameters) { /* An exception occurred when decompiling this method (0600B8CB) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_52: stloc:InvalidOperationException(var_8_59, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldloc:string(var_7))) } 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.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: 0x17001CF0 RID: 7408 // (get) Token: 0x0600B8CC RID: 47308 RVA: 0x00291FA4 File Offset: 0x002901A4 [Token(Token = "0x17001CF0")] protected virtual int NonceSize { [Token(Token = "0x600B8CC")] [Address(RVA = "0x4101D0", Offset = "0x40EFD0", VA = "0x1804101D0", Slot = "10")] get { return 8; } } // Token: 0x17001CF1 RID: 7409 // (get) Token: 0x0600B8CD RID: 47309 RVA: 0x00291FB4 File Offset: 0x002901B4 [Token(Token = "0x17001CF1")] public virtual string AlgorithmName { [Token(Token = "0x600B8CD")] [Address(RVA = "0x1DFE580", Offset = "0x1DFD380", VA = "0x181DFE580", Slot = "11")] get { int num = this.rounds; int num2 = this.rounds; return "Salsa20" + "/" + num2; } } // Token: 0x0600B8CE RID: 47310 RVA: 0x00291FE0 File Offset: 0x002901E0 [Token(Token = "0x600B8CE")] [Address(RVA = "0x1DFD6A0", Offset = "0x1DFC4A0", VA = "0x181DFD6A0", Slot = "12")] public virtual byte ReturnByte(byte input) { /* An exception occurred when decompiling this method (0600B8CE) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Byte BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::ReturnByte(System.Byte) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_43: stloc:MaxBytesExceededException(var_5_4D, newobj:MaxBytesExceededException(MaxBytesExceededException::.ctor, ldstr:string("2^70 byte limit per IV; Change IV"))) } 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: 0x0600B8CF RID: 47311 RVA: 0x0029203C File Offset: 0x0029023C [Token(Token = "0x600B8CF")] [Address(RVA = "0x1DFCD00", Offset = "0x1DFBB00", VA = "0x181DFCD00", Slot = "13")] protected virtual void AdvanceCounter() { if (this.engineState.Length == 8) { uint[] array = this.engineState; } } // Token: 0x0600B8D0 RID: 47312 RVA: 0x00292064 File Offset: 0x00290264 [Token(Token = "0x600B8D0")] [Address(RVA = "0x1DFD3D0", Offset = "0x1DFC1D0", VA = "0x181DFD3D0", Slot = "14")] public virtual void ProcessBytes(byte[] inBytes, int inOff, int len, byte[] outBytes, int outOff) { /* An exception occurred when decompiling this method (0600B8D0) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_75: stloc:MaxBytesExceededException(var_10_7F, newobj:MaxBytesExceededException(MaxBytesExceededException::.ctor, ldstr:string("2^70 byte limit per IV would be exceeded; Change IV"))) } 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: 0x0600B8D1 RID: 47313 RVA: 0x002920F4 File Offset: 0x002902F4 [Token(Token = "0x600B8D1")] [Address(RVA = "0x1DFD680", Offset = "0x1DFC480", VA = "0x181DFD680", Slot = "15")] public virtual void Reset() { int num = 0; this.index = num; this.cW0 = (uint)num; this.cW2 = (uint)num; string algorithmName = ((IStreamCipher)this).AlgorithmName; } // Token: 0x0600B8D2 RID: 47314 RVA: 0x00292120 File Offset: 0x00290320 [Token(Token = "0x600B8D2")] [Address(RVA = "0x1DFD610", Offset = "0x1DFC410", VA = "0x181DFD610", Slot = "16")] protected virtual void ResetCounter() { uint[] array = this.engineState; int num = 0; array[4] = (uint)num; array[4] = (uint)num; } // Token: 0x0600B8D3 RID: 47315 RVA: 0x0029214C File Offset: 0x0029034C [Token(Token = "0x600B8D3")] [Address(RVA = "0x1DFDFF0", Offset = "0x1DFCDF0", VA = "0x181DFDFF0", Slot = "17")] protected virtual void SetKey(byte[] keyBytes, byte[] ivBytes) { if (keyBytes != 0) { uint[] array = this.engineState; uint[] tau_SIGMA = Salsa20Engine.TAU_SIGMA; uint num; array[0] = num; uint[] array2 = this.engineState; uint[] tau_SIGMA2 = Salsa20Engine.TAU_SIGMA; uint num2; array2[2] = num2; uint[] array3 = this.engineState; uint[] tau_SIGMA3 = Salsa20Engine.TAU_SIGMA; uint num3; array3[5] = num3; uint[] array4 = this.engineState; uint num4 = Salsa20Engine.TAU_SIGMA[keyBytes]; array4[7] = num4; uint[] array5 = this.engineState; int num5 = 0; uint num6; ulong num7; Pack.LE_To_UInt32(keyBytes, num5, array5, (int)num6, (int)num7); int length = keyBytes.Length; uint[] array6 = this.engineState; uint num8; ulong num9; Pack.LE_To_UInt32(keyBytes, length, array6, (int)num8, (int)num9); } uint[] array7 = this.engineState; int num10 = 0; uint num11; ulong num12; Pack.LE_To_UInt32(ivBytes, num10, array7, (int)num11, (int)num12); } // Token: 0x0600B8D4 RID: 47316 RVA: 0x00292220 File Offset: 0x00290420 [Token(Token = "0x600B8D4")] [Address(RVA = "0x1DFCD60", Offset = "0x1DFBB60", VA = "0x181DFCD60", Slot = "18")] protected virtual void GenerateKeyStream(byte[] output) { int num = this.rounds; uint[] array = this.engineState; uint[] array2 = this.x; Salsa20Engine.SalsaCore(num, array, array2); uint[] array3 = this.x; int num2 = 0; Pack.UInt32_To_LE(array3, output, num2); } // Token: 0x0600B8D5 RID: 47317 RVA: 0x00292260 File Offset: 0x00290460 [Token(Token = "0x600B8D5")] [Address(RVA = "0x1DFD790", Offset = "0x1DFC590", VA = "0x181DFD790")] internal static void SalsaCore(int rounds, uint[] input, uint[] x) { int length; do { length = input.Length; } while (length != 16 || x.Length != length || rounds != 1); uint num = input[5]; uint num2 = input[4]; uint num3 = input[2]; uint num4 = input[3]; uint num5 = input[3]; uint num6 = input[4]; uint num7 = input[0]; uint num8 = input[6]; uint num9 = input[1]; uint num10 = input[6]; uint num11 = input[2]; uint num12 = input[7]; uint num13 = input[0]; uint num14 = input[7]; uint num15 = input[5]; uint num16 = input[1]; if (rounds > 0) { int num17 = rounds - 1; num17++; num11 += num7; num += num14; num += num5; num += num15; num += num6; num12 += num14; num8 += num14; num10 += num8; num11 = num10; } uint num18 = input[0]; num18 += num7; x[0] = num18; uint num19 = input[0]; num19 += num13; x[0] = num19; uint num20 = input[1]; num20 += num16; x[1] = num20; uint num21 = input[1]; num21 += num9; x[1] = num21; uint num22 = input[2]; num22 += num11; x[2] = num22; uint num23 = input[2]; num23 += num3; x[2] = num23; uint num24 = input[3]; num24 += num4; x[3] = num24; uint num25 = input[3]; num25 += num5; x[3] = num25; uint num26 = input[4]; num26 += num6; x[4] = num26; uint num27 = input[4]; num27 += num2; x[4] = num27; uint num28 = input[5]; num28 += num15; x[5] = num28; uint num29 = input[5]; x[5] = num29; uint num30 = input[6]; x[6] = num30; uint num31 = input[6]; x[6] = num31; uint num32 = input[7]; x[7] = num32; uint num33 = input[7]; num33 += num14; x[7] = num33; } // Token: 0x0600B8D6 RID: 47318 RVA: 0x0029250C File Offset: 0x0029070C [Token(Token = "0x600B8D6")] [Address(RVA = "0x1B45B80", Offset = "0x1B44980", VA = "0x181B45B80")] internal static uint R(uint x, int y) { return x; } // Token: 0x0600B8D7 RID: 47319 RVA: 0x0029251C File Offset: 0x0029071C [Token(Token = "0x600B8D7")] [Address(RVA = "0x1DFD670", Offset = "0x1DFC470", VA = "0x181DFD670")] private void ResetLimitCounter() { int num = 0; this.cW0 = (uint)num; this.cW2 = (uint)num; } // Token: 0x0600B8D8 RID: 47320 RVA: 0x0029253C File Offset: 0x0029073C [Token(Token = "0x600B8D8")] [Address(RVA = "0x1DFD1B0", Offset = "0x1DFBFB0", VA = "0x181DFD1B0")] private bool LimitExceeded() { /* An exception occurred when decompiling this method (0600B8D8) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::LimitExceeded() ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:uint32(var_0_06, ldfld:uint32(Salsa20Engine::cW0, ldloc:Salsa20Engine(this))) stloc:uint32(var_0_0B, add:uint32(ldloc:uint32(var_0_06), conv.u4:uint32(ldc.i4:int32[exp:uint32](1)))) stfld:uint32(Salsa20Engine::cW0, ldloc:Salsa20Engine(this), ldloc:uint32(var_0_0B)) stloc:uint32(var_1_19, ldfld:uint32(Salsa20Engine::cW1, ldloc:Salsa20Engine(this))) stloc:uint32(var_1_1E, add:uint32(ldloc:uint32(var_1_19), conv.u4:uint32(ldc.i4:int32[exp:uint32](1)))) stfld:uint32(Salsa20Engine::cW1, ldloc:Salsa20Engine(this), ldloc:uint32(var_1_1E)) stloc:uint32(var_2_2C, ldfld:uint32(Salsa20Engine::cW2, ldloc:Salsa20Engine(this))) stloc:uint32(var_2_31, add:uint32(ldloc:uint32(var_2_2C), conv.u4:uint32(ldc.i4:int32[exp:uint32](1)))) stfld:uint32(Salsa20Engine::cW2, ldloc:Salsa20Engine(this), ldloc:uint32(var_2_31)) } 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: 0x0600B8D9 RID: 47321 RVA: 0x00292584 File Offset: 0x00290784 [Token(Token = "0x600B8D9")] [Address(RVA = "0x1DFD180", Offset = "0x1DFBF80", VA = "0x181DFD180")] private bool LimitExceeded(uint len) { /* An exception occurred when decompiling this method (0600B8D9) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.Salsa20Engine::LimitExceeded(System.UInt32) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:uint32(var_0_06, ldfld:uint32(Salsa20Engine::cW0, ldloc:Salsa20Engine(this))) stloc:uint32(var_1_0D, ldfld:uint32(Salsa20Engine::cW1, ldloc:Salsa20Engine(this))) stloc:uint32(var_1_12, add:uint32(ldloc:uint32(var_1_0D), conv.u4:uint32(ldc.i4:int32[exp:uint32](1)))) stfld:uint32(Salsa20Engine::cW1, ldloc:Salsa20Engine(this), ldloc:uint32(var_1_12)) stloc:uint32(var_2_20, ldfld:uint32(Salsa20Engine::cW2, ldloc:Salsa20Engine(this))) stloc:uint32(var_2_25, add:uint32(ldloc:uint32(var_2_20), conv.u4:uint32(ldc.i4:int32[exp:uint32](1)))) stfld:uint32(Salsa20Engine::cW2, ldloc:Salsa20Engine(this), ldloc:uint32(var_2_25)) } 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: 0x0600B8DA RID: 47322 RVA: 0x002925C0 File Offset: 0x002907C0 // Note: this type is marked as 'beforefieldinit'. [Token(Token = "0x600B8DA")] [Address(RVA = "0x1DFE300", Offset = "0x1DFD100", VA = "0x181DFE300")] static Salsa20Engine() { byte[] array = Strings.ToAsciiByteArray("expand 16-byte kexpand 32-byte k"); int num = 0; Salsa20Engine.TAU_SIGMA = Pack.LE_To_UInt32(array, num, 8); Salsa20Engine.sigma = Strings.ToAsciiByteArray("expand 32-byte k"); Salsa20Engine.tau = Strings.ToAsciiByteArray("expand 16-byte k"); } // Token: 0x04007519 RID: 29977 [Token(Token = "0x4007519")] public static readonly int DEFAULT_ROUNDS; // Token: 0x0400751A RID: 29978 [Token(Token = "0x400751A")] private const int StateSize = 16; // Token: 0x0400751B RID: 29979 [Token(Token = "0x400751B")] private static readonly uint[] TAU_SIGMA; // Token: 0x0400751C RID: 29980 [Token(Token = "0x400751C")] [Obsolete] protected static readonly byte[] sigma; // Token: 0x0400751D RID: 29981 [Token(Token = "0x400751D")] [Obsolete] protected static readonly byte[] tau; // Token: 0x0400751E RID: 29982 [FieldOffset(Offset = "0x10")] [Token(Token = "0x400751E")] protected int rounds; // Token: 0x0400751F RID: 29983 [FieldOffset(Offset = "0x14")] [Token(Token = "0x400751F")] private int index; // Token: 0x04007520 RID: 29984 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4007520")] internal uint[] engineState; // Token: 0x04007521 RID: 29985 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4007521")] internal uint[] x; // Token: 0x04007522 RID: 29986 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4007522")] private byte[] keyStream; // Token: 0x04007523 RID: 29987 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4007523")] private bool initialised; // Token: 0x04007524 RID: 29988 [FieldOffset(Offset = "0x34")] [Token(Token = "0x4007524")] private uint cW0; // Token: 0x04007525 RID: 29989 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4007525")] private uint cW1; // Token: 0x04007526 RID: 29990 [FieldOffset(Offset = "0x3C")] [Token(Token = "0x4007526")] private uint cW2; } }