com.fitbur.bouncycastle.cms.CMSCompressedData Maven / Gradle / Ivy
package com.fitbur.bouncycastle.cms;
import java.io.IOException;
import java.io.InputStream;
import com.fitbur.bouncycastle.asn1.ASN1ObjectIdentifier;
import com.fitbur.bouncycastle.asn1.ASN1OctetString;
import com.fitbur.bouncycastle.asn1.cms.CompressedData;
import com.fitbur.bouncycastle.asn1.cms.ContentInfo;
import com.fitbur.bouncycastle.operator.InputExpander;
import com.fitbur.bouncycastle.operator.InputExpanderProvider;
/**
* containing class for an CMS Compressed Data object
*
* CMSCompressedData cd = new CMSCompressedData(inputStream);
*
* process(cd.getContent(new ZlibExpanderProvider()));
*
*/
public class CMSCompressedData
{
ContentInfo contentInfo;
CompressedData com.fitburData;
public CMSCompressedData(
byte[] com.fitburpressedData)
throws CMSException
{
this(CMSUtils.readContentInfo(com.fitburpressedData));
}
public CMSCompressedData(
InputStream com.fitburpressedData)
throws CMSException
{
this(CMSUtils.readContentInfo(com.fitburpressedData));
}
public CMSCompressedData(
ContentInfo contentInfo)
throws CMSException
{
this.contentInfo = contentInfo;
try
{
this.com.fitburData = CompressedData.getInstance(contentInfo.getContent());
}
catch (ClassCastException e)
{
throw new CMSException("Malformed content.", e);
}
catch (IllegalArgumentException e)
{
throw new CMSException("Malformed content.", e);
}
}
public ASN1ObjectIdentifier getContentType()
{
return contentInfo.getContentType();
}
/**
* Return the uncompressed content.
*
* @param expanderProvider a provider of expander algorithm implementations.
* @return the uncompressed content
* @throws CMSException if there is an exception un-com.fitburpressing the data.
*/
public byte[] getContent(InputExpanderProvider expanderProvider)
throws CMSException
{
ContentInfo content = com.fitburData.getEncapContentInfo();
ASN1OctetString bytes = (ASN1OctetString)content.getContent();
InputExpander expander = expanderProvider.get(com.fitburData.getCompressionAlgorithmIdentifier());
InputStream zIn = expander.getInputStream(bytes.getOctetStream());
try
{
return CMSUtils.streamToByteArray(zIn);
}
catch (IOException e)
{
throw new CMSException("exception reading com.fitburpressed stream.", e);
}
}
/**
* return the ContentInfo
*/
public ContentInfo toASN1Structure()
{
return contentInfo;
}
/**
* return the ASN.1 encoded representation of this object.
*/
public byte[] getEncoded()
throws IOException
{
return contentInfo.getEncoded();
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy