Files
2026-04-08 23:40:05 +02:00

633 lines
25 KiB
C#

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;
}
}