package org.bouncycastle.asn1.cms;

import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1EncodableVector;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.ASN1TaggedObject;
import org.bouncycastle.asn1.BERSequence;
import org.bouncycastle.asn1.DERInteger;
import org.bouncycastle.asn1.DERObject;
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;

RFC 3274 - CMS Compressed Data.
CompressedData ::= SEQUENCE {
 version CMSVersion,
 compressionAlgorithm CompressionAlgorithmIdentifier,
 encapContentInfo EncapsulatedContentInfo
}
/** * RFC 3274 - CMS Compressed Data. * <pre> * CompressedData ::= SEQUENCE { * version CMSVersion, * compressionAlgorithm CompressionAlgorithmIdentifier, * encapContentInfo EncapsulatedContentInfo * } * </pre> */
public class CompressedData extends ASN1Encodable { private DERInteger version; private AlgorithmIdentifier compressionAlgorithm; private ContentInfo encapContentInfo; public CompressedData( AlgorithmIdentifier compressionAlgorithm, ContentInfo encapContentInfo) { this.version = new DERInteger(0); this.compressionAlgorithm = compressionAlgorithm; this.encapContentInfo = encapContentInfo; } public CompressedData( ASN1Sequence seq) { this.version = (DERInteger)seq.getObjectAt(0); this.compressionAlgorithm = AlgorithmIdentifier.getInstance(seq.getObjectAt(1)); this.encapContentInfo = ContentInfo.getInstance(seq.getObjectAt(2)); }
return a CompressedData object from a tagged object.
Params:
  • _ato – the tagged object holding the object we want.
  • _explicit – true if the object is meant to be explicitly tagged false otherwise.
Throws:
/** * return a CompressedData object from a tagged object. * * @param _ato the tagged object holding the object we want. * @param _explicit true if the object is meant to be explicitly * tagged false otherwise. * @exception IllegalArgumentException if the object held by the * tagged object cannot be converted. */
public static CompressedData getInstance( ASN1TaggedObject _ato, boolean _explicit) { return getInstance(ASN1Sequence.getInstance(_ato, _explicit)); }
return a CompressedData object from the given object.
Params:
  • _obj – the object we want converted.
Throws:
/** * return a CompressedData object from the given object. * * @param _obj the object we want converted. * @exception IllegalArgumentException if the object cannot be converted. */
public static CompressedData getInstance( Object _obj) { if (_obj == null || _obj instanceof CompressedData) { return (CompressedData)_obj; } if (_obj instanceof ASN1Sequence) { return new CompressedData((ASN1Sequence)_obj); } throw new IllegalArgumentException("Invalid CompressedData: " + _obj.getClass().getName()); } public DERInteger getVersion() { return version; } public AlgorithmIdentifier getCompressionAlgorithmIdentifier() { return compressionAlgorithm; } public ContentInfo getEncapContentInfo() { return encapContentInfo; } public DERObject toASN1Object() { ASN1EncodableVector v = new ASN1EncodableVector(); v.add(version); v.add(compressionAlgorithm); v.add(encapContentInfo); return new BERSequence(v); } }