Top Description Inners Fields Constructors Methods
org.bouncycastle.cms

public Class CMSAuthenticatedDataStreamGenerator

extends CMSAuthenticatedGenerator
Class Inheritance
Imports
java.io.IOException, .OutputStream, java.util.Collections, .Iterator, .Map, org.bouncycastle.asn1.ASN1EncodableVector, .ASN1Encoding, .ASN1Integer, .ASN1ObjectIdentifier, .ASN1Set, .BERSequenceGenerator, .BERSet, .DEROctetString, .DERSet, .DERTaggedObject, org.bouncycastle.asn1.cms.AuthenticatedData, .CMSObjectIdentifiers, org.bouncycastle.asn1.x509.AlgorithmIdentifier, org.bouncycastle.operator.DigestCalculator, .MacCalculator, org.bouncycastle.util.io.TeeOutputStream

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();

Nested and Inner Type Summary

Modifier and TypeClass and Description
private class

Field Summary

Modifier and TypeField and Description
private boolean
private int
private MacCalculator
Inherited from org.bouncycastle.cms.CMSAuthenticatedGenerator:
authGenunauthGen

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public OutputStream
open(OutputStream
the stream to store the authenticated structure in.
out
,
MacCalculator
calculator for the MAC to be attached to the data.
macCalculator
)

generate an authenticated data structure with the encapsulated bytes marked as DATA.

public OutputStream
open(OutputStream out, MacCalculator macCalculator, DigestCalculator digestCalculator)

public OutputStream
open(ASN1ObjectIdentifier
the type of the data been written to the object.
dataType
,
OutputStream
the stream to store the authenticated structure in.
out
,
MacCalculator
calculator for the MAC to be attached to the data.
macCalculator
)

generate an authenticated data structure with the encapsulated bytes marked as type dataType.

public OutputStream
open(ASN1ObjectIdentifier
the type of the data been written to the object.
dataType
,
OutputStream
the stream to store the authenticated structure in.
out
,
MacCalculator
calculator for the MAC to be attached to the data.
macCalculator
,
DigestCalculator
calculator for computing digest of the encapsulated data.
digestCalculator
)

generate an authenticated data structure with the encapsulated bytes marked as type dataType.

public void
setBEREncodeRecipients(boolean
true if a BER set should be used, false if DER.
useBerEncodingForRecipients
)

Use a BER Set to store the recipient information.

public void
setBufferSize(int
length of octet strings to buffer the data.
bufferSize
)

Set the underlying string size for encapsulated data

Inherited from org.bouncycastle.cms.CMSAuthenticatedGenerator:
getBaseParameterssetAuthenticatedAttributeGeneratorsetUnauthenticatedAttributeGenerator

Field Detail

berEncodeRecipientSetback to summary
private boolean berEncodeRecipientSet
bufferSizeback to summary
private int bufferSize
macCalculatorback to summary
private MacCalculator macCalculator

Constructor Detail

CMSAuthenticatedDataStreamGeneratorback to summary
public CMSAuthenticatedDataStreamGenerator()

base constructor

Method Detail

openback to summary
public OutputStream open(OutputStream out, MacCalculator macCalculator) throws CMSException

generate an authenticated data structure with the encapsulated bytes marked as DATA.

Parameters
out:OutputStream

the stream to store the authenticated structure in.

macCalculator:MacCalculator

calculator for the MAC to be attached to the data.

openback to summary
public OutputStream open(OutputStream out, MacCalculator macCalculator, DigestCalculator digestCalculator) throws CMSException
openback to summary
public OutputStream open(ASN1ObjectIdentifier dataType, OutputStream out, MacCalculator macCalculator) throws CMSException

generate an authenticated data structure with the encapsulated bytes marked as type dataType.

Parameters
dataType:ASN1ObjectIdentifier

the type of the data been written to the object.

out:OutputStream

the stream to store the authenticated structure in.

macCalculator:MacCalculator

calculator for the MAC to be attached to the data.

openback to summary
public OutputStream open(ASN1ObjectIdentifier dataType, OutputStream out, MacCalculator macCalculator, DigestCalculator digestCalculator) throws CMSException

generate an authenticated data structure with the encapsulated bytes marked as type dataType.

Parameters
dataType:ASN1ObjectIdentifier

the type of the data been written to the object.

out:OutputStream

the stream to store the authenticated structure in.

macCalculator:MacCalculator

calculator for the MAC to be attached to the data.

digestCalculator:DigestCalculator

calculator for computing digest of the encapsulated data.

setBEREncodeRecipientsback to summary
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:boolean

true if a BER set should be used, false if DER.

setBufferSizeback to summary
public void setBufferSize(int bufferSize)

Set the underlying string size for encapsulated data

Parameters
bufferSize:int

length of octet strings to buffer the data.

org.bouncycastle.cms back to summary

private Class CMSAuthenticatedDataStreamGenerator.CmsAuthenticatedDataOutputStream

extends OutputStream
Class Inheritance

Field Summary

Modifier and TypeField and Description
private BERSequenceGenerator
private ASN1ObjectIdentifier
private OutputStream
private DigestCalculator
private BERSequenceGenerator
private BERSequenceGenerator
private MacCalculator

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
close()

Overrides java.io.OutputStream.close.

Implements java.io.Closeable.close.

Closes this output stream and releases any system resources associated with this stream.
public void
write(int
the byte.
b
)

Implements abstract java.io.OutputStream.write.

Writes the specified byte to this output stream.
public void
write(byte[]
the data.
bytes
,
int
the start offset in the data.
off
,
int
the number of bytes to write.
len
)

Overrides java.io.OutputStream.write.

Writes len bytes from the specified byte array starting at offset off to this output stream.
public void
write(byte[]
the data.
bytes
)

Overrides java.io.OutputStream.write.

Writes b.length bytes from the specified byte array to this output stream.
Inherited from java.io.OutputStream:
flushnullOutputStream

Field Detail

cGenback to summary
private BERSequenceGenerator cGen
contentTypeback to summary
private ASN1ObjectIdentifier contentType
dataStreamback to summary
private OutputStream dataStream
digestCalculatorback to summary
private DigestCalculator digestCalculator
eiGenback to summary
private BERSequenceGenerator eiGen
envGenback to summary
private BERSequenceGenerator envGen
macCalculatorback to summary
private MacCalculator macCalculator

Constructor Detail

CmsAuthenticatedDataOutputStreamback to summary
public CmsAuthenticatedDataOutputStream(MacCalculator macCalculator, DigestCalculator digestCalculator, ASN1ObjectIdentifier contentType, OutputStream dataStream, BERSequenceGenerator cGen, BERSequenceGenerator envGen, BERSequenceGenerator eiGen)

Method Detail

closeback to summary
public void close() throws IOException

Overrides java.io.OutputStream.close.

Implements java.io.Closeable.close.

Doc from java.io.OutputStream.close.

Closes this output stream and releases any system resources associated with this stream. The general contract of close is that it closes the output stream. A closed stream cannot perform output operations and cannot be reopened.

Exceptions
IOException:
if an I/O error occurs.
writeback to summary
public void write(int b) throws IOException

Implements abstract java.io.OutputStream.write.

Doc from java.io.OutputStream.write.

Writes the specified byte to this output stream. The general contract for write is that one byte is written to the output stream. The byte to be written is the eight low-order bits of the argument b. The 24 high-order bits of b are ignored.

Parameters
b:int

the byte.

Exceptions
IOException:
if an I/O error occurs. In particular, an IOException may be thrown if the output stream has been closed.
writeback to summary
public void write(byte[] bytes, int off, int len) throws IOException

Overrides java.io.OutputStream.write.

Doc from java.io.OutputStream.write.

Writes len bytes from the specified byte array starting at offset off to this output stream. The general contract for write(b, off, len) is that some of the bytes in the array b are written to the output stream in order; element b[off] is the first byte written and b[off+len-1] is the last byte written by this operation.

If b is null, a NullPointerException is thrown.

If off is negative, or len is negative, or off+len is greater than the length of the array b, then an IndexOutOfBoundsException is thrown.

Parameters
bytes:byte[]

the data.

off:int

the start offset in the data.

len:int

the number of bytes to write.

Exceptions
IOException:
if an I/O error occurs. In particular, an IOException is thrown if the output stream is closed.
writeback to summary
public void write(byte[] bytes) throws IOException

Overrides java.io.OutputStream.write.

Doc from java.io.OutputStream.write.

Writes b.length bytes from the specified byte array to this output stream. The general contract for write(b) is that it should have exactly the same effect as the call write(b, 0, b.length).

Parameters
bytes:byte[]

the data.

Exceptions
IOException:
if an I/O error occurs.