Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Cms/CmsCompressedDataParser.cs
2025-10-09 09:57:24 +09:00

35 lines
1.0 KiB
C#

using System.IO;
using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Asn1.Cms;
using Org.BouncyCastle.Utilities.Zlib;
namespace Org.BouncyCastle.Cms;
public class CmsCompressedDataParser : CmsContentInfoParser
{
public CmsCompressedDataParser(byte[] compressedData)
: this(new MemoryStream(compressedData, writable: false))
{
}
public CmsCompressedDataParser(Stream compressedData)
: base(compressedData)
{
}
public CmsTypedStream GetContent()
{
try
{
CompressedDataParser compressedDataParser = new CompressedDataParser((Asn1SequenceParser)contentInfo.GetContent(16));
ContentInfoParser encapContentInfo = compressedDataParser.GetEncapContentInfo();
Asn1OctetStringParser asn1OctetStringParser = (Asn1OctetStringParser)encapContentInfo.GetContent(4);
return new CmsTypedStream(encapContentInfo.ContentType.ToString(), new ZInputStream(asn1OctetStringParser.GetOctetStream()));
}
catch (IOException e)
{
throw new CmsException("IOException reading compressed content.", e);
}
}
}