using System; using System.Runtime.InteropServices; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines { // Token: 0x020016DB RID: 5851 [Token(Token = "0x20016DB")] [StructLayout(3)] public class VmpcEngine : IStreamCipher { // Token: 0x170018FC RID: 6396 // (get) Token: 0x06009D75 RID: 40309 RVA: 0x00241B04 File Offset: 0x0023FD04 [Token(Token = "0x170018FC")] public virtual string AlgorithmName { [Token(Token = "0x6009D75")] [Address(RVA = "0x1F61C50", Offset = "0x1F60650", VA = "0x181F61C50", Slot = "9")] get { return "VMPC"; } } // Token: 0x06009D76 RID: 40310 RVA: 0x00241B18 File Offset: 0x0023FD18 [Token(Token = "0x6009D76")] [Address(RVA = "0x1F615B0", Offset = "0x1F5FFB0", VA = "0x181F615B0", Slot = "10")] public virtual void Init(bool forEncryption, ICipherParameters parameters) { /* An exception occurred when decompiling this method (06009D76) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Engines.VmpcEngine::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_4C: stloc:ArgumentException(var_8_56, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("VMPC requires 1 to 768 bytes of 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.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: 0x06009D77 RID: 40311 RVA: 0x00241B7C File Offset: 0x0023FD7C [Token(Token = "0x6009D77")] [Address(RVA = "0x1F61280", Offset = "0x1F5FC80", VA = "0x181F61280", Slot = "11")] protected virtual void InitKey(byte[] keyBytes, byte[] ivBytes) { this.s = (byte)((ulong)0L); byte[] array = new byte[256]; int num = 0; this.P = array; byte[] p = this.P; num++; byte[] p2 = this.P; int length = p2.Length; byte b = p[keyBytes]; byte b2; b += b2; byte b3 = this.s; b += b3; byte b4; this.s = b4; int length2 = p2.Length; byte[] p3 = this.P; byte b5 = this.s; num++; byte[] p4 = this.P; int length3 = p4.Length; int length4 = ivBytes.Length; byte b6; byte b7; b6 += b7; byte b8 = this.s; b6 += b8; byte b9; this.s = b9; int length5 = p4.Length; byte[] p5 = this.P; byte b10 = this.s; num++; this.n = (byte)((ulong)0L); } // Token: 0x06009D78 RID: 40312 RVA: 0x00241C74 File Offset: 0x0023FE74 [Token(Token = "0x6009D78")] [Address(RVA = "0x1F61800", Offset = "0x1F60200", VA = "0x181F61800", Slot = "12")] public virtual void ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff) { Check.DataLength(input, inOff, inOff, "input buffer too short"); if (len > 0) { byte[] p = this.P; byte b = this.n; int length = p.Length; byte b2 = this.s; byte b3; b3 += b2; byte b4; this.s = b4; int length2 = p.Length; byte[] p2 = this.P; byte b5 = this.s; } } // Token: 0x06009D79 RID: 40313 RVA: 0x00241CEC File Offset: 0x0023FEEC [Token(Token = "0x6009D79")] [Address(RVA = "0x1F61A90", Offset = "0x1F60490", VA = "0x181F61A90", Slot = "13")] public virtual void Reset() { string algorithmName = ((IStreamCipher)this).AlgorithmName; } // Token: 0x06009D7A RID: 40314 RVA: 0x00241D00 File Offset: 0x0023FF00 [Token(Token = "0x6009D7A")] [Address(RVA = "0x1F61AB0", Offset = "0x1F604B0", VA = "0x181F61AB0", Slot = "14")] public virtual byte ReturnByte(byte input) { byte[] p = this.P; byte b = this.n; int length = p.Length; byte b2 = this.s; byte b3; b3 += b2; byte b4; this.s = b4; int length2 = p.Length; byte[] p2 = this.P; byte b5 = this.s; byte b6; return b6; } // Token: 0x06009D7B RID: 40315 RVA: 0x00241D64 File Offset: 0x0023FF64 [Token(Token = "0x6009D7B")] [Address(RVA = "0x3C1670", Offset = "0x3C0070", VA = "0x1803C1670")] public VmpcEngine() { } // Token: 0x040067B2 RID: 26546 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40067B2")] protected byte n; // Token: 0x040067B3 RID: 26547 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x40067B3")] protected byte[] P; // Token: 0x040067B4 RID: 26548 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x40067B4")] protected byte s; // Token: 0x040067B5 RID: 26549 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x40067B5")] protected byte[] workingIV; // Token: 0x040067B6 RID: 26550 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x40067B6")] protected byte[] workingKey; } }