cryptix.provider.elgamal

Class BaseElGamalPublicKey

public class BaseElGamalPublicKey extends Object implements ElGamalPublicKey

A class representing an ElGamal public key. This is also a superclass for ElGamal private keys. It is called BaseElGamalPublicKey to distinguish it from the interface ElGamalPublicKey, without having to use fully-qualified names.

References:

  1. Bruce Schneier, "Section 19.6 ElGamal," Applied Cryptography, 2nd Edition, John Wiley & Sons, 1996.

  2. IEEE P1363 draft standard, http://stdsbbs.ieee.org/groups/1363/index.html

Copyright © 1997 Systemics Ltd on behalf of the Cryptix Development Team.
All rights reserved.

$Revision: 1.2 $

Since: Cryptix 2.2.2

Author: David Hopwood

See Also: ElGamalParams java.security.Key java.security.Cipher java.security.Signature

Field Summary
protected BigIntegerg
protected BigIntegerp
protected BigIntegery
Constructor Summary
BaseElGamalPublicKey(BigInteger p, BigInteger g, BigInteger y)
Constructs a BaseElGamalPublicKey with the specified prime p, base g, and public value y = gx mod p.
BaseElGamalPublicKey(ElGamalParams params, BigInteger y)
Constructs a BaseElGamalPublicKey with a prime and base taken from an object implementing java.security.interfaces.ElGamalParams, and the specified public value y = gx mod p.
Method Summary
StringgetAlgorithm()
Returns the name of the algorithm this key is intended for ("ElGamal").
byte[]getEncoded()
Returns an encoding of this key as a byte array.
StringgetFormat()
Returns the encoding format name for this key.
BigIntegergetG()
Returns the base, g.
BigIntegergetP()
Returns the prime, p.
BigIntegergetY()
Returns the value of y = gx mod p (where x is the private value).

Field Detail

g

protected BigInteger g

p

protected BigInteger p

y

protected BigInteger y

Constructor Detail

BaseElGamalPublicKey

public BaseElGamalPublicKey(BigInteger p, BigInteger g, BigInteger y)
Constructs a BaseElGamalPublicKey with the specified prime p, base g, and public value y = gx mod p.

Throws: NullPointerException if p == null || g == null || y == null

BaseElGamalPublicKey

public BaseElGamalPublicKey(ElGamalParams params, BigInteger y)
Constructs a BaseElGamalPublicKey with a prime and base taken from an object implementing java.security.interfaces.ElGamalParams, and the specified public value y = gx mod p.

Throws: NullPointerException if params == null || y == null

Method Detail

getAlgorithm

public String getAlgorithm()
Returns the name of the algorithm this key is intended for ("ElGamal").

getEncoded

public byte[] getEncoded()
Returns an encoding of this key as a byte array. In the current release this always returns null, because key encoding is not yet supported.

getFormat

public String getFormat()
Returns the encoding format name for this key. In the current release this always returns null, because key encoding is not yet supported.

getG

public BigInteger getG()
Returns the base, g.

Returns: the base as a java.math.BigInteger

getP

public BigInteger getP()
Returns the prime, p.

Returns: the prime as a java.math.BigInteger

getY

public BigInteger getY()
Returns the value of y = gx mod p (where x is the private value).

Returns: y as a java.math.BigInteger