cryptix.provider.elgamal
public class RawElGamalCipher extends Cipher implements AsymmetricCipher, Cloneable
References:
Copyright © 1997
Systemics Ltd on behalf of the
Cryptix Development Team.
All rights reserved.
$Revision: 1.3 $
Since: Cryptix 2.2.2
Constructor Summary | |
---|---|
RawElGamalCipher()
Constructor for a RawElGamalCipher. |
Method Summary | |
---|---|
protected int | engineCiphertextBlockSize()
SPI: Return the ciphertext block size, in bytes. |
protected Object | engineGetParameter(String param) SPI: Return an algorithm-specific parameter.
|
protected void | engineInitDecrypt(Key key)
SPI: Initializes the cipher for decryption, using the
given private key. |
protected void | engineInitEncrypt(Key key)
SPI: Initializes the cipher for encryption, using the
given public key. |
protected int | enginePlaintextBlockSize()
SPI: Return the plaintext block size, in bytes. |
protected void | engineSetParameter(String param, Object value)
SPI: Set an algorithm-specific parameter.
|
protected int | engineUpdate(byte[] in, int inOffset, int inLen, byte[] out, int outOffset)
SPI: DOCUMENT ME |
static void | main(String[] args)
Entry point for very basic self_test . |
static void | self_test(PrintWriter out) |
If the key has not been set, this method throws CryptixException (a subclass of ProviderException).
Returns: the ciphertext block size
ElGamal has one algorithm-specific parameter called "random", as described above. It is guaranteed to be a subclass of java.util.Random. Calling this method with a param string other than "random" will return null.
Parameters: param the string name of the parameter.
Returns: the object that represents the parameter value, or null if there is none.
Parameters: key the private key
Throws: InvalidKeyException if !(key instanceof java.security.interfaces.ElGamalPrivateKey), or the key is otherwise invalid
Parameters: key the public key
Throws: InvalidKeyException if !(key instanceof java.security.interfaces.ElGamalPublicKey), or the key is otherwise invalid
If the key has not been set, this method throws CryptixException (a subclass of ProviderException).
Returns: the plaintext block size
ElGamal has one algorithm-specific parameter called "random", of type
java.util.Random, which specifies the source of random bits used to
generate the k values needed for encryption. If this parameter
is not set when initKey
is called, the result of
new SecureRandom()
will be used.
You can set the "random" parameter using the following code:
try { elgamal.setParameter("random", existingSecureRandom); } catch (InvalidParameterException e) { /* ignore */ } elgamal.initEncrypt(publicKey);
This is not useful if the cipher will only be used for decryption.
Parameters: param the string identifier of the parameter. value the parameter value.
Throws: InvalidParameterException if (!(param.equals("random") && value instanceof java.util.Random))
self_test
.