net.rim.device.api.crypto
Class ECNRSignatureSigner
java.lang.Object
net.rim.device.api.crypto.ECNRSignatureSigner
- All Implemented Interfaces:
- SignatureSigner
public final class ECNRSignatureSigner
- extends Object
- implements SignatureSigner
Signs messages using the Elliptic Curve Nyberg-Rueppel (ECNR) signature scheme.
Elliptic Curve cryptography is defined in various standards including P1363 and ANSI X9.42.
ECNR is defined in P1363 ( we implemented the version from the draft 13 document ).
For information on cryptographic algorithms, see Crypto Algorithms.
- See Also:
ECNRSignatureVerifier- 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 |
|
String |
getAlgorithm()
Returns the name of this signing algorithm ("ECNR/" + digest.getAlgorithm). |
|
String |
getDigestAlgorithm()
Returns the name of the digest algorithm used, eg "SHA1", etc. |
|
int |
getRLength()
Returns the largest possible value for the size of r, which is the size of the field. |
|
int |
getSLength()
Returns the largest possible value for the size of s, which is the size of the field. |
|
void |
reset()
Reinitializes the signer, preparing it to generate another signature. |
|
void |
sign(byte[] r,
int rOffset,
byte[] s,
int sOffset)
Signs the information that has been hashed up to this point
using the values of r and s. |
|
void |
update(byte[] data)
Adds additional message data to the signature. |
|
void |
update(byte[] data,
int offset,
int length)
Adds additional message data to the signature. |
|
void |
update(int data)
Adds additional message data to the signature. |
ECNRSignatureSigner
public ECNRSignatureSigner(ECPrivateKey key)
throws CryptoTokenException,
CryptoUnsupportedOperationException
- Constructs an
ECNRSignatureSigner object which uses SHA-1 to compute the signature.
- Parameters:
key - The EC private key to use.
- Throws:
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.- 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
ECNRSignatureSigner
public ECNRSignatureSigner(ECPrivateKey key,
Digest digest)
throws CryptoTokenException,
CryptoUnsupportedOperationException
- Constructs an
ECNRSignatureSigner object which uses the given digest to compute the signature.
NOTE: If the digest has any state information in it when it is given to the signature
signer, this information will be incorparated into the signature. If you don't want this
information included, call the reset method for the signature signer to delete it. A newly
created digest, which no update calls have been made too, contains no state information in it by
default.
- Parameters:
key - The EC private key to use.digest - An instance of the digest algorithm to use.
- Throws:
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.- 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
getAlgorithm
public String getAlgorithm()
- Returns the name of this signing algorithm ("ECNR/" + digest.getAlgorithm).
- Specified by:
getAlgorithm in interface SignatureSigner
- Returns:
- A String that represents 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
getDigestAlgorithm
public String getDigestAlgorithm()
- Returns the name of the digest algorithm used, eg "SHA1", etc.
- Specified by:
getDigestAlgorithm in interface SignatureSigner
- Returns:
- A String that represents 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
reset
public void reset()
- Description copied from interface:
SignatureSigner
- Reinitializes the signer, preparing it to generate another signature.
- Specified by:
reset in interface SignatureSigner
- 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
update
public void update(int data)
- Description copied from interface:
SignatureSigner
- Adds additional message data to the signature.
- Specified by:
update in interface SignatureSigner
- Parameters:
data - The byte to be hashed.- 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
update
public void update(byte[] data)
- Description copied from interface:
SignatureSigner
- Adds additional message data to the signature.
- Specified by:
update in interface SignatureSigner
- Parameters:
data - The message data to hash.- 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
update
public void update(byte[] data,
int offset,
int length)
- Description copied from interface:
SignatureSigner
- Adds additional message data to the signature.
- Specified by:
update in interface SignatureSigner
- Parameters:
data - The message data to hash.offset - The offset, or the initial position to start reading in the data.length - How much data to read.- 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
getRLength
public int getRLength()
- Returns the largest possible value for the size of r, which is the size of the field.
Notice that the "field" refers to the finite field that the elliptic curve is
defined over and the size refers to either the size of the prime or the
degree of the irreducible polynomial that helps define the field.
The reason we return the maximum size is because r is always in the field and hence
can have size less than or equal to the size of the field so we return the maximum to ensure
that there is enough room to hold r. If r turns out to be smaller than the maximum
it will be padded with zeroes to accomodate this fact.
- Returns:
- An integer that represents the length of r.
- 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
getSLength
public int getSLength()
- Returns the largest possible value for the size of s, which is the size of the field.
Notice that the "field" refers to the finite field that the elliptic curve is
defined over and the size refers to either the size of the prime or the
degree of the irreducible polynomial that helps define the field.
The reason we return the maximum size is because s is always in the field and hence
can have size less than or equal to the size of the field so we return the maximum to ensure
that there is enough room to hold s. If s turns out to be smaller than the maximum
it will be padded with zeroes to accomodate this fact.
- Returns:
- An integer representing the length of s.
- 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
sign
public void sign(byte[] r,
int rOffset,
byte[] s,
int sOffset)
throws CryptoTokenException,
CryptoUnsupportedOperationException
- Signs the information that has been hashed up to this point
using the values of r and s.
- Parameters:
r - Represents the r parameter for the ECNR algorithm. Note that r is an element of the
finite field that the elliptic curve is defined over.rOffset - The offset, or start position, of the signature data
within the array.s - Represents the s parameter for the ECNR algorithm. Note that s is an element of the
finite field that the elliptic curve is defined over.sOffset - The offset, or start postion, of the signature data within
the array.
- Throws:
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.- 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.