net.rim.device.api.crypto
Class CBCDecryptorEngine

java.lang.Object
  extended by net.rim.device.api.crypto.CBCDecryptorEngine
All Implemented Interfaces:
BlockDecryptorEngine

public final class CBCDecryptorEngine
extends Object
implements BlockDecryptorEngine

Provides the functionality of using CBC or Cipher Block Chaining mode for decryption. CBC mode is defined in FIPS 81.

CBC Mode is defined where the encryption of each block depends on the encryption of the previous block. Note also that with CBC mode an Initialization Vector (IV) is required. If one is not supplied a random IV is generated.

For a code sample using the CBC decryptor engine, click here.

See Also:
CBCEncryptorEngine
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 CBCDecryptorEngine(BlockDecryptorEngine engine, InitializationVector iv)
          Creates a CBC decryptor engine given an algorithm engine and an initialization vector.
 
Method Summary
Category: Signed  void decrypt(byte[] ciphertext, int ciphertextOffset, byte[] plaintext, int plaintextOffset)
          Decodes a block of the given ciphertext into a block of plaintext.
Category: Signed  String getAlgorithm()
          Returns the name of the encryption algorithm used, ie BlockDecryptorEngine.getAlgorithm() + "/CBC".
Category: Signed  int getBlockLength()
          Returns the block length of the block cipher in bytes.
Category: Signed  InitializationVector getIV()
          Returns the initialization vector associated with this decryptor engine.
Category: Signed  void setIV(InitializationVector iv)
          Sets the initialization vector associated with this decryptor engine.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 



Constructor Detail

CBCDecryptorEngine

public CBCDecryptorEngine(BlockDecryptorEngine engine,
                          InitializationVector iv)
Creates a CBC decryptor engine given an algorithm engine and an initialization vector.

Parameters:
engine - The algorithm engine used for decryption.
iv - An initialization vector used for seeding the engine.
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 String getAlgorithm()
Returns the name of the encryption algorithm used, ie BlockDecryptorEngine.getAlgorithm() + "/CBC".

Specified by:
getAlgorithm in interface BlockDecryptorEngine
Returns:
A string that represents the name of the algorithm 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

getBlockLength

public int getBlockLength()
Description copied from interface: BlockDecryptorEngine
Returns the block length of the block cipher in bytes.

Specified by:
getBlockLength in interface BlockDecryptorEngine
Returns:
An integer that specifies the length of a block of data.
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

setIV

public void setIV(InitializationVector iv)
Sets the initialization vector associated with this decryptor engine.

Parameters:
iv - An initialization vector used for seeding the engine.
See Also:
CBCDecryptorEngine.getIV()
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

getIV

public InitializationVector getIV()
Returns the initialization vector associated with this decryptor engine.

Returns:
The initialization vector.
See Also:
CBCDecryptorEngine.setIV(net.rim.device.api.crypto.InitializationVector)
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

decrypt

public void decrypt(byte[] ciphertext,
                    int ciphertextOffset,
                    byte[] plaintext,
                    int plaintextOffset)
             throws CryptoTokenException
Description copied from interface: BlockDecryptorEngine
Decodes a block of the given ciphertext into a block of plaintext.

Specified by:
decrypt in interface BlockDecryptorEngine
Parameters:
ciphertext - A byte array containing the input that is to be decrypted.
ciphertextOffset - The starting offset, or initial byte position, of the data within the input array.
plaintext - A byte array containing the output from the method.
plaintextOffset - The starting offset, or initial byte position, of the data within the output array.
Throws:
CryptoTokenException - Thrown when 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





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.