org.bouncycastle.cms
Class CMSEnvelopedDataParser
public class CMSEnvelopedDataParser
Parsing class for an CMS Enveloped Data object from an input stream.
Note: that because we are in a streaming mode only one recipient can be tried and it is important
that the methods on the parser are called in the appropriate order.
Example of use - assuming the first recipient matches the private key we have.
CMSEnvelopedDataParser ep = new CMSEnvelopedDataParser(inputStream);
RecipientInformationStore recipients = ep.getRecipientInfos();
Collection c = recipients.getRecipients();
Iterator it = c.iterator();
if (it.hasNext())
{
RecipientInformation recipient = (RecipientInformation)it.next();
CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
processDataStream(recData.getContentStream());
}
Note: this class does not introduce buffering - if you are processing large files you should create
the parser with:
CMSEnvelopedDataParser ep = new CMSEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
where bufSize is a suitably large buffer size.
CMSEnvelopedDataParser
public CMSEnvelopedDataParser(InputStream envelopedData)
throws CMSException,
IOException
CMSEnvelopedDataParser
public CMSEnvelopedDataParser(byte[] envelopedData)
throws CMSException,
IOException
getEncryptionAlgOID
public String getEncryptionAlgOID()
return the object identifier for the content encryption algorithm.
getEncryptionAlgParams
public byte[] getEncryptionAlgParams()
return the ASN.1 encoded encryption algorithm parameters, or null if
there aren't any.
getEncryptionAlgorithmParameters
public AlgorithmParameters getEncryptionAlgorithmParameters(String provider)
throws CMSException,
NoSuchProviderException
Return an AlgorithmParameters object giving the encryption parameters
used to encrypt the message content.
provider
- the provider to generate the parameters for.
- the parameters object, null if there is not one.
CMSException
- if the algorithm cannot be found, or the parameters can't be parsed.
getRecipientInfos
public RecipientInformationStore getRecipientInfos()
return a store of the intended recipients for this message
getUnprotectedAttributes
public AttributeTable getUnprotectedAttributes()
throws IOException
return a table of the unprotected attributes indexed by
the OID of the attribute.