net.rim.device.api.crypto
Class AESCryptoToken

java.lang.Object
  extended by net.rim.device.api.crypto.AESCryptoToken
All Implemented Interfaces:
CryptoToken, SymmetricCryptoToken, Persistable

public abstract class AESCryptoToken
extends Object
implements SymmetricCryptoToken, Persistable

Represents an Advanced Encryption System (AES) crypto token. For more information visit the NIST web page.

Note: This class must be extended in order to override the default implementation.

Note: It is considered good practice to implement the equals and hashCode methods when extending this class. Otherwise, odd behaviour can occur.

(@link AESKey More information on the AES key.) Details on implementing for smart cards.

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 AESCryptoToken()
          Creates a new AESCryptoToken object.
 
Method Summary
Category: Signed  CryptoTokenSymmetricKeyData createKey(int bitLength)
          Create a key for the crypto token.
Category: Signed  void decrypt(CryptoTokenCipherContext context, byte[] ciphertext, int ciphertextOffset, byte[] plaintext, int plaintextOffset)
          Decrypts an array of ciphertext using the crypto token.
Category: Signed  void decryptCBC(CryptoTokenCipherContext context, byte[] ciphertext, int ciphertextOffset, byte[] plaintext, int plaintextOffset, int numBlocks, byte[] iv)
          Decrypts an array of ciphertext using the crypto token applying CBC mode to the blocks.
Category: Signed  void deleteKey(CryptoTokenSymmetricKeyData data)
          Delete the specified key on the crypto token.
Category: Signed  void encrypt(CryptoTokenCipherContext context, byte[] plaintext, int plaintextOffset, byte[] ciphertext, int ciphertextOffset)
          Encrypts an array of plaintext using the crypto token.
Category: Signed  void encryptCBC(CryptoTokenCipherContext context, byte[] plaintext, int plaintextOffset, byte[] ciphertext, int ciphertextOffset, int numBlocks, byte[] iv)
          Encrypts an array of plaintext using the crypto token applying CBC mode to the blocks.
Category: Signed  byte[] extractKeyData(CryptoTokenSymmetricKeyData data)
          Returns the key data contained in the crypto token.
Category: Signed  int extractKeyDataLength(CryptoTokenSymmetricKeyData data)
          Returns the key data length.
Category: Signed  String getAlgorithm()
          Returns the algorithm supported by this token, ie "AES".
Category: Signed  CryptoTokenCipherContext initializeDecrypt(CryptoTokenSymmetricKeyData data, int blockLength)
          Initializes the token for decryption.
Category: Signed  CryptoTokenCipherContext initializeDecrypt(CryptoTokenSymmetricKeyData data, int blockLength, boolean useCPAProtection)
          Initializes the token for decryption.
Category: Signed  CryptoTokenCipherContext initializeEncrypt(CryptoTokenSymmetricKeyData data, int blockLength)
          Initializes the token for encryption.
Category: Signed  CryptoTokenCipherContext initializeEncrypt(CryptoTokenSymmetricKeyData data, int blockLength, boolean useCPAProtection)
          Initializes the token for encryption.
Category: Signed  CryptoTokenSymmetricKeyData injectKey(byte[] key, int offset, int bitLength)
          Inserts the key onto the crypto token.
Category: Signed  boolean providesUserAuthentication()
          Indicates whether the token provides its own user authentication checks.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 



Constructor Detail

AESCryptoToken

protected AESCryptoToken()
Creates a new AESCryptoToken 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

getAlgorithm

public final String getAlgorithm()
Returns the algorithm supported by this token, ie "AES".

Specified by:
getAlgorithm in interface CryptoToken
Returns:
A String that represents 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

providesUserAuthentication

public boolean providesUserAuthentication()
Indicates whether the token provides its own user authentication checks. Returns true if the token provides its own user authentication checks; for example, a smartcard will prompt for a password before allowing access to the keys. This default implementation returns false.

Specified by:
providesUserAuthentication in interface CryptoToken
Returns:
true if the user will be authenticated by the token itself.
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

initializeEncrypt

public CryptoTokenCipherContext initializeEncrypt(CryptoTokenSymmetricKeyData data,
                                                  int blockLength)
                                           throws CryptoTokenException,
                                                  CryptoUnsupportedOperationException
Initializes the token for encryption.

Parameters:
data - The symmetric key data contained on the crypto token.
blockLength - The block length of the encryption cipher.
Returns:
The cipher context.
Throws:
CryptoTokenException - If an error occurs with a crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - 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

initializeEncrypt

public CryptoTokenCipherContext initializeEncrypt(CryptoTokenSymmetricKeyData data,
                                                  int blockLength,
                                                  boolean useCPAProtection)
                                           throws CryptoTokenException,
                                                  CryptoUnsupportedOperationException
Initializes the token for encryption.

Parameters:
data - The symmetric key data contained on the crypto token.
blockLength - The block length of the encryption cipher.
useCPAProtection - If true, enable cryptographic power analysis(CPA) protection and use a strong but slow AES implementation; otherwise, use the fastest version available on the device.
Returns:
The cipher context.
Throws:
CryptoTokenException - If an error occurs with a crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - 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 4.3.0

encrypt

public void encrypt(CryptoTokenCipherContext context,
                    byte[] plaintext,
                    int plaintextOffset,
                    byte[] ciphertext,
                    int ciphertextOffset)
             throws CryptoTokenException
Encrypts an array of plaintext using the crypto token.

Parameters:
context - The crypto token context.
plaintext - An array containing the plaintext to be encrypted.
plaintextOffset - The offset, or start position, of the plaintext data within the array.
ciphertext - An array to contain the ciphertext.
ciphertextOffset - The offset, or starting bit, of the new cipher text data within the array.
Throws:
CryptoTokenException - Thrown if an error occurs with the crypto token or the crypto token is invalid.
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

encryptCBC

public void encryptCBC(CryptoTokenCipherContext context,
                       byte[] plaintext,
                       int plaintextOffset,
                       byte[] ciphertext,
                       int ciphertextOffset,
                       int numBlocks,
                       byte[] iv)
                throws CryptoTokenException,
                       CryptoUnsupportedOperationException
Encrypts an array of plaintext using the crypto token applying CBC mode to the blocks.

Parameters:
context - The crypto token context.
plaintext - An array containing the plaintext to be encrypted.
plaintextOffset - The offset, or start position, of the plaintext data within the array.
ciphertext - An array to contain the ciphertext.
ciphertextOffset - The offset, or starting bit, of the new cipher text data within the array.
numBlocks - The number of blocks to encrypt.
iv - The initialization vector.
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:
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 5.0.0

initializeDecrypt

public CryptoTokenCipherContext initializeDecrypt(CryptoTokenSymmetricKeyData data,
                                                  int blockLength)
                                           throws CryptoTokenException,
                                                  CryptoUnsupportedOperationException
Initializes the token for decryption.

Parameters:
data - The symmetric key data contained on the crypto token.
blockLength - The block length of the decryption cipher.
Returns:
The cipher context.
Throws:
CryptoTokenException - If an error occurs with a crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - 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

initializeDecrypt

public CryptoTokenCipherContext initializeDecrypt(CryptoTokenSymmetricKeyData data,
                                                  int blockLength,
                                                  boolean useCPAProtection)
                                           throws CryptoTokenException,
                                                  CryptoUnsupportedOperationException
Initializes the token for decryption.

Parameters:
data - The symmetric key data contained on the crypto token.
blockLength - The block length of the decryption cipher.
useCPAProtection - If true, enable cryptographic power analysis(CPA) protection and use a strong but slow AES implementation; otherwise, use the fastest version available on the device.
Returns:
The cipher context.
Throws:
CryptoTokenException - If an error occurs with a crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - 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 4.3.0

decrypt

public void decrypt(CryptoTokenCipherContext context,
                    byte[] ciphertext,
                    int ciphertextOffset,
                    byte[] plaintext,
                    int plaintextOffset)
             throws CryptoTokenException
Decrypts an array of ciphertext using the crypto token.

Parameters:
context - The crypto token context.
ciphertext - An array containing the ciphertext to decrypt.
ciphertextOffset - The offset, or starting bit, of the ciphertext data within the array.
plaintext - An array to contain the plaintext.
plaintextOffset - The offset, or start position, of the plaintext data within the array.
Throws:
CryptoTokenException - If an error occurs with the crypto token or the crypto token is invalid.
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

decryptCBC

public void decryptCBC(CryptoTokenCipherContext context,
                       byte[] ciphertext,
                       int ciphertextOffset,
                       byte[] plaintext,
                       int plaintextOffset,
                       int numBlocks,
                       byte[] iv)
                throws CryptoTokenException,
                       CryptoUnsupportedOperationException
Decrypts an array of ciphertext using the crypto token applying CBC mode to the blocks.

Parameters:
context - The crypto token context.
ciphertext - An array containing the ciphertext to decrypt.
ciphertextOffset - The offset, or starting bit, of the ciphertext data within the array.
plaintext - An array to contain the plaintext.
plaintextOffset - The offset, or start position, of the plaintext data within the array.
numBlocks - The number of blocks to decrypt.
iv - The initialization vector.
Throws:
CryptoTokenException - If an error occurs with the crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - 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 5.0.0

extractKeyDataLength

public int extractKeyDataLength(CryptoTokenSymmetricKeyData data)
                         throws CryptoTokenException,
                                CryptoUnsupportedOperationException
Returns the key data length.

Parameters:
data - The symmetric key data.
Returns:
An integer representing the key length.
Throws:
CryptoTokenException - If an error occurs with a crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - 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

extractKeyData

public byte[] extractKeyData(CryptoTokenSymmetricKeyData data)
                      throws CryptoTokenException,
                             CryptoUnsupportedOperationException
Returns the key data contained in the crypto token.

Parameters:
data - The symmetric data contained on the crypto token.
Returns:
A byte array containing the key data.
Throws:
CryptoTokenException - If an error occurs with a crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - 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

createKey

public CryptoTokenSymmetricKeyData createKey(int bitLength)
                                      throws CryptoTokenException,
                                             CryptoUnsupportedOperationException
Create a key for the crypto token.

Parameters:
bitLength - An integer representing the length of the key in bits.
Returns:
The key data.
Throws:
CryptoTokenException - If an error occurs with a crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - 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

injectKey

public CryptoTokenSymmetricKeyData injectKey(byte[] key,
                                             int offset,
                                             int bitLength)
                                      throws CryptoTokenException,
                                             CryptoUnsupportedOperationException
Inserts the key onto the crypto token.

Parameters:
key - A byte array containing the key.
offset - The offset, or start position, of the key data within the array.
bitLength - The length of the key in bits.
Returns:
The key data.
Throws:
CryptoTokenException - If an error occurs with a crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - 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

deleteKey

public void deleteKey(CryptoTokenSymmetricKeyData data)
               throws CryptoTokenException,
                      CryptoUnsupportedOperationException
Delete the specified key on the crypto token.

Parameters:
data - The symmetric key data contained within the token.
Throws:
CryptoTokenException - If an error occurs with a crypto token or the crypto token is invalid.
CryptoUnsupportedOperationException - 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





Copyright 1999-2011 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Java is a trademark of Oracle America Inc. in the US and other countries.
Legal