org.bouncycastle.crypto.engines
Class ElGamalEngine
java.lang.Object
|
+--org.bouncycastle.crypto.engines.ElGamalEngine
- All Implemented Interfaces:
- AsymmetricBlockCipher
- public class ElGamalEngine
- extends java.lang.Object
- implements AsymmetricBlockCipher
this does your basic ElGamal algorithm.
|
Method Summary |
int |
getInputBlockSize()
Return the maximum size for an input block to this engine. |
int |
getOutputBlockSize()
Return the maximum size for an output block to this engine. |
void |
init(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. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ElGamalEngine
public ElGamalEngine()
init
public void init(boolean forEncryption,
CipherParameters param)
- initialise the ElGamal engine.
- Specified by:
init in interface AsymmetricBlockCipher
- Parameters:
forEncryption - true if we are encrypting, false otherwise.param - the necessary ElGamal key parameters.
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.
- Specified by:
getInputBlockSize in interface AsymmetricBlockCipher
- 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.
- Specified by:
getOutputBlockSize in interface AsymmetricBlockCipher
- Returns:
- maximum size for an output block.
processBlock
public byte[] processBlock(byte[] in,
int inOff,
int inLen)
- Process a single block using the basic ElGamal algorithm.
- Specified by:
processBlock in interface AsymmetricBlockCipher
- 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.