477 lines
11 KiB
C#
477 lines
11 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities;
|
|
using Cpp2IlInjected;
|
|
|
|
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Digests
|
|
{
|
|
// Token: 0x0200170E RID: 5902
|
|
[Token(Token = "0x200170E")]
|
|
[StructLayout(3)]
|
|
public class MD4Digest : GeneralDigest
|
|
{
|
|
// Token: 0x06009EE7 RID: 40679 RVA: 0x0024AAB0 File Offset: 0x00248CB0
|
|
[Token(Token = "0x6009EE7")]
|
|
[Address(RVA = "0x21879D0", Offset = "0x21863D0", VA = "0x1821879D0")]
|
|
public MD4Digest()
|
|
{
|
|
int[] array = new int[16];
|
|
this.X = array;
|
|
base..ctor();
|
|
byte[] array2 = new byte[4];
|
|
this.xBuf = array2;
|
|
IMemoable memoable = ((IMemoable)this).Copy();
|
|
}
|
|
|
|
// Token: 0x06009EE8 RID: 40680 RVA: 0x0024AAE8 File Offset: 0x00248CE8
|
|
[Token(Token = "0x6009EE8")]
|
|
[Address(RVA = "0x21878F0", Offset = "0x21862F0", VA = "0x1821878F0")]
|
|
public MD4Digest(MD4Digest t)
|
|
{
|
|
int[] array = new int[16];
|
|
this.X = array;
|
|
base..ctor();
|
|
byte[] array2 = new byte[t.xBuf.Length];
|
|
this.xBuf = array2;
|
|
byte[] xBuf = t.xBuf;
|
|
int length = xBuf.Length;
|
|
int num = 0;
|
|
int num2 = 0;
|
|
Array.Copy(xBuf, num2, array2, num, length);
|
|
int xBufOff = t.xBufOff;
|
|
this.xBufOff = xBufOff;
|
|
long byteCount = t.byteCount;
|
|
this.byteCount = byteCount;
|
|
this.CopyIn(t);
|
|
}
|
|
|
|
// Token: 0x06009EE9 RID: 40681 RVA: 0x0024AB70 File Offset: 0x00248D70
|
|
[Token(Token = "0x6009EE9")]
|
|
[Address(RVA = "0x2186780", Offset = "0x2185180", VA = "0x182186780")]
|
|
private void CopyIn(MD4Digest t)
|
|
{
|
|
byte[] xBuf = t.xBuf;
|
|
int length = xBuf.Length;
|
|
int num = 0;
|
|
byte[] xBuf2 = this.xBuf;
|
|
int num2 = 0;
|
|
Array.Copy(xBuf, num2, xBuf2, num, length);
|
|
int xBufOff = t.xBufOff;
|
|
this.xBufOff = xBufOff;
|
|
long byteCount = t.byteCount;
|
|
this.byteCount = byteCount;
|
|
int h = t.H1;
|
|
this.H1 = h;
|
|
int h2 = t.H2;
|
|
this.H2 = h2;
|
|
int h3 = t.H3;
|
|
this.H3 = h3;
|
|
int h4 = t.H4;
|
|
this.H4 = h4;
|
|
int[] x = t.X;
|
|
int length2 = x.Length;
|
|
int num3 = 0;
|
|
int[] x2 = this.X;
|
|
int num4 = 0;
|
|
Array.Copy(x, num4, x2, num3, length2);
|
|
int num5 = t.xOff;
|
|
this.xOff = num5;
|
|
}
|
|
|
|
// Token: 0x17001912 RID: 6418
|
|
// (get) Token: 0x06009EEA RID: 40682 RVA: 0x0024AC48 File Offset: 0x00248E48
|
|
[Token(Token = "0x17001912")]
|
|
public override string AlgorithmName
|
|
{
|
|
[Token(Token = "0x6009EEA")]
|
|
[Address(RVA = "0x2187A60", Offset = "0x2186460", VA = "0x182187A60", Slot = "17")]
|
|
get
|
|
{
|
|
return "MD4";
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009EEB RID: 40683 RVA: 0x0024AC5C File Offset: 0x00248E5C
|
|
[Token(Token = "0x6009EEB")]
|
|
[Address(RVA = "0x11B1BB0", Offset = "0x11B05B0", VA = "0x1811B1BB0", Slot = "18")]
|
|
public override int GetDigestSize()
|
|
{
|
|
return 16;
|
|
}
|
|
|
|
// Token: 0x06009EEC RID: 40684 RVA: 0x0024AC6C File Offset: 0x00248E6C
|
|
[Token(Token = "0x6009EEC")]
|
|
[Address(RVA = "0x21875E0", Offset = "0x2185FE0", VA = "0x1821875E0", Slot = "14")]
|
|
internal override void ProcessWord(byte[] input, int inOff)
|
|
{
|
|
int num = this.xOff;
|
|
int[] x = this.X;
|
|
int num2 = num + 1;
|
|
this.xOff = num2;
|
|
int length = input.Length;
|
|
int num3 = inOff + 1;
|
|
byte b;
|
|
x[0] = (int)b;
|
|
if (this.xOff == 16)
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009EED RID: 40685 RVA: 0x0024ACB8 File Offset: 0x00248EB8
|
|
[Token(Token = "0x6009EED")]
|
|
[Address(RVA = "0x2187560", Offset = "0x2185F60", VA = "0x182187560", Slot = "15")]
|
|
internal override void ProcessLength(long bitLength)
|
|
{
|
|
if (this.xOff > 14)
|
|
{
|
|
}
|
|
this.X[7] = (int)bitLength;
|
|
this.X[7] = (int)bitLength;
|
|
}
|
|
|
|
// Token: 0x06009EEE RID: 40686 RVA: 0x0024ACF0 File Offset: 0x00248EF0
|
|
[Token(Token = "0x6009EEE")]
|
|
[Address(RVA = "0x2187850", Offset = "0x2186250", VA = "0x182187850")]
|
|
private void UnpackWord(int word, byte[] outBytes, int outOff)
|
|
{
|
|
int num = outOff + 1;
|
|
}
|
|
|
|
// Token: 0x06009EEF RID: 40687 RVA: 0x0024AD08 File Offset: 0x00248F08
|
|
[Token(Token = "0x6009EEF")]
|
|
[Address(RVA = "0x2186940", Offset = "0x2185340", VA = "0x182186940", Slot = "19")]
|
|
public override int DoFinal(byte[] output, int outOff)
|
|
{
|
|
base.Finish();
|
|
int h = this.H1;
|
|
this.UnpackWord(h, output, outOff);
|
|
int num = this.H2;
|
|
output[0] = (byte)num;
|
|
output[0] = (byte)num;
|
|
int h2 = this.H3;
|
|
num = h2;
|
|
output[0] = (byte)num;
|
|
num = h2;
|
|
output[0] = (byte)num;
|
|
int h3 = this.H4;
|
|
num = h3;
|
|
output[0] = (byte)num;
|
|
num = h3;
|
|
output[0] = (byte)num;
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009EF0 RID: 40688 RVA: 0x0024AD80 File Offset: 0x00248F80
|
|
[Token(Token = "0x6009EF0")]
|
|
[Address(RVA = "0x2187700", Offset = "0x2186100", VA = "0x182187700", Slot = "13")]
|
|
public override void Reset()
|
|
{
|
|
int num = 0;
|
|
this.byteCount = (long)num;
|
|
this.xBufOff = num;
|
|
byte[] xBuf = this.xBuf;
|
|
int length = xBuf.Length;
|
|
int num2 = 0;
|
|
Array.Clear(xBuf, num2, length);
|
|
int[] x = this.X;
|
|
this.H1 = (int)((ulong)1732584193L);
|
|
this.H2 = (int)((ulong)4023233417L);
|
|
this.H3 = (int)((ulong)2562383102L);
|
|
this.H4 = (int)((ulong)271733878L);
|
|
this.xOff = num;
|
|
if (num != x.Length)
|
|
{
|
|
num++;
|
|
x[0] = num;
|
|
int[] x2 = this.X;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009EF1 RID: 40689 RVA: 0x0024AE24 File Offset: 0x00249024
|
|
[Token(Token = "0x6009EF1")]
|
|
[Address(RVA = "0x2128700", Offset = "0x2127100", VA = "0x182128700")]
|
|
private int RotateLeft(int x, int n)
|
|
{
|
|
return x;
|
|
}
|
|
|
|
// Token: 0x06009EF2 RID: 40690 RVA: 0x0024AE34 File Offset: 0x00249034
|
|
[Token(Token = "0x6009EF2")]
|
|
[Address(RVA = "0xB6B770", Offset = "0xB6A170", VA = "0x180B6B770")]
|
|
private int F(int u, int v, int w)
|
|
{
|
|
return u;
|
|
}
|
|
|
|
// Token: 0x06009EF3 RID: 40691 RVA: 0x0024AE44 File Offset: 0x00249044
|
|
[Token(Token = "0x6009EF3")]
|
|
[Address(RVA = "0xB6B7D0", Offset = "0xB6A1D0", VA = "0x180B6B7D0")]
|
|
private int G(int u, int v, int w)
|
|
{
|
|
return v;
|
|
}
|
|
|
|
// Token: 0x06009EF4 RID: 40692 RVA: 0x0024AE54 File Offset: 0x00249054
|
|
[Token(Token = "0x6009EF4")]
|
|
[Address(RVA = "0xB6B830", Offset = "0xB6A230", VA = "0x180B6B830")]
|
|
private int H(int u, int v, int w)
|
|
{
|
|
return u;
|
|
}
|
|
|
|
// Token: 0x06009EF5 RID: 40693 RVA: 0x0024AE64 File Offset: 0x00249064
|
|
[Token(Token = "0x6009EF5")]
|
|
[Address(RVA = "0x2186B80", Offset = "0x2185580", VA = "0x182186B80", Slot = "16")]
|
|
internal override void ProcessBlock()
|
|
{
|
|
int[] x = this.X;
|
|
int num = this.H2;
|
|
int num2 = this.H3;
|
|
int h = this.H4;
|
|
int h2 = this.H1;
|
|
int num3 = x.Length;
|
|
num += h2;
|
|
num += h;
|
|
num2 = num;
|
|
num += num2;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
int num4 = x[6];
|
|
num += num4;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num += num;
|
|
num2 = num;
|
|
num2 += num;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += 1518500249;
|
|
num2 += num4;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num2 = num;
|
|
num2 += 1518500249;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += 1518500249;
|
|
num2 += num;
|
|
num4 = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num4;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += 1518500249;
|
|
num2 += num4;
|
|
num3 = num2;
|
|
num2 = num;
|
|
num += 1859775393;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num;
|
|
num2 += num;
|
|
num = num2;
|
|
num2 = num3;
|
|
num += num2;
|
|
num2 = num;
|
|
num3 = num;
|
|
num += num2;
|
|
num2 = num3;
|
|
num += num2;
|
|
num2 += num3;
|
|
num = num2;
|
|
num2 = num;
|
|
num += num2;
|
|
num2 = num;
|
|
num3 = num;
|
|
num += num2;
|
|
num2 = num3;
|
|
num += num2;
|
|
num2 += num3;
|
|
num = num2;
|
|
num2 = num;
|
|
num += num2;
|
|
num4 = num;
|
|
num2 = num4;
|
|
num3 = num4;
|
|
num += num2;
|
|
num = num3;
|
|
num += 1859775393;
|
|
num += num;
|
|
num2 += num3;
|
|
num = num2;
|
|
num += 1859775393;
|
|
num += num4;
|
|
num2 = num;
|
|
num += num2;
|
|
num += 1859775393;
|
|
this.H1 = num2;
|
|
num += num;
|
|
num2 = num;
|
|
num2 += num;
|
|
this.H2 = num2;
|
|
this.H3 = num2;
|
|
int num5 = 0;
|
|
this.H4 = num2;
|
|
this.xOff = num5;
|
|
if (num5 != x.Length)
|
|
{
|
|
num5++;
|
|
x[0] = num5;
|
|
int[] x2 = this.X;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06009EF6 RID: 40694 RVA: 0x0024B0A4 File Offset: 0x002492A4
|
|
[Token(Token = "0x6009EF6")]
|
|
[Address(RVA = "0x2186830", Offset = "0x2185230", VA = "0x182186830", Slot = "20")]
|
|
public override IMemoable Copy()
|
|
{
|
|
MD4Digest md4Digest = new MD4Digest();
|
|
int[] array = new int[16];
|
|
md4Digest.X = array;
|
|
byte[] array2 = new byte[this.xBuf.Length];
|
|
md4Digest.xBuf = array2;
|
|
byte[] xBuf = this.xBuf;
|
|
int length = xBuf.Length;
|
|
int num = 0;
|
|
int num2 = 0;
|
|
Array.Copy(xBuf, num2, array2, num, length);
|
|
int xBufOff = this.xBufOff;
|
|
md4Digest.xBufOff = xBufOff;
|
|
long byteCount = this.byteCount;
|
|
md4Digest.byteCount = byteCount;
|
|
md4Digest.CopyIn(this);
|
|
throw new NullReferenceException();
|
|
}
|
|
|
|
// Token: 0x06009EF7 RID: 40695 RVA: 0x0024B12C File Offset: 0x0024932C
|
|
[Token(Token = "0x6009EF7")]
|
|
[Address(RVA = "0x21877B0", Offset = "0x21861B0", VA = "0x1821877B0", Slot = "21")]
|
|
public override void Reset(IMemoable other)
|
|
{
|
|
do
|
|
{
|
|
if (other == 0)
|
|
{
|
|
}
|
|
}
|
|
while (other == 0);
|
|
}
|
|
|
|
// Token: 0x04006875 RID: 26741
|
|
[Token(Token = "0x4006875")]
|
|
private const int DigestLength = 16;
|
|
|
|
// Token: 0x04006876 RID: 26742
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4006876")]
|
|
private int H1;
|
|
|
|
// Token: 0x04006877 RID: 26743
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x2C")]
|
|
[Token(Token = "0x4006877")]
|
|
private int H2;
|
|
|
|
// Token: 0x04006878 RID: 26744
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4006878")]
|
|
private int H3;
|
|
|
|
// Token: 0x04006879 RID: 26745
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x34")]
|
|
[Token(Token = "0x4006879")]
|
|
private int H4;
|
|
|
|
// Token: 0x0400687A RID: 26746
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x400687A")]
|
|
private int[] X;
|
|
|
|
// Token: 0x0400687B RID: 26747
|
|
[global::Cpp2IlInjected.FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x400687B")]
|
|
private int xOff;
|
|
|
|
// Token: 0x0400687C RID: 26748
|
|
[Token(Token = "0x400687C")]
|
|
private const int S11 = 3;
|
|
|
|
// Token: 0x0400687D RID: 26749
|
|
[Token(Token = "0x400687D")]
|
|
private const int S12 = 7;
|
|
|
|
// Token: 0x0400687E RID: 26750
|
|
[Token(Token = "0x400687E")]
|
|
private const int S13 = 11;
|
|
|
|
// Token: 0x0400687F RID: 26751
|
|
[Token(Token = "0x400687F")]
|
|
private const int S14 = 19;
|
|
|
|
// Token: 0x04006880 RID: 26752
|
|
[Token(Token = "0x4006880")]
|
|
private const int S21 = 3;
|
|
|
|
// Token: 0x04006881 RID: 26753
|
|
[Token(Token = "0x4006881")]
|
|
private const int S22 = 5;
|
|
|
|
// Token: 0x04006882 RID: 26754
|
|
[Token(Token = "0x4006882")]
|
|
private const int S23 = 9;
|
|
|
|
// Token: 0x04006883 RID: 26755
|
|
[Token(Token = "0x4006883")]
|
|
private const int S24 = 13;
|
|
|
|
// Token: 0x04006884 RID: 26756
|
|
[Token(Token = "0x4006884")]
|
|
private const int S31 = 3;
|
|
|
|
// Token: 0x04006885 RID: 26757
|
|
[Token(Token = "0x4006885")]
|
|
private const int S32 = 9;
|
|
|
|
// Token: 0x04006886 RID: 26758
|
|
[Token(Token = "0x4006886")]
|
|
private const int S33 = 11;
|
|
|
|
// Token: 0x04006887 RID: 26759
|
|
[Token(Token = "0x4006887")]
|
|
private const int S34 = 15;
|
|
}
|
|
}
|