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(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._contentInfo, _data| Constructor and Description |
|---|
CMSAuthenticatedDataParser(byte[] envelopedData) |
CMSAuthenticatedDataParser(byte[] envelopedData,
DigestCalculatorProvider digestCalculatorProvider) |
CMSAuthenticatedDataParser(InputStream envelopedData) |
CMSAuthenticatedDataParser(InputStream envelopedData,
DigestCalculatorProvider digestCalculatorProvider) |
| Modifier and Type | Method and Description |
|---|---|
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() |
String |
getMacAlgOID()
return the object identifier for the mac algorithm.
|
AlgorithmParameters |
getMacAlgorithmParameters(Provider provider)
Return an AlgorithmParameters object giving the encryption parameters
used to encrypt the message content.
|
AlgorithmParameters |
getMacAlgorithmParameters(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
|
AttributeTable |
getUnauthAttrs()
return a table of the unauthenticated attributes indexed by
the OID of the attribute.
|
closepublic CMSAuthenticatedDataParser(byte[] envelopedData)
throws CMSException,
IOException
CMSExceptionIOExceptionpublic CMSAuthenticatedDataParser(byte[] envelopedData,
DigestCalculatorProvider digestCalculatorProvider)
throws CMSException,
IOException
CMSExceptionIOExceptionpublic CMSAuthenticatedDataParser(InputStream envelopedData) throws CMSException, IOException
CMSExceptionIOExceptionpublic CMSAuthenticatedDataParser(InputStream envelopedData, DigestCalculatorProvider digestCalculatorProvider) throws CMSException, IOException
CMSExceptionIOExceptionpublic String getMacAlgOID()
public byte[] getMacAlgParams()
public AlgorithmParameters getMacAlgorithmParameters(String provider) throws CMSException, 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.NoSuchProviderException - if the provider cannot be found.public AlgorithmParameters getMacAlgorithmParameters(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 IOException
IOExceptionpublic AttributeTable getAuthAttrs() throws IOException
IOExceptionpublic AttributeTable getUnauthAttrs() throws IOException
IOExceptionpublic byte[] getContentDigest()
Copyright © 2015. All rights reserved.