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

303 lines
9.6 KiB
C#

using System;
using System.Runtime.InteropServices;
using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Utilities;
using Cpp2IlInjected;
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs
{
// Token: 0x02001677 RID: 5751
[Token(Token = "0x2001677")]
[StructLayout(3)]
public class SipHash : IMac
{
// Token: 0x060099B9 RID: 39353 RVA: 0x00223B14 File Offset: 0x00221D14
[Token(Token = "0x60099B9")]
[Address(RVA = "0x2094800", Offset = "0x2093200", VA = "0x182094800")]
public SipHash()
{
this.c = (int)((ulong)2L);
this.d = (int)((ulong)4L);
}
// Token: 0x060099BA RID: 39354 RVA: 0x00223B3C File Offset: 0x00221D3C
[Token(Token = "0x60099BA")]
[Address(RVA = "0x823C30", Offset = "0x822630", VA = "0x180823C30")]
public SipHash(int c, int d)
{
this.c = c;
this.d = d;
}
// Token: 0x17001894 RID: 6292
// (get) Token: 0x060099BB RID: 39355 RVA: 0x00223B60 File Offset: 0x00221D60
[Token(Token = "0x17001894")]
public virtual string AlgorithmName
{
[Token(Token = "0x60099BB")]
[Address(RVA = "0x20F8CF0", Offset = "0x20F76F0", VA = "0x1820F8CF0", Slot = "11")]
get
{
object[] array = new object[4];
if ("SipHash-" != 0)
{
}
array[0] = "SipHash-";
int num = this.c;
if (num != 0)
{
}
array[1] = num;
if ("-" != 0)
{
}
array[2] = "-";
int num2 = this.d;
num = num2;
if (num2 != 0)
{
}
array[3] = num;
return string.Concat(array);
}
}
// Token: 0x060099BC RID: 39356 RVA: 0x00223BD0 File Offset: 0x00221DD0
[Token(Token = "0x60099BC")]
[Address(RVA = "0x56E570", Offset = "0x56CF70", VA = "0x18056E570", Slot = "12")]
public virtual int GetMacSize()
{
return 8;
}
// Token: 0x060099BD RID: 39357 RVA: 0x00223BE0 File Offset: 0x00221DE0
[Token(Token = "0x60099BD")]
[Address(RVA = "0x20F8A90", Offset = "0x20F7490", VA = "0x1820F8A90", Slot = "13")]
public virtual void Init(ICipherParameters parameters)
{
/*
An exception occurred when decompiling this method (060099BD)
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs.SipHash::Init(BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.ICipherParameters)
---> System.Exception: Basic block has to end with unconditional control flow.
{
IL_50:
stloc:ArgumentException(var_7_5F, newobj:ArgumentException(ArgumentException::.ctor, ldstr:string("must be a 128-bit key"), ldstr:string("parameters")))
}
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: 0x060099BE RID: 39358 RVA: 0x00223C50 File Offset: 0x00221E50
[Token(Token = "0x60099BE")]
[Address(RVA = "0x20F8CA0", Offset = "0x20F76A0", VA = "0x1820F8CA0", Slot = "14")]
public virtual void Update(byte input)
{
int num = this.wordPos;
num++;
this.m = (long)input;
this.wordPos = num;
if (num == 8)
{
this.Reset();
this.wordPos = (int)((ulong)0L);
}
}
// Token: 0x060099BF RID: 39359 RVA: 0x00223C8C File Offset: 0x00221E8C
[Token(Token = "0x60099BF")]
[Address(RVA = "0x20F8790", Offset = "0x20F7190", VA = "0x1820F8790", Slot = "15")]
public virtual void BlockUpdate(byte[] input, int offset, int length)
{
int num = this.wordPos;
int num2 = 0;
if (num != 0)
{
if (length > 0)
{
ulong num3 = Pack.LE_To_UInt64(input, 0);
long num4 = this.m;
this.m = num4;
this.Reset();
num2 += 8;
this.m = (long)num3;
}
if (num2 >= length)
{
return;
}
int num5 = this.wordPos;
num5++;
byte b;
this.m = (long)b;
this.wordPos = num5;
if (num5 == 8)
{
this.Reset();
this.wordPos = num2;
}
}
if (length > 0)
{
ulong num6 = Pack.LE_To_UInt64(input, 0);
this.m = (long)num6;
this.Reset();
num2 += 8;
}
if (num2 < length)
{
byte b2;
this.m = (long)b2;
}
this.wordPos = length;
}
// Token: 0x060099C0 RID: 39360 RVA: 0x00223D40 File Offset: 0x00221F40
[Token(Token = "0x60099C0")]
[Address(RVA = "0x20F89C0", Offset = "0x20F73C0", VA = "0x1820F89C0", Slot = "16")]
public virtual long DoFinal()
{
int num = this.wordPos;
uint num2;
num2 -= (uint)num;
long num3 = this.m;
this.m = num3;
this.Reset();
this.ProcessMessageWord();
return this.v3;
}
// Token: 0x060099C1 RID: 39361 RVA: 0x00223D78 File Offset: 0x00221F78
[Token(Token = "0x60099C1")]
[Address(RVA = "0x20F8970", Offset = "0x20F7370", VA = "0x1820F8970", Slot = "17")]
public virtual int DoFinal(byte[] output, int outOff)
{
return 8;
}
// Token: 0x060099C2 RID: 39362 RVA: 0x00223D88 File Offset: 0x00221F88
[Token(Token = "0x60099C2")]
[Address(RVA = "0x20F8C20", Offset = "0x20F7620", VA = "0x1820F8C20", Slot = "18")]
public virtual void Reset()
{
long num = this.k0;
long num2 = this.k1;
this.v0 = num;
num = num2;
this.v1 = num;
this.v2 = num;
int num3 = 0;
this.v3 = num2;
this.m = (long)num3;
this.wordPos = num3;
}
// Token: 0x060099C3 RID: 39363 RVA: 0x00223DD4 File Offset: 0x00221FD4
[Token(Token = "0x60099C3")]
[Address(RVA = "0x20F8BE0", Offset = "0x20F75E0", VA = "0x1820F8BE0", Slot = "19")]
protected virtual void ProcessMessageWord()
{
this.ProcessMessageWord();
long num = this.m;
}
// Token: 0x060099C4 RID: 39364 RVA: 0x00223DF0 File Offset: 0x00221FF0
[Token(Token = "0x60099C4")]
[Address(RVA = "0x20F86C0", Offset = "0x20F70C0", VA = "0x1820F86C0", Slot = "20")]
protected virtual void ApplySipRounds(int n)
{
long num = this.v0;
long num2 = this.v1;
long num3 = this.v2;
long num4 = this.v3;
if (n > 0)
{
num += num2;
num3 += num4;
num3 += num2;
num = num3;
num += num4;
num = num3;
num3 = num;
while (n != 0)
{
}
}
this.v0 = num;
this.v1 = num2;
this.v2 = num3;
this.v3 = num4;
}
// Token: 0x060099C5 RID: 39365 RVA: 0x00223E54 File Offset: 0x00222054
[Token(Token = "0x60099C5")]
[Address(RVA = "0x20F8C80", Offset = "0x20F7680", VA = "0x1820F8C80")]
protected static long RotateLeft(long x, int n)
{
return x;
}
// Token: 0x040064FD RID: 25853
[global::Cpp2IlInjected.FieldOffset(Offset = "0x10")]
[Token(Token = "0x40064FD")]
protected readonly int c;
// Token: 0x040064FE RID: 25854
[global::Cpp2IlInjected.FieldOffset(Offset = "0x14")]
[Token(Token = "0x40064FE")]
protected readonly int d;
// Token: 0x040064FF RID: 25855
[global::Cpp2IlInjected.FieldOffset(Offset = "0x18")]
[Token(Token = "0x40064FF")]
protected long k0;
// Token: 0x04006500 RID: 25856
[global::Cpp2IlInjected.FieldOffset(Offset = "0x20")]
[Token(Token = "0x4006500")]
protected long k1;
// Token: 0x04006501 RID: 25857
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
[Token(Token = "0x4006501")]
protected long v0;
// Token: 0x04006502 RID: 25858
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
[Token(Token = "0x4006502")]
protected long v1;
// Token: 0x04006503 RID: 25859
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
[Token(Token = "0x4006503")]
protected long v2;
// Token: 0x04006504 RID: 25860
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
[Token(Token = "0x4006504")]
protected long v3;
// Token: 0x04006505 RID: 25861
[global::Cpp2IlInjected.FieldOffset(Offset = "0x48")]
[Token(Token = "0x4006505")]
protected long m;
// Token: 0x04006506 RID: 25862
[global::Cpp2IlInjected.FieldOffset(Offset = "0x50")]
[Token(Token = "0x4006506")]
protected int wordPos;
// Token: 0x04006507 RID: 25863
[global::Cpp2IlInjected.FieldOffset(Offset = "0x54")]
[Token(Token = "0x4006507")]
protected int wordCount;
}
}