using System; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes { // Token: 0x02001D18 RID: 7448 [Token(Token = "0x2001D18")] public sealed class GcmBlockCipher : IAeadBlockCipher { // Token: 0x0600B82C RID: 47148 RVA: 0x0027D940 File Offset: 0x0027BB40 [Token(Token = "0x600B82C")] [Address(RVA = "0x22D99A0", Offset = "0x22D89A0", VA = "0x1822D99A0")] public GcmBlockCipher(IBlockCipher c) { /* An exception occurred when decompiling this method (0600B82C) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.GcmBlockCipher::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IBlockCipher) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_37: stloc:ArgumentException(var_4_4C, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("cipher required with a block size of "), ldloc:int32[exp:object](var_3), ldstr:string[exp:object](".")))) } 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: 0x0600B82D RID: 47149 RVA: 0x0027D99C File Offset: 0x0027BB9C [Token(Token = "0x600B82D")] [Address(RVA = "0x22D9AB0", Offset = "0x22D8AB0", VA = "0x1822D9AB0")] public GcmBlockCipher(IBlockCipher c, IGcmMultiplier m) { /* An exception occurred when decompiling this method (0600B82D) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.GcmBlockCipher::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IBlockCipher,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.Gcm.IGcmMultiplier) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_3B: stloc:ArgumentException(var_4_50, newobj:ArgumentException(ArgumentException::.ctor, call:string(string::Concat, ldstr:string[exp:object]("cipher required with a block size of "), ldloc:int32[exp:object](var_3), ldstr:string[exp:object](".")))) } 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: 0x17001D18 RID: 7448 // (get) Token: 0x0600B82E RID: 47150 RVA: 0x0027D9FC File Offset: 0x0027BBFC [Token(Token = "0x17001D18")] public string AlgorithmName { [Token(Token = "0x600B82E")] [Address(RVA = "0x22D9E90", Offset = "0x22D8E90", VA = "0x1822D9E90", Slot = "4")] get { IBlockCipher blockCipher = this.cipher; return 0 + "/GCM"; } } // Token: 0x0600B82F RID: 47151 RVA: 0x0027DA24 File Offset: 0x0027BC24 [Token(Token = "0x600B82F")] [Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "5")] public IBlockCipher GetUnderlyingCipher() { return this.cipher; } // Token: 0x0600B830 RID: 47152 RVA: 0x0027DA38 File Offset: 0x0027BC38 [Token(Token = "0x600B830")] [Address(RVA = "0x8BB9C0", Offset = "0x8BA9C0", VA = "0x1808BB9C0", Slot = "7")] public int GetBlockSize() { return 16; } // Token: 0x0600B831 RID: 47153 RVA: 0x0027DA48 File Offset: 0x0027BC48 [Token(Token = "0x600B831")] [Address(RVA = "0x22D8820", Offset = "0x22D7820", VA = "0x1822D8820", Slot = "6")] public void Init(bool forEncryption, ICipherParameters parameters) { /* An exception occurred when decompiling this method (0600B831) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.GcmBlockCipher::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_291: stloc:ArgumentException(var_45_29B, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("Key must be specified in initial init"))) } 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: 0x0600B832 RID: 47154 RVA: 0x0027DCF4 File Offset: 0x0027BEF4 [Token(Token = "0x600B832")] [Address(RVA = "0x22D84D0", Offset = "0x22D74D0", VA = "0x1822D84D0", Slot = "13")] public byte[] GetMac() { byte[] array = this.macBlock; if (array == 0) { } return Arrays.Clone(array); } // Token: 0x0600B833 RID: 47155 RVA: 0x0027DD14 File Offset: 0x0027BF14 [Token(Token = "0x600B833")] [Address(RVA = "0x22D8700", Offset = "0x22D7700", VA = "0x1822D8700", Slot = "15")] public int GetOutputSize(int len) { int num = this.bufOff; int num2 = this.macSize; num += len; if (this.forEncryption) { return num2 + num; } if (num < num2) { return 0; } return num - num2; } // Token: 0x0600B834 RID: 47156 RVA: 0x0027DD50 File Offset: 0x0027BF50 [Token(Token = "0x600B834")] [Address(RVA = "0x22D8730", Offset = "0x22D7730", VA = "0x1822D8730", Slot = "14")] public int GetUpdateOutputSize(int len) { int num = this.bufOff; num += len; int num2; if (!this.forEncryption) { num2 = this.macSize; num -= num2; } if (num < num2) { num++; } return num - num; } // Token: 0x0600B835 RID: 47157 RVA: 0x0027DD8C File Offset: 0x0027BF8C [Token(Token = "0x600B835")] [Address(RVA = "0x22D8F90", Offset = "0x22D7F90", VA = "0x1822D8F90", Slot = "8")] public void ProcessAadByte(byte input) { this.CheckStatus(); byte[] array = this.atBlock; int num = this.atBlockPos; int num2 = this.atBlockPos; num2++; this.atBlockPos = num2; if (num2 == 16) { byte[] array2 = this.atBlock; byte[] s_at = this.S_at; this.gHASHBlock(s_at, array2); this.atBlockPos = (int)((ulong)0L); } } // Token: 0x0600B836 RID: 47158 RVA: 0x0027DDEC File Offset: 0x0027BFEC [Token(Token = "0x600B836")] [Address(RVA = "0x22D9020", Offset = "0x22D8020", VA = "0x1822D9020", Slot = "9")] public void ProcessAadBytes(byte[] inBytes, int inOff, int len) { this.CheckStatus(); if (len > 0) { int num = 0; byte[] array = this.atBlock; int num2 = this.atBlockPos; int num3 = this.atBlockPos; num3++; this.atBlockPos = num3; if (num3 == 16) { byte[] array2 = this.atBlock; byte[] s_at = this.S_at; this.gHASHBlock(s_at, array2); this.atBlockPos = num; } num3 = inOff - inOff; } } // Token: 0x0600B837 RID: 47159 RVA: 0x0027DE60 File Offset: 0x0027C060 [Token(Token = "0x600B837")] [Address(RVA = "0x22D8760", Offset = "0x22D7760", VA = "0x1822D8760")] private void InitCipher() { if (this.atLength > (ulong)0L) { byte[] s_atPre = this.S_atPre; int num = 0; byte[] s_at = this.S_at; int num2 = 0; ulong num3; Array.Copy(s_at, num2, s_atPre, num, (int)num3); ulong num4 = this.atLength; this.atLengthPre = num4; } int num5 = this.atBlockPos; if (num5 > 0) { byte[] array = this.atBlock; int num6 = 0; byte[] s_atPre2 = this.S_atPre; this.gHASHPartial(s_atPre2, array, num6, num5); } if (this.atLengthPre != (ulong)0L) { byte[] s = this.S; int num7 = 0; byte[] s_atPre3 = this.S_atPre; int num8 = 0; ulong num9; Array.Copy(s_atPre3, num8, s, num7, (int)num9); } } // Token: 0x0600B838 RID: 47160 RVA: 0x0027DF04 File Offset: 0x0027C104 [Token(Token = "0x600B838")] [Address(RVA = "0x22D9300", Offset = "0x22D8300", VA = "0x1822D9300", Slot = "10")] public int ProcessByte(byte input, byte[] output, int outOff) { this.CheckStatus(); byte[] array = this.bufBlock; int num = this.bufOff; int num2 = this.bufOff; byte[] array2 = this.bufBlock; num2++; this.bufOff = num2; if (num2 != array2.Length) { return 0; } int num3 = 0; int num4 = 0; this.ProcessBlock(array2, num4, output, outOff); int num7; if ((this.forEncryption ? 1 : 0) == num3) { byte[] array3 = this.bufBlock; int num5 = this.macSize; int num6 = 0; Array.Copy(array3, 16, array3, num6, num5); num7 = this.macSize; } this.bufOff = num7; throw new NullReferenceException(); } // Token: 0x0600B839 RID: 47161 RVA: 0x0027DF9C File Offset: 0x0027C19C [Token(Token = "0x600B839")] [Address(RVA = "0x22D93E0", Offset = "0x22D83E0", VA = "0x1822D93E0", Slot = "11")] public int ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff) { this.CheckStatus(); Check.DataLength(input, inOff, inOff, "input buffer too short"); int num = 0; if ((this.forEncryption ? 1 : 0) == num) { if (len <= 0) { return num; } byte[] array = this.bufBlock; int num2 = this.bufOff; int num3 = this.bufOff; byte[] array2 = this.bufBlock; num3++; this.bufOff = num3; if (num3 == array2.Length) { byte[] array3 = this.bufBlock; int num4 = 0; int num5 = this.macSize; Array.Copy(array3, 16, array3, num4, num5); int num6 = this.macSize; num += 16; this.bufOff = num6; } num3 = inOff - inOff; } if (this.bufOff != 0 && len > 0) { byte[] array4 = this.bufBlock; int num7 = this.bufOff; num7++; this.bufOff = num7; if (num7 == 16) { this.bufOff = num; throw new NullReferenceException(); } } num += 16; while (len != 16) { } if (len > 0) { byte[] array5 = this.bufBlock; int num8 = 0; Array.Copy(input, inOff, array5, num8, len); this.bufOff = len; } return num; } // Token: 0x0600B83A RID: 47162 RVA: 0x0027E0B4 File Offset: 0x0027C2B4 [Token(Token = "0x600B83A")] [Address(RVA = "0x22D7F30", Offset = "0x22D6F30", VA = "0x1822D7F30", Slot = "12")] public int DoFinal(byte[] output, int outOff) { /* An exception occurred when decompiling this method (0600B83A) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.GcmBlockCipher::DoFinal(System.Byte[],System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_2BD: stloc:InvalidCipherTextException(var_50_2C7, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("mac check in GCM failed"))) } 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: 0x0600B83B RID: 47163 RVA: 0x0027E38C File Offset: 0x0027C58C [Token(Token = "0x600B83B")] [Address(RVA = "0x22D97F0", Offset = "0x22D87F0", VA = "0x1822D97F0", Slot = "16")] public void Reset() { this.Reset(true); } // Token: 0x0600B83C RID: 47164 RVA: 0x0027E3A0 File Offset: 0x0027C5A0 [Token(Token = "0x600B83C")] [Address(RVA = "0x22D9800", Offset = "0x22D8800", VA = "0x1822D9800")] private void Reset(bool clearMac) { IBlockCipher blockCipher = this.cipher; byte[] array = new byte[16]; this.S = array; byte[] array2 = new byte[16]; this.S_at = array2; byte[] array3 = new byte[16]; this.S_atPre = array3; byte[] array4 = new byte[16]; byte[] j = this.J0; int num = 0; this.atBlockPos = num; this.atLength = (ulong)num; this.atLengthPre = (ulong)num; this.atBlock = array4; byte[] array5 = Arrays.Clone(j); byte[] array6 = this.bufBlock; this.counter = array5; this.blocksRemaining = (uint)((ulong)4294967294L); this.bufOff = num; this.totalLength = (ulong)num; if (array6 != 0) { int num2 = 0; Arrays.Fill(array6, (byte)num2); } if (clearMac) { this.macBlock = num; } if ((this.forEncryption ? 1 : 0) == num) { byte[] array7 = this.initialAssociatedText; if (array7 != 0) { int length = array7.Length; int num3 = 0; this.ProcessAadBytes(array7, num3, length); } return; } } // Token: 0x0600B83D RID: 47165 RVA: 0x0027E4A4 File Offset: 0x0027C6A4 [Token(Token = "0x600B83D")] [Address(RVA = "0x22D9120", Offset = "0x22D8120", VA = "0x1822D9120")] private void ProcessBlock(byte[] buf, int bufOff, byte[] output, int outOff) { if (this.totalLength == (ulong)0L) { this.InitCipher(); } byte[] array = this.ctrBlock; this.GetNextCtrBlock(array); if (!this.forEncryption) { GcmUtilities.Xor(this.S, buf, bufOff); IGcmMultiplier gcmMultiplier = this.multiplier; byte[] array2 = this.ctrBlock; } GcmUtilities.Xor(this.ctrBlock, buf, bufOff); byte[] array3 = this.ctrBlock; byte[] s = this.S; this.gHASHBlock(s, array3); byte[] array4 = this.ctrBlock; } // Token: 0x0600B83E RID: 47166 RVA: 0x0027E52C File Offset: 0x0027C72C [Token(Token = "0x600B83E")] [Address(RVA = "0x22D96B0", Offset = "0x22D86B0", VA = "0x1822D96B0")] private void ProcessPartial(byte[] buf, int off, int len, byte[] output, int outOff) { byte[] array = this.ctrBlock; this.GetNextCtrBlock(array); if (!this.forEncryption) { byte[] s = this.S; this.gHASHPartial(s, buf, len, len); byte[] array2 = this.ctrBlock; int num = 0; GcmUtilities.Xor(buf, off, array2, num, len); } byte[] array3 = this.ctrBlock; int num2 = 0; GcmUtilities.Xor(buf, off, array3, num2, len); byte[] s2 = this.S; this.gHASHPartial(s2, buf, off, len); } // Token: 0x0600B83F RID: 47167 RVA: 0x0027E5A8 File Offset: 0x0027C7A8 [Token(Token = "0x600B83F")] [Address(RVA = "0x22D9DC0", Offset = "0x22D8DC0", VA = "0x1822D9DC0")] private void gHASH(byte[] Y, byte[] b, int len) { int num = 0; if (len > 0) { int num2 = Math.Min(len, 16); this.gHASHPartial(Y, b, num, num2); num += 16; } } // Token: 0x0600B840 RID: 47168 RVA: 0x0027E5D4 File Offset: 0x0027C7D4 [Token(Token = "0x600B840")] [Address(RVA = "0x22D9C70", Offset = "0x22D8C70", VA = "0x1822D9C70")] private void gHASHBlock(byte[] Y, byte[] b) { GcmUtilities.Xor(Y, b); IGcmMultiplier gcmMultiplier = this.multiplier; throw new NullReferenceException(); } // Token: 0x0600B841 RID: 47169 RVA: 0x0027E5F4 File Offset: 0x0027C7F4 [Token(Token = "0x600B841")] [Address(RVA = "0x22D9BC0", Offset = "0x22D8BC0", VA = "0x1822D9BC0")] private void gHASHBlock(byte[] Y, byte[] b, int off) { GcmUtilities.Xor(Y, b, off); IGcmMultiplier gcmMultiplier = this.multiplier; throw new NullReferenceException(); } // Token: 0x0600B842 RID: 47170 RVA: 0x0027E618 File Offset: 0x0027C818 [Token(Token = "0x600B842")] [Address(RVA = "0x22D9D10", Offset = "0x22D8D10", VA = "0x1822D9D10")] private void gHASHPartial(byte[] Y, byte[] b, int off, int len) { IGcmMultiplier gcmMultiplier = this.multiplier; throw new NullReferenceException(); } // Token: 0x0600B843 RID: 47171 RVA: 0x0027E634 File Offset: 0x0027C834 [Token(Token = "0x600B843")] [Address(RVA = "0x22D8550", Offset = "0x22D7550", VA = "0x1822D8550")] private void GetNextCtrBlock(byte[] block) { /* An exception occurred when decompiling this method (0600B843) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.GcmBlockCipher::GetNextCtrBlock(System.Byte[]) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_9E: stloc:InvalidOperationException(var_11_A8, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("Attempt to process too many blocks"))) } 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: 0x0600B844 RID: 47172 RVA: 0x0027E6EC File Offset: 0x0027C8EC [Token(Token = "0x600B844")] [Address(RVA = "0x22D7E90", Offset = "0x22D6E90", VA = "0x1822D7E90")] private void CheckStatus() { /* An exception occurred when decompiling this method (0600B844) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.GcmBlockCipher::CheckStatus() ---> System.Exception: Basic block has to end with unconditional control flow. { IL_13: stloc:InvalidOperationException(var_0_1D, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("GCM cipher cannot be reused for encryption"))) } 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: 0x0400742E RID: 29742 [Token(Token = "0x400742E")] private const int BlockSize = 16; // Token: 0x0400742F RID: 29743 [FieldOffset(Offset = "0x10")] [Token(Token = "0x400742F")] private byte[] ctrBlock; // Token: 0x04007430 RID: 29744 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4007430")] private readonly IBlockCipher cipher; // Token: 0x04007431 RID: 29745 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4007431")] private readonly IGcmMultiplier multiplier; // Token: 0x04007432 RID: 29746 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4007432")] private IGcmExponentiator exp; // Token: 0x04007433 RID: 29747 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4007433")] private bool forEncryption; // Token: 0x04007434 RID: 29748 [FieldOffset(Offset = "0x31")] [Token(Token = "0x4007434")] private bool initialised; // Token: 0x04007435 RID: 29749 [FieldOffset(Offset = "0x34")] [Token(Token = "0x4007435")] private int macSize; // Token: 0x04007436 RID: 29750 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4007436")] private byte[] lastKey; // Token: 0x04007437 RID: 29751 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4007437")] private byte[] nonce; // Token: 0x04007438 RID: 29752 [FieldOffset(Offset = "0x48")] [Token(Token = "0x4007438")] private byte[] initialAssociatedText; // Token: 0x04007439 RID: 29753 [FieldOffset(Offset = "0x50")] [Token(Token = "0x4007439")] private byte[] H; // Token: 0x0400743A RID: 29754 [FieldOffset(Offset = "0x58")] [Token(Token = "0x400743A")] private byte[] J0; // Token: 0x0400743B RID: 29755 [FieldOffset(Offset = "0x60")] [Token(Token = "0x400743B")] private byte[] bufBlock; // Token: 0x0400743C RID: 29756 [FieldOffset(Offset = "0x68")] [Token(Token = "0x400743C")] private byte[] macBlock; // Token: 0x0400743D RID: 29757 [FieldOffset(Offset = "0x70")] [Token(Token = "0x400743D")] private byte[] S; // Token: 0x0400743E RID: 29758 [FieldOffset(Offset = "0x78")] [Token(Token = "0x400743E")] private byte[] S_at; // Token: 0x0400743F RID: 29759 [FieldOffset(Offset = "0x80")] [Token(Token = "0x400743F")] private byte[] S_atPre; // Token: 0x04007440 RID: 29760 [FieldOffset(Offset = "0x88")] [Token(Token = "0x4007440")] private byte[] counter; // Token: 0x04007441 RID: 29761 [FieldOffset(Offset = "0x90")] [Token(Token = "0x4007441")] private uint blocksRemaining; // Token: 0x04007442 RID: 29762 [FieldOffset(Offset = "0x94")] [Token(Token = "0x4007442")] private int bufOff; // Token: 0x04007443 RID: 29763 [FieldOffset(Offset = "0x98")] [Token(Token = "0x4007443")] private ulong totalLength; // Token: 0x04007444 RID: 29764 [FieldOffset(Offset = "0xA0")] [Token(Token = "0x4007444")] private byte[] atBlock; // Token: 0x04007445 RID: 29765 [FieldOffset(Offset = "0xA8")] [Token(Token = "0x4007445")] private int atBlockPos; // Token: 0x04007446 RID: 29766 [FieldOffset(Offset = "0xB0")] [Token(Token = "0x4007446")] private ulong atLength; // Token: 0x04007447 RID: 29767 [FieldOffset(Offset = "0xB8")] [Token(Token = "0x4007447")] private ulong atLengthPre; } }