SHOW Signed
 

net.rim.device.api.crypto
Class DESDecryptorEngine

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

public final class DESDecryptorEngine
extends Object
implements SymmetricKeyDecryptorEngine

The DESDecryptorEngine implements the decryption functionality of the DES block cipher. DES is the Data Encryption Standard which in actuality uses the DEA Data Encryption Algorithm to compute the plaintext from the ciphertext. DES is defined in FIPS 46-3.

DES operates on 64 bit blocks and has an effective key length of 56 bits. In reality, the key is 64 bits but there are 8 bits of parity used which means that the effective key length is only 56 bits. Every eighth bit is used for parity and it is the least significant bit that is used for parity. The algorithm is uses the basic principles of data confusion and diffusion.

For a code sample using the DES 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:
DESEncryptorEngine

Field Summary
 Category: Signed static int BLOCK_LENGTH
          Represents the block length of the cipher in bytes, namely 8 bytes.
 
Constructor Summary
 Category: Signed DESDecryptorEngine(DESKey key)
          Creates a DESDecryptorEngine object based on a given DES key.
 
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 algorithm used, ie "DES".
 Category: Signed  int getBlockLength()
          Returns the block length of the block cipher in bytes.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BLOCK_LENGTH

public static final int BLOCK_LENGTH
Represents the block length of the cipher in bytes, namely 8 bytes.
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.
Constructor Detail

DESDecryptorEngine

public DESDecryptorEngine(DESKey key)
                   throws CryptoTokenException,
                          CryptoUnsupportedOperationException
Creates a DESDecryptorEngine object based on a given DES key.

Parameters:
key - A DES key containing the key material that will be used for decryption.

Throws:
CryptoTokenException - Thrown when a problem occurs with a 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.
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 algorithm used, ie "DES".

This method will always return the string "DES".

Returns:
A string representing the name of the algorithm.
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.



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.