net.rim.device.api.crypto
Class ElGamalDecryptorEngine

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

public final class ElGamalDecryptorEngine
extends Object
implements PrivateKeyDecryptorEngine

In order to decrypt with the ElGamal decryptor engine, two keys are required.

The version of ElGamal that we implemented can be found in "Applied Cryptography", by Bruce Schneier, in section 19.6 ( 1996 ).

The decrypting private key and a second ephemeral key must be recieved along with ciphertext. BOTH are necessary to decrypt the 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

Constructor Summary
Category: Signed ElGamalDecryptorEngine(DHPrivateKey localPrivateKey, DHPublicKey remoteEphemeralKey)
          Creates an ElGamalDecryptorEngine object.
 
Method Summary
Category: Signed  void decrypt(byte[] ciphertext, int ciphertextOffset, byte[] plaintext, int plaintextOffset)
          Decrypts the plaintext using the ElGamal algorithm.
Category: Signed  String getAlgorithm()
          Returns the name of the algorithm used to encrypt the data.
Category: Signed  int getBlockLength()
          Returns the length of a block.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 



Constructor Detail

ElGamalDecryptorEngine

public ElGamalDecryptorEngine(DHPrivateKey localPrivateKey,
                              DHPublicKey remoteEphemeralKey)
                       throws CryptoTokenException,
                              CryptoUnsupportedOperationException
Creates an ElGamalDecryptorEngine object.

Parameters:
localPrivateKey - The private key that the encrypted message with.
remoteEphemeralKey - The ephemeral key created by the encryptor engine.
Throws:
CryptoTokenException - Thrown if an error occurs with a 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 3.6.0


Method Detail

decrypt

public void decrypt(byte[] ciphertext,
                    int ciphertextOffset,
                    byte[] plaintext,
                    int plaintextOffset)
             throws CryptoTokenException
Decrypts the plaintext using the ElGamal algorithm.

Specified by:
decrypt in interface BlockDecryptorEngine
Parameters:
ciphertext - The byte array containing the ciphertext to decode.
ciphertextOffset - The offset, or start position, of the ciphertext within the array.
plaintext - The array to store the plaintext.
plaintextOffset - The offset, or start position, of the plaintext withiin the array.
Throws:
CryptoTokenException - Thrown if an error occurs with a 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

getAlgorithm

public String getAlgorithm()
Returns the name of the algorithm used to encrypt the data.

This method will always return the String "ElGamal".

Specified by:
getAlgorithm in interface BlockDecryptorEngine
Returns:
The name of the algorithm used, ie "ElGamal".
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()
Returns the length of a block.

A block represents the amount of data that can encrypted or decrypted at one time.

Specified by:
getBlockLength in interface BlockDecryptorEngine
Returns:
The required length of each block, in bytes, to be passed through the decryptor.
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