/// <summary> /// Decompress the specified stream. /// </summary> /// <remarks> /// Decompress the specified stream. /// </remarks> /// <returns>The decompressed mime part.</returns> /// <param name="stream">The stream to decompress.</param> /// <exception cref="System.ArgumentNullException"> /// <paramref name="stream"/> is <c>null</c>. /// </exception> /// <exception cref="Org.BouncyCastle.Cms.CmsException"> /// An error occurred in the cryptographic message syntax subsystem. /// </exception> public MimeEntity Decompress(Stream stream) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } var parser = new CmsCompressedDataParser(stream); var content = parser.GetContent(); return(MimeEntity.Load(content.ContentStream)); }
/// <summary> /// Decompress the specified stream to an output stream. /// </summary> /// <remarks> /// Decompress the specified stream to an output stream. /// </remarks> /// <param name="stream">The stream to decompress.</param> /// <param name="output">The output stream.</param> /// <exception cref="System.ArgumentNullException"> /// <para><paramref name="stream"/> is <c>null</c>.</para> /// <para>-or-</para> /// <para><paramref name="output"/> is <c>null</c>.</para> /// </exception> /// <exception cref="Org.BouncyCastle.Cms.CmsException"> /// An error occurred in the cryptographic message syntax subsystem. /// </exception> public virtual void DecompressTo(Stream stream, Stream output) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } if (output == null) { throw new ArgumentNullException(nameof(output)); } var parser = new CmsCompressedDataParser(stream); var content = parser.GetContent(); content.ContentStream.CopyTo(output, 4096); }
public void TestEach() { byte[] testData = Encoding.ASCII.GetBytes("Hello world!"); CmsCompressedDataStreamGenerator gen = new CmsCompressedDataStreamGenerator(); MemoryStream bOut = new MemoryStream(); Stream cOut = gen.Open(bOut, CmsCompressedDataStreamGenerator.ZLib); cOut.Write(testData, 0, testData.Length); cOut.Close(); CmsCompressedDataParser ed = new CmsCompressedDataParser(bOut.ToArray()); Assert.IsTrue(Arrays.AreEqual(testData, CmsTestUtil.StreamToByteArray(ed.GetContent().ContentStream))); }
public void Test1000() { byte[] testData = new byte[10000]; SecureRandom rand = new SecureRandom(); rand.SetSeed(0); for (int i = 0; i != 10; i++) { CmsCompressedDataStreamGenerator gen = new CmsCompressedDataStreamGenerator(); MemoryStream bOut = new MemoryStream(); Stream cOut = gen.Open(bOut, CmsCompressedDataStreamGenerator.ZLib); rand.NextBytes(testData); cOut.Write(testData, 0, testData.Length); cOut.Close(); CmsCompressedDataParser ed = new CmsCompressedDataParser(bOut.ToArray()); Assert.IsTrue(Arrays.AreEqual(testData, CmsTestUtil.StreamToByteArray(ed.GetContent().ContentStream))); } }
public void TestWorkingData() { CmsCompressedDataParser ed = new CmsCompressedDataParser(compData); Assert.IsTrue(Arrays.AreEqual(uncompData, CmsTestUtil.StreamToByteArray(ed.GetContent().ContentStream))); }