using System; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Paddings; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs { // Token: 0x02001C4A RID: 7242 [Token(Token = "0x2001C4A")] public class CbcBlockCipherMac : IMac { // Token: 0x0600B529 RID: 46377 RVA: 0x00278CD0 File Offset: 0x00276ED0 [Token(Token = "0x600B529")] [Address(RVA = "0x1C1B230", Offset = "0x1C1A030", VA = "0x181C1B230")] public CbcBlockCipherMac(IBlockCipher cipher) { } // Token: 0x0600B52A RID: 46378 RVA: 0x00278CE4 File Offset: 0x00276EE4 [Token(Token = "0x600B52A")] [Address(RVA = "0x1C1B180", Offset = "0x1C19F80", VA = "0x181C1B180")] public CbcBlockCipherMac(IBlockCipher cipher, IBlockCipherPadding padding) { } // Token: 0x0600B52B RID: 46379 RVA: 0x00278CF8 File Offset: 0x00276EF8 [Token(Token = "0x600B52B")] [Address(RVA = "0x1C1B210", Offset = "0x1C1A010", VA = "0x181C1B210")] public CbcBlockCipherMac(IBlockCipher cipher, int macSizeInBits) { } // Token: 0x0600B52C RID: 46380 RVA: 0x00278D08 File Offset: 0x00276F08 [Token(Token = "0x600B52C")] [Address(RVA = "0x1C1B070", Offset = "0x1C19E70", VA = "0x181C1B070")] public CbcBlockCipherMac(IBlockCipher cipher, int macSizeInBits, IBlockCipherPadding padding) { /* An exception occurred when decompiling this method (0600B52C) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs.CbcBlockCipherMac::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IBlockCipher,System.Int32,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Paddings.IBlockCipherPadding) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_40: stloc:ArgumentException(var_3_4A, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("MAC size must be multiple of 8"))) } 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: 0x17001C8A RID: 7306 // (get) Token: 0x0600B52D RID: 46381 RVA: 0x00278D60 File Offset: 0x00276F60 [Token(Token = "0x17001C8A")] public string AlgorithmName { [Token(Token = "0x600B52D")] [Address(RVA = "0x1C1B2B0", Offset = "0x1C1A0B0", VA = "0x181C1B2B0", Slot = "5")] get { IBlockCipher blockCipher = this.cipher; throw new NullReferenceException(); } } // Token: 0x0600B52E RID: 46382 RVA: 0x00278D7C File Offset: 0x00276F7C [Token(Token = "0x600B52E")] [Address(RVA = "0x1C1AE90", Offset = "0x1C19C90", VA = "0x181C1AE90", Slot = "4")] public void Init(ICipherParameters parameters) { byte[] array = this.buf; int length = array.Length; int num = 0; Array.Clear(array, num, length); IBlockCipher blockCipher = this.cipher; this.bufOff = (int)((ulong)0L); IBlockCipher blockCipher2 = this.cipher; } // Token: 0x0600B52F RID: 46383 RVA: 0x00278DC0 File Offset: 0x00276FC0 [Token(Token = "0x600B52F")] [Address(RVA = "0x4730E0", Offset = "0x471EE0", VA = "0x1804730E0", Slot = "6")] public int GetMacSize() { return this.macSize; } // Token: 0x0600B530 RID: 46384 RVA: 0x00278DD4 File Offset: 0x00276FD4 [Token(Token = "0x600B530")] [Address(RVA = "0x1C1AFC0", Offset = "0x1C19DC0", VA = "0x181C1AFC0", Slot = "7")] public void Update(byte input) { byte[] array = this.buf; int num = this.bufOff; if (num == array.Length) { IBlockCipher blockCipher = this.cipher; } int num2 = num + 1; this.bufOff = num2; } // Token: 0x0600B531 RID: 46385 RVA: 0x00278E18 File Offset: 0x00277018 [Token(Token = "0x600B531")] [Address(RVA = "0x1C1AAC0", Offset = "0x1C198C0", VA = "0x181C1AAC0", Slot = "8")] public void BlockUpdate(byte[] input, int inOff, int len) { IBlockCipher blockCipher = this.cipher; int num = this.bufOff; int num2 = 0; IBlockCipher blockCipher2 = this.cipher; byte[] array = this.buf; this.bufOff = num2; IBlockCipher blockCipher3 = this.cipher; if (num2 < blockCipher2) { num2 += num2; num2++; } byte[] array2 = this.buf; Array.Copy(input, inOff, array2, num, len); } // Token: 0x0600B532 RID: 46386 RVA: 0x00278E80 File Offset: 0x00277080 [Token(Token = "0x600B532")] [Address(RVA = "0x1C1ACC0", Offset = "0x1C19AC0", VA = "0x181C1ACC0", Slot = "9")] public int DoFinal(byte[] output, int outOff) { IBlockCipher blockCipher = this.cipher; int num = 0; IBlockCipherPadding blockCipherPadding = this.padding; int i = this.bufOff; if (blockCipherPadding != 0) { if (i == blockCipher) { IBlockCipher blockCipher2 = this.cipher; byte[] array = this.buf; this.bufOff = num; } IBlockCipher blockCipher3 = this.cipher; byte[] array2 = this.buf; int num2 = this.macSize; byte[] array3 = this.buf; int num3 = 0; Array.Copy(array3, num3, output, outOff, num2); byte[] array4 = this.buf; int length = array4.Length; int num4 = 0; Array.Clear(array4, num4, length); IBlockCipher blockCipher4 = this.cipher; this.bufOff = num; return this.macSize; } while (i >= blockCipher) { } byte[] array5 = this.buf; int num5 = i + 1; this.bufOff = num5; int num6 = this.bufOff; throw new NullReferenceException(); } // Token: 0x0600B533 RID: 46387 RVA: 0x00278F54 File Offset: 0x00277154 [Token(Token = "0x600B533")] [Address(RVA = "0x1C1AF50", Offset = "0x1C19D50", VA = "0x181C1AF50", Slot = "10")] public void Reset() { byte[] array = this.buf; int length = array.Length; int num = 0; Array.Clear(array, num, length); IBlockCipher blockCipher = this.cipher; this.bufOff = (int)((ulong)0L); throw new NullReferenceException(); } // Token: 0x040072F0 RID: 29424 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40072F0")] private byte[] buf; // Token: 0x040072F1 RID: 29425 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40072F1")] private int bufOff; // Token: 0x040072F2 RID: 29426 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40072F2")] private IBlockCipher cipher; // Token: 0x040072F3 RID: 29427 [FieldOffset(Offset = "0x28")] [Token(Token = "0x40072F3")] private IBlockCipherPadding padding; // Token: 0x040072F4 RID: 29428 [FieldOffset(Offset = "0x30")] [Token(Token = "0x40072F4")] private int macSize; } }