oh dear
This commit is contained in:
+630
@@ -0,0 +1,630 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
||||
using Cpp2IlInjected;
|
||||
|
||||
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes
|
||||
{
|
||||
// Token: 0x02001C3D RID: 7229
|
||||
[Token(Token = "0x2001C3D")]
|
||||
public class OcbBlockCipher : IAeadBlockCipher
|
||||
{
|
||||
// Token: 0x0600B4B2 RID: 46258 RVA: 0x0027660C File Offset: 0x0027480C
|
||||
[Token(Token = "0x600B4B2")]
|
||||
[Address(RVA = "0x180E450", Offset = "0x180D250", VA = "0x18180E450")]
|
||||
public OcbBlockCipher(IBlockCipher hashCipher, IBlockCipher mainCipher)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B4B2)
|
||||
|
||||
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: 0x0600B4B3 RID: 46259 RVA: 0x0027668C File Offset: 0x0027488C
|
||||
[Token(Token = "0x600B4B3")]
|
||||
[Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40", Slot = "17")]
|
||||
public virtual IBlockCipher GetUnderlyingCipher()
|
||||
{
|
||||
return this.mainCipher;
|
||||
}
|
||||
|
||||
// Token: 0x17001C82 RID: 7298
|
||||
// (get) Token: 0x0600B4B4 RID: 46260 RVA: 0x002766A0 File Offset: 0x002748A0
|
||||
[Token(Token = "0x17001C82")]
|
||||
public virtual string AlgorithmName
|
||||
{
|
||||
[Token(Token = "0x600B4B4")]
|
||||
[Address(RVA = "0x180E6E0", Offset = "0x180D4E0", VA = "0x18180E6E0", Slot = "18")]
|
||||
get
|
||||
{
|
||||
IBlockCipher blockCipher = this.mainCipher;
|
||||
return 0 + "/OCB";
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B4B5 RID: 46261 RVA: 0x002766C8 File Offset: 0x002748C8
|
||||
[Token(Token = "0x600B4B5")]
|
||||
[Address(RVA = "0x180CFF0", Offset = "0x180BDF0", VA = "0x18180CFF0", Slot = "19")]
|
||||
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B4B5)
|
||||
|
||||
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: 0x0600B4B6 RID: 46262 RVA: 0x002768C0 File Offset: 0x00274AC0
|
||||
[Token(Token = "0x600B4B6")]
|
||||
[Address(RVA = "0x180DDF0", Offset = "0x180CBF0", VA = "0x18180DDF0", 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: 0x0600B4B7 RID: 46263 RVA: 0x00276988 File Offset: 0x00274B88
|
||||
[Token(Token = "0x600B4B7")]
|
||||
[Address(RVA = "0x4B6B10", Offset = "0x4B5910", VA = "0x1804B6B10", Slot = "21")]
|
||||
public virtual int GetBlockSize()
|
||||
{
|
||||
return 16;
|
||||
}
|
||||
|
||||
// Token: 0x0600B4B8 RID: 46264 RVA: 0x00276998 File Offset: 0x00274B98
|
||||
[Token(Token = "0x600B4B8")]
|
||||
[Address(RVA = "0x180CF10", Offset = "0x180BD10", VA = "0x18180CF10", Slot = "22")]
|
||||
public virtual byte[] GetMac()
|
||||
{
|
||||
byte[] array = this.macBlock;
|
||||
if (array == 0)
|
||||
{
|
||||
}
|
||||
return Arrays.Clone(array);
|
||||
}
|
||||
|
||||
// Token: 0x0600B4B9 RID: 46265 RVA: 0x002769B8 File Offset: 0x00274BB8
|
||||
[Token(Token = "0x600B4B9")]
|
||||
[Address(RVA = "0x180CF90", Offset = "0x180BD90", VA = "0x18180CF90", 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: 0x0600B4BA RID: 46266 RVA: 0x002769F4 File Offset: 0x00274BF4
|
||||
[Token(Token = "0x600B4BA")]
|
||||
[Address(RVA = "0x180CFC0", Offset = "0x180BDC0", VA = "0x18180CFC0", 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: 0x0600B4BB RID: 46267 RVA: 0x00276A30 File Offset: 0x00274C30
|
||||
[Token(Token = "0x600B4BB")]
|
||||
[Address(RVA = "0x180D800", Offset = "0x180C600", VA = "0x18180D800", 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: 0x0600B4BC RID: 46268 RVA: 0x00276A7C File Offset: 0x00274C7C
|
||||
[Token(Token = "0x600B4BC")]
|
||||
[Address(RVA = "0x180D870", Offset = "0x180C670", VA = "0x18180D870", 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: 0x0600B4BD RID: 46269 RVA: 0x00276ACC File Offset: 0x00274CCC
|
||||
[Token(Token = "0x600B4BD")]
|
||||
[Address(RVA = "0x180D950", Offset = "0x180C750", VA = "0x18180D950", 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: 0x0600B4BE RID: 46270 RVA: 0x00276B1C File Offset: 0x00274D1C
|
||||
[Token(Token = "0x600B4BE")]
|
||||
[Address(RVA = "0x180D9D0", Offset = "0x180C7D0", VA = "0x18180D9D0", 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: 0x0600B4BF RID: 46271 RVA: 0x00276B84 File Offset: 0x00274D84
|
||||
[Token(Token = "0x600B4BF")]
|
||||
[Address(RVA = "0x180C790", Offset = "0x180B590", VA = "0x18180C790", Slot = "29")]
|
||||
public virtual int DoFinal(byte[] output, int outOff)
|
||||
{
|
||||
/*
|
||||
An exception occurred when decompiling this method (0600B4BF)
|
||||
|
||||
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: 0x0600B4C0 RID: 46272 RVA: 0x00276DA4 File Offset: 0x00274FA4
|
||||
[Token(Token = "0x600B4C0")]
|
||||
[Address(RVA = "0x180E1A0", Offset = "0x180CFA0", VA = "0x18180E1A0", Slot = "30")]
|
||||
public virtual void Reset()
|
||||
{
|
||||
string algorithmName = ((IAeadBlockCipher)this).AlgorithmName;
|
||||
}
|
||||
|
||||
// Token: 0x0600B4C1 RID: 46273 RVA: 0x00276DB8 File Offset: 0x00274FB8
|
||||
[Token(Token = "0x600B4C1")]
|
||||
[Address(RVA = "0x180C770", Offset = "0x180B570", VA = "0x18180C770", 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: 0x0600B4C2 RID: 46274 RVA: 0x00276DDC File Offset: 0x00274FDC
|
||||
[Token(Token = "0x600B4C2")]
|
||||
[Address(RVA = "0x180CC10", Offset = "0x180BA10", VA = "0x18180CC10", 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: 0x0600B4C3 RID: 46275 RVA: 0x00276E5C File Offset: 0x0027505C
|
||||
[Token(Token = "0x600B4C3")]
|
||||
[Address(RVA = "0x180DAD0", Offset = "0x180C8D0", VA = "0x18180DAD0", Slot = "33")]
|
||||
protected virtual void ProcessHashBlock()
|
||||
{
|
||||
long num = this.hashBlockCount;
|
||||
this.hashBlockCount = num;
|
||||
int num2 = 0;
|
||||
num2++;
|
||||
this.hashBlockPos = (int)((ulong)0L);
|
||||
}
|
||||
|
||||
// Token: 0x0600B4C4 RID: 46276 RVA: 0x00276E88 File Offset: 0x00275088
|
||||
[Token(Token = "0x600B4C4")]
|
||||
[Address(RVA = "0x180DB40", Offset = "0x180C940", VA = "0x18180DB40", 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: 0x0600B4C5 RID: 46277 RVA: 0x00276F88 File Offset: 0x00275188
|
||||
[Token(Token = "0x600B4C5")]
|
||||
[Address(RVA = "0x180E030", Offset = "0x180CE30", VA = "0x18180E030", 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: 0x0600B4C6 RID: 46278 RVA: 0x00277024 File Offset: 0x00275224
|
||||
[Token(Token = "0x600B4C6")]
|
||||
[Address(RVA = "0x180E240", Offset = "0x180D040", VA = "0x18180E240", 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: 0x0600B4C7 RID: 46279 RVA: 0x00277070 File Offset: 0x00275270
|
||||
[Token(Token = "0x600B4C7")]
|
||||
[Address(RVA = "0x180D670", Offset = "0x180C470", VA = "0x18180D670")]
|
||||
protected static byte[] OCB_double(byte[] block)
|
||||
{
|
||||
byte[] array = new byte[16];
|
||||
byte b;
|
||||
b += b;
|
||||
uint num;
|
||||
num -= (uint)b;
|
||||
return array;
|
||||
}
|
||||
|
||||
// Token: 0x0600B4C8 RID: 46280 RVA: 0x00277094 File Offset: 0x00275294
|
||||
[Token(Token = "0x600B4C8")]
|
||||
[Address(RVA = "0x180D760", Offset = "0x180C560", VA = "0x18180D760")]
|
||||
protected static void OCB_extend(byte[] block, int pos)
|
||||
{
|
||||
int num = pos + 1;
|
||||
if (num < 16)
|
||||
{
|
||||
num++;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600B4C9 RID: 46281 RVA: 0x002770B4 File Offset: 0x002752B4
|
||||
[Token(Token = "0x600B4C9")]
|
||||
[Address(RVA = "0x180D7D0", Offset = "0x180C5D0", VA = "0x18180D7D0")]
|
||||
protected static int OCB_ntz(long x)
|
||||
{
|
||||
int num = 0;
|
||||
return num + 1;
|
||||
}
|
||||
|
||||
// Token: 0x0600B4CA RID: 46282 RVA: 0x002770CC File Offset: 0x002752CC
|
||||
[Token(Token = "0x600B4CA")]
|
||||
[Address(RVA = "0x180E1C0", Offset = "0x180CFC0", VA = "0x18180E1C0")]
|
||||
protected static int ShiftLeft(byte[] block, byte[] output)
|
||||
{
|
||||
byte b;
|
||||
b += b;
|
||||
throw new NullReferenceException();
|
||||
}
|
||||
|
||||
// Token: 0x0600B4CB RID: 46283 RVA: 0x002770E4 File Offset: 0x002752E4
|
||||
[Token(Token = "0x600B4CB")]
|
||||
[Address(RVA = "0x180E3E0", Offset = "0x180D1E0", VA = "0x18180E3E0")]
|
||||
protected static void Xor(byte[] block, byte[] val)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x040072B2 RID: 29362
|
||||
[Token(Token = "0x40072B2")]
|
||||
private const int BLOCK_SIZE = 16;
|
||||
|
||||
// Token: 0x040072B3 RID: 29363
|
||||
[FieldOffset(Offset = "0x10")]
|
||||
[Token(Token = "0x40072B3")]
|
||||
private readonly IBlockCipher hashCipher;
|
||||
|
||||
// Token: 0x040072B4 RID: 29364
|
||||
[FieldOffset(Offset = "0x18")]
|
||||
[Token(Token = "0x40072B4")]
|
||||
private readonly IBlockCipher mainCipher;
|
||||
|
||||
// Token: 0x040072B5 RID: 29365
|
||||
[FieldOffset(Offset = "0x20")]
|
||||
[Token(Token = "0x40072B5")]
|
||||
private bool forEncryption;
|
||||
|
||||
// Token: 0x040072B6 RID: 29366
|
||||
[FieldOffset(Offset = "0x24")]
|
||||
[Token(Token = "0x40072B6")]
|
||||
private int macSize;
|
||||
|
||||
// Token: 0x040072B7 RID: 29367
|
||||
[FieldOffset(Offset = "0x28")]
|
||||
[Token(Token = "0x40072B7")]
|
||||
private byte[] initialAssociatedText;
|
||||
|
||||
// Token: 0x040072B8 RID: 29368
|
||||
[FieldOffset(Offset = "0x30")]
|
||||
[Token(Token = "0x40072B8")]
|
||||
private IList L;
|
||||
|
||||
// Token: 0x040072B9 RID: 29369
|
||||
[FieldOffset(Offset = "0x38")]
|
||||
[Token(Token = "0x40072B9")]
|
||||
private byte[] L_Asterisk;
|
||||
|
||||
// Token: 0x040072BA RID: 29370
|
||||
[FieldOffset(Offset = "0x40")]
|
||||
[Token(Token = "0x40072BA")]
|
||||
private byte[] L_Dollar;
|
||||
|
||||
// Token: 0x040072BB RID: 29371
|
||||
[FieldOffset(Offset = "0x48")]
|
||||
[Token(Token = "0x40072BB")]
|
||||
private byte[] KtopInput;
|
||||
|
||||
// Token: 0x040072BC RID: 29372
|
||||
[FieldOffset(Offset = "0x50")]
|
||||
[Token(Token = "0x40072BC")]
|
||||
private byte[] Stretch;
|
||||
|
||||
// Token: 0x040072BD RID: 29373
|
||||
[FieldOffset(Offset = "0x58")]
|
||||
[Token(Token = "0x40072BD")]
|
||||
private byte[] OffsetMAIN_0;
|
||||
|
||||
// Token: 0x040072BE RID: 29374
|
||||
[FieldOffset(Offset = "0x60")]
|
||||
[Token(Token = "0x40072BE")]
|
||||
private byte[] hashBlock;
|
||||
|
||||
// Token: 0x040072BF RID: 29375
|
||||
[FieldOffset(Offset = "0x68")]
|
||||
[Token(Token = "0x40072BF")]
|
||||
private byte[] mainBlock;
|
||||
|
||||
// Token: 0x040072C0 RID: 29376
|
||||
[FieldOffset(Offset = "0x70")]
|
||||
[Token(Token = "0x40072C0")]
|
||||
private int hashBlockPos;
|
||||
|
||||
// Token: 0x040072C1 RID: 29377
|
||||
[FieldOffset(Offset = "0x74")]
|
||||
[Token(Token = "0x40072C1")]
|
||||
private int mainBlockPos;
|
||||
|
||||
// Token: 0x040072C2 RID: 29378
|
||||
[FieldOffset(Offset = "0x78")]
|
||||
[Token(Token = "0x40072C2")]
|
||||
private long hashBlockCount;
|
||||
|
||||
// Token: 0x040072C3 RID: 29379
|
||||
[FieldOffset(Offset = "0x80")]
|
||||
[Token(Token = "0x40072C3")]
|
||||
private long mainBlockCount;
|
||||
|
||||
// Token: 0x040072C4 RID: 29380
|
||||
[FieldOffset(Offset = "0x88")]
|
||||
[Token(Token = "0x40072C4")]
|
||||
private byte[] OffsetHASH;
|
||||
|
||||
// Token: 0x040072C5 RID: 29381
|
||||
[FieldOffset(Offset = "0x90")]
|
||||
[Token(Token = "0x40072C5")]
|
||||
private byte[] Sum;
|
||||
|
||||
// Token: 0x040072C6 RID: 29382
|
||||
[FieldOffset(Offset = "0x98")]
|
||||
[Token(Token = "0x40072C6")]
|
||||
private byte[] OffsetMAIN;
|
||||
|
||||
// Token: 0x040072C7 RID: 29383
|
||||
[FieldOffset(Offset = "0xA0")]
|
||||
[Token(Token = "0x40072C7")]
|
||||
private byte[] Checksum;
|
||||
|
||||
// Token: 0x040072C8 RID: 29384
|
||||
[FieldOffset(Offset = "0xA8")]
|
||||
[Token(Token = "0x40072C8")]
|
||||
private byte[] macBlock;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user