public final class DiffieHellman
extends java.lang.Object
Once a DiffieHellman object has been instantiated, use the myValue() method to obtain the value to send to the peer (g^x). The method getKey(java.math.BigInteger) is used to compute the shared Diffie-Hellman key value.
| Constructor and Description | 
|---|
DiffieHellman()
Creates a new, uninitialized  
DiffieHellman instance. | 
DiffieHellman(java.math.BigInteger p, java.math.BigInteger g, RandomBitsSource rbs)
Constructs a  
DiffieHellman object with the specified values for the prime (p) and generator (g), and creates a random value for x. | 
DiffieHellman(RandomBitsSource rbs, int len)
Constructs a  
DiffieHellman object, creating a random prime (p) of the given bit length, and a random value x; the generator (g) is set to 4. | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
erase()
Erases the values for this key agreement. 
 | 
void | 
finalize()
Finalizes this instance by erasing all sensitive data. 
 | 
protected void | 
generatePandG(RandomBitsSource rbs, int len)
Generates a random prime (p) of the given bit length for this  
DiffieHellman and sets the generator (g) to 4. | 
protected void | 
generateValues(RandomBitsSource rbs)
Generates a large random integer (x) for this  
DiffieHellman, and uses its prime (p) and generator (g) to compute the value g^x. | 
java.math.BigInteger | 
getGen()
Returns the generator (g). 
 | 
static DiffieHellman | 
getInstance()
Returns an uninitialized  
DiffieHellman instance. | 
static DiffieHellman | 
getInstance(java.math.BigInteger p, java.math.BigInteger g, RandomBitsSource rbs)
Returns an initialized  
DiffieHellman instance. | 
static DiffieHellman | 
getInstance(RandomBitsSource rbs, int len)
Returns an initialized  
DiffieHellman instance. | 
java.math.BigInteger | 
getKey(java.math.BigInteger gy)
Computes the shared DH key value g^(xy). 
 | 
java.math.BigInteger | 
getPrime()
Returns the prime (p). 
 | 
void | 
initialize(java.math.BigInteger p, java.math.BigInteger g, RandomBitsSource rbs)
Sets the prime (p) and generator (g) for this  
DiffieHellman, and invokes generateValues(oracle.security.crypto.core.RandomBitsSource). | 
void | 
initialize(RandomBitsSource rbs, int len)
Generates the prime (p), generator (g) and values (x and g^x) by invoking  
generatePandG(oracle.security.crypto.core.RandomBitsSource, int) and generateValues(oracle.security.crypto.core.RandomBitsSource). | 
java.math.BigInteger | 
myValue()
Returns the generated value g^x. 
 | 
java.lang.String | 
toString()
Returns a string representation of this object. 
 | 
public DiffieHellman()
DiffieHellman instance.public DiffieHellman(RandomBitsSource rbs, int len) throws java.lang.IllegalArgumentException
DiffieHellman object, creating a random prime (p) of the given bit length, and a random value x; the generator (g) is set to 4.java.lang.IllegalArgumentException
public DiffieHellman(java.math.BigInteger p,
             java.math.BigInteger g,
             RandomBitsSource rbs)
DiffieHellman object with the specified values for the prime (p) and generator (g), and creates a random value for x.public static DiffieHellman getInstance() throws AlgorithmIdentifierException
DiffieHellman instance.AlgorithmIdentifierExceptionpublic static DiffieHellman getInstance(RandomBitsSource rbs, int len) throws java.lang.IllegalArgumentException, AlgorithmIdentifierException
DiffieHellman instance.rbs - The RandomBitsSource to use in this DiffieHellman object.len - The bit length of the prime.java.lang.IllegalArgumentExceptionAlgorithmIdentifierExceptionpublic static DiffieHellman getInstance(java.math.BigInteger p, java.math.BigInteger g, RandomBitsSource rbs) throws AlgorithmIdentifierException
DiffieHellman instance.p - The BigInteger prime p.g - The BigInteger generator g.rbs - The RandomBitsSource to use in this DiffieHellman object.AlgorithmIdentifierExceptionpublic void initialize(RandomBitsSource rbs, int len)
generatePandG(oracle.security.crypto.core.RandomBitsSource, int) and generateValues(oracle.security.crypto.core.RandomBitsSource).
public void initialize(java.math.BigInteger p,
              java.math.BigInteger g,
              RandomBitsSource rbs)
DiffieHellman, and invokes generateValues(oracle.security.crypto.core.RandomBitsSource).protected void generatePandG(RandomBitsSource rbs, int len)
DiffieHellman and sets the generator (g) to 4.protected void generateValues(RandomBitsSource rbs)
DiffieHellman, and uses its prime (p) and generator (g) to compute the value g^x.public java.math.BigInteger getPrime()
public java.math.BigInteger getGen()
public java.math.BigInteger myValue()
public java.math.BigInteger getKey(java.math.BigInteger gy)
gy - The generated value received from the peer.public java.lang.String toString()
toString in class java.lang.Objectpublic void erase()
public void finalize()
finalize in class java.lang.Object