SHOW Signed

net.rim.device.api.crypto
Class ECDHKeyAgreement

java.lang.Object
  |
  +--net.rim.device.api.crypto.ECDHKeyAgreement

public final class ECDHKeyAgreement
extends Object

Implements the elliptic curve analog of the Diffie-Hellman algorithm.

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

Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.

Since:
JDE 3.6.0

Method Summary
 Category: Signed static byte[] generateSharedSecret(ECPrivateKey localPrivateKey, ECPublicKey remotePublicKey, boolean useCofactor)
          Generates the shared secret for elliptic curve Diffie-Hellman key agreement using a given public key (from another party) and a private key with the option of the cofactor of the elliptic curve being used in the shared secret calculations.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

generateSharedSecret

public static byte[] generateSharedSecret(ECPrivateKey localPrivateKey,
                                          ECPublicKey remotePublicKey,
                                          boolean useCofactor)
                                   throws InvalidCryptoSystemException,
                                          CryptoTokenException,
                                          CryptoUnsupportedOperationException
Generates the shared secret for elliptic curve Diffie-Hellman key agreement using a given public key (from another party) and a private key with the option of the cofactor of the elliptic curve being used in the shared secret calculations. The cofactor is used to prevent small subgroup attacks. Note that using the cofactor is the defacto standard for elliptic curve operations.

Parameters:
localPrivateKey - The local private key to use.
remotePublicKey - The remote public key to use.
useCofactor - If true, the cofactor of the elliptic curve is used in the calculations. If false, it is not used. Note, setting this value to TRUE is the most common usage.
Returns:
A byte array containing the shared secret data. Note that the value returned is the raw shared secret, which technically is an element of the finite field that the elliptic curve is defined over. 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 an error occurs with the crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - Thrown if a call is made to an unsupported operation.
Since:
JDE 4.0.0
Category:
Signed: This element is only accessible by signed clients. If you intend to use this element, please contact RIM to establish the necessary agreements that will allow you to have your COD files signed. Signing is only required for use on the device, development under the JDE can occur without signing the CODs.


Copyright 1999-2004 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.