public class CMSAuthenticatedDataStreamGenerator extends CMSAuthenticatedGenerator
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();
Stream handling note:
open().authGen, unauthGenAES128_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, ECMQV_SHA224KDF, ECMQV_SHA256KDF, ECMQV_SHA384KDF, ECMQV_SHA512KDF, encoding, IDEA_CBC, originatorInfo, RC2_CBC, SEED_CBC, SEED_WRAP, unprotectedAttributeGenerator| Constructor and Description |
|---|
CMSAuthenticatedDataStreamGenerator()
base constructor
|
| Modifier and Type | Method and Description |
|---|---|
java.io.OutputStream |
open(org.bouncycastle.asn1.ASN1ObjectIdentifier dataType,
java.io.OutputStream out,
long inputLength,
MacCalculator macCalculator)
Generate an authenticated data structure for
inputLength content
octets, with the encapsulated bytes marked as type dataType - see
open(OutputStream, long, MacCalculator). |
java.io.OutputStream |
open(org.bouncycastle.asn1.ASN1ObjectIdentifier dataType,
java.io.OutputStream out,
long inputLength,
MacCalculator macCalculator,
DigestCalculator digestCalculator)
Generate an authenticated data structure for
inputLength content
octets, with the encapsulated bytes marked as type dataType - see
open(OutputStream, long, MacCalculator) and
open(OutputStream, long, MacCalculator, DigestCalculator). |
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,
long inputLength,
MacCalculator macCalculator)
Generate an authenticated data structure for
inputLength content
octets, with the encapsulated bytes marked as DATA. |
java.io.OutputStream |
open(java.io.OutputStream out,
long inputLength,
MacCalculator macCalculator,
DigestCalculator digestCalculator)
Generate an authenticated data structure with authenticated attributes
for
inputLength content octets, with the encapsulated bytes
marked as DATA - see open(OutputStream, long, MacCalculator). |
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
|
getBaseParameters, setAuthenticatedAttributeGenerator, setUnauthenticatedAttributeGeneratoraddRecipientInfoGenerator, setEncoding, setOriginatorInfo, setUnprotectedAttributeGeneratorpublic CMSAuthenticatedDataStreamGenerator()
public void setBufferSize(int bufferSize)
bufferSize - length of octet strings to buffer the data.public void setBEREncodeRecipients(boolean useBerEncodingForRecipients)
useBerEncodingForRecipients - true if a BER set should be used, false if DER.public java.io.OutputStream open(java.io.OutputStream out,
MacCalculator macCalculator)
throws CMSException
out - the stream to store the authenticated structure in.macCalculator - calculator for the MAC to be attached to the data.CMSExceptionpublic java.io.OutputStream open(java.io.OutputStream out,
MacCalculator macCalculator,
DigestCalculator digestCalculator)
throws CMSException
CMSExceptionpublic java.io.OutputStream open(org.bouncycastle.asn1.ASN1ObjectIdentifier dataType,
java.io.OutputStream out,
MacCalculator macCalculator)
throws CMSException
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.CMSExceptionpublic java.io.OutputStream open(org.bouncycastle.asn1.ASN1ObjectIdentifier dataType,
java.io.OutputStream out,
MacCalculator macCalculator,
DigestCalculator digestCalculator)
throws CMSException
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.CMSExceptionpublic java.io.OutputStream open(java.io.OutputStream out,
long inputLength,
MacCalculator macCalculator)
throws CMSException,
java.io.IOException
inputLength content
octets, with the encapsulated bytes marked as DATA. In definite-length
mode (see CMSEnvelopedGenerator.setEncoding(String)) the length is used to pre-compute
every enclosing header, so exactly that many content octets must then be
written to the returned stream - a mismatch fails with an IOException, by
which point the output is unusable and must be discarded. In BER mode the
length is ignored.
In definite-length mode the buffer size and
BER recipient set settings are
ignored (an indefinite-length encoding may not appear inside a
definite-length one), and the MAC algorithm must have a spec-defined
output length (the HMAC family) so the mac field can be sized before the
content streams. Nothing is buffered, so content larger than a Java array
can carry is supported.
out - the stream to store the authenticated structure in.inputLength - the number of content octets that will be written.macCalculator - calculator for the MAC to be attached to the data.CMSExceptionjava.io.IOExceptionpublic java.io.OutputStream open(java.io.OutputStream out,
long inputLength,
MacCalculator macCalculator,
DigestCalculator digestCalculator)
throws CMSException,
java.io.IOException
inputLength content octets, with the encapsulated bytes
marked as DATA - see open(OutputStream, long, MacCalculator).
In definite-length mode the authenticated (and any unauthenticated) attribute sets are sized up front using a placeholder digest of the digest algorithm's output length; attribute generators must produce sets whose encoded length does not depend on the digest value, or the enclosing length enforcement fails at close time.
out - the stream to store the authenticated structure in.inputLength - the number of content octets that will be written.macCalculator - calculator for the MAC to be attached to the data.digestCalculator - calculator for computing digest of the encapsulated data.CMSExceptionjava.io.IOExceptionpublic java.io.OutputStream open(org.bouncycastle.asn1.ASN1ObjectIdentifier dataType,
java.io.OutputStream out,
long inputLength,
MacCalculator macCalculator)
throws CMSException,
java.io.IOException
inputLength content
octets, with the encapsulated bytes marked as type dataType - see
open(OutputStream, long, MacCalculator).dataType - the type of the data been written to the object.out - the stream to store the authenticated structure in.inputLength - the number of content octets that will be written.macCalculator - calculator for the MAC to be attached to the data.CMSExceptionjava.io.IOExceptionpublic java.io.OutputStream open(org.bouncycastle.asn1.ASN1ObjectIdentifier dataType,
java.io.OutputStream out,
long inputLength,
MacCalculator macCalculator,
DigestCalculator digestCalculator)
throws CMSException,
java.io.IOException
inputLength content
octets, with the encapsulated bytes marked as type dataType - see
open(OutputStream, long, MacCalculator) and
open(OutputStream, long, MacCalculator, DigestCalculator).dataType - the type of the data been written to the object.out - the stream to store the authenticated structure in.inputLength - the number of content octets that will be written.macCalculator - calculator for the MAC to be attached to the data.digestCalculator - calculator for computing digest of the encapsulated data.CMSExceptionjava.io.IOException