using System; using System.Runtime.InteropServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs { // Token: 0x02001674 RID: 5748 [Token(Token = "0x2001674")] [StructLayout(3)] public class HMac : IMac { // Token: 0x06009998 RID: 39320 RVA: 0x00222E10 File Offset: 0x00221010 [Token(Token = "0x6009998")] [Address(RVA = "0x20F1640", Offset = "0x20F0040", VA = "0x1820F1640")] public HMac(IDigest digest) { this.digest = digest; byte[] array = new byte[0]; int num = this.digestSize; this.inputPad = array; byte[] array2 = new byte[num]; this.outputBuf = array2; } // Token: 0x17001891 RID: 6289 // (get) Token: 0x06009999 RID: 39321 RVA: 0x00222E54 File Offset: 0x00221054 [Token(Token = "0x17001891")] public virtual string AlgorithmName { [Token(Token = "0x6009999")] [Address(RVA = "0x20F16F0", Offset = "0x20F00F0", VA = "0x1820F16F0", Slot = "11")] get { IDigest digest = this.digest; return 0 + "/HMAC"; } } // Token: 0x0600999A RID: 39322 RVA: 0x00222E7C File Offset: 0x0022107C [Token(Token = "0x600999A")] [Address(RVA = "0x3C39A0", Offset = "0x3C23A0", VA = "0x1803C39A0", Slot = "12")] public virtual IDigest GetUnderlyingDigest() { return this.digest; } // Token: 0x0600999B RID: 39323 RVA: 0x00222E90 File Offset: 0x00221090 [Token(Token = "0x600999B")] [Address(RVA = "0x20F1100", Offset = "0x20EFB00", VA = "0x1820F1100", Slot = "13")] public virtual void Init(ICipherParameters parameters) { int length2; for (;;) { IDigest digest = this.digest; int num = 0; if (parameters != 0 && parameters != 0) { byte[] array; int length = array.Length; byte[] array2 = this.inputPad; int num2 = 0; int num3 = 0; Array.Copy(array, num3, array2, num2, length); IDigest digest2 = this.digest; IDigest digest3 = this.digest; int num4 = this.digestSize; int num5 = this.blockLength; byte[] array3 = this.inputPad; num5 -= num4; Array.Clear(array3, num4, num5); int num6 = this.blockLength; int num7 = 0; byte[] array4 = this.outputBuf; int num8 = 0; Array.Copy(this.inputPad, num8, array4, num7, num6); if (this.blockLength > 0) { byte[] array5 = this.inputPad; num++; if (this.blockLength > 0) { byte[] array6 = this.outputBuf; num++; } if (num != 0) { IDigest digest4 = this.digest; if (num == 0 || num == 0) { continue; } int num9 = this.blockLength; this.opadState = num; if (num == 0 || num == 0) { continue; } } byte[] array7 = this.inputPad; IDigest digest5 = this.digest; length2 = array7.Length; if (length2 == 0) { return; } IDigest digest6 = this.digest; if (length2 != 0 && length2 != 0) { break; } } } } this.ipadState = length2; } // Token: 0x0600999C RID: 39324 RVA: 0x00222FE4 File Offset: 0x002211E4 [Token(Token = "0x600999C")] [Address(RVA = "0x3EE8D0", Offset = "0x3ED2D0", VA = "0x1803EE8D0", Slot = "14")] public virtual int GetMacSize() { return this.digestSize; } // Token: 0x0600999D RID: 39325 RVA: 0x00222FF8 File Offset: 0x002211F8 [Token(Token = "0x600999D")] [Address(RVA = "0x20F1590", Offset = "0x20EFF90", VA = "0x1820F1590", Slot = "15")] public virtual void Update(byte input) { IDigest digest = this.digest; throw new NullReferenceException(); } // Token: 0x0600999E RID: 39326 RVA: 0x00223014 File Offset: 0x00221214 [Token(Token = "0x600999E")] [Address(RVA = "0x20F0E30", Offset = "0x20EF830", VA = "0x1820F0E30", Slot = "16")] public virtual void BlockUpdate(byte[] input, int inOff, int len) { IDigest digest = this.digest; } // Token: 0x0600999F RID: 39327 RVA: 0x00223030 File Offset: 0x00221230 [Token(Token = "0x600999F")] [Address(RVA = "0x20F0EB0", Offset = "0x20EF8B0", VA = "0x1820F0EB0", Slot = "17")] public virtual int DoFinal(byte[] output, int outOff) { int num; int num5; for (;;) { IDigest digest = this.digest; num = this.blockLength; IMemoable memoable = this.opadState; IDigest digest2 = this.digest; if (memoable == 0) { int length = this.outputBuf.Length; } if (num != 0 && num != 0) { IDigest digest3 = this.digest; int num2 = this.blockLength; IDigest digest4 = this.digest; int num3 = this.digestSize; int num4 = this.blockLength; Array.Clear(this.outputBuf, num4, num3); IMemoable memoable2 = this.ipadState; IDigest digest5 = this.digest; if (memoable2 == 0) { break; } if (num5 != 0 && num5 != 0) { goto Block_5; } } } num5 = this.inputPad.Length; num5 = num; return num5; Block_5: throw new NullReferenceException(); } // Token: 0x060099A0 RID: 39328 RVA: 0x002230E8 File Offset: 0x002212E8 [Token(Token = "0x60099A0")] [Address(RVA = "0x20F1510", Offset = "0x20EFF10", VA = "0x1820F1510", Slot = "18")] public virtual void Reset() { IDigest digest = this.digest; byte[] array = this.inputPad; IDigest digest2 = this.digest; int length = array.Length; } // Token: 0x060099A1 RID: 39329 RVA: 0x00223118 File Offset: 0x00221318 [Token(Token = "0x60099A1")] [Address(RVA = "0x20F15F0", Offset = "0x20EFFF0", VA = "0x1820F15F0")] private static void XorPad(byte[] pad, int len, byte n) { int num = 0; if (len > 0) { num++; } } // Token: 0x040064D5 RID: 25813 [Token(Token = "0x40064D5")] private const byte IPAD = 54; // Token: 0x040064D6 RID: 25814 [Token(Token = "0x40064D6")] private const byte OPAD = 92; // Token: 0x040064D7 RID: 25815 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x40064D7")] private readonly IDigest digest; // Token: 0x040064D8 RID: 25816 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x40064D8")] private readonly int digestSize; // Token: 0x040064D9 RID: 25817 [global::Cpp2IlInjected.FieldOffset(Offset = "0x1C")] [Token(Token = "0x40064D9")] private readonly int blockLength; // Token: 0x040064DA RID: 25818 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x40064DA")] private IMemoable ipadState; // Token: 0x040064DB RID: 25819 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x40064DB")] private IMemoable opadState; // Token: 0x040064DC RID: 25820 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x40064DC")] private readonly byte[] inputPad; // Token: 0x040064DD RID: 25821 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x40064DD")] private readonly byte[] outputBuf; } }