|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.io.OutputStream
net.rim.device.api.crypto.cms.CMSOutputStream
net.rim.device.api.crypto.cms.CMSSignedDataOutputStream
public final class CMSSignedDataOutputStream
Implements a CMSSigned data output stream so that outgoing data can be signed and formatted as per CMS signed data messages.
CMSSignedDataOutputStream
Field Summary |
---|
Fields inherited from class net.rim.device.api.crypto.cms.CMSOutputStream |
---|
_contentType, _dataOut, _out, _outer |
Constructor Summary | ||
---|---|---|
|
CMSSignedDataOutputStream(OutputStream out,
int contentType,
boolean outer)
Creates a signed data output stream. |
|
|
CMSSignedDataOutputStream(OutputStream out,
int contentType,
boolean dataOut,
boolean outer,
boolean writeCerts)
Creates a signed data output stream. |
|
|
CMSSignedDataOutputStream(OutputStream out,
int contentType,
boolean dataOut,
boolean outer,
boolean writeCerts,
boolean usePKCS7Format)
Creates a signed data output stream. |
Method Summary | ||
---|---|---|
|
void |
addCertificates(Certificate[] certificates)
Adds certificates to the message in the normal, IETF RFC manner. |
|
void |
addReceiptRequest(CMSReceiptRequest receiptRequest)
Add a signed receipt request to this message. |
|
void |
addSigner(CMSSigner signer)
Adds a signer to the message. |
|
void |
close()
Closes this output stream and releases any system resources associated with this stream. |
|
CMSReceiptData[] |
getReceiptInformation()
Returns the CMSReceiptData necessary to verify the signed receipts you receive as a result of requesting them. |
|
void |
write(byte[] data,
int offset,
int length)
Writes len bytes from the specified byte array
starting at offset off to this output stream. |
Methods inherited from class net.rim.device.api.crypto.cms.CMSOutputStream |
---|
flush, write, write |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public CMSSignedDataOutputStream(OutputStream out, int contentType, boolean outer)
out
- The output stream to write data too.contentType
- The type of data being signed. These constants are defined in CMSContentTypes
.outer
- A boolean to determine if this is the outer CMS stream, since CMS streams
can be nested within themselves. The stream needs to know if it is the "outer" layer so it can do some extra
processing. For example, if you wish to sign and then encrypt a message, the CMSSignedDataOutputStream will
be the "outer" layer.public CMSSignedDataOutputStream(OutputStream out, int contentType, boolean dataOut, boolean outer, boolean writeCerts)
out
- The output stream to write data too.contentType
- The type of data being signed. These constants are defined in CMSContentTypes
.dataOut
- Set to true if the data is to be written to the
stream. The user would set this variable to false if they were trying to create a clear signed SMIME message.
In that case, they would be want to have the text of the message to only appear in the clear, and not encoded
within the CMS data. To accomplish this, they would work with a MIMEOutputStream and set dataOut
to
false here in the CMSSignedDataOutputStream.outer
- A boolean to determine if this is the outer CMS stream, since CMS streams
can be nested within themselves. The stream needs to know if it is the "outer" layer so it can do some extra
processing. For example, if you wish to sign and then encrypt a message, the CMSSignedDataOutputStream will
be the "outer" layer.writeCerts
- A boolean to decide if we should write out the certificates in the message or not. This
covers all certificates added to the stream through addSigner
calls.public CMSSignedDataOutputStream(OutputStream out, int contentType, boolean dataOut, boolean outer, boolean writeCerts, boolean usePKCS7Format)
out
- The output stream to write data too.contentType
- The type of data being signed. These constants are defined in CMSContentTypes
.dataOut
- Set to true if the data is to be written to the
stream. The user would set this variable to false if they were trying to create a clear signed SMIME message.
In that case, they would be want to have the text of the message to only appear in the clear, and not encoded
within the CMS data. To accomplish this, they would work with a MIMEOutputStream and set dataOut
to
false here in the CMSSignedDataOutputStream.outer
- A boolean to determine if this is the outer CMS stream, since CMS streams
can be nested within themselves. The stream needs to know if it is the "outer" layer so it can do some extra
processing. For example, if you wish to sign and then encrypt a message, the CMSSignedDataOutputStream will
be the "outer" layer.writeCerts
- A boolean to decide if we should write out the certificates in the message or not. This
covers all certificates added to the stream through addSigner
calls.usePKCS7Format
- True if you want to use the PKCS7 format for the underlying, rather than the CMS format.
Use the PKCS7 format for legacy applications.Method Detail |
---|
public void addSigner(CMSSigner signer) throws NoSuchAlgorithmException, IllegalStateException
Note that if the writeCerts
boolean was set to false, when this object was created, any
certificates added through the signer
object will NOT be written to the output stream.
signer
- The signature signer used to sign the message.
NoSuchAlgorithmException
- Thrown if the algorithm of the signer if not supported.
IllegalStateException
- Thrown if this method is called after a call to write
is made.public void addCertificates(Certificate[] certificates)
Note that if the writeCerts
boolean was set to true, when this object was created, any
certificates added here will NOT be written to the output stream.
Used when you need to make a certs-only message.
certificates
- An array of certificates to write out, these will be appended to any previously
added certificates.public void addReceiptRequest(CMSReceiptRequest receiptRequest)
Note you are not allowed to request a receipt on a signed receipt so trying to do that will throw an IllegalArgumentException.
Note that calling this function multiple times will mean that the new receiptRequest
will replace the old receipt request.
receiptRequest
- A CMSReceiptRequest representing a signed receipt you are requestingpublic CMSReceiptData[] getReceiptInformation()
close()
call on this stream,
otherwise null will be returned.
public void write(byte[] data, int offset, int length) throws IOException
OutputStream
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.
The write
method of OutputStream
calls
the write method of one argument on each of the bytes to be
written out. Subclasses are encouraged to override this method and
provide a more efficient implementation.
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.
write
in class CMSOutputStream
data
- the data.offset
- the start offset in the data.length
- the number of bytes to write.
IOException
- if an I/O error occurs. In particular,
an IOException
is thrown if the output
stream is closed.public void close() throws IOException
OutputStream
close
is that it closes the output stream. A closed stream cannot perform
output operations and cannot be reopened.
The close
method of OutputStream
does nothing.
close
in class CMSOutputStream
IOException
- if an I/O error occurs.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright 1999-2010 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Copyright 1993-2003 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved.
Copyright 2002-2003 Nokia Corporation All Rights Reserved.
Java is a trademark of Sun Microsystems, Inc.