<PackageReference Include="BouncyCastle.Cryptography" Version="2.3.1" />

CmsProcessableFile

using Org.BouncyCastle.Utilities.IO; using System.IO; namespace Org.BouncyCastle.Cms { public class CmsProcessableFile : CmsProcessable, CmsReadable { private const int DefaultBufSize = 32768; private readonly FileInfo _file; private readonly int _bufSize; public CmsProcessableFile(FileInfo file) : this(file, 32768) { } public CmsProcessableFile(FileInfo file, int bufSize) { _file = file; _bufSize = bufSize; } public virtual Stream GetInputStream() { return new FileStream(_file.FullName, FileMode.Open, FileAccess.Read, FileShare.Read, _bufSize); } public virtual void Write(Stream zOut) { using (FileStream inStr = _file.OpenRead()) Streams.PipeAll(inStr, zOut, _bufSize); } } }