org.bouncycastle.cms
public class CMSEnvelopedDataParser extends CMSContentInfoParser
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.
| Constructor Summary | |
|---|---|
| CMSEnvelopedDataParser(byte[] envelopedData) | |
| CMSEnvelopedDataParser(InputStream envelopedData) | |
| Method Summary | |
|---|---|
| AlgorithmParameters | getEncryptionAlgorithmParameters(String provider)
Return an AlgorithmParameters object giving the encryption parameters
used to encrypt the message content.
|
| String | getEncryptionAlgOID()
return the object identifier for the content encryption algorithm. |
| byte[] | getEncryptionAlgParams()
return the ASN.1 encoded encryption algorithm parameters, or null if
there aren't any. |
| RecipientInformationStore | getRecipientInfos()
return a store of the intended recipients for this message |
| AttributeTable | getUnprotectedAttributes()
return a table of the unprotected attributes indexed by
the OID of the attribute. |
Parameters: provider the provider to generate the parameters for.
Returns: the parameters object, null if there is not one.
Throws: CMSException if the algorithm cannot be found, or the parameters can't be parsed. NoSuchProviderException if the provider cannot be found.
Throws: IOException