# DHParameterSpec

public class **DHParameterSpec** extends [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html)  
implements [AlgorithmParameterSpec](https://developers.google.com/j2objc/javadoc/jre/reference/java/security/spec/AlgorithmParameterSpec.html) This class specifies the set of parameters used with the Diffie-Hellman
algorithm, as specified in PKCS #3: *Diffie-Hellman Key-Agreement Standard*.

A central authority generates parameters and gives them to the two
entities seeking to generate a secret key. The parameters are a prime
`p`, a base `g`, and optionally the length
in bits of the private value, `l`.

It is possible that more than one instance of parameters may be
generated by a given central authority, and that there may be more than
one central authority. Indeed, each individual may be its own central
authority, with different entities having different parameters.

Note that this class does not perform any validation on specified
parameters. Thus, the specified values are returned directly even
if they are null.

##### See Also

- `https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/KeyAgreement.html`

### Public Constructor Summary

|---|---|
|   | [DHParameterSpec](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/DHParameterSpec.html#DHParameterSpec(java.math.BigInteger,%20java.math.BigInteger))(BigInteger p, BigInteger g) Constructs a parameter set for Diffie-Hellman, using a prime modulus `p` and a base generator `g`. |
|   | [DHParameterSpec](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/DHParameterSpec.html#DHParameterSpec(java.math.BigInteger,%20java.math.BigInteger,%20int))(BigInteger p, BigInteger g, int l) Constructs a parameter set for Diffie-Hellman, using a prime modulus `p`, a base generator `g`, and the size in bits, `l`, of the random exponent (private value). |

### Public Method Summary

|---|---|
| BigInteger | [getG](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/DHParameterSpec.html#getG())() Returns the base generator `g`. |
| int | [getL](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/DHParameterSpec.html#getL())() Returns the size in bits, `l`, of the random exponent (private value). |
| BigInteger | [getP](https://developers.google.com/j2objc/javadoc/jre/reference/javax/crypto/spec/DHParameterSpec.html#getP())() Returns the prime modulus `p`. |

### Inherited Method Summary

From class [java.lang.Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html)

|---|---|
| [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) | [clone](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#clone())() Creates and returns a copy of this `Object`. |
| boolean | [equals](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#equals(java.lang.Object))([Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) obj) Compares this instance with the specified object and indicates if they are equal. |
| void | [finalize](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#finalize())() Invoked when the garbage collector has detected that this instance is no longer reachable. |
| final [Class](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Class.html)\<?\> | [getClass](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#getClass())() Returns the unique instance of `https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Class.html` that represents this object's class. |
| int | [hashCode](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#hashCode())() Returns an integer hash code for this object. |
| final void | [notify](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#notify())() Causes a thread which is waiting on this object's monitor (by means of calling one of the `wait()` methods) to be woken up. |
| final void | [notifyAll](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#notifyAll())() Causes all threads which are waiting on this object's monitor (by means of calling one of the `wait()` methods) to be woken up. |
| [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [toString](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#toString())() Returns a string containing a concise, human-readable description of this object. |
| final void | [wait](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#wait(long,%20int))(long timeout, int nanos) Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object or until the specified timeout expires. |
| final void | [wait](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#wait(long))(long timeout) Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object or until the specified timeout expires. |
| final void | [wait](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#wait())() Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object. |

## Public Constructors

#### public
**DHParameterSpec**
(BigInteger p, BigInteger g)

Constructs a parameter set for Diffie-Hellman, using a prime modulus
`p` and a base generator `g`.

##### Parameters

| p | the prime modulus |
| g | the base generator |
|---|---|

#### public
**DHParameterSpec**
(BigInteger p, BigInteger g, int l)

Constructs a parameter set for Diffie-Hellman, using a prime modulus
`p`, a base generator `g`,
and the size in bits, `l`, of the random exponent
(private value).

##### Parameters

| p | the prime modulus |
| g | the base generator |
| l | the size in bits of the random exponent (private value) |
|---|---|

## Public Methods

#### public BigInteger
**getG**
()

Returns the base generator `g`.

##### Returns

- the base generator `g`

#### public int
**getL**
()

Returns the size in bits, `l`, of the random exponent
(private value).

##### Returns

- the size in bits, `l`, of the random exponent (private value), or 0 if this size has not been set

#### public BigInteger
**getP**
()

Returns the prime modulus `p`.

##### Returns

- the prime modulus `p`