Package org.bouncycastle.cms
Class CMSAuthenticatedDataParser
- java.lang.Object
-
- org.bouncycastle.cms.CMSContentInfoParser
-
- org.bouncycastle.cms.CMSAuthenticatedDataParser
-
public class CMSAuthenticatedDataParser extends CMSContentInfoParser
Parsing class for an CMS Authenticated 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.
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(new JceKeyTransAuthenticatedRecipient(privateKey).setProvider("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.
-
-
Field Summary
-
Fields inherited from class org.bouncycastle.cms.CMSContentInfoParser
_contentInfo, _data
-
-
Constructor Summary
Constructors Constructor Description CMSAuthenticatedDataParser(byte[] envelopedData)
CMSAuthenticatedDataParser(byte[] envelopedData, DigestCalculatorProvider digestCalculatorProvider)
CMSAuthenticatedDataParser(java.io.InputStream envelopedData)
CMSAuthenticatedDataParser(java.io.InputStream envelopedData, DigestCalculatorProvider digestCalculatorProvider)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.bouncycastle.asn1.cms.AttributeTable
getAuthAttrs()
return a table of the unauthenticated attributes indexed by the OID of the attribute.byte[]
getContentDigest()
This will only be valid after the content has been read.byte[]
getMac()
java.lang.String
getMacAlgOID()
return the object identifier for the mac algorithm.org.bouncycastle.asn1.x509.AlgorithmIdentifier
getMacAlgorithm()
Return the MAC algorithm details for the MAC associated with the data in this object.byte[]
getMacAlgParams()
return the ASN.1 encoded encryption algorithm parameters, or null if there aren't any.OriginatorInformation
getOriginatorInfo()
Return the originator information associated with this message if present.RecipientInformationStore
getRecipientInfos()
return a store of the intended recipients for this messageorg.bouncycastle.asn1.cms.AttributeTable
getUnauthAttrs()
return a table of the unauthenticated attributes indexed by the OID of the attribute.-
Methods inherited from class org.bouncycastle.cms.CMSContentInfoParser
close
-
-
-
-
Constructor Detail
-
CMSAuthenticatedDataParser
public CMSAuthenticatedDataParser(byte[] envelopedData) throws CMSException, java.io.IOException
- Throws:
CMSException
java.io.IOException
-
CMSAuthenticatedDataParser
public CMSAuthenticatedDataParser(byte[] envelopedData, DigestCalculatorProvider digestCalculatorProvider) throws CMSException, java.io.IOException
- Throws:
CMSException
java.io.IOException
-
CMSAuthenticatedDataParser
public CMSAuthenticatedDataParser(java.io.InputStream envelopedData) throws CMSException, java.io.IOException
- Throws:
CMSException
java.io.IOException
-
CMSAuthenticatedDataParser
public CMSAuthenticatedDataParser(java.io.InputStream envelopedData, DigestCalculatorProvider digestCalculatorProvider) throws CMSException, java.io.IOException
- Throws:
CMSException
java.io.IOException
-
-
Method Detail
-
getOriginatorInfo
public OriginatorInformation getOriginatorInfo()
Return the originator information associated with this message if present.- Returns:
- OriginatorInformation, null if not present.
-
getMacAlgorithm
public org.bouncycastle.asn1.x509.AlgorithmIdentifier getMacAlgorithm()
Return the MAC algorithm details for the MAC associated with the data in this object.- Returns:
- AlgorithmIdentifier representing the MAC algorithm.
-
getMacAlgOID
public java.lang.String getMacAlgOID()
return the object identifier for the mac algorithm.
-
getMacAlgParams
public byte[] getMacAlgParams()
return the ASN.1 encoded encryption algorithm parameters, or null if there aren't any.
-
getRecipientInfos
public RecipientInformationStore getRecipientInfos()
return a store of the intended recipients for this message
-
getMac
public byte[] getMac() throws java.io.IOException
- Throws:
java.io.IOException
-
getAuthAttrs
public org.bouncycastle.asn1.cms.AttributeTable getAuthAttrs() throws java.io.IOException
return a table of the unauthenticated attributes indexed by the OID of the attribute.- Throws:
java.io.IOException
-
getUnauthAttrs
public org.bouncycastle.asn1.cms.AttributeTable getUnauthAttrs() throws java.io.IOException
return a table of the unauthenticated attributes indexed by the OID of the attribute.- Throws:
java.io.IOException
-
getContentDigest
public byte[] getContentDigest()
This will only be valid after the content has been read.- Returns:
- the contents of the messageDigest attribute, if available. Null if not present.
-
-