CMSAuthenticatedDataStreamGenerator (Bouncy Castle Library 1.54 API Specification)
Date: 2015-12-29

org.bouncycastle.cms

## Class CMSAuthenticatedDataStreamGenerator

- java.lang.Object
- - org.bouncycastle.cms.CMSEnvelopedGenerator
  - - org.bouncycastle.cms.CMSAuthenticatedGenerator
    - - org.bouncycastle.cms.CMSAuthenticatedDataStreamGenerator

-     public class CMSAuthenticatedDataStreamGenerator
      extends CMSAuthenticatedGenerator

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

  A simple example of usage.

            CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();

            edGen.addRecipientInfoGenerator(new JceKeyTransRecipientInfoGenerator(cert).setProvider("BC"));

            ByteArrayOutputStream  bOut = new ByteArrayOutputStream();

            OutputStream out = edGen.open(
                                    bOut, new JceCMSMacCalculatorBuilder(CMSAlgorithm.DES_EDE3_CBC).setProvider("BC").build());*
            out.write(data);

            out.close();

- - ### Field Summary

    - ### Fields inherited from class org.bouncycastle.cms.CMSAuthenticatedGenerator

      `authGen, unauthGen`

    - ### 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, originatorInfo, RC2_CBC, SEED_CBC, SEED_WRAP, unprotectedAttributeGenerator`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CMSAuthenticatedDataStreamGenerator()` base constructor

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.io.OutputStream` | `open(org.bouncycastle.asn1.ASN1ObjectIdentifier dataType, java.io.OutputStream out, MacCalculator macCalculator)` generate an authenticated data structure with the encapsulated bytes marked as type dataType.
    `java.io.OutputStream` | `open(org.bouncycastle.asn1.ASN1ObjectIdentifier dataType, java.io.OutputStream out, MacCalculator macCalculator, DigestCalculator digestCalculator)` generate an authenticated data structure with the encapsulated bytes marked as type dataType.
    `java.io.OutputStream` | `open(java.io.OutputStream out, MacCalculator macCalculator)` generate an authenticated data structure with the encapsulated bytes marked as DATA.
    `java.io.OutputStream` | `open(java.io.OutputStream out, MacCalculator macCalculator, DigestCalculator digestCalculator)`
    `void` | `setBEREncodeRecipients(boolean useBerEncodingForRecipients)` 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.CMSAuthenticatedGenerator

      `getBaseParameters, setAuthenticatedAttributeGenerator, setUnauthenticatedAttributeGenerator`

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

      `addRecipientInfoGenerator, setOriginatorInfo, setUnprotectedAttributeGenerator`

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

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

- - ### Constructor Detail

    - #### CMSAuthenticatedDataStreamGenerator

          public CMSAuthenticatedDataStreamGenerator()

      base constructor

  - ### 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 useBerEncodingForRecipients)

      Use a BER Set to store the recipient information. By default recipients are stored in a DER encoding.
      Parameters:
        `useBerEncodingForRecipients` - true if a BER set should be used, false if DER.

    - #### open

          public java.io.OutputStream open(java.io.OutputStream out,
                                  MacCalculator macCalculator)
                                    throws CMSException

      generate an authenticated data structure with the encapsulated bytes marked as DATA.
      Parameters:
        `out` - the stream to store the authenticated structure in.
        `macCalculator` - calculator for the MAC to be attached to the data.
      Throws:
        `CMSException`

    - #### open

          public java.io.OutputStream open(java.io.OutputStream out,
                                  MacCalculator macCalculator,
                                  DigestCalculator digestCalculator)
                                    throws CMSException

      Throws:
        `CMSException`

    - #### open

          public java.io.OutputStream open(org.bouncycastle.asn1.ASN1ObjectIdentifier dataType,
                                  java.io.OutputStream out,
                                  MacCalculator macCalculator)
                                    throws CMSException

      generate an authenticated data structure with the encapsulated bytes marked as type dataType.
      Parameters:
        `dataType` - the type of the data been written to the object.
        `out` - the stream to store the authenticated structure in.
        `macCalculator` - calculator for the MAC to be attached to the data.
      Throws:
        `CMSException`

    - #### open

          public java.io.OutputStream open(org.bouncycastle.asn1.ASN1ObjectIdentifier dataType,
                                  java.io.OutputStream out,
                                  MacCalculator macCalculator,
                                  DigestCalculator digestCalculator)
                                    throws CMSException

      generate an authenticated data structure with the encapsulated bytes marked as type dataType.
      Parameters:
        `dataType` - the type of the data been written to the object.
        `out` - the stream to store the authenticated structure in.
        `macCalculator` - calculator for the MAC to be attached to the data.
        `digestCalculator` - calculator for computing digest of the encapsulated data.
      Throws:
        `CMSException`