using System; using System.IO; using BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities.IO; using Cpp2IlInjected; namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Asn1 { // Token: 0x02001DA0 RID: 7584 [Token(Token = "0x2001DA0")] internal class DefiniteLengthInputStream : LimitedInputStream { // Token: 0x0600BFDA RID: 49114 RVA: 0x002BAC30 File Offset: 0x002B8E30 [Token(Token = "0x600BFDA")] [Address(RVA = "0x1876F30", Offset = "0x1875D30", VA = "0x181876F30")] internal DefiniteLengthInputStream(Stream inStream, int length) : base(inStream, length) { this._originalLength = length; this._remaining = length; if (length == 0) { int remaining = this.GetRemaining(); } } // Token: 0x17001DAA RID: 7594 // (get) Token: 0x0600BFDB RID: 49115 RVA: 0x002BAC70 File Offset: 0x002B8E70 [Token(Token = "0x17001DAA")] internal int Remaining { [Token(Token = "0x600BFDB")] [Address(RVA = "0x3F6410", Offset = "0x3F5210", VA = "0x1803F6410")] get { return this._remaining; } } // Token: 0x0600BFDC RID: 49116 RVA: 0x002BAC84 File Offset: 0x002B8E84 [Token(Token = "0x600BFDC")] [Address(RVA = "0x1876930", Offset = "0x1875730", VA = "0x181876930", 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: 0x0600BFDD RID: 49117 RVA: 0x002BAD14 File Offset: 0x002B8F14 [Token(Token = "0x600BFDD")] [Address(RVA = "0x1876AF0", Offset = "0x18758F0", VA = "0x181876AF0", 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: 0x0600BFDE RID: 49118 RVA: 0x002BADAC File Offset: 0x002B8FAC [Token(Token = "0x600BFDE")] [Address(RVA = "0x1876750", Offset = "0x1875550", VA = "0x181876750")] 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: 0x0600BFDF RID: 49119 RVA: 0x002BAE54 File Offset: 0x002B9054 [Token(Token = "0x600BFDF")] [Address(RVA = "0x1876CF0", Offset = "0x1875AF0", VA = "0x181876CF0")] 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: 0x040079A9 RID: 31145 [Token(Token = "0x40079A9")] private static readonly byte[] EmptyBytes = new byte[0]; // Token: 0x040079AA RID: 31146 [FieldOffset(Offset = "0x40")] [Token(Token = "0x40079AA")] private readonly int _originalLength; // Token: 0x040079AB RID: 31147 [FieldOffset(Offset = "0x44")] [Token(Token = "0x40079AB")] private int _remaining; } }