SHOW Signed
 

net.rim.device.api.crypto
Class XDecryptorEngine

java.lang.Object
  |
  +--net.rim.device.api.crypto.XDecryptorEngine
All Implemented Interfaces:
BlockDecryptorEngine

public final class XDecryptorEngine
extends Object
implements BlockDecryptorEngine

XDecryptorEngine 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.

    D( key, plaintext ) = D( key, ciphertext ^ postWhitening ) ^ preWhitening
 

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

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

Constructor Summary
 Category: Signed XDecryptorEngine(BlockDecryptorEngine engine, InitializationVector preWhitening, InitializationVector postWhitening)
          Creates an XDecryptorEngine object with the given algorithm engine and whitening vectors.
 
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() + "/X".
 Category: Signed  int getBlockLength()
          Returns the block length of the block cipher 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

XDecryptorEngine

public XDecryptorEngine(BlockDecryptorEngine engine,
                        InitializationVector preWhitening,
                        InitializationVector postWhitening)
Creates an XDecryptorEngine object with the given algorithm engine and whitening vectors.

Parameters:
engine - The algorithm engine used for decryption.
preWhitening - The whitening vector that is applied to the plaintext. This should remain secret. These must not be null.
postWhitening - The whitening vector that is applied to the ciphertext. This should remain secret. These must not be null.
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.
Method Detail

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.

Since:
JDE 3.6.0

Following copied from 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.

getAlgorithm

public String getAlgorithm()
Returns the name of the encryption algorithm used, ie BlockDecryptorEngine.getAlgorithm() + "/X".

Returns:
A String that represents the name of the alorithm.
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.

getBlockLength

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

Since:
JDE 3.6.0

Following copied from 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.

getPostWhitening

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

Returns:
An initialization vector that represents the whitening.
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.

getPreWhitening

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

Returns:
An initialization vector that represents the whitening.
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.

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.
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.



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.