using System; using System.IO; using System.Runtime.InteropServices; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1 { // Token: 0x020017C3 RID: 6083 [Token(Token = "0x20017C3")] [StructLayout(3)] internal class DefiniteLengthInputStream : LimitedInputStream { // Token: 0x0600A400 RID: 41984 RVA: 0x00262754 File Offset: 0x00260954 [Token(Token = "0x600A400")] [Address(RVA = "0x1ECE200", Offset = "0x1ECCC00", VA = "0x181ECE200")] internal DefiniteLengthInputStream(Stream inStream, int length) : base(inStream, length) { this._originalLength = length; this._remaining = length; if (length == 0) { int remaining = this.GetRemaining(); } } // Token: 0x170019A9 RID: 6569 // (get) Token: 0x0600A401 RID: 41985 RVA: 0x00262794 File Offset: 0x00260994 [Token(Token = "0x170019A9")] internal int Remaining { [Token(Token = "0x600A401")] [Address(RVA = "0x446CC0", Offset = "0x4456C0", VA = "0x180446CC0")] get { return this._remaining; } } // Token: 0x0600A402 RID: 41986 RVA: 0x002627A8 File Offset: 0x002609A8 [Token(Token = "0x600A402")] [Address(RVA = "0x1ECDC00", Offset = "0x1ECC600", VA = "0x181ECDC00", Slot = "28")] public override int ReadByte() { if (this._remaining != 0) { Stream @in = this._in; int num; if (num == 0) { int remaining = this.GetRemaining(); } return num; } object[] array = new object[4]; throw new NullReferenceException(); } // Token: 0x0600A403 RID: 41987 RVA: 0x00262838 File Offset: 0x00260A38 [Token(Token = "0x600A403")] [Address(RVA = "0x1ECDDC0", Offset = "0x1ECC7C0", VA = "0x181ECDDC0", Slot = "27")] public override int Read(byte[] buf, int off, int len) { int remaining = this._remaining; if (remaining != 0) { int num = Math.Min(len, remaining); Stream @in = this._in; if (num == 1) { int remaining2 = this.GetRemaining(); } } return 0; } // Token: 0x0600A404 RID: 41988 RVA: 0x002628D0 File Offset: 0x00260AD0 [Token(Token = "0x600A404")] [Address(RVA = "0x1ECDA20", Offset = "0x1ECC420", VA = "0x181ECDA20")] internal void ReadAllIntoByteArray(byte[] buf) { int num; do { num = this._remaining; } while (num != buf.Length); int num2 = Streams.ReadFully(this._in, buf); num -= num2; this._remaining = num; if (num == buf.Length) { ((IDisposable)this).Dispose(); return; } object[] array = new object[4]; throw new NullReferenceException(); } // Token: 0x0600A405 RID: 41989 RVA: 0x00262978 File Offset: 0x00260B78 [Token(Token = "0x600A405")] [Address(RVA = "0x1ECDFC0", Offset = "0x1ECC9C0", VA = "0x181ECDFC0")] internal byte[] ToArray() { int remaining = this._remaining; if (remaining == 0) { return DefiniteLengthInputStream.EmptyBytes; } byte[] array = new byte[remaining]; Stream @in = this._in; int num = this._remaining; int num2 = Streams.ReadFully(@in, array); num -= num2; this._remaining = num; if (remaining == 0) { int remaining2 = this.GetRemaining(); return array; } object[] array2 = new object[4]; throw new NullReferenceException(); } // Token: 0x04006B66 RID: 27494 [Token(Token = "0x4006B66")] private static readonly byte[] EmptyBytes = new byte[0]; // Token: 0x04006B67 RID: 27495 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x4006B67")] private readonly int _originalLength; // Token: 0x04006B68 RID: 27496 [global::Cpp2IlInjected.FieldOffset(Offset = "0x44")] [Token(Token = "0x4006B68")] private int _remaining; } }