This commit is contained in:
niko
2026-04-12 16:51:38 +02:00
parent 1b6f6d81d0
commit c12fbe3fc6
17828 changed files with 2994770 additions and 0 deletions
@@ -0,0 +1,385 @@
using System;
using System.IO;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes
{
// Token: 0x02001D13 RID: 7443
[Token(Token = "0x2001D13")]
public class CcmBlockCipher : IAeadBlockCipher
{
// Token: 0x0600B7F5 RID: 47093 RVA: 0x0027C678 File Offset: 0x0027A878
[Token(Token = "0x600B7F5")]
[Address(RVA = "0x25B4140", Offset = "0x25B3140", VA = "0x1825B4140")]
public CcmBlockCipher(IBlockCipher cipher)
{
MemoryStream memoryStream = new MemoryStream();
this.associatedText = memoryStream;
MemoryStream memoryStream2 = new MemoryStream();
this.data = memoryStream2;
base..ctor();
this.cipher = cipher;
byte[] array = new byte[CcmBlockCipher.BlockSize];
this.macBlock = array;
}
// Token: 0x0600B7F6 RID: 47094 RVA: 0x0027C6D4 File Offset: 0x0027A8D4
[Token(Token = "0x600B7F6")]
[Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "17")]
public virtual IBlockCipher GetUnderlyingCipher()
{
return this.cipher;
}
// Token: 0x0600B7F7 RID: 47095 RVA: 0x0027C6E8 File Offset: 0x0027A8E8
[Token(Token = "0x600B7F7")]
[Address(RVA = "0x25B33E0", Offset = "0x25B23E0", VA = "0x1825B33E0", Slot = "18")]
public virtual void Init(bool forEncryption, ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (0600B7F7)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.CcmBlockCipher::Init(System.Boolean,BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_78:
stloc:ArgumentException(var_11_82, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("invalid parameters passed to CCM")))
}
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: 0x17001D14 RID: 7444
// (get) Token: 0x0600B7F8 RID: 47096 RVA: 0x0027C778 File Offset: 0x0027A978
[Token(Token = "0x17001D14")]
public virtual string AlgorithmName
{
[Token(Token = "0x600B7F8")]
[Address(RVA = "0x25B42D0", Offset = "0x25B32D0", VA = "0x1825B42D0", Slot = "19")]
get
{
IBlockCipher blockCipher = this.cipher;
return 0 + "/CCM";
}
}
// Token: 0x0600B7F9 RID: 47097 RVA: 0x0027C7A0 File Offset: 0x0027A9A0
[Token(Token = "0x600B7F9")]
[Address(RVA = "0x25B3260", Offset = "0x25B2260", VA = "0x1825B3260", Slot = "20")]
public virtual int GetBlockSize()
{
IBlockCipher blockCipher = this.cipher;
throw new NullReferenceException();
}
// Token: 0x0600B7FA RID: 47098 RVA: 0x0027C7BC File Offset: 0x0027A9BC
[Token(Token = "0x600B7FA")]
[Address(RVA = "0x25B3670", Offset = "0x25B2670", VA = "0x1825B3670", Slot = "21")]
public virtual void ProcessAadByte(byte input)
{
((IDisposable)this.associatedText).Dispose();
}
// Token: 0x0600B7FB RID: 47099 RVA: 0x0027C7DC File Offset: 0x0027A9DC
[Token(Token = "0x600B7FB")]
[Address(RVA = "0x25B36A0", Offset = "0x25B26A0", VA = "0x1825B36A0", Slot = "22")]
public virtual void ProcessAadBytes(byte[] inBytes, int inOff, int len)
{
int num = this.associatedText.Read(inBytes, inOff, len);
}
// Token: 0x0600B7FC RID: 47100 RVA: 0x0027C800 File Offset: 0x0027AA00
[Token(Token = "0x600B7FC")]
[Address(RVA = "0x25B36D0", Offset = "0x25B26D0", VA = "0x1825B36D0", Slot = "23")]
public virtual int ProcessByte(byte input, byte[] outBytes, int outOff)
{
MemoryStream memoryStream = this.data;
return 0;
}
// Token: 0x0600B7FD RID: 47101 RVA: 0x0027C81C File Offset: 0x0027AA1C
[Token(Token = "0x600B7FD")]
[Address(RVA = "0x25B3700", Offset = "0x25B2700", VA = "0x1825B3700", Slot = "24")]
public virtual int ProcessBytes(byte[] inBytes, int inOff, int inLen, byte[] outBytes, int outOff)
{
Check.DataLength(inBytes, inOff, inOff, "Input buffer too short");
int num = this.data.ReadByte();
return 0;
}
// Token: 0x0600B7FE RID: 47102 RVA: 0x0027C84C File Offset: 0x0027AA4C
[Token(Token = "0x600B7FE")]
[Address(RVA = "0x25B3150", Offset = "0x25B2150", VA = "0x1825B3150", Slot = "25")]
public virtual int DoFinal(byte[] outBytes, int outOff)
{
MemoryStream memoryStream = this.data;
long length = this.data.Length;
throw new NullReferenceException();
}
// Token: 0x0600B7FF RID: 47103 RVA: 0x0027C874 File Offset: 0x0027AA74
[Token(Token = "0x600B7FF")]
[Address(RVA = "0x25B4080", Offset = "0x25B3080", VA = "0x1825B4080", Slot = "26")]
public virtual void Reset()
{
IBlockCipher blockCipher = this.cipher;
MemoryStream memoryStream = this.associatedText;
((IDisposable)this.data).Dispose();
}
// Token: 0x0600B800 RID: 47104 RVA: 0x0027C8A0 File Offset: 0x0027AAA0
[Token(Token = "0x600B800")]
[Address(RVA = "0x25B32B0", Offset = "0x25B22B0", VA = "0x1825B32B0", Slot = "27")]
public virtual byte[] GetMac()
{
byte[] array = this.macBlock;
int num = this.macSize;
int num2 = 0;
return Arrays.CopyOfRange(array, num2, num);
}
// Token: 0x0600B801 RID: 47105 RVA: 0x0027C8C8 File Offset: 0x0027AAC8
[Token(Token = "0x600B801")]
[Address(RVA = "0x4242C0", Offset = "0x4232C0", VA = "0x1804242C0", Slot = "28")]
public virtual int GetUpdateOutputSize(int len)
{
return 0;
}
// Token: 0x0600B802 RID: 47106 RVA: 0x0027C8D8 File Offset: 0x0027AAD8
[Token(Token = "0x600B802")]
[Address(RVA = "0x25B3320", Offset = "0x25B2320", VA = "0x1825B3320", Slot = "29")]
public virtual int GetOutputSize(int len)
{
bool flag = this.data.CanWrite;
int num = this.macSize;
flag = (flag ? 1 : 0) + len != 0;
if (!this.forEncryption)
{
if ((flag ? 1 : 0) < num)
{
return 0;
}
flag = (flag ? 1 : 0) - num != 0;
}
flag = (flag ? 1 : 0) + num != 0;
throw new NullReferenceException();
}
// Token: 0x0600B803 RID: 47107 RVA: 0x0027C918 File Offset: 0x0027AB18
[Token(Token = "0x600B803")]
[Address(RVA = "0x25B3F90", Offset = "0x25B2F90", VA = "0x1825B3F90", Slot = "30")]
public virtual byte[] ProcessPacket(byte[] input, int inOff, int inLen)
{
int num = this.macSize;
if (!this.forEncryption)
{
}
byte[] array = new byte[input];
byte[] array2 = this.ProcessPacket(input, inOff, inLen);
return array;
}
// Token: 0x0600B804 RID: 47108 RVA: 0x0027C954 File Offset: 0x0027AB54
[Token(Token = "0x600B804")]
[Address(RVA = "0x25B37A0", Offset = "0x25B27A0", VA = "0x1825B37A0", Slot = "31")]
public virtual int ProcessPacket(byte[] input, int inOff, int inLen, byte[] output, int outOff)
{
/*
An exception occurred when decompiling this method (0600B804)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Modes.CcmBlockCipher::ProcessPacket(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_11D:
stloc:InvalidCipherTextException(var_24_127, newobj:InvalidCipherTextException(InvalidCipherTextException::.ctor, ldstr:string("mac check in CCM 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.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: 0x0600B805 RID: 47109 RVA: 0x0027CA8C File Offset: 0x0027AC8C
[Token(Token = "0x600B805")]
[Address(RVA = "0x25B2C40", Offset = "0x25B1C40", VA = "0x1825B2C40")]
private int CalculateMac(byte[] data, int dataOff, int dataLen, byte[] macBlock)
{
int num;
CbcBlockCipherMac cbcBlockCipherMac = new CbcBlockCipherMac(this.cipher, dataOff, num);
num = 0;
byte[] array = new byte[16];
bool flag = this.associatedText.CanWrite;
byte[] array2 = this.initialAssociatedText;
if (array2 == 0)
{
}
int length = array2.Length;
flag = (flag ? 1 : 0) + length != 0;
if (flag > false)
{
}
uint num2;
flag = (flag ? 1U : 0U) - num2 != 0U;
flag = flag - typeof(IMac).TypeHandle != null;
array[0] = (flag ? 1 : 0);
byte[] array3 = this.nonce;
uint num3;
array[0] = (byte)num3;
byte[] array4 = this.nonce;
int length2 = array4.Length;
int num4 = 0;
uint num5;
Array.Copy(array4, num4, array, (int)num5, length2);
if (dataLen > 0)
{
int num6 = array.Length;
num6 -= (int)num5;
num5 += (uint)1;
}
int length3 = array.Length;
bool flag2 = this.associatedText.CanWrite;
byte[] array5 = this.initialAssociatedText;
int num7 = 0;
if (array5 == 0)
{
}
flag2 = (flag2 ? 1 : 0) + num7 != 0;
if (flag2 > false)
{
bool canWrite = this.associatedText.CanWrite;
if (this.initialAssociatedText == 0)
{
}
byte[] array6 = this.initialAssociatedText;
if (array6 != 0)
{
int length4 = array6.Length;
}
long length5 = this.associatedText.Length;
MemoryStream memoryStream = this.associatedText;
MemoryStream memoryStream2 = this.associatedText;
long length6 = memoryStream2.Length;
int num8 = 0;
if (memoryStream2 < 0)
{
}
uint num9;
if (length6 < (long)num9)
{
num9 = (uint)((long)num9 - length6);
if (num8 < cbcBlockCipherMac)
{
num8 += num8;
num8++;
}
while (num8 != cbcBlockCipherMac)
{
}
}
}
int num10 = 0;
num10 += 3;
num10 += 19;
throw new NullReferenceException();
}
// Token: 0x0600B806 RID: 47110 RVA: 0x0027CC1C File Offset: 0x0027AE1C
[Token(Token = "0x600B806")]
[Address(RVA = "0x25B3210", Offset = "0x25B2210", VA = "0x1825B3210")]
private int GetAssociatedTextLength()
{
bool flag = this.associatedText.CanWrite;
byte[] array = this.initialAssociatedText;
if (array == 0)
{
flag = flag + array != null;
}
int length = array.Length;
flag = (flag ? 1 : 0) + length != 0;
throw new NullReferenceException();
}
// Token: 0x0600B807 RID: 47111 RVA: 0x0027CC54 File Offset: 0x0027AE54
[Token(Token = "0x600B807")]
[Address(RVA = "0x25B3390", Offset = "0x25B2390", VA = "0x1825B3390")]
private bool HasAssociatedText()
{
bool flag = this.associatedText.CanWrite;
byte[] array = this.initialAssociatedText;
if (array == 0)
{
flag = flag + array != null;
return flag > false;
}
int length = array.Length;
flag = (flag ? 1 : 0) + length != 0;
return flag > false;
}
// Token: 0x0400740D RID: 29709
[Token(Token = "0x400740D")]
private static readonly int BlockSize;
// Token: 0x0400740E RID: 29710
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x400740E")]
private readonly IBlockCipher cipher;
// Token: 0x0400740F RID: 29711
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400740F")]
private readonly byte[] macBlock;
// Token: 0x04007410 RID: 29712
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4007410")]
private bool forEncryption;
// Token: 0x04007411 RID: 29713
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4007411")]
private byte[] nonce;
// Token: 0x04007412 RID: 29714
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4007412")]
private byte[] initialAssociatedText;
// Token: 0x04007413 RID: 29715
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4007413")]
private int macSize;
// Token: 0x04007414 RID: 29716
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4007414")]
private ICipherParameters keyParam;
// Token: 0x04007415 RID: 29717
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4007415")]
private readonly MemoryStream associatedText;
// Token: 0x04007416 RID: 29718
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4007416")]
private readonly MemoryStream data;
}
}