Class CMSAuthenticatedDataParser
java.lang.Object
org.bouncycastle.cms.CMSContentInfoParser
org.bouncycastle.cms.CMSAuthenticatedDataParser
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 CMSContentInfoParser
_contentInfo, _data -
Constructor Summary
ConstructorsConstructorDescriptionCMSAuthenticatedDataParser(byte[] envelopedData) CMSAuthenticatedDataParser(byte[] envelopedData, DigestCalculatorProvider digestCalculatorProvider) CMSAuthenticatedDataParser(InputStream envelopedData) CMSAuthenticatedDataParser(InputStream envelopedData, DigestCalculatorProvider digestCalculatorProvider) -
Method Summary
Modifier and TypeMethodDescriptionorg.bouncycastle.asn1.cms.AttributeTablereturn a table of the unauthenticated attributes indexed by the OID of the attribute.byte[]This will only be valid after the content has been read.byte[]getMac()return the object identifier for the mac algorithm.org.bouncycastle.asn1.x509.AlgorithmIdentifierReturn the MAC algorithm details for the MAC associated with the data in this object.byte[]return the ASN.1 encoded encryption algorithm parameters, or null if there aren't any.Return the originator information associated with this message if present.return a store of the intended recipients for this messageorg.bouncycastle.asn1.cms.AttributeTablereturn a table of the unauthenticated attributes indexed by the OID of the attribute.Methods inherited from class CMSContentInfoParser
close
-
Constructor Details
-
CMSAuthenticatedDataParser
- Throws:
CMSExceptionIOException
-
CMSAuthenticatedDataParser
public CMSAuthenticatedDataParser(byte[] envelopedData, DigestCalculatorProvider digestCalculatorProvider) throws CMSException, IOException - Throws:
CMSExceptionIOException
-
CMSAuthenticatedDataParser
- Throws:
CMSExceptionIOException
-
CMSAuthenticatedDataParser
public CMSAuthenticatedDataParser(InputStream envelopedData, DigestCalculatorProvider digestCalculatorProvider) throws CMSException, IOException - Throws:
CMSExceptionIOException
-
-
Method Details
-
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
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
return a store of the intended recipients for this message -
getMac
- Throws:
IOException
-
getAuthAttrs
return a table of the unauthenticated attributes indexed by the OID of the attribute.- Throws:
IOException
-
getUnauthAttrs
return a table of the unauthenticated attributes indexed by the OID of the attribute.- Throws:
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.
-