org.bouncycastle.cms

## Class CMSEnvelopedDataStreamGenerator

- java.lang.Object
- - org.bouncycastle.cms.CMSEnvelopedGenerator
  - - org.bouncycastle.cms.CMSEnvelopedDataStreamGenerator

    public class CMSEnvelopedDataStreamGenerator
    extends CMSEnvelopedGenerator

General class for generating a CMS enveloped-data message stream.

A simple example of usage.

          CMSEnvelopedDataStreamGenerator edGen = new CMSEnvelopedDataStreamGenerator();

          edGen.addKeyTransRecipient(cert);

          ByteArrayOutputStream  bOut = new ByteArrayOutputStream();

          OutputStream out = edGen.open(
                                  bOut, CMSEnvelopedDataGenerator.AES128_CBC, "BC");*
          out.write(data);

          out.close();

### Field Summary

### Fields inherited from class org.bouncycastle.cms.CMSEnvelopedGenerator

`AES128_CBC, AES128_WRAP, AES192_CBC, AES192_WRAP, AES256_CBC, AES256_WRAP, CAMELLIA128_CBC, CAMELLIA128_WRAP, CAMELLIA192_CBC, CAMELLIA192_WRAP, CAMELLIA256_CBC, CAMELLIA256_WRAP, CAST5_CBC, DES_EDE3_CBC, DES_EDE3_WRAP, ECDH_SHA1KDF, ECMQV_SHA1KDF, IDEA_CBC, RC2_CBC, SEED_CBC, SEED_WRAP`

### Constructor Summary

Constructors
Constructor and Description
`CMSEnvelopedDataStreamGenerator()` base constructor
`CMSEnvelopedDataStreamGenerator(java.security.SecureRandom rand)` constructor allowing specific source of randomness

### Method Summary

Methods
`java.io.OutputStream` `open(java.io.OutputStream out, java.lang.String encryptionOID, int keySize, java.security.Provider provider)` generate an enveloped object that contains an CMS Enveloped Data object using the given provider.
`java.io.OutputStream` `open(java.io.OutputStream out, java.lang.String encryptionOID, int keySize, java.lang.String provider)` generate an enveloped object that contains an CMS Enveloped Data object using the given provider.
`java.io.OutputStream` `open(java.io.OutputStream out, java.lang.String encryptionOID, java.security.Provider provider)`
`protected java.io.OutputStream` `open(java.io.OutputStream out, java.lang.String encryptionOID, javax.crypto.SecretKey encKey, java.security.AlgorithmParameters params, org.bouncycastle.asn1.ASN1EncodableVector recipientInfos, java.security.Provider provider)`
`protected java.io.OutputStream` `open(java.io.OutputStream out, java.lang.String encryptionOID, javax.crypto.SecretKey encKey, java.security.AlgorithmParameters params, org.bouncycastle.asn1.ASN1EncodableVector recipientInfos, java.lang.String provider)`
`java.io.OutputStream` `open(java.io.OutputStream out, java.lang.String encryptionOID, java.lang.String provider)` generate an enveloped object that contains an CMS Enveloped Data object using the given provider.
`void` `setBEREncodeRecipients(boolean berEncodeRecipientSet)` Use a BER Set to store the recipient information
`void` `setBufferSize(int bufferSize)` Set the underlying string size for encapsulated data

### Methods inherited from class org.bouncycastle.cms.CMSEnvelopedGenerator

`addKEKRecipient, addKeyAgreementRecipient, addKeyAgreementRecipient, addKeyTransRecipient, addKeyTransRecipient, addPasswordRecipient, generateParameters, getAlgorithmIdentifier`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### CMSEnvelopedDataStreamGenerator

    public CMSEnvelopedDataStreamGenerator()

base constructor

#### CMSEnvelopedDataStreamGenerator

    public CMSEnvelopedDataStreamGenerator(java.security.SecureRandom rand)

constructor allowing specific source of randomness

Parameters:
  `rand` - instance of SecureRandom to use

### Method Detail

#### setBufferSize

    public void setBufferSize(int bufferSize)

Set the underlying string size for encapsulated data

Parameters:
  `bufferSize` - length of octet strings to buffer the data.

#### setBEREncodeRecipients

    public void setBEREncodeRecipients(boolean berEncodeRecipientSet)

Use a BER Set to store the recipient information

#### open

    protected java.io.OutputStream open(java.io.OutputStream out,
                            java.lang.String encryptionOID,
                            javax.crypto.SecretKey encKey,
                            java.security.AlgorithmParameters params,
                            org.bouncycastle.asn1.ASN1EncodableVector recipientInfos,
                            java.lang.String provider)
                                 throws java.security.NoSuchAlgorithmException,
                                        java.security.NoSuchProviderException,
                                        CMSException

Throws:
  `java.security.NoSuchAlgorithmException`
  `java.security.NoSuchProviderException`
  `CMSException`

#### open

    protected java.io.OutputStream open(java.io.OutputStream out,
                            java.lang.String encryptionOID,
                            javax.crypto.SecretKey encKey,
                            java.security.AlgorithmParameters params,
                            org.bouncycastle.asn1.ASN1EncodableVector recipientInfos,
                            java.security.Provider provider)
                                 throws java.security.NoSuchAlgorithmException,
                                        CMSException

Throws:
  `java.security.NoSuchAlgorithmException`
  `CMSException`

#### open

    public java.io.OutputStream open(java.io.OutputStream out,
                            java.lang.String encryptionOID,
                            java.lang.String provider)
                              throws java.security.NoSuchAlgorithmException,
                                     java.security.NoSuchProviderException,
                                     CMSException,
                                     java.io.IOException

generate an enveloped object that contains an CMS Enveloped Data object using the given provider.

Throws:
  `java.io.IOException`
  `java.security.NoSuchAlgorithmException`
  `java.security.NoSuchProviderException`
  `CMSException`

#### open

    public java.io.OutputStream open(java.io.OutputStream out,
                            java.lang.String encryptionOID,
                            java.security.Provider provider)
                              throws java.security.NoSuchAlgorithmException,
                                     CMSException,
                                     java.io.IOException

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

#### open

    public java.io.OutputStream open(java.io.OutputStream out,
                            java.lang.String encryptionOID,
                            int keySize,
                            java.lang.String provider)
                              throws java.security.NoSuchAlgorithmException,
                                     java.security.NoSuchProviderException,
                                     CMSException,
                                     java.io.IOException

generate an enveloped object that contains an CMS Enveloped Data object using the given provider.

Throws:
  `java.security.NoSuchAlgorithmException`
  `java.security.NoSuchProviderException`
  `CMSException`
  `java.io.IOException`

#### open

    public java.io.OutputStream open(java.io.OutputStream out,
                            java.lang.String encryptionOID,
                            int keySize,
                            java.security.Provider provider)
                              throws java.security.NoSuchAlgorithmException,
                                     CMSException,
                                     java.io.IOException

generate an enveloped object that contains an CMS Enveloped Data object using the given provider.

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