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; } }