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: 0x02001B7F RID: 7039 [Token(Token = "0x2001B7F")] public class TlsMac { // Token: 0x0600AF2E RID: 44846 RVA: 0x002614CC File Offset: 0x0025F6CC [Token(Token = "0x600AF2E")] [Address(RVA = "0x198B610", Offset = "0x198A410", VA = "0x18198B610")] 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: 0x17001BB7 RID: 7095 // (get) Token: 0x0600AF2F RID: 44847 RVA: 0x00261590 File Offset: 0x0025F790 [Token(Token = "0x17001BB7")] public virtual byte[] MacSecret { [Token(Token = "0x600AF2F")] [Address(RVA = "0x3F5F40", Offset = "0x3F4D40", VA = "0x1803F5F40", Slot = "4")] get { return this.secret; } } // Token: 0x17001BB8 RID: 7096 // (get) Token: 0x0600AF30 RID: 44848 RVA: 0x002615A4 File Offset: 0x0025F7A4 [Token(Token = "0x17001BB8")] public virtual int Size { [Token(Token = "0x600AF30")] [Address(RVA = "0x4730E0", Offset = "0x471EE0", VA = "0x1804730E0", Slot = "5")] get { return this.macLength; } } // Token: 0x0600AF31 RID: 44849 RVA: 0x002615B8 File Offset: 0x0025F7B8 [Token(Token = "0x600AF31")] [Address(RVA = "0x198B350", Offset = "0x198A150", VA = "0x18198B350", Slot = "6")] public virtual byte[] CalculateMac(long seqNo, byte type, byte[] message, int offset, int length) { TlsContext tlsContext = this.context; bool flag; if (flag) { } int num = 0; byte[] array = new byte[13]; int num2 = 0; TlsUtilities.WriteUint64(seqNo, array, num2); TlsUtilities.WriteUint8(type, array, 8); if (num == 0) { } IMac mac = this.mac; int length2 = array.Length; IMac mac2 = this.mac; return MacUtilities.DoFinal(this.mac); } // Token: 0x0600AF32 RID: 44850 RVA: 0x00261624 File Offset: 0x0025F824 [Token(Token = "0x600AF32")] [Address(RVA = "0x198B120", Offset = "0x1989F20", VA = "0x18198B120", 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: 0x0600AF33 RID: 44851 RVA: 0x00261684 File Offset: 0x0025F884 [Token(Token = "0x600AF33")] [Address(RVA = "0x198B570", Offset = "0x198A370", VA = "0x18198B570", Slot = "8")] protected virtual int GetDigestBlockCount(int inputLength) { int num = this.digestOverhead; return num + inputLength; } // Token: 0x0600AF34 RID: 44852 RVA: 0x002616A0 File Offset: 0x0025F8A0 [Token(Token = "0x600AF34")] [Address(RVA = "0x198B580", Offset = "0x198A380", VA = "0x18198B580", Slot = "9")] protected virtual byte[] Truncate(byte[] bs) { int num = this.macLength; if (bs.Length > num) { return Arrays.CopyOf(bs, num); } return bs; } // Token: 0x0400701D RID: 28701 [FieldOffset(Offset = "0x10")] [Token(Token = "0x400701D")] protected readonly TlsContext context; // Token: 0x0400701E RID: 28702 [FieldOffset(Offset = "0x18")] [Token(Token = "0x400701E")] protected readonly byte[] secret; // Token: 0x0400701F RID: 28703 [FieldOffset(Offset = "0x20")] [Token(Token = "0x400701F")] protected readonly IMac mac; // Token: 0x04007020 RID: 28704 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4007020")] protected readonly int digestBlockSize; // Token: 0x04007021 RID: 28705 [FieldOffset(Offset = "0x2C")] [Token(Token = "0x4007021")] protected readonly int digestOverhead; // Token: 0x04007022 RID: 28706 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4007022")] protected readonly int macLength; } }