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:
Certicom: This element is part of the Certicom Cryptography APIs. The Certicom Cryptography APIs provide the tools you need, including ECC based algorithms, to integrate high performance data security into your applications, such as public key data encryption and decryption, digital signatures, and data authentication. Since the Certicom Cryptography API is already in the JDE, its use will remove the need for you to engage in time and resource intensive security integration so that you have lower development costs and a faster time to market. Use of the Certicom Cryptography API requires a license from Certicom. Please contact Certicom directly for more information on licensing fees and conditions.

Certicom Contact Information

Phone:905-507-4220

Email: sales@certicom.com

Website: http://www.certicom.com/rim

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: Certicom Category: Signed ECIESDecryptor(InputStream input, ECPrivateKey recipientPrivateKey)
          Creates an ECIESDecryptor class.
Category: Certicom 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: Certicom Category: Signed protected  void decrypt(byte[] data, int dataOffset, int dataLength)
          Decrypts data according to the specific implementation of the chosen stream cipher.
Category: Certicom Category: Signed  String getAlgorithm()
          Returns the name of this algorithm, namely "ECIES/" + macAlgorithm.
Category: Certicom 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:
Certicom: This element is part of the Certicom Cryptography APIs. The Certicom Cryptography APIs provide the tools you need, including ECC based algorithms, to integrate high performance data security into your applications, such as public key data encryption and decryption, digital signatures, and data authentication. Since the Certicom Cryptography API is already in the JDE, its use will remove the need for you to engage in time and resource intensive security integration so that you have lower development costs and a faster time to market. Use of the Certicom Cryptography API requires a license from Certicom. Please contact Certicom directly for more information on licensing fees and conditions.

Certicom Contact Information

Phone:905-507-4220

Email: sales@certicom.com

Website: http://www.certicom.com/rim

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:
Certicom: This element is part of the Certicom Cryptography APIs. The Certicom Cryptography APIs provide the tools you need, including ECC based algorithms, to integrate high performance data security into your applications, such as public key data encryption and decryption, digital signatures, and data authentication. Since the Certicom Cryptography API is already in the JDE, its use will remove the need for you to engage in time and resource intensive security integration so that you have lower development costs and a faster time to market. Use of the Certicom Cryptography API requires a license from Certicom. Please contact Certicom directly for more information on licensing fees and conditions.

Certicom Contact Information

Phone:905-507-4220

Email: sales@certicom.com

Website: http://www.certicom.com/rim

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:
Certicom: This element is part of the Certicom Cryptography APIs. The Certicom Cryptography APIs provide the tools you need, including ECC based algorithms, to integrate high performance data security into your applications, such as public key data encryption and decryption, digital signatures, and data authentication. Since the Certicom Cryptography API is already in the JDE, its use will remove the need for you to engage in time and resource intensive security integration so that you have lower development costs and a faster time to market. Use of the Certicom Cryptography API requires a license from Certicom. Please contact Certicom directly for more information on licensing fees and conditions.

Certicom Contact Information

Phone:905-507-4220

Email: sales@certicom.com

Website: http://www.certicom.com/rim

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:
Certicom: This element is part of the Certicom Cryptography APIs. The Certicom Cryptography APIs provide the tools you need, including ECC based algorithms, to integrate high performance data security into your applications, such as public key data encryption and decryption, digital signatures, and data authentication. Since the Certicom Cryptography API is already in the JDE, its use will remove the need for you to engage in time and resource intensive security integration so that you have lower development costs and a faster time to market. Use of the Certicom Cryptography API requires a license from Certicom. Please contact Certicom directly for more information on licensing fees and conditions.

Certicom Contact Information

Phone:905-507-4220

Email: sales@certicom.com

Website: http://www.certicom.com/rim

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:
Certicom: This element is part of the Certicom Cryptography APIs. The Certicom Cryptography APIs provide the tools you need, including ECC based algorithms, to integrate high performance data security into your applications, such as public key data encryption and decryption, digital signatures, and data authentication. Since the Certicom Cryptography API is already in the JDE, its use will remove the need for you to engage in time and resource intensive security integration so that you have lower development costs and a faster time to market. Use of the Certicom Cryptography API requires a license from Certicom. Please contact Certicom directly for more information on licensing fees and conditions.

Certicom Contact Information

Phone:905-507-4220

Email: sales@certicom.com

Website: http://www.certicom.com/rim

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-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.