CMSEnvelopedDataParser (Bouncy Castle Library 1.52 API Specification)
Date: 2015-03-01

org.bouncycastle.cms

## Class CMSEnvelopedDataParser

- java.lang.Object
- - org.bouncycastle.cms.CMSContentInfoParser
  - - org.bouncycastle.cms.CMSEnvelopedDataParser

-     public class CMSEnvelopedDataParser
      extends CMSContentInfoParser

  Parsing class for an CMS Enveloped 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.

            CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(inputStream);

            RecipientInformationStore  recipients = ep.getRecipientInfos();

            Collection  c = recipients.getRecipients();
            Iterator    it = c.iterator();

            if (it.hasNext())
            {
                RecipientInformation   recipient = (RecipientInformation)it.next();

                CMSTypedStream recData = recipient.getContentStream(new JceKeyTransEnvelopedRecipient(privateKey).setProvider("BC"));

                processDataStream(recData.getContentStream());
            }

  Note: this class does not introduce buffering - if you are processing large files you should create the parser with:

                CMSEnvelopedDataParser     ep = new CMSEnvelopedDataParser(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 and Description
    `CMSEnvelopedDataParser(byte[] envelopedData)`
    `CMSEnvelopedDataParser(java.io.InputStream envelopedData)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `org.bouncycastle.asn1.x509.AlgorithmIdentifier` | `getContentEncryptionAlgorithm()` Return the content encryption algorithm details for the data in this object.
    `java.lang.String` | `getEncryptionAlgOID()` return the object identifier for the content encryption algorithm.
    `byte[]` | `getEncryptionAlgParams()` 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 message
    `org.bouncycastle.asn1.cms.AttributeTable` | `getUnprotectedAttributes()` return a table of the unprotected 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

    - #### CMSEnvelopedDataParser

          public CMSEnvelopedDataParser(byte[] envelopedData)
                                 throws CMSException,
                                        java.io.IOException

      Throws:
        `CMSException`
        `java.io.IOException`

    - #### CMSEnvelopedDataParser

          public CMSEnvelopedDataParser(java.io.InputStream envelopedData)
                                 throws CMSException,
                                        java.io.IOException

      Throws:
        `CMSException`
        `java.io.IOException`

  - ### Method Detail

    - #### getEncryptionAlgOID

          public java.lang.String getEncryptionAlgOID()

      return the object identifier for the content encryption algorithm.

    - #### getEncryptionAlgParams

          public byte[] getEncryptionAlgParams()

      return the ASN.1 encoded encryption algorithm parameters, or null if there aren't any.

    - #### getContentEncryptionAlgorithm

          public org.bouncycastle.asn1.x509.AlgorithmIdentifier getContentEncryptionAlgorithm()

      Return the content encryption algorithm details for the data in this object.
      Returns:
        AlgorithmIdentifier representing the content encryption algorithm.

    - #### getOriginatorInfo

          public OriginatorInformation getOriginatorInfo()

      Return the originator information associated with this message if present.
      Returns:
        OriginatorInformation, null if not present.

    - #### getRecipientInfos

          public RecipientInformationStore getRecipientInfos()

      return a store of the intended recipients for this message

    - #### getUnprotectedAttributes

          public org.bouncycastle.asn1.cms.AttributeTable getUnprotectedAttributes()
                                                                            throws java.io.IOException

      return a table of the unprotected attributes indexed by the OID of the attribute.
      Throws:
        `java.io.IOException`