Implements the key agreement scheme developed by Menezes,
Qu, and Vanstone using elliptic curves (ECMQV).
Elliptic Curve cryptography is defined in various standards including P1363 and ANSI X9.62.
ECMQV is defined in P1363 ( we implemented the version from the draft 13 ( "d13" ) document ).
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.
Method Summary
static byte[]
generateSharedSecret(ECPrivateKey localStaticPrivateKey,
ECKeyPair localEphemeralKeyPair,
ECPublicKey remoteStaticPublicKey,
ECPublicKey remoteEphemeralPublicKey,
boolean useCofactor)
Generates the shared secret using the elliptic curve key agreement developed
by Menezes, Qu, and Vanstone with the option of the cofactor of the elliptic curve
being used in the shared secret calculations.
Generates the shared secret using the elliptic curve key agreement developed
by Menezes, Qu, and Vanstone 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.of the cofactor of the elliptic curve
being factored into the shared secret calculations.
Parameters:
localStaticPrivateKey - The local static private key to use.
localEphemeralKeyPair - The local ephemeral key pair to use.
remoteStaticPublicKey - The remote static public key to use.
remoteEphemeralPublicKey - The remote ephemeral public key to use.
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.
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.
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-2002 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved. Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved. Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.