using System; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs { // Token: 0x02001D31 RID: 7473 [Token(Token = "0x2001D31")] public class HMac : IMac { // Token: 0x0600B940 RID: 47424 RVA: 0x0028357C File Offset: 0x0028177C [Token(Token = "0x600B940")] [Address(RVA = "0x25BD270", Offset = "0x25BC270", VA = "0x1825BD270")] 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: 0x17001D2F RID: 7471 // (get) Token: 0x0600B941 RID: 47425 RVA: 0x002835C0 File Offset: 0x002817C0 [Token(Token = "0x17001D2F")] public virtual string AlgorithmName { [Token(Token = "0x600B941")] [Address(RVA = "0x25BD320", Offset = "0x25BC320", VA = "0x1825BD320", Slot = "11")] get { IDigest digest = this.digest; return 0 + "/HMAC"; } } // Token: 0x0600B942 RID: 47426 RVA: 0x002835E8 File Offset: 0x002817E8 [Token(Token = "0x600B942")] [Address(RVA = "0x411530", Offset = "0x410530", VA = "0x180411530", Slot = "12")] public virtual IDigest GetUnderlyingDigest() { return this.digest; } // Token: 0x0600B943 RID: 47427 RVA: 0x002835FC File Offset: 0x002817FC [Token(Token = "0x600B943")] [Address(RVA = "0x25BCD30", Offset = "0x25BBD30", VA = "0x1825BCD30", 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: 0x0600B944 RID: 47428 RVA: 0x00283750 File Offset: 0x00281950 [Token(Token = "0x600B944")] [Address(RVA = "0x411540", Offset = "0x410540", VA = "0x180411540", Slot = "14")] public virtual int GetMacSize() { return this.digestSize; } // Token: 0x0600B945 RID: 47429 RVA: 0x00283764 File Offset: 0x00281964 [Token(Token = "0x600B945")] [Address(RVA = "0x25BD1C0", Offset = "0x25BC1C0", VA = "0x1825BD1C0", Slot = "15")] public virtual void Update(byte input) { IDigest digest = this.digest; throw new NullReferenceException(); } // Token: 0x0600B946 RID: 47430 RVA: 0x00283780 File Offset: 0x00281980 [Token(Token = "0x600B946")] [Address(RVA = "0x25BCA60", Offset = "0x25BBA60", VA = "0x1825BCA60", Slot = "16")] public virtual void BlockUpdate(byte[] input, int inOff, int len) { IDigest digest = this.digest; } // Token: 0x0600B947 RID: 47431 RVA: 0x0028379C File Offset: 0x0028199C [Token(Token = "0x600B947")] [Address(RVA = "0x25BCAE0", Offset = "0x25BBAE0", VA = "0x1825BCAE0", 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: 0x0600B948 RID: 47432 RVA: 0x00283854 File Offset: 0x00281A54 [Token(Token = "0x600B948")] [Address(RVA = "0x25BD140", Offset = "0x25BC140", VA = "0x1825BD140", Slot = "18")] public virtual void Reset() { IDigest digest = this.digest; byte[] array = this.inputPad; IDigest digest2 = this.digest; int length = array.Length; } // Token: 0x0600B949 RID: 47433 RVA: 0x00283884 File Offset: 0x00281A84 [Token(Token = "0x600B949")] [Address(RVA = "0x25BD220", Offset = "0x25BC220", VA = "0x1825BD220")] private static void XorPad(byte[] pad, int len, byte n) { int num = 0; if (len > 0) { num++; } } // Token: 0x040074D1 RID: 29905 [Token(Token = "0x40074D1")] private const byte IPAD = 54; // Token: 0x040074D2 RID: 29906 [Token(Token = "0x40074D2")] private const byte OPAD = 92; // Token: 0x040074D3 RID: 29907 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40074D3")] private readonly IDigest digest; // Token: 0x040074D4 RID: 29908 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40074D4")] private readonly int digestSize; // Token: 0x040074D5 RID: 29909 [FieldOffset(Offset = "0x1C")] [Token(Token = "0x40074D5")] private readonly int blockLength; // Token: 0x040074D6 RID: 29910 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40074D6")] private IMemoable ipadState; // Token: 0x040074D7 RID: 29911 [FieldOffset(Offset = "0x28")] [Token(Token = "0x40074D7")] private IMemoable opadState; // Token: 0x040074D8 RID: 29912 [FieldOffset(Offset = "0x30")] [Token(Token = "0x40074D8")] private readonly byte[] inputPad; // Token: 0x040074D9 RID: 29913 [FieldOffset(Offset = "0x38")] [Token(Token = "0x40074D9")] private readonly byte[] outputBuf; } }