001package org.apache.commons.ssl.org.bouncycastle.asn1.cms;
002
003import java.io.IOException;
004
005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Integer;
006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1SequenceParser;
007import org.apache.commons.ssl.org.bouncycastle.asn1.x509.AlgorithmIdentifier;
008
009/**
010 * Parser of <a href="http://tools.ietf.org/html/rfc3274">RFC 3274</a> {@link CompressedData} object.
011 * <p>
012 * <pre>
013 * CompressedData ::= SEQUENCE {
014 *     version CMSVersion,
015 *     compressionAlgorithm CompressionAlgorithmIdentifier,
016 *     encapContentInfo EncapsulatedContentInfo
017 * }
018 * </pre>
019 */
020public class CompressedDataParser
021{
022    private ASN1Integer _version;
023    private AlgorithmIdentifier _compressionAlgorithm;
024    private ContentInfoParser _encapContentInfo;
025
026    public CompressedDataParser(
027        ASN1SequenceParser seq)
028        throws IOException
029    {
030        this._version = (ASN1Integer)seq.readObject();
031        this._compressionAlgorithm = AlgorithmIdentifier.getInstance(seq.readObject().toASN1Primitive());
032        this._encapContentInfo = new ContentInfoParser((ASN1SequenceParser)seq.readObject());
033    }
034
035    public ASN1Integer getVersion()
036    {
037        return _version;
038    }
039
040    public AlgorithmIdentifier getCompressionAlgorithmIdentifier()
041    {
042        return _compressionAlgorithm;
043    }
044
045    public ContentInfoParser getEncapContentInfo()
046    {
047        return _encapContentInfo;
048    }
049}