net.rim.device.api.crypto
Class DHKeyAgreement

java.lang.Object
  extended by net.rim.device.api.crypto.DHKeyAgreement

public final class DHKeyAgreement
extends Object

Implements the Diffie-Hellman key agreement algorithm.

Diffie-Hellman ( DH ) is defined in PKCS #3 and various other spots.

See Also:
DHKeyPair, DHPublicKey, DHPrivateKey, DHCryptoSystem
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 Summary
Category: Certicom Category: Signed static byte[] generateSharedSecret(DHPrivateKey localPrivateKey, DHPublicKey remotePublicKey, boolean useCofactor)
          Generates the shared secret using a given public key (from another party) and a private key with the option of using cofactor exponentiation.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 



Method Detail

generateSharedSecret

public static byte[] generateSharedSecret(DHPrivateKey localPrivateKey,
                                          DHPublicKey remotePublicKey,
                                          boolean useCofactor)
                                   throws InvalidCryptoSystemException,
                                          CryptoTokenException,
                                          CryptoUnsupportedOperationException,
                                          InvalidKeyException
Generates the shared secret using a given public key (from another party) and a private key with the option of using cofactor exponentiation. Note that utilizing cofactor exponentation is an expensive operation.

Parameters:
localPrivateKey - The local private key to use.
remotePublicKey - The remote public key to use.
useCofactor - If true, a cofactor is used in the shared secret calculations. If false, it is not used. Note that setting this value to FALSE is the most common usage.
Returns:
A byte array containing the shared secret data. Note that the value returned is the raw shared secret. The caller can then take this byte array and feed it into any PseudoRandomSource to create a symmetric key, etc.
Throws:
InvalidCryptoSystemException - Thrown if the local crypto system is different than the remote crypto system
CryptoTokenException - Thrown if there was an error communicating with the token.
CryptoUnsupportedOperationException - Thrown if a call is made to an unsupported operation.
InvalidKeyException - Thrown if the calculated shared secret is not contained within the expected subgroup. This may be thrown if a small subgroup attack is detected.
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.