ZLib
using System.IO;
using System.IO.Compression;
namespace Org.BouncyCastle.Utilities.IO.Compression
{
internal static class ZLib
{
internal static Stream CompressOutput(Stream stream, int zlibCompressionLevel, bool leaveOpen = false)
{
return new ZLibStream(stream, GetCompressionLevel(zlibCompressionLevel), leaveOpen);
}
internal static Stream DecompressInput(Stream stream, bool leaveOpen = false)
{
return new ZLibStream(stream, CompressionMode.Decompress, leaveOpen);
}
internal static CompressionLevel GetCompressionLevel(int zlibCompressionLevel)
{
switch (zlibCompressionLevel) {
case 0:
return CompressionLevel.NoCompression;
case 1:
case 2:
case 3:
return CompressionLevel.Fastest;
case 7:
case 8:
case 9:
return CompressionLevel.SmallestSize;
default:
return CompressionLevel.Optimal;
}
}
}
}