package org.bouncycastle.asn1.cms;
import java.io.IOException;
import org.bouncycastle.asn1.DEREncodable;
import org.bouncycastle.asn1.DERObjectIdentifier;
import org.bouncycastle.asn1.ASN1SequenceParser;
import org.bouncycastle.asn1.ASN1TaggedObjectParser;
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
EncryptedContentInfo ::= SEQUENCE {
contentType ContentType,
contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
}
/**
* <pre>
* EncryptedContentInfo ::= SEQUENCE {
* contentType ContentType,
* contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
* encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
* }
* </pre>
*/
public class EncryptedContentInfoParser
{
private DERObjectIdentifier _contentType;
private AlgorithmIdentifier _contentEncryptionAlgorithm;
private ASN1TaggedObjectParser _encryptedContent;
public EncryptedContentInfoParser(
ASN1SequenceParser seq)
throws IOException
{
_contentType = (DERObjectIdentifier)seq.readObject();
_contentEncryptionAlgorithm = AlgorithmIdentifier.getInstance(seq.readObject().getDERObject());
_encryptedContent = (ASN1TaggedObjectParser)seq.readObject();
}
public DERObjectIdentifier getContentType()
{
return _contentType;
}
public AlgorithmIdentifier getContentEncryptionAlgorithm()
{
return _contentEncryptionAlgorithm;
}
public DEREncodable getEncryptedContent(
int tag)
throws IOException
{
return _encryptedContent.getObjectParser(tag, false);
}
}