net.rim.device.api.crypto
Class XEncryptorEngine

java.lang.Object
  extended by net.rim.device.api.crypto.XEncryptorEngine
All Implemented Interfaces:
BlockEncryptorEngine

public final class XEncryptorEngine
extends Object
implements BlockEncryptorEngine

The XEncryptorEngine class efficiently extends the key space of a block cipher, by whitening (ie xor'ing) random secret data before and after the cipher executes. The whitening vectors must remain secret.

    E( key, plaintext ) = E( key, plaintext ^ preWhitening ) ^ postWhitening
 

For a code sample using the X encryptor engine, click here.

See Also:
XDecryptorEngine
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 XEncryptorEngine(BlockEncryptorEngine engine)
          Creates an XEncryptorEngine object with the given algorithm engine.
Category: Signed XEncryptorEngine(BlockEncryptorEngine engine, InitializationVector preWhitening, InitializationVector postWhitening)
          Creates an XEncryptorEngine with the given algorithm engine and whitening vectors.
 
Method Summary
Category: Signed  void encrypt(byte[] plaintext, int plaintextOffset, byte[] ciphertext, int ciphertextOffset)
          Encrypts a block of the given plaintext into a block of ciphertext.
Category: Signed  String getAlgorithm()
          Returns the name of the encryption algorithm used, ie BlockDecryptorEngine.getAlgorithm() + "/X".
Category: Signed  int getBlockLength()
          Returns the block length of the engine in bytes.
Category: Signed  InitializationVector getPostWhitening()
          Returns the whitening vector that is applied to the ciphertext.
Category: Signed  InitializationVector getPreWhitening()
          Returns the whitening vector that is applied to the plaintext.
Category: Signed  void setWhiteningVectors(InitializationVector preWhitening, InitializationVector postWhitening)
          Sets the pre and post whitening vectors.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 



Constructor Detail

XEncryptorEngine

public XEncryptorEngine(BlockEncryptorEngine engine)
Creates an XEncryptorEngine object with the given algorithm engine. Use the getPreWhitening() and getPostWhitening() methods to retrieve the whitening vectors.

Parameters:
engine - The algorithm engine to be used for encryption.
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

XEncryptorEngine

public XEncryptorEngine(BlockEncryptorEngine engine,
                        InitializationVector preWhitening,
                        InitializationVector postWhitening)
Creates an XEncryptorEngine with the given algorithm engine and whitening vectors.

Parameters:
engine - The algorithm engine used for encryption.
preWhitening - The whitening vector that is applied to the plaintext. This should remain secret.
postWhitening - The whitening vector that is applied to the ciphertext. This should remain secret.
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() + "/X".

Specified by:
getAlgorithm in interface BlockEncryptorEngine
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

getBlockLength

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

Specified by:
getBlockLength in interface BlockEncryptorEngine
Returns:
An integer that represents the number of bytes.
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

setWhiteningVectors

public void setWhiteningVectors(InitializationVector preWhitening,
                                InitializationVector postWhitening)
Sets the pre and post whitening vectors.

Parameters:
preWhitening - The whitening vector that is applied to the plaintext. This should remain secret.
postWhitening - The whitening vector that is applied to the ciphertext. This should remain secret.
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

getPreWhitening

public InitializationVector getPreWhitening()
Returns the whitening vector that is applied to the plaintext.

Returns:
The pre whitening vector.
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

getPostWhitening

public InitializationVector getPostWhitening()
Returns the whitening vector that is applied to the ciphertext.

Returns:
The post whitening vector.
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

encrypt

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

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