package org.bouncycastle.asn1.cms;

import java.io.IOException;

import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.ASN1SequenceParser;
import org.bouncycastle.asn1.ASN1TaggedObjectParser;
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;

Parser for RFC 5652 EncryptedContentInfo object.

EncryptedContentInfo ::= SEQUENCE {
    contentType ContentType,
    contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
    encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL 
}
/** * Parser for <a href="http://tools.ietf.org/html/rfc5652#section-6.1">RFC 5652</a> EncryptedContentInfo object. * <p> * <pre> * EncryptedContentInfo ::= SEQUENCE { * contentType ContentType, * contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier, * encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL * } * </pre> */
public class EncryptedContentInfoParser { private ASN1ObjectIdentifier _contentType; private AlgorithmIdentifier _contentEncryptionAlgorithm; private ASN1TaggedObjectParser _encryptedContent; public EncryptedContentInfoParser( ASN1SequenceParser seq) throws IOException { _contentType = (ASN1ObjectIdentifier)seq.readObject(); _contentEncryptionAlgorithm = AlgorithmIdentifier.getInstance(seq.readObject().toASN1Primitive()); _encryptedContent = (ASN1TaggedObjectParser)seq.readObject(); } public ASN1ObjectIdentifier getContentType() { return _contentType; } public AlgorithmIdentifier getContentEncryptionAlgorithm() { return _contentEncryptionAlgorithm; } public ASN1Encodable getEncryptedContent( int tag) throws IOException { return _encryptedContent.getObjectParser(tag, false); } }