Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/javax/crypto/spec/DHParameterSpec#pubctors) \| [Methods](https://developer.android.com/reference/javax/crypto/spec/DHParameterSpec#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/javax/crypto/spec/DHParameterSpec#inhmethods)

# DHParameterSpec

` public class DHParameterSpec `   
` extends https://developer.android.com/reference/java/lang/Object ` ` implements https://developer.android.com/reference/java/security/spec/AlgorithmParameterSpec `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | javax.crypto.spec.DHParameterSpec |

<br />

*** ** * ** ***

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://developer.android.com/reference/javax/crypto/KeyAgreement`

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/javax/crypto/spec/DHParameterSpec#DHParameterSpec(java.math.BigInteger,%20java.math.BigInteger)(https://developer.android.com/reference/java/math/BigInteger p, https://developer.android.com/reference/java/math/BigInteger g) ` Constructs a parameter set for Diffie-Hellman, using a prime modulus `p` and a base generator `g`. |
| ` https://developer.android.com/reference/javax/crypto/spec/DHParameterSpec#DHParameterSpec(java.math.BigInteger,%20java.math.BigInteger,%20int)(https://developer.android.com/reference/java/math/BigInteger p, https://developer.android.com/reference/java/math/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 methods ||
|---|---|
| ` https://developer.android.com/reference/java/math/BigInteger` | ` https://developer.android.com/reference/javax/crypto/spec/DHParameterSpec#getG()() ` Returns the base generator `g`. |
| ` int` | ` https://developer.android.com/reference/javax/crypto/spec/DHParameterSpec#getL()() ` Returns the size in bits, `l`, of the random exponent (private value). |
| ` https://developer.android.com/reference/java/math/BigInteger` | ` https://developer.android.com/reference/javax/crypto/spec/DHParameterSpec#getP()() ` Returns the prime modulus `p`. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Public constructors

### DHParameterSpec

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public DHParameterSpec (BigInteger p, 
                BigInteger g)
```

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

<br />

| Parameters ||
|---|---|
| `p` | `BigInteger`: the prime modulus <br /> |
| `g` | `BigInteger`: the base generator <br /> |

### DHParameterSpec

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
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).

<br />

| Parameters ||
|---|---|
| `p` | `BigInteger`: the prime modulus <br /> |
| `g` | `BigInteger`: the base generator <br /> |
| `l` | `int`: the size in bits of the random exponent (private value) <br /> |

## Public methods

### getG

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public BigInteger getG ()
```

Returns the base generator `g`.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/math/BigInteger` | the base generator `g` <br /> |

### getL

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getL ()
```

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

<br />

| Returns ||
|---|---|
| `int` | the size in bits, `l`, of the random exponent (private value), or 0 if this size has not been set <br /> |

### getP

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public BigInteger getP ()
```

Returns the prime modulus `p`.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/math/BigInteger` | the prime modulus `p` <br /> |