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

PgpCompressedData

public class PgpCompressedData : PgpObject
using Org.BouncyCastle.Utilities.IO.Compression; using System.IO; namespace Org.BouncyCastle.Bcpg.OpenPgp { public class PgpCompressedData : PgpObject { private readonly CompressedDataPacket data; public CompressionAlgorithmTag Algorithm => data.Algorithm; public PgpCompressedData(BcpgInputStream bcpgInput) { Packet packet = bcpgInput.ReadPacket(); CompressedDataPacket compressedDataPacket = packet as CompressedDataPacket; if (compressedDataPacket == null) throw new IOException("unexpected packet in stream: " + packet?.ToString()); data = compressedDataPacket; } public Stream GetInputStream() { return data.GetInputStream(); } public Stream GetDataStream() { switch (Algorithm) { case CompressionAlgorithmTag.Uncompressed: return GetInputStream(); case CompressionAlgorithmTag.Zip: return Zip.DecompressInput(GetInputStream(), false); case CompressionAlgorithmTag.ZLib: return ZLib.DecompressInput(GetInputStream(), false); case CompressionAlgorithmTag.BZip2: return Bzip2.DecompressInput(GetInputStream(), false); default: throw new PgpException("can't recognise compression algorithm: " + Algorithm.ToString()); } } } }