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}