SHOW Signed SHOW CryptoExtensionAPI
 

net.rim.device.api.crypto
Class MACFactory

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

public abstract class MACFactory
extends Object

Creates a Message Authentication Code MAC using the specified parameters.

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

NOTE: The implementation of this class may return an object that uses functionality provided by Certicom. In such cases, the calling code must have a license with Certicom, and be signed with the RCC code signing key. If the RCC code signature check fails, then a ControlledAccessException is thrown. For more information on the classes that use technology from Certicom, 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:
JDE 3.6.0
See Also:
ControlledAccessException, MAC, SymmetricKeyFactory

Constructor Summary
 Category: CryptoExtensionAPI Category: Signed protected MACFactory()
          Creates a new MACFactory object.
 
Method Summary
 Category: CryptoExtensionAPI Category: Signed protected abstract  MAC create(String algorithm, String parameters, SymmetricKey key)
          Called to create the MAC.
 Category: Signed static Enumeration getAlgorithms()
          Returns an Enumeration of String representing all of the registered algorithms with this factory.
 Category: CryptoExtensionAPI Category: Signed protected abstract  String[] getFactoryAlgorithms()
          Called to determine what SymmetricKey's are supported.
 Category: Signed static MAC getInstance(String algorithm, SymmetricKey key)
          Constructs and returns a new MAC.
 Category: Signed static MAC getInstance(SymmetricKey key)
          Constructs and returns a new MAC.
 Category: CryptoExtensionAPI Category: Signed static void register(MACFactory factory)
          Registers the given MACFactory object.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MACFactory

protected MACFactory()
Creates a new MACFactory object.

This constructor is not used.

Since:
JDE 3.6.0
Category:
CryptoExtensionAPI: This element is part of the Crypto Extension API. These APIs are intended for parties interested in extending the security provider frameworks, such as integrating a new security medium.
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.
Method Detail

create

protected abstract MAC create(String algorithm,
                              String parameters,
                              SymmetricKey key)
                       throws NoSuchAlgorithmException,
                              ClassCastException,
                              CryptoTokenException,
                              CryptoUnsupportedOperationException,
                              CryptoException
Called to create the MAC.

Parameters:
algorithm - A String representing the name of the algorithm.
parameters - A String containing the paramters for the MAC.
keyData - The keydata used to create the MAC.
offset - The offset, or start position, of the data within the array.
length - The length of the data, in bytes.
Returns:
The MAC.
Throws:
NoSuchAlgorithmException - Thrown if an error occurs when creating the MAC.
ClassCastException - Thrown if the class is improperly cast.
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 3.6.0
Category:
CryptoExtensionAPI: This element is part of the Crypto Extension API. These APIs are intended for parties interested in extending the security provider frameworks, such as integrating a new security medium.
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.

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.
Since:
JDE 3.6.0
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.

getFactoryAlgorithms

protected abstract String[] getFactoryAlgorithms()
Called to determine what SymmetricKey's are supported.

Returns:
A String containing the names of supported algorithms.
Since:
JDE 3.6.0
Category:
CryptoExtensionAPI: This element is part of the Crypto Extension API. These APIs are intended for parties interested in extending the security provider frameworks, such as integrating a new security medium.
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.

getInstance

public static MAC getInstance(String algorithm,
                              SymmetricKey key)
                       throws NoSuchAlgorithmException,
                              CryptoTokenException,
                              CryptoUnsupportedOperationException
Constructs and returns a new MAC.

A MACFactory object is selected based on the String alone. The keydata will simply be extracted from the symmetric key.

Parameters:
algorithm - A String containing the specified MAC algorithm. e.g. "HMAC/SHA1", "CBCMAC/DES"
key - The key used to extract key data from.
Returns:
The MAC.
Throws:
NoSuchAlgorithmException - Thrown if the MAC cannot be constructed.
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 3.6.0
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.

getInstance

public static MAC getInstance(SymmetricKey key)
                       throws NoSuchAlgorithmException,
                              CryptoTokenException,
                              CryptoUnsupportedOperationException
Constructs and returns a new MAC. A MACFactory object is selected based on key.getAlgorithm(), eg an HMAC key will return an HMAC object, and a DES key will return a CBCMAC object.
Parameters:
key - The key used to extract the key data from.
Returns:
The MAC.
Throws:
NoSuchAlgorithmException - Thrown if the MAC cannot be constructed.
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 3.6.0
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.

register

public static void register(MACFactory factory)
Registers the given MACFactory object.

If a previous call registered a MACFactory with the same algorithm name, then the this MACFactory will not be added.

Parameters:
factory - The MACFactory object to be registered.
Since:
JDE 3.6.0
Category:
CryptoExtensionAPI: This element is part of the Crypto Extension API. These APIs are intended for parties interested in extending the security provider frameworks, such as integrating a new security medium.
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.



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