Bouncy Castle Cryptography Library 1.45

## 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(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.

Field Summary

Fields inherited from class org.bouncycastle.cms.CMSContentInfoParser
`_contentInfo, _data`

Constructor Summary
`CMSAuthenticatedDataParser(byte[] envelopedData)`
`CMSAuthenticatedDataParser(java.io.InputStream envelopedData)`

Method Summary
`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.

Methods inherited from class org.bouncycastle.cms.CMSContentInfoParser
`close`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### CMSAuthenticatedDataParser

    public CMSAuthenticatedDataParser(byte[] envelopedData)
                               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`

Method Detail

### 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.

### getMacAlgorithmParameters

    public java.security.AlgorithmParameters getMacAlgorithmParameters(java.lang.String provider)
                                                                throws CMSException,
                                                                       java.security.NoSuchProviderException

  Return an AlgorithmParameters object giving the encryption parameters used to encrypt the message content.

  Parameters:
    `provider` - the name of 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.
    `java.security.NoSuchProviderException` - if the provider cannot be found.

### getMacAlgorithmParameters

    public java.security.AlgorithmParameters getMacAlgorithmParameters(java.security.Provider provider)
                                                                throws CMSException

  Return an AlgorithmParameters object giving the encryption parameters used to encrypt the message content.

  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.

### 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`

Bouncy Castle Cryptography Library 1.45