using System; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Macs; using BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Parameters; using BestHTTP.SecureProtocol.Org.BouncyCastle.Security; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Crypto.Tls { // Token: 0x02001C5F RID: 7263 [Token(Token = "0x2001C5F")] public class TlsMac { // Token: 0x0600B2FC RID: 45820 RVA: 0x0026A66C File Offset: 0x0026886C [Token(Token = "0x600B2FC")] [Address(RVA = "0x4A9CB0", Offset = "0x4A8CB0", VA = "0x1804A9CB0")] public TlsMac(TlsContext context, IDigest digest, byte[] key, int keyOff, int keyLen) { this.context = context; KeyParameter keyParameter; byte[] array = Arrays.Clone(keyParameter.GetKey()); this.secret = array; if (digest != 0) { } this.digestBlockSize = (int)((uint)128); this.digestOverhead = (int)((uint)16); if (!TlsUtilities.IsSsl(context)) { HMac hmac = new HMac(digest); this.mac = hmac; } Ssl3Mac ssl3Mac; ssl3Mac.digest = digest; ssl3Mac.padLength = (int)((uint)48); this.mac = ssl3Mac; if (ssl3Mac == (ulong)20L) { this.digestOverhead = (int)((ulong)4L); } IMac mac = this.mac; IMac mac2 = this.mac; this.macLength = ssl3Mac; int num = Math.Min(this.macLength, 10); this.macLength = num; } // Token: 0x17001C54 RID: 7252 // (get) Token: 0x0600B2FD RID: 45821 RVA: 0x0026A730 File Offset: 0x00268930 [Token(Token = "0x17001C54")] public virtual byte[] MacSecret { [Token(Token = "0x600B2FD")] [Address(RVA = "0x4157B0", Offset = "0x4147B0", VA = "0x1804157B0", Slot = "4")] get { return this.secret; } } // Token: 0x17001C55 RID: 7253 // (get) Token: 0x0600B2FE RID: 45822 RVA: 0x0026A744 File Offset: 0x00268944 [Token(Token = "0x17001C55")] public virtual int Size { [Token(Token = "0x600B2FE")] [Address(RVA = "0x4257C0", Offset = "0x4247C0", VA = "0x1804257C0", Slot = "5")] get { return this.macLength; } } // Token: 0x0600B2FF RID: 45823 RVA: 0x0026A758 File Offset: 0x00268958 [Token(Token = "0x600B2FF")] [Address(RVA = "0x4A99B0", Offset = "0x4A89B0", VA = "0x1804A99B0", Slot = "6")] public virtual byte[] CalculateMac(long seqNo, byte type, byte[] message, int offset, int length) { TlsContext tlsContext = this.context; byte[] array = new byte[11]; int num = 0; TlsUtilities.WriteUint64(seqNo, array, num); TlsUtilities.WriteUint8(type, array, 8); bool flag; if (!flag) { } IMac mac = this.mac; int length2 = array.Length; IMac mac2 = this.mac; return MacUtilities.DoFinal(this.mac); } // Token: 0x0600B300 RID: 45824 RVA: 0x0026A7B8 File Offset: 0x002689B8 [Token(Token = "0x600B300")] [Address(RVA = "0x4A9780", Offset = "0x4A8780", VA = "0x1804A9780", Slot = "7")] public virtual byte[] CalculateMacConstantTime(long seqNo, byte type, byte[] message, int offset, int length, int fullLength, byte[] dummyData) { int size = this.Size; bool flag = TlsUtilities.IsSsl(this.context); byte[] array; byte[] array2; array -= array2; int num = 0; IMac mac = this.mac; num += num; num++; IMac mac2 = this.mac; num += 4; num += 19; IMac mac3 = this.mac; throw new NullReferenceException(); } // Token: 0x0600B301 RID: 45825 RVA: 0x0026A818 File Offset: 0x00268A18 [Token(Token = "0x600B301")] [Address(RVA = "0x4A9C10", Offset = "0x4A8C10", VA = "0x1804A9C10", Slot = "8")] protected virtual int GetDigestBlockCount(int inputLength) { int num = this.digestOverhead; return num + inputLength; } // Token: 0x0600B302 RID: 45826 RVA: 0x0026A834 File Offset: 0x00268A34 [Token(Token = "0x600B302")] [Address(RVA = "0x4A9C20", Offset = "0x4A8C20", VA = "0x1804A9C20", Slot = "9")] protected virtual byte[] Truncate(byte[] bs) { int num = this.macLength; if (bs.Length > num) { return Arrays.CopyOf(bs, num); } return bs; } // Token: 0x040071D6 RID: 29142 [FieldOffset(Offset = "0x10")] [Token(Token = "0x40071D6")] protected readonly TlsContext context; // Token: 0x040071D7 RID: 29143 [FieldOffset(Offset = "0x18")] [Token(Token = "0x40071D7")] protected readonly byte[] secret; // Token: 0x040071D8 RID: 29144 [FieldOffset(Offset = "0x20")] [Token(Token = "0x40071D8")] protected readonly IMac mac; // Token: 0x040071D9 RID: 29145 [FieldOffset(Offset = "0x28")] [Token(Token = "0x40071D9")] protected readonly int digestBlockSize; // Token: 0x040071DA RID: 29146 [FieldOffset(Offset = "0x2C")] [Token(Token = "0x40071DA")] protected readonly int digestOverhead; // Token: 0x040071DB RID: 29147 [FieldOffset(Offset = "0x30")] [Token(Token = "0x40071DB")] protected readonly int macLength; } }