public class CMSAuthenticatedDataParser 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.
CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream); RecipientInformationStore recipients = ad.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()); if (!Arrays.equals(ad.getMac(), recipient.getMac()) { System.err.println("Data corrupted!!!!"); } }Note: this class does not introduce buffering - if you are processing large files you should create the parser with:
CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));where bufSize is a suitably large buffer size.
_contentInfo, _data
Constructor and Description |
---|
CMSAuthenticatedDataParser(byte[] envelopedData) |
CMSAuthenticatedDataParser(java.io.InputStream envelopedData) |
Modifier and Type | Method and Description |
---|---|
org.bouncycastle.asn1.cms.AttributeTable |
getAuthAttrs()
return a table of the unauthenticated attributes indexed by
the OID of the attribute.
|
byte[] |
getMac() |
java.lang.String |
getMacAlgOID()
return the object identifier for the mac algorithm.
|
java.security.AlgorithmParameters |
getMacAlgorithmParameters(java.security.Provider provider)
Return an AlgorithmParameters object giving the encryption parameters
used to encrypt the message content.
|
java.security.AlgorithmParameters |
getMacAlgorithmParameters(java.lang.String provider)
Return an AlgorithmParameters object giving the encryption parameters
used to encrypt the message content.
|
byte[] |
getMacAlgParams()
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
|
org.bouncycastle.asn1.cms.AttributeTable |
getUnauthAttrs()
return a table of the unauthenticated attributes indexed by
the OID of the attribute.
|
close
public CMSAuthenticatedDataParser(byte[] envelopedData) throws CMSException, java.io.IOException
CMSException
java.io.IOException
public CMSAuthenticatedDataParser(java.io.InputStream envelopedData) throws CMSException, java.io.IOException
CMSException
java.io.IOException
public java.lang.String getMacAlgOID()
public byte[] getMacAlgParams()
public java.security.AlgorithmParameters getMacAlgorithmParameters(java.lang.String provider) throws CMSException, java.security.NoSuchProviderException
provider
- the name of the provider to generate the parameters for.CMSException
- if the algorithm cannot be found, or the parameters can't be parsed.java.security.NoSuchProviderException
- if the provider cannot be found.public java.security.AlgorithmParameters getMacAlgorithmParameters(java.security.Provider provider) throws CMSException
provider
- the provider to generate the parameters for.CMSException
- if the algorithm cannot be found, or the parameters can't be parsed.public RecipientInformationStore getRecipientInfos()
public byte[] getMac() throws java.io.IOException
java.io.IOException
public org.bouncycastle.asn1.cms.AttributeTable getAuthAttrs() throws java.io.IOException
java.io.IOException
public org.bouncycastle.asn1.cms.AttributeTable getUnauthAttrs() throws java.io.IOException
java.io.IOException