net.rim.device.api.crypto
Class ECIESDecryptor

java.lang.Object
  extended by java.io.InputStream
      extended by net.rim.device.api.crypto.CryptoInputStream
          extended by net.rim.device.api.crypto.DecryptorInputStream
              extended by net.rim.device.api.crypto.StreamDecryptor
                  extended by net.rim.device.api.crypto.ECIESDecryptor

public final class ECIESDecryptor
extends StreamDecryptor

ECIESDecryptor is a class used to decrypt messages encoded with the Elliptic Curve Integrated Encryption Scheme ( ECIES ). It is described in ANSI X9.63.

Elliptic Curve cryptography is defined in various standards including P1363 and ANSI X9.62.

See Also:
ECIESEncryptor
Category:
Signed: This element is only accessible by signed applications. If you intend to use this element, please visit http://www.blackberry.com/go/codesigning to obtain a set of code signing keys. Code signing is only required for applications running on BlackBerry smartphones; development on BlackBerry Smartphone Simulators can occur without code signing.
Since:
BlackBerry API 3.6.0

Field Summary
 
Fields inherited from class net.rim.device.api.crypto.CryptoInputStream
_inputStream
 
Constructor Summary
Category: Signed ECIESDecryptor(InputStream input, ECPrivateKey recipientPrivateKey)
          Creates an ECIESDecryptor class.
Category: Signed ECIESDecryptor(InputStream input, ECPrivateKey recipientPrivateKey, String macAlgorithm, int macKeyLength, byte[] additionalMACInfo, int macLength, byte[] additionalKDFInfo, Digest kdfDigest, boolean useCofactor)
          Creates an ECIESDecryptor class.
 
Method Summary
Category: Signed protected  void decrypt(byte[] data, int dataOffset, int dataLength)
          Decrypts data according to the specific implementation of the chosen stream cipher.
Category: Signed  String getAlgorithm()
          Returns the name of this algorithm, namely "ECIES/" + macAlgorithm.
Category: Signed  boolean verify()
           
 
Methods inherited from class net.rim.device.api.crypto.StreamDecryptor
read
 
Methods inherited from class net.rim.device.api.crypto.CryptoInputStream
available, close, getInputStream, markSupported, read, read
 
Methods inherited from class java.io.InputStream
mark, reset, skip
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 



Constructor Detail

ECIESDecryptor

public ECIESDecryptor(InputStream input,
                      ECPrivateKey recipientPrivateKey)
               throws CryptoTokenException,
                      CryptoUnsupportedOperationException,
                      InvalidKeyException,
                      InvalidCryptoSystemException,
                      IOException,
                      NoSuchAlgorithmException
Creates an ECIESDecryptor class. The MAC algorithm used is HMAC with SHA1 and a 20 byte key. The "additional" shared values are not included. Also, the cofactor is used in the shared secret calculation and SHA1 is used as the kdf digest.

Parameters:
input - The input stream to read from
recipientPrivateKey - The private key of the person this message was for
Throws:
CryptoTokenException - Thrown if a crypto token error occurs.
CryptoUnsupportedOperationException - Thrown if the attempted operation is not supported.
InvalidKeyException - Thrown if there is a problem with the ephemeral key read from the stream.
InvalidCryptoSystemException - Thrown if the crypto system has a problem with it.
IOException - Thrown if there is a problem writing to the output stream
NoSuchAlgorithmException - Thrown if the mac algorithm is not supported
Category:
Signed: This element is only accessible by signed applications. If you intend to use this element, please visit http://www.blackberry.com/go/codesigning to obtain a set of code signing keys. Code signing is only required for applications running on BlackBerry smartphones; development on BlackBerry Smartphone Simulators can occur without code signing.
Since:
BlackBerry API 3.6.0

ECIESDecryptor

public ECIESDecryptor(InputStream input,
                      ECPrivateKey recipientPrivateKey,
                      String macAlgorithm,
                      int macKeyLength,
                      byte[] additionalMACInfo,
                      int macLength,
                      byte[] additionalKDFInfo,
                      Digest kdfDigest,
                      boolean useCofactor)
               throws CryptoTokenException,
                      CryptoUnsupportedOperationException,
                      InvalidKeyException,
                      InvalidCryptoSystemException,
                      IOException,
                      NoSuchAlgorithmException
Creates an ECIESDecryptor class.

Parameters:
input - The input stream to read from
recipientPrivateKey - The private key of the person this message was for
macAlgorithm - The MAC algorithm to use. If null, then "HMAC/SHA1" is used.
macKeyLength - The length of the MAC key to use.
additionalMACInfo - Additional mac information to provided to the MAC.
macLength - The length of the MAC to use.
additionalKDFInfo - Additional shared information to provide to the KDF
kdfDigest - Specifies the digest to use in the KDF. If null, then SHA1 is used.
useCofactor - If this true, a the elliptic curve's cofactor is used in the calculations. If false, the cofactor is not used. Note, setting this value to TRUE is the most common usage.
Throws:
CryptoTokenException - Thrown if a crypto token error occurs.
CryptoUnsupportedOperationException - Thrown if the attempted operation is not supported.
InvalidKeyException - Thrown if there is a problem with the ephemeral key read from the stream.
InvalidCryptoSystemException - Thrown if the crypto system has a problem with it.
IOException - Thrown if there is a problem writing to the output stream
NoSuchAlgorithmException - Thrown if the mac algorithm is not supported
Category:
Signed: This element is only accessible by signed applications. If you intend to use this element, please visit http://www.blackberry.com/go/codesigning to obtain a set of code signing keys. Code signing is only required for applications running on BlackBerry smartphones; development on BlackBerry Smartphone Simulators can occur without code signing.
Since:
BlackBerry API 3.6.0


Method Detail

getAlgorithm

public String getAlgorithm()
Returns the name of this algorithm, namely "ECIES/" + macAlgorithm.

Specified by:
getAlgorithm in class CryptoInputStream
Returns:
A String representing the name of the algorithm.
Category:
Signed: This element is only accessible by signed applications. If you intend to use this element, please visit http://www.blackberry.com/go/codesigning to obtain a set of code signing keys. Code signing is only required for applications running on BlackBerry smartphones; development on BlackBerry Smartphone Simulators can occur without code signing.
Since:
BlackBerry API 3.6.0

decrypt

protected void decrypt(byte[] data,
                       int dataOffset,
                       int dataLength)
                throws CryptoTokenException
Description copied from class: StreamDecryptor
Decrypts data according to the specific implementation of the chosen stream cipher. The data should be decrypted in place.

Specified by:
decrypt in class StreamDecryptor
Parameters:
data - A byte array containing the input to the stream cipher.
dataOffset - The offset, or initial position within the array, of the information to decrypt.
dataLength - The length, in bytes, of the information to decrypt.
Throws:
CryptoTokenException - Thrown when an error occurs with the crypto token or the crypto token is invalid.
Category:
Signed: This element is only accessible by signed applications. If you intend to use this element, please visit http://www.blackberry.com/go/codesigning to obtain a set of code signing keys. Code signing is only required for applications running on BlackBerry smartphones; development on BlackBerry Smartphone Simulators can occur without code signing.
Since:
BlackBerry API 3.6.0

verify

public boolean verify()
               throws CryptoTokenException
Throws:
CryptoTokenException
Category:
Signed: This element is only accessible by signed applications. If you intend to use this element, please visit http://www.blackberry.com/go/codesigning to obtain a set of code signing keys. Code signing is only required for applications running on BlackBerry smartphones; development on BlackBerry Smartphone Simulators can occur without code signing.
Since:
BlackBerry API 3.6.0





Copyright 1999-2011 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Java is a trademark of Oracle America Inc. in the US and other countries.
Legal