Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder#inhmethods)

# ChildSaProposal.Builder

*** ** * ** ***

` public static final class ChildSaProposal.Builder `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.net.ipsec.ike.ChildSaProposal.Builder |

<br />

*** ** * ** ***

This class is used to incrementally construct a ChildSaProposal. ChildSaProposal instances are immutable once built.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder#Builder()() ` |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder` | ` https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder#addDhGroup(int)(int dhGroup) ` Adds a Diffie-Hellman Group to the SA proposal being built. |
| ` https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder` | ` https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder#addEncryptionAlgorithm(int,%20int)(int algorithm, int keyLength) ` Adds an encryption algorithm with a specific key length to the SA proposal being built. |
| ` https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder` | ` https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder#addIntegrityAlgorithm(int)(int algorithm) ` Adds an integrity algorithm to the SA proposal being built. |
| ` https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal` | ` https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder#build()() ` Validates and builds the ChildSaProposal. |

### 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

### Builder

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

```
public Builder ()
```

<br />

<br />

## Public methods

### addDhGroup

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

```
public ChildSaProposal.Builder addDhGroup (int dhGroup)
```

Adds a Diffie-Hellman Group to the SA proposal being built.

If this ChildSaProposal will be used for the first Child SA created as part of IKE AUTH exchange, DH groups configured here will only apply when the Child SA is later rekeyed. In this case, configuring different DH groups for IKE and Child SA may cause Rekey Child to fail.

If no DH groups are supplied here, but the server requests a DH exchange during rekey, the IKE SA's negotiated DH group will still be accepted.

<br />

| Parameters ||
|---|---|
| `dhGroup` | `int`: to add to ChildSaProposal. Value is one of the following: - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#DH_GROUP_NONE` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#DH_GROUP_1024_BIT_MODP` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#DH_GROUP_1536_BIT_MODP` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#DH_GROUP_2048_BIT_MODP` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#DH_GROUP_3072_BIT_MODP` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#DH_GROUP_4096_BIT_MODP` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#DH_GROUP_CURVE_25519` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder` | Builder of ChildSaProposal. This value cannot be `null`. <br /> |

### addEncryptionAlgorithm

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

```
public ChildSaProposal.Builder addEncryptionAlgorithm (int algorithm, 
                int keyLength)
```

Adds an encryption algorithm with a specific key length to the SA proposal being built.

<br />

| Parameters ||
|---|---|
| `algorithm` | `int`: encryption algorithm to add to ChildSaProposal. Value is one of the following: - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#ENCRYPTION_ALGORITHM_3DES` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#ENCRYPTION_ALGORITHM_AES_CBC` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#ENCRYPTION_ALGORITHM_AES_CTR` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#ENCRYPTION_ALGORITHM_AES_GCM_8` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#ENCRYPTION_ALGORITHM_AES_GCM_12` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#ENCRYPTION_ALGORITHM_AES_GCM_16` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#ENCRYPTION_ALGORITHM_CHACHA20_POLY1305` |
| `keyLength` | `int`: key length of algorithm. For algorithms that have fixed key length (e.g. 3DES) only `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#KEY_LEN_UNUSED` is allowed. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder` | Builder of ChildSaProposal. This value cannot be `null`. <br /> |

### addIntegrityAlgorithm

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

```
public ChildSaProposal.Builder addIntegrityAlgorithm (int algorithm)
```

Adds an integrity algorithm to the SA proposal being built.

<br />

| Parameters ||
|---|---|
| `algorithm` | `int`: integrity algorithm to add to ChildSaProposal. Value is one of the following: - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#INTEGRITY_ALGORITHM_NONE` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#INTEGRITY_ALGORITHM_HMAC_SHA1_96` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#INTEGRITY_ALGORITHM_AES_XCBC_96` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#INTEGRITY_ALGORITHM_AES_CMAC_96` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#INTEGRITY_ALGORITHM_HMAC_SHA2_256_128` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#INTEGRITY_ALGORITHM_HMAC_SHA2_384_192` - `https://developer.android.com/reference/android/net/ipsec/ike/SaProposal#INTEGRITY_ALGORITHM_HMAC_SHA2_512_256` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal.Builder` | Builder of ChildSaProposal. This value cannot be `null`. <br /> |

### build

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

```
public ChildSaProposal build ()
```

Validates and builds the ChildSaProposal.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/net/ipsec/ike/ChildSaProposal` | the validated ChildSaProposal. This value cannot be `null`. <br /> |