Bouncy Castle Cryptography Library 1.45

## org.bouncycastle.cms
Class CMSEnvelopedDataParser

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

Direct Known Subclasses:
  SMIMEEnvelopedParser

    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(privateKey, "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
`CMSEnvelopedDataParser(byte[] envelopedData)`
`CMSEnvelopedDataParser(java.io.InputStream envelopedData)`

Method Summary
`java.lang.String` `getEncryptionAlgOID()` return the object identifier for the content encryption algorithm.
`java.security.AlgorithmParameters` `getEncryptionAlgorithmParameters(java.security.Provider provider)` Return an AlgorithmParameters object giving the encryption parameters used to encrypt the message content.
`java.security.AlgorithmParameters` `getEncryptionAlgorithmParameters(java.lang.String provider)` Return an AlgorithmParameters object giving the encryption parameters used to encrypt the message content.
`byte[]` `getEncryptionAlgParams()` 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` `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.

### getEncryptionAlgorithmParameters

    public java.security.AlgorithmParameters getEncryptionAlgorithmParameters(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.

### getEncryptionAlgorithmParameters

    public java.security.AlgorithmParameters getEncryptionAlgorithmParameters(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

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

Bouncy Castle Cryptography Library 1.45