org.bouncycastle.crypto.engines

Class ElGamalEngine

public class ElGamalEngine extends Object implements AsymmetricBlockCipher

this does your basic ElGamal algorithm.
Method Summary
intgetInputBlockSize()
Return the maximum size for an input block to this engine.
intgetOutputBlockSize()
Return the maximum size for an output block to this engine.
voidinit(boolean forEncryption, CipherParameters param)
initialise the ElGamal engine.
byte[]processBlock(byte[] in, int inOff, int inLen)
Process a single block using the basic ElGamal algorithm.

Method Detail

getInputBlockSize

public int getInputBlockSize()
Return the maximum size for an input block to this engine. For ElGamal this is always one byte less than the size of P on encryption, and twice the length as the size of P on decryption.

Returns: maximum size for an input block.

getOutputBlockSize

public int getOutputBlockSize()
Return the maximum size for an output block to this engine. For ElGamal this is always one byte less than the size of P on decryption, and twice the length as the size of P on encryption.

Returns: maximum size for an output block.

init

public void init(boolean forEncryption, CipherParameters param)
initialise the ElGamal engine.

Parameters: forEncryption true if we are encrypting, false otherwise. param the necessary ElGamal key parameters.

processBlock

public byte[] processBlock(byte[] in, int inOff, int inLen)
Process a single block using the basic ElGamal algorithm.

Parameters: in the input array. inOff the offset into the input buffer where the data starts. inLen the length of the data to be processed.

Returns: the result of the ElGamal process.

Throws: DataLengthException the input block is too large.