using System; using System.Collections; using System.Runtime.InteropServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes { // Token: 0x02001660 RID: 5728 [Token(Token = "0x2001660")] [StructLayout(3)] public class OcbBlockCipher : IAeadBlockCipher { // Token: 0x060098D8 RID: 39128 RVA: 0x0021EFF4 File Offset: 0x0021D1F4 [Token(Token = "0x60098D8")] [Address(RVA = "0x20F75B0", Offset = "0x20F5FB0", VA = "0x1820F75B0")] public OcbBlockCipher(IBlockCipher hashCipher, IBlockCipher mainCipher) { /* An exception occurred when decompiling this method (060098D8) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.OcbBlockCipher::.ctor(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IBlockCipher,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IBlockCipher) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_68: stloc:ArgumentException(var_5_72, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("'hashCipher' and 'mainCipher' must be the same algorithm"))) } 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: 0x060098D9 RID: 39129 RVA: 0x0021F074 File Offset: 0x0021D274 [Token(Token = "0x60098D9")] [Address(RVA = "0x3C1240", Offset = "0x3BFC40", VA = "0x1803C1240", Slot = "17")] public virtual IBlockCipher GetUnderlyingCipher() { return this.mainCipher; } // Token: 0x17001881 RID: 6273 // (get) Token: 0x060098DA RID: 39130 RVA: 0x0021F088 File Offset: 0x0021D288 [Token(Token = "0x17001881")] public virtual string AlgorithmName { [Token(Token = "0x60098DA")] [Address(RVA = "0x20F7840", Offset = "0x20F6240", VA = "0x1820F7840", Slot = "18")] get { IBlockCipher blockCipher = this.mainCipher; return 0 + "/OCB"; } } // Token: 0x060098DB RID: 39131 RVA: 0x0021F0B0 File Offset: 0x0021D2B0 [Token(Token = "0x60098DB")] [Address(RVA = "0x20F6150", Offset = "0x20F4B50", VA = "0x1820F6150", Slot = "19")] public virtual void Init(bool forEncryption, ICipherParameters parameters) { /* An exception occurred when decompiling this method (060098DB) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.OcbBlockCipher::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_1DF: stloc:ArgumentException(var_42_1E9, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("cannot change encrypting state without providing key."))) } 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: 0x060098DC RID: 39132 RVA: 0x0021F2A8 File Offset: 0x0021D4A8 [Token(Token = "0x60098DC")] [Address(RVA = "0x20F6F50", Offset = "0x20F5950", VA = "0x1820F6F50", Slot = "20")] protected virtual int ProcessNonce(byte[] N) { byte[] array = new byte[16]; int length = N.Length; int num = 0; int num2 = array.Length; num2 -= length; int num3 = 0; Array.Copy(N, num3, array, num2, length); int num4 = this.macSize; array[0] = (byte)num4; byte b = array[1]; array[1] = b; byte[] ktopInput = this.KtopInput; if (ktopInput == 0 || !Arrays.AreEqual(array, ktopInput)) { byte[] array2 = new byte[16]; IBlockCipher blockCipher = this.hashCipher; this.KtopInput = array; byte[] stretch = this.Stretch; int num5 = 0; int num6 = 0; ulong num7; Array.Copy(array2, num6, stretch, num5, (int)num7); int length2 = array2.Length; byte[] stretch2 = this.Stretch; num++; } throw new NullReferenceException(); } // Token: 0x060098DD RID: 39133 RVA: 0x0021F370 File Offset: 0x0021D570 [Token(Token = "0x60098DD")] [Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "21")] public virtual int GetBlockSize() { return 16; } // Token: 0x060098DE RID: 39134 RVA: 0x0021F380 File Offset: 0x0021D580 [Token(Token = "0x60098DE")] [Address(RVA = "0x20F6070", Offset = "0x20F4A70", VA = "0x1820F6070", Slot = "22")] public virtual byte[] GetMac() { byte[] array = this.macBlock; if (array == 0) { } return Arrays.Clone(array); } // Token: 0x060098DF RID: 39135 RVA: 0x0021F3A0 File Offset: 0x0021D5A0 [Token(Token = "0x60098DF")] [Address(RVA = "0x20F60F0", Offset = "0x20F4AF0", VA = "0x1820F60F0", Slot = "23")] public virtual int GetOutputSize(int len) { int num = this.mainBlockPos; int num2 = this.macSize; num += len; if (this.forEncryption) { return num2 + num; } if (num < num2) { return 0; } return num - num2; } // Token: 0x060098E0 RID: 39136 RVA: 0x0021F3DC File Offset: 0x0021D5DC [Token(Token = "0x60098E0")] [Address(RVA = "0x20F6120", Offset = "0x20F4B20", VA = "0x1820F6120", Slot = "24")] public virtual int GetUpdateOutputSize(int len) { int num = this.mainBlockPos; num += len; int num2; if (!this.forEncryption) { num2 = this.macSize; num -= num2; } if (num < num2) { num++; } return num - num; } // Token: 0x060098E1 RID: 39137 RVA: 0x0021F418 File Offset: 0x0021D618 [Token(Token = "0x60098E1")] [Address(RVA = "0x20F6960", Offset = "0x20F5360", VA = "0x1820F6960", Slot = "25")] public virtual void ProcessAadByte(byte input) { byte[] array = this.hashBlock; int num = this.hashBlockPos; int num2 = this.hashBlockPos; byte[] array2 = this.hashBlock; num2++; this.hashBlockPos = num2; if (num2 == array2.Length) { string algorithmName = ((IAeadBlockCipher)this).AlgorithmName; return; } } // Token: 0x060098E2 RID: 39138 RVA: 0x0021F464 File Offset: 0x0021D664 [Token(Token = "0x60098E2")] [Address(RVA = "0x20F69D0", Offset = "0x20F53D0", VA = "0x1820F69D0", Slot = "26")] public virtual void ProcessAadBytes(byte[] input, int off, int len) { if (len > 0) { byte[] array = this.hashBlock; int num = this.hashBlockPos; int num2 = this.hashBlockPos; byte[] array2 = this.hashBlock; num2++; this.hashBlockPos = num2; if (num2 == array2.Length) { } num2 = off - off; } } // Token: 0x060098E3 RID: 39139 RVA: 0x0021F4B4 File Offset: 0x0021D6B4 [Token(Token = "0x60098E3")] [Address(RVA = "0x20F6AB0", Offset = "0x20F54B0", VA = "0x1820F6AB0", Slot = "27")] public virtual int ProcessByte(byte input, byte[] output, int outOff) { byte[] array = this.mainBlock; int num = this.mainBlockPos; int num2 = this.mainBlockPos; byte[] array2 = this.mainBlock; num2++; this.mainBlockPos = num2; if (num2 != array2.Length) { return 0; } this.ProcessHashBlock(); return 16; } // Token: 0x060098E4 RID: 39140 RVA: 0x0021F504 File Offset: 0x0021D704 [Token(Token = "0x60098E4")] [Address(RVA = "0x20F6B30", Offset = "0x20F5530", VA = "0x1820F6B30", Slot = "28")] public virtual int ProcessBytes(byte[] input, int inOff, int len, byte[] output, int outOff) { int num = 0; if (len > 0) { byte[] array = this.mainBlock; int num2 = this.mainBlockPos; int num3 = this.mainBlockPos; byte[] array2 = this.mainBlock; num3++; this.mainBlockPos = num3; if (num3 == array2.Length) { this.ProcessHashBlock(); num += 16; } num3 = inOff - inOff; } return num; } // Token: 0x060098E5 RID: 39141 RVA: 0x0021F56C File Offset: 0x0021D76C [Token(Token = "0x60098E5")] [Address(RVA = "0x20F58F0", Offset = "0x20F42F0", VA = "0x1820F58F0", Slot = "29")] public virtual int DoFinal(byte[] output, int outOff) { /* An exception occurred when decompiling this method (060098E5) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.OcbBlockCipher::DoFinal(System.Byte[],System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { IL_205: stloc:InvalidCipherTextException(var_40_20F, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("mac check in OCB 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: 0x060098E6 RID: 39142 RVA: 0x0021F78C File Offset: 0x0021D98C [Token(Token = "0x60098E6")] [Address(RVA = "0x20F7300", Offset = "0x20F5D00", VA = "0x1820F7300", Slot = "30")] public virtual void Reset() { string algorithmName = ((IAeadBlockCipher)this).AlgorithmName; } // Token: 0x060098E7 RID: 39143 RVA: 0x0021F7A0 File Offset: 0x0021D9A0 [Token(Token = "0x60098E7")] [Address(RVA = "0x20F58D0", Offset = "0x20F42D0", VA = "0x1820F58D0", Slot = "31")] protected virtual void Clear(byte[] bs) { if (bs != 0) { int length = bs.Length; int num = 0; Array.Clear(bs, num, length); return; } } // Token: 0x060098E8 RID: 39144 RVA: 0x0021F7C4 File Offset: 0x0021D9C4 [Token(Token = "0x60098E8")] [Address(RVA = "0x20F5D70", Offset = "0x20F4770", VA = "0x1820F5D70", Slot = "32")] protected virtual byte[] GetLSub(int n) { int num; int num4; do { IList l = this.L; num = 0; num += num; num++; IList l2 = this.L; uint num2; if (num < (int)num2) { num += num; num++; } uint num3; if (num < (int)num3) { num += num; num++; } num4 = 0; if (num == 0) { num++; num += 19; num++; num += 19; num += 19; } } while (num == 0); if (num < num4) { num += num; num++; } IList l3 = this.L; byte[] array; array += array; byte b; return b; } // Token: 0x060098E9 RID: 39145 RVA: 0x0021F844 File Offset: 0x0021DA44 [Token(Token = "0x60098E9")] [Address(RVA = "0x20F6C30", Offset = "0x20F5630", VA = "0x1820F6C30", Slot = "33")] protected virtual void ProcessHashBlock() { long num = this.hashBlockCount; this.hashBlockCount = num; int num2 = 0; num2++; this.hashBlockPos = (int)((ulong)0L); } // Token: 0x060098EA RID: 39146 RVA: 0x0021F870 File Offset: 0x0021DA70 [Token(Token = "0x60098EA")] [Address(RVA = "0x20F6CA0", Offset = "0x20F56A0", VA = "0x1820F6CA0", Slot = "34")] protected virtual void ProcessMainBlock(byte[] output, int outOff) { int num = 0; Check.DataLength(output, outOff, 16, "Output buffer too short"); if ((this.forEncryption ? 1 : 0) != num) { byte[] array = this.mainBlock; OcbBlockCipher.Xor(this.Checksum, array); this.mainBlockPos = num; } long num2 = this.mainBlockCount; byte[] offsetMAIN = this.OffsetMAIN; this.mainBlockCount = num2; if ((this.forEncryption ? 1 : 0) != num) { num++; } byte[] array2 = this.mainBlock; byte[] offsetMAIN2 = this.OffsetMAIN; IBlockCipher blockCipher = this.mainCipher; byte[] array3 = this.mainBlock; byte[] array4 = this.mainBlock; byte[] offsetMAIN3 = this.OffsetMAIN; byte[] array5 = this.mainBlock; int num3 = 0; ulong num4; Array.Copy(array5, num3, output, outOff, (int)num4); if ((this.forEncryption ? 1 : 0) == num) { byte[] array6 = this.mainBlock; OcbBlockCipher.Xor(this.Checksum, array6); byte[] array7 = this.mainBlock; int num5 = 0; int num6 = this.macSize; Array.Copy(array7, 16, array7, num5, num6); int num7 = this.macSize; this.mainBlockPos = num7; } } // Token: 0x060098EB RID: 39147 RVA: 0x0021F970 File Offset: 0x0021DB70 [Token(Token = "0x60098EB")] [Address(RVA = "0x20F7190", Offset = "0x20F5B90", VA = "0x1820F7190", Slot = "35")] protected virtual void Reset(bool clearMac) { IBlockCipher blockCipher = this.hashCipher; IBlockCipher blockCipher2 = this.mainCipher; this.Reset(); this.Reset(); int num = 0; this.hashBlockPos = num; this.hashBlockCount = (long)num; this.mainBlockCount = (long)num; this.Reset(); this.Reset(); byte[] offsetMAIN = this.OffsetMAIN; int num2 = 0; byte[] offsetMAIN_ = this.OffsetMAIN_0; int num3 = 0; ulong num4; Array.Copy(offsetMAIN_, num3, offsetMAIN, num2, (int)num4); this.Reset(); if (clearMac) { this.macBlock = num; } byte[] array = this.initialAssociatedText; if (array != 0) { this.ProcessAadByte(array); } } // Token: 0x060098EC RID: 39148 RVA: 0x0021FA0C File Offset: 0x0021DC0C [Token(Token = "0x60098EC")] [Address(RVA = "0x20F73A0", Offset = "0x20F5DA0", VA = "0x1820F73A0", Slot = "36")] protected virtual void UpdateHASH(byte[] LSub) { byte[] offsetHASH = this.OffsetHASH; byte[] offsetHASH2 = this.OffsetHASH; byte[] array = this.hashBlock; IBlockCipher blockCipher = this.hashCipher; byte[] array2 = this.hashBlock; byte[] sum = this.Sum; byte[] array3 = this.hashBlock; } // Token: 0x060098ED RID: 39149 RVA: 0x0021FA58 File Offset: 0x0021DC58 [Token(Token = "0x60098ED")] [Address(RVA = "0x20F67D0", Offset = "0x20F51D0", VA = "0x1820F67D0")] protected static byte[] OCB_double(byte[] block) { byte[] array = new byte[16]; byte b; b += b; uint num; num -= (uint)b; return array; } // Token: 0x060098EE RID: 39150 RVA: 0x0021FA7C File Offset: 0x0021DC7C [Token(Token = "0x60098EE")] [Address(RVA = "0x20F68C0", Offset = "0x20F52C0", VA = "0x1820F68C0")] protected static void OCB_extend(byte[] block, int pos) { int num = pos + 1; if (num < 16) { num++; } } // Token: 0x060098EF RID: 39151 RVA: 0x0021FA9C File Offset: 0x0021DC9C [Token(Token = "0x60098EF")] [Address(RVA = "0x20F6930", Offset = "0x20F5330", VA = "0x1820F6930")] protected static int OCB_ntz(long x) { int num = 0; return num + 1; } // Token: 0x060098F0 RID: 39152 RVA: 0x0021FAB4 File Offset: 0x0021DCB4 [Token(Token = "0x60098F0")] [Address(RVA = "0x20F7320", Offset = "0x20F5D20", VA = "0x1820F7320")] protected static int ShiftLeft(byte[] block, byte[] output) { byte b; b += b; throw new NullReferenceException(); } // Token: 0x060098F1 RID: 39153 RVA: 0x0021FACC File Offset: 0x0021DCCC [Token(Token = "0x60098F1")] [Address(RVA = "0x20F7540", Offset = "0x20F5F40", VA = "0x1820F7540")] protected static void Xor(byte[] block, byte[] val) { } // Token: 0x0400646F RID: 25711 [Token(Token = "0x400646F")] private const int BLOCK_SIZE = 16; // Token: 0x04006470 RID: 25712 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4006470")] private readonly IBlockCipher hashCipher; // Token: 0x04006471 RID: 25713 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4006471")] private readonly IBlockCipher mainCipher; // Token: 0x04006472 RID: 25714 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4006472")] private bool forEncryption; // Token: 0x04006473 RID: 25715 [global::Cpp2IlInjected.FieldOffset(Offset = "0x24")] [Token(Token = "0x4006473")] private int macSize; // Token: 0x04006474 RID: 25716 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x4006474")] private byte[] initialAssociatedText; // Token: 0x04006475 RID: 25717 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x4006475")] private IList L; // Token: 0x04006476 RID: 25718 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x4006476")] private byte[] L_Asterisk; // Token: 0x04006477 RID: 25719 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x4006477")] private byte[] L_Dollar; // Token: 0x04006478 RID: 25720 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x4006478")] private byte[] KtopInput; // Token: 0x04006479 RID: 25721 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x4006479")] private byte[] Stretch; // Token: 0x0400647A RID: 25722 [global::Cpp2IlInjected.FieldOffset(Offset = "0x58")] [Token(Token = "0x400647A")] private byte[] OffsetMAIN_0; // Token: 0x0400647B RID: 25723 [global::Cpp2IlInjected.FieldOffset(Offset = "0x60")] [Token(Token = "0x400647B")] private byte[] hashBlock; // Token: 0x0400647C RID: 25724 [global::Cpp2IlInjected.FieldOffset(Offset = "0x68")] [Token(Token = "0x400647C")] private byte[] mainBlock; // Token: 0x0400647D RID: 25725 [global::Cpp2IlInjected.FieldOffset(Offset = "0x70")] [Token(Token = "0x400647D")] private int hashBlockPos; // Token: 0x0400647E RID: 25726 [global::Cpp2IlInjected.FieldOffset(Offset = "0x74")] [Token(Token = "0x400647E")] private int mainBlockPos; // Token: 0x0400647F RID: 25727 [global::Cpp2IlInjected.FieldOffset(Offset = "0x78")] [Token(Token = "0x400647F")] private long hashBlockCount; // Token: 0x04006480 RID: 25728 [global::Cpp2IlInjected.FieldOffset(Offset = "0x80")] [Token(Token = "0x4006480")] private long mainBlockCount; // Token: 0x04006481 RID: 25729 [global::Cpp2IlInjected.FieldOffset(Offset = "0x88")] [Token(Token = "0x4006481")] private byte[] OffsetHASH; // Token: 0x04006482 RID: 25730 [global::Cpp2IlInjected.FieldOffset(Offset = "0x90")] [Token(Token = "0x4006482")] private byte[] Sum; // Token: 0x04006483 RID: 25731 [global::Cpp2IlInjected.FieldOffset(Offset = "0x98")] [Token(Token = "0x4006483")] private byte[] OffsetMAIN; // Token: 0x04006484 RID: 25732 [global::Cpp2IlInjected.FieldOffset(Offset = "0xA0")] [Token(Token = "0x4006484")] private byte[] Checksum; // Token: 0x04006485 RID: 25733 [global::Cpp2IlInjected.FieldOffset(Offset = "0xA8")] [Token(Token = "0x4006485")] private byte[] macBlock; } }