Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Bcpg/OpenPgp/PgpCompressedData.cs
2025-10-09 09:57:24 +09:00

35 lines
934 B
C#

using System.IO;
using Org.BouncyCastle.Apache.Bzip2;
using Org.BouncyCastle.Utilities.Zlib;
namespace Org.BouncyCastle.Bcpg.OpenPgp;
public class PgpCompressedData : PgpObject
{
private readonly CompressedDataPacket data;
public CompressionAlgorithmTag Algorithm => data.Algorithm;
public PgpCompressedData(BcpgInputStream bcpgInput)
{
data = (CompressedDataPacket)bcpgInput.ReadPacket();
}
public Stream GetInputStream()
{
return data.GetInputStream();
}
public Stream GetDataStream()
{
return Algorithm switch
{
CompressionAlgorithmTag.Uncompressed => GetInputStream(),
CompressionAlgorithmTag.Zip => new ZInputStream(GetInputStream(), nowrap: true),
CompressionAlgorithmTag.ZLib => new ZInputStream(GetInputStream()),
CompressionAlgorithmTag.BZip2 => new CBZip2InputStream(GetInputStream()),
_ => throw new PgpException("can't recognise compression algorithm: " + Algorithm),
};
}
}