net.rim.device.api.crypto
Class SignatureSignerFactory

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

public abstract class SignatureSignerFactory
extends Object

Contains the functionality for a high level approach to signature signing.

For more information on the cryptographic algorithms supported by this factory, see Crypto Algorithms.

Category:
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

Constructor Summary
Category: Signed protected SignatureSignerFactory()
          Creates a new SignatureSignerFactory object.
 
Method Summary
Category: Signed protected abstract  SignatureSigner createSignatureSigner(String signatureAlgorithm, String digestAlgorithm, PrivateKey key)
          Called to create the SignatureSigner object.
Category: Signed static Enumeration getAlgorithms()
          Returns an Enumeration of String representing all of the registered algorithms with this factory.
Category: Signed protected abstract  String[] getFactoryAlgorithms()
          Returns the name of the algorithm used to sign the data.
Category: Signed static SignatureSigner getInstance(PrivateKey key, String algorithm)
          Constructs and returns a new SignatureSigner.
Category: Signed static void register(SignatureSignerFactory factory)
          Registers the given SignatureSignerFactory object.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 



Constructor Detail

SignatureSignerFactory

protected SignatureSignerFactory()
Creates a new SignatureSignerFactory object.

This constructor is not used.

Category:
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

getInstance

public static SignatureSigner getInstance(PrivateKey key,
                                          String algorithm)
                                   throws NoSuchAlgorithmException,
                                          CryptoTokenException,
                                          CryptoUnsupportedOperationException
Constructs and returns a new SignatureSigner. A SignatureSignerFactory object is selected based on algorithm, or key.getAlgorithm.

The algorithm argument can be one of the following recognized strings representing the SignatureSigner to construct:

STRING SIGNATURESIGNER
"DSA" DSASignatureSigner
"ECDSA" ECDSASignatureSigner
"ECNR" ECNRSignatureSigner
"RSA_PKCS1" PKCS1SignatureSigner (version 2.0)
"RSA_PKCS1_V20" PKCS1SignatureSigner (version 2.0)
"RSA_PKCS1_V15" PKCS1SignatureSigner (version 1.5)
"RSA_PSS" PSSSignatureSigner
"RSA_X931" X931SignatureSigner

NOTE: If the algorithm argument is null, than the type of signature signer to be constructed is defined from the PrivateKey argument. That is, DSA, ECDSA, and PKCS1 (version 2.0) are the default values returned for DSA, EC, and RSA PrivateKeys respectively. For example, if an ECNR signature signer is desired, the algorithm parameter must specify this, if null is used, an ECDSA signature signer will be created.

NOTE: If the parameter argument is null, than the default digest used in constructing a PKCS1V15 signature signer is an MD5 digest, for all other signature signers to be created, the default digest is SHA1.

Parameters:
key - The PrivateKey for signing
algorithm - The name of the SignatureSigner to construct. This parameter may be null.
Returns:
A SignatureSigner object.
Throws:
NoSuchAlgorithmException - Thrown if the specified algorithm does not exist.
CryptoTokenException - Thrown if an error occurs with a crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - Thrown if a call is made to an unsupported operation.
Category:
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

register

public static void register(SignatureSignerFactory factory)
Registers the given SignatureSignerFactory object. If a previous call registered a SignatureSignerFactory object with the same algorithm name, then this SignatureSignerFactory will not be added.

Parameters:
factory - The SignatureSignerFactory to be registered.
Category:
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

getFactoryAlgorithms

protected abstract String[] getFactoryAlgorithms()
Returns the name of the algorithm used to sign the data.

Returns:
A String representing the name of the algorithm.
Category:
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

getAlgorithms

public static Enumeration getAlgorithms()
Returns an Enumeration of String representing all of the registered algorithms with this factory.

Returns:
An Enumeration of Strings representing all of the registered algorithms with this factory.
Category:
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

createSignatureSigner

protected abstract SignatureSigner createSignatureSigner(String signatureAlgorithm,
                                                         String digestAlgorithm,
                                                         PrivateKey key)
                                                  throws NoSuchAlgorithmException,
                                                         CryptoTokenException,
                                                         CryptoUnsupportedOperationException,
                                                         ClassCastException
Called to create the SignatureSigner object.

Parameters:
algorithm - A String that represents the algorithm used to sign the data.
key - The PrivateKey used to sign the data.
Returns:
A SignatureSigner object.
Throws:
NoSuchAlgorithmException - Thrown if if the specified algorithm is invalid.
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.
ClassCastException
Category:
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.