|
|||||||||
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.CMSEnvelopedDataOutputStream
public final class CMSEnvelopedDataOutputStream
Defines a CMS enveloped data output stream to handle a CMS enveloped data message.
CMSEnvelopedDataInputStream
Field Summary |
---|
Fields inherited from class net.rim.device.api.crypto.cms.CMSOutputStream |
---|
_contentType, _dataOut, _out, _outer |
Constructor Summary | ||
---|---|---|
|
CMSEnvelopedDataOutputStream(OutputStream out,
int contentType,
boolean outer)
Creates a CMS enveloped data output stream so that all output is encrypted and formatted in an enveloped data object. |
|
|
CMSEnvelopedDataOutputStream(OutputStream out,
int contentType,
boolean outer,
int contentAlgorithm)
Creates a CMS enveloped data outputstream ( CMSEnvelopedDataOutputStream ) so that
all output is encrypted and formatted in an enveloped data object. |
Method Summary | ||
---|---|---|
|
void |
addAttribute(CMSAttribute attribute)
Add an attribute to the unprotected attributes field of this message. |
|
void |
addRecipient(byte[] password)
Adds a recipient who will use a password to encrypt the session key. |
|
void |
addRecipient(Certificate certificate)
Add a recipient using a default algorithm. |
|
void |
addRecipient(Certificate certificate,
int algorithm,
PrivateKey privateKey,
Certificate originator)
Adds a recipient. |
|
void |
close()
Closes this output stream and releases any system resources associated with this stream. |
|
SymmetricKey |
getSessionKey()
Returns the session key used to encrypt the message. |
|
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 CMSEnvelopedDataOutputStream(OutputStream out, int contentType, boolean outer) throws CryptoUnsupportedOperationException
It uses TripleDES by default as the content encryption algorithm.
out
- The output stream to use.contentType
- The type of data being enveloped.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.
CryptoUnsupportedOperationException
- Thrown if a call is made to
an unsupported operation.public CMSEnvelopedDataOutputStream(OutputStream out, int contentType, boolean outer, int contentAlgorithm) throws CryptoUnsupportedOperationException
CMSEnvelopedDataOutputStream
) so that
all output is encrypted and formatted in an enveloped data object.
out
- The output stream to use.contentType
- The type of data being enveloped.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.contentAlgorithm
- A constant representing which content encryption algorithm to use,
such as CMSEnvelopedDataConstants.TRIPLE_DES
.
CryptoUnsupportedOperationException
- Thrown if a call is made to
an unsupported operation.Method Detail |
---|
public void addAttribute(CMSAttribute attribute)
attribute
- The CMSAttribute
to add.public void addRecipient(Certificate certificate, int algorithm, PrivateKey privateKey, Certificate originator)
Note that if the private key and originator cert are passed in, the public key in the certificate must correspond to the private key passed in.
certificate
- The certificate of the recipient.algorithm
- The algorithm used to encrypt the session key, from CMSEnvelopedDataConstants.privateKey
- The private key to use ( only used in MQV currently ). May be null.originator
- The certificate of the originator ( only used in MQV currently ). May be null.
IllegalArgumentException
- Thrown if the public/private key does not correspond to the algorithm or
the key usage field in the certificate does not allow the specified algorithm.
IllegalStateException
- Thrown if this is called after a call to write is made.public void addRecipient(Certificate certificate)
RSA Private Key RSA Encryption with PKCS1 or OAEP depending on the certificate EC Private Key EC DH Key Agreement DH Private Key DH Key Agreement
certificate
- The certificate of the recipient.public void addRecipient(byte[] password)
password
- A byte array containing the password to encrypt the session key with.public SymmetricKey getSessionKey()
SymmetricKey
representing the session key.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.