|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
|
+--java.io.OutputStream
|
+--net.rim.device.api.crypto.cms.CMSOutputStream
|
+--net.rim.device.api.crypto.cms.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 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 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 close()
throws IOException
OutputStreamclose
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
OutputStreamIOException - if an I/O error occurs.public CMSReceiptData[] getReceiptInformation()
close() call on this stream,
otherwise null will be returned.
public void write(byte[] data,
int offset,
int length)
throws IOException
OutputStreamlen 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
OutputStreamb - the data.off - the start offset in the data.len - 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.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
Copyright 1999-2008 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.
Copyright 2002-2003 Nokia Corporation All Rights Reserved.
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.