477 lines
25 KiB
C#
477 lines
25 KiB
C#
using System;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes
|
|
{
|
|
// Token: 0x02001C36 RID: 7222
|
|
[Token(Token = "0x2001C36")]
|
|
public class EaxBlockCipher : IAeadBlockCipher
|
|
{
|
|
// Token: 0x0600B44B RID: 46155 RVA: 0x00274054 File Offset: 0x00272254
|
|
[Token(Token = "0x600B44B")]
|
|
[Address(RVA = "0x1C21F40", Offset = "0x1C20D40", VA = "0x181C21F40")]
|
|
public EaxBlockCipher(IBlockCipher cipher)
|
|
{
|
|
int num = this.blockSize;
|
|
CMac cmac;
|
|
this.mac = cmac;
|
|
byte[] array = new byte[num];
|
|
IMac mac = this.mac;
|
|
this.macBlock = array;
|
|
byte[] array2 = new byte[array];
|
|
IMac mac2 = this.mac;
|
|
this.associatedTextMac = array2;
|
|
byte[] array3 = new byte[array2];
|
|
this.nonceMac = array3;
|
|
SicBlockCipher sicBlockCipher = new SicBlockCipher(cipher);
|
|
this.cipher = sicBlockCipher;
|
|
}
|
|
|
|
// Token: 0x17001C7A RID: 7290
|
|
// (get) Token: 0x0600B44C RID: 46156 RVA: 0x002740CC File Offset: 0x002722CC
|
|
[Token(Token = "0x17001C7A")]
|
|
public virtual string AlgorithmName
|
|
{
|
|
[Token(Token = "0x600B44C")]
|
|
[Address(RVA = "0x1C220A0", Offset = "0x1C20EA0", VA = "0x181C220A0", Slot = "17")]
|
|
get
|
|
{
|
|
this.cipher.Reset();
|
|
string text;
|
|
return text;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B44D RID: 46157 RVA: 0x002740EC File Offset: 0x002722EC
|
|
[Token(Token = "0x600B44D")]
|
|
[Address(RVA = "0x3F6E20", Offset = "0x3F5C20", VA = "0x1803F6E20", Slot = "18")]
|
|
public virtual IBlockCipher GetUnderlyingCipher()
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B44D)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.IBlockCipher BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.EaxBlockCipher::GetUnderlyingCipher()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:SicBlockCipher(var_0_06, ldfld:SicBlockCipher(EaxBlockCipher::cipher, ldloc:EaxBlockCipher(this)))
|
|
}
|
|
|
|
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: 0x0600B44E RID: 46158 RVA: 0x00274100 File Offset: 0x00272300
|
|
[Token(Token = "0x600B44E")]
|
|
[Address(RVA = "0x5F5DE0", Offset = "0x5F4BE0", VA = "0x1805F5DE0", Slot = "19")]
|
|
public virtual int GetBlockSize()
|
|
{
|
|
string algorithmName = ((IBlockCipher)this.cipher).AlgorithmName;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600B44F RID: 46159 RVA: 0x00274120 File Offset: 0x00272320
|
|
[Token(Token = "0x600B44F")]
|
|
[Address(RVA = "0x1C21570", Offset = "0x1C20370", VA = "0x181C21570", Slot = "20")]
|
|
public virtual void Init(bool forEncryption, ICipherParameters parameters)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B44F)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.EaxBlockCipher::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_E3:
|
|
stloc:ArgumentException(var_22_ED, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("invalid parameters passed to EAX")))
|
|
}
|
|
|
|
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: 0x0600B450 RID: 46160 RVA: 0x0027421C File Offset: 0x0027241C
|
|
[Token(Token = "0x600B450")]
|
|
[Address(RVA = "0x1C214A0", Offset = "0x1C202A0", VA = "0x181C214A0")]
|
|
private void InitCipher()
|
|
{
|
|
if (!this.cipherInitialized)
|
|
{
|
|
IMac mac = this.mac;
|
|
this.cipherInitialized = true;
|
|
byte[] array = new byte[this.blockSize];
|
|
int num = this.blockSize;
|
|
IMac mac2 = this.mac;
|
|
int num2 = this.blockSize;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B451 RID: 46161 RVA: 0x0027426C File Offset: 0x0027246C
|
|
[Token(Token = "0x600B451")]
|
|
[Address(RVA = "0x1C20F90", Offset = "0x1C1FD90", VA = "0x181C20F90")]
|
|
private void CalculateMac()
|
|
{
|
|
byte[] array = new byte[this.blockSize];
|
|
IMac mac = this.mac;
|
|
int num = 0;
|
|
byte[] array2 = this.macBlock;
|
|
if (num < array2.Length)
|
|
{
|
|
byte[] array3 = this.nonceMac;
|
|
byte[] array4 = this.associatedTextMac;
|
|
num++;
|
|
byte[] array5 = this.macBlock;
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B452 RID: 46162 RVA: 0x002742C0 File Offset: 0x002724C0
|
|
[Token(Token = "0x600B452")]
|
|
[Address(RVA = "0x1C21D50", Offset = "0x1C20B50", VA = "0x181C21D50", Slot = "21")]
|
|
public virtual void Reset()
|
|
{
|
|
this.Reset(true);
|
|
}
|
|
|
|
// Token: 0x0600B453 RID: 46163 RVA: 0x002742D4 File Offset: 0x002724D4
|
|
[Token(Token = "0x600B453")]
|
|
[Address(RVA = "0x1C21D60", Offset = "0x1C20B60", VA = "0x181C21D60")]
|
|
private void Reset(bool clearMac)
|
|
{
|
|
SicBlockCipher sicBlockCipher = this.cipher;
|
|
IMac mac = this.mac;
|
|
byte[] array = this.bufBlock;
|
|
this.bufOff = (int)((ulong)0L);
|
|
int length = array.Length;
|
|
int num = 0;
|
|
Array.Clear(array, num, length);
|
|
if (clearMac)
|
|
{
|
|
byte[] array2 = this.macBlock;
|
|
int length2 = array2.Length;
|
|
int num2 = 0;
|
|
Array.Clear(array2, num2, length2);
|
|
}
|
|
byte[] array3 = new byte[this.blockSize];
|
|
int num3 = this.blockSize;
|
|
IMac mac2 = this.mac;
|
|
int num4 = this.blockSize;
|
|
byte[] array4 = this.initialAssociatedText;
|
|
this.cipherInitialized = false;
|
|
if (array4 != 0)
|
|
{
|
|
this.ProcessAadByte(array4);
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600B454 RID: 46164 RVA: 0x00274380 File Offset: 0x00272580
|
|
[Token(Token = "0x600B454")]
|
|
[Address(RVA = "0x1C21910", Offset = "0x1C20710", VA = "0x181C21910", Slot = "22")]
|
|
public virtual void ProcessAadByte(byte input)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B454)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.EaxBlockCipher::ProcessAadByte(System.Byte)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_10:
|
|
stloc:InvalidOperationException(var_1_1A, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("AAD data cannot be added after encryption/decryption processing has begun.")))
|
|
}
|
|
|
|
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: 0x0600B455 RID: 46165 RVA: 0x002743A8 File Offset: 0x002725A8
|
|
[Token(Token = "0x600B455")]
|
|
[Address(RVA = "0x1C219A0", Offset = "0x1C207A0", VA = "0x181C219A0", Slot = "23")]
|
|
public virtual void ProcessAadBytes(byte[] inBytes, int inOff, int len)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B455)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.EaxBlockCipher::ProcessAadBytes(System.Byte[],System.Int32,System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_11:
|
|
stloc:InvalidOperationException(var_1_1B, newobj:InvalidOperationException(InvalidOperationException::.ctor, ldstr:string("AAD data cannot be added after encryption/decryption processing has begun.")))
|
|
}
|
|
|
|
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: 0x0600B456 RID: 46166 RVA: 0x002743D0 File Offset: 0x002725D0
|
|
[Token(Token = "0x600B456")]
|
|
[Address(RVA = "0x1C21A60", Offset = "0x1C20860", VA = "0x181C21A60", Slot = "24")]
|
|
public virtual int ProcessByte(byte input, byte[] outBytes, int outOff)
|
|
{
|
|
this.InitCipher();
|
|
return this.Process(input, outBytes, outOff);
|
|
}
|
|
|
|
// Token: 0x0600B457 RID: 46167 RVA: 0x002743EC File Offset: 0x002725EC
|
|
[Token(Token = "0x600B457")]
|
|
[Address(RVA = "0x1C21AC0", Offset = "0x1C208C0", VA = "0x181C21AC0", Slot = "25")]
|
|
public virtual int ProcessBytes(byte[] inBytes, int inOff, int len, byte[] outBytes, int outOff)
|
|
{
|
|
this.InitCipher();
|
|
int num = 0;
|
|
if (len != 0)
|
|
{
|
|
int num2;
|
|
num += num2;
|
|
num2 = inOff;
|
|
num2 -= inOff;
|
|
while (num2 != len)
|
|
{
|
|
}
|
|
}
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x0600B458 RID: 46168 RVA: 0x0027441C File Offset: 0x0027261C
|
|
[Token(Token = "0x600B458")]
|
|
[Address(RVA = "0x1C210C0", Offset = "0x1C1FEC0", VA = "0x181C210C0", Slot = "26")]
|
|
public virtual int DoFinal(byte[] outBytes, int outOff)
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600B458)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.EaxBlockCipher::DoFinal(System.Byte[],System.Int32)
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
IL_148:
|
|
stloc:InvalidCipherTextException(var_22_152, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("mac check in EAX 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.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: 0x0600B459 RID: 46169 RVA: 0x0027457C File Offset: 0x0027277C
|
|
[Token(Token = "0x600B459")]
|
|
[Address(RVA = "0x1C213D0", Offset = "0x1C201D0", VA = "0x181C213D0", Slot = "27")]
|
|
public virtual byte[] GetMac()
|
|
{
|
|
byte[] array = new byte[this.macSize];
|
|
int num = this.macSize;
|
|
int num2 = 0;
|
|
int num3 = 0;
|
|
Array.Copy(this.macBlock, num3, array, num2, num);
|
|
return array;
|
|
}
|
|
|
|
// Token: 0x0600B45A RID: 46170 RVA: 0x002745B4 File Offset: 0x002727B4
|
|
[Token(Token = "0x600B45A")]
|
|
[Address(RVA = "0x1C21470", Offset = "0x1C20270", VA = "0x181C21470", Slot = "28")]
|
|
public virtual int GetUpdateOutputSize(int len)
|
|
{
|
|
int num = this.bufOff;
|
|
num += len;
|
|
if (!this.forEncryption)
|
|
{
|
|
int num2 = this.macSize;
|
|
num -= num2;
|
|
}
|
|
return num - len;
|
|
}
|
|
|
|
// Token: 0x0600B45B RID: 46171 RVA: 0x002745E8 File Offset: 0x002727E8
|
|
[Token(Token = "0x600B45B")]
|
|
[Address(RVA = "0x1C21440", Offset = "0x1C20240", VA = "0x181C21440", Slot = "29")]
|
|
public virtual 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: 0x0600B45C RID: 46172 RVA: 0x00274624 File Offset: 0x00272824
|
|
[Token(Token = "0x600B45C")]
|
|
[Address(RVA = "0x1C21B80", Offset = "0x1C20980", VA = "0x181C21B80")]
|
|
private int Process(byte b, byte[] outBytes, int outOff)
|
|
{
|
|
int num = this.bufOff;
|
|
byte[] array = this.bufBlock;
|
|
int num2 = num + 1;
|
|
this.bufOff = num2;
|
|
int length = this.bufBlock.Length;
|
|
if (this.bufOff != length)
|
|
{
|
|
return 0;
|
|
}
|
|
int num3 = 0;
|
|
int num4 = this.blockSize;
|
|
Check.OutputLength(outBytes, outOff, num4, "Output buffer is too short");
|
|
if ((this.forEncryption ? 1 : 0) == num3)
|
|
{
|
|
IMac mac = this.mac;
|
|
int num5 = this.blockSize;
|
|
int num6 = this.cipher.GetBlockSize();
|
|
}
|
|
int num7 = this.cipher.GetBlockSize();
|
|
IMac mac2 = this.mac;
|
|
int num8 = this.blockSize;
|
|
this.bufOff = num3;
|
|
if ((this.forEncryption ? 1 : 0) == num3)
|
|
{
|
|
byte[] array2 = this.bufBlock;
|
|
int num9 = 0;
|
|
int num10 = this.macSize;
|
|
int num11 = this.blockSize;
|
|
Array.Copy(array2, num11, array2, num9, num10);
|
|
int num12 = this.macSize;
|
|
this.bufOff = num12;
|
|
}
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x0600B45D RID: 46173 RVA: 0x00274718 File Offset: 0x00272918
|
|
[Token(Token = "0x600B45D")]
|
|
[Address(RVA = "0x1C21EB0", Offset = "0x1C20CB0", VA = "0x181C21EB0")]
|
|
private bool VerifyMac(byte[] mac, int off)
|
|
{
|
|
int num = this.macSize;
|
|
int num2 = 0;
|
|
if (num > 0)
|
|
{
|
|
byte[] array = this.macBlock;
|
|
num2++;
|
|
}
|
|
return num2 == 0;
|
|
}
|
|
|
|
// Token: 0x04007265 RID: 29285
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4007265")]
|
|
private SicBlockCipher cipher;
|
|
|
|
// Token: 0x04007266 RID: 29286
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4007266")]
|
|
private bool forEncryption;
|
|
|
|
// Token: 0x04007267 RID: 29287
|
|
[FieldOffset(Offset = "0x1C")]
|
|
[Token(Token = "0x4007267")]
|
|
private int blockSize;
|
|
|
|
// Token: 0x04007268 RID: 29288
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4007268")]
|
|
private IMac mac;
|
|
|
|
// Token: 0x04007269 RID: 29289
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4007269")]
|
|
private byte[] nonceMac;
|
|
|
|
// Token: 0x0400726A RID: 29290
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x400726A")]
|
|
private byte[] associatedTextMac;
|
|
|
|
// Token: 0x0400726B RID: 29291
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x400726B")]
|
|
private byte[] macBlock;
|
|
|
|
// Token: 0x0400726C RID: 29292
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x400726C")]
|
|
private int macSize;
|
|
|
|
// Token: 0x0400726D RID: 29293
|
|
[FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x400726D")]
|
|
private byte[] bufBlock;
|
|
|
|
// Token: 0x0400726E RID: 29294
|
|
[FieldOffset(Offset = "0x50")]
|
|
[Token(Token = "0x400726E")]
|
|
private int bufOff;
|
|
|
|
// Token: 0x0400726F RID: 29295
|
|
[FieldOffset(Offset = "0x54")]
|
|
[Token(Token = "0x400726F")]
|
|
private bool cipherInitialized;
|
|
|
|
// Token: 0x04007270 RID: 29296
|
|
[FieldOffset(Offset = "0x58")]
|
|
[Token(Token = "0x4007270")]
|
|
private byte[] initialAssociatedText;
|
|
|
|
// Token: 0x02001C37 RID: 7223
|
|
[Token(Token = "0x2001C37")]
|
|
private enum Tag : byte
|
|
{
|
|
// Token: 0x04007272 RID: 29298
|
|
[Token(Token = "0x4007272")]
|
|
N,
|
|
// Token: 0x04007273 RID: 29299
|
|
[Token(Token = "0x4007273")]
|
|
H,
|
|
// Token: 0x04007274 RID: 29300
|
|
[Token(Token = "0x4007274")]
|
|
C
|
|
}
|
|
}
|
|
}
|