<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

BaseInputStream

public abstract class BaseInputStream : Stream
using System; using System.IO; using System.Threading; using System.Threading.Tasks; namespace Org.BouncyCastle.Utilities.IO { public abstract class BaseInputStream : Stream { public sealed override bool CanRead => true; public sealed override bool CanSeek => false; public sealed override bool CanWrite => false; public sealed override long Length { get { throw new NotSupportedException(); } } public sealed override long Position { get { throw new NotSupportedException(); } set { throw new NotSupportedException(); } } public override void CopyTo(Stream destination, int bufferSize) { Streams.CopyTo(this, destination, bufferSize); } public override Task CopyToAsync(Stream destination, int bufferSize, CancellationToken cancellationToken) { return Streams.CopyToAsync(this, destination, bufferSize, cancellationToken); } public sealed override void Flush() { } public override int Read(byte[] buffer, int offset, int count) { Streams.ValidateBufferArguments(buffer, offset, count); int num = 0; try { while (true) { if (num >= count) return num; int num2 = ReadByte(); if (num2 < 0) break; buffer[offset + num++] = (byte)num2; } return num; } catch (IOException) { if (num == 0) throw; return num; } } public override int Read(Span<byte> buffer) { int length = buffer.Length; int num = 0; try { while (true) { if (num >= length) return num; int num2 = ReadByte(); if (num2 < 0) break; buffer[num++] = (byte)num2; } return num; } catch (IOException) { if (num == 0) throw; return num; } } public override ValueTask<int> ReadAsync(Memory<byte> buffer, CancellationToken cancellationToken = default(CancellationToken)) { return Streams.ReadAsync(this, buffer, cancellationToken); } public sealed override long Seek(long offset, SeekOrigin origin) { throw new NotSupportedException(); } public sealed override void SetLength(long value) { throw new NotSupportedException(); } public sealed override void Write(byte[] buffer, int offset, int count) { throw new NotSupportedException(); } public override void Write(ReadOnlySpan<byte> buffer) { throw new NotSupportedException(); } public override ValueTask WriteAsync(ReadOnlyMemory<byte> buffer, CancellationToken cancellationToken = default(CancellationToken)) { throw new NotSupportedException(); } } }