Added in [API level 18](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level
23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/security/KeyStoreParameter.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/security/KeyStoreParameter.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/security/KeyStoreParameter.Builder#inhmethods)

# KeyStoreParameter.Builder

*** ** * ** ***

[Kotlin](https://developer.android.com/reference/kotlin/android/security/KeyStoreParameter.Builder "View this page in Kotlin") \|Java


`
public
static
final

class
KeyStoreParameter.Builder
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.security.KeyStoreParameter.Builder |

<br />

*** ** * ** ***


**This class was deprecated
in API level 23.**   

Use `https://developer.android.com/reference/android/security/keystore/KeyProtection.Builder` instead.

Builder class for `https://developer.android.com/reference/android/security/KeyStoreParameter` objects.


This will build protection parameters for use with the
[Android KeyStore
facility](https://developer.android.com/training/articles/keystore).


This can be used to require that KeyStore entries be stored encrypted.


Example:

```text
 KeyStoreParameter params = new KeyStoreParameter.Builder(mContext)
         .setEncryptionRequired()
         .build();
 
```

<br />

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/security/KeyStoreParameter.Builder#Builder(android.content.Context)(https://developer.android.com/reference/android/content/Context context) ` Creates a new instance of the `Builder` with the given `context`. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/security/KeyStoreParameter` | ` https://developer.android.com/reference/android/security/KeyStoreParameter.Builder#build()() ` Builds the instance of the `KeyStoreParameter`. |
| ` https://developer.android.com/reference/android/security/KeyStoreParameter.Builder` | ` https://developer.android.com/reference/android/security/KeyStoreParameter.Builder#setEncryptionRequired(boolean)(boolean required) ` *This method is deprecated. Data at rest encryption is enabled by default. If extra binding to the lockscreen credential is desired, use `https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec`. This flag will be ignored from Android S.* |

| ### 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 18](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Builder (Context context)
```

Creates a new instance of the `Builder` with the given
`context`. The `context` passed in may be used to pop up
some UI to ask the user to unlock or initialize the Android KeyStore
facility.

<br />

| Parameters ||
|---|---|
| `context` | `Context`: This value cannot be `null`. <br /> |

## Public methods

### build

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

```
public KeyStoreParameter build ()
```

Builds the instance of the `KeyStoreParameter`.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/security/KeyStoreParameter` | built instance of `KeyStoreParameter` This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if a required field is missing |

### setEncryptionRequired

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

```
public KeyStoreParameter.Builder setEncryptionRequired (boolean required)
```


**This method is deprecated.**   

Data at rest encryption is enabled by default. If extra binding to the
lockscreen credential is desired, use
`https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec`.
This flag will be ignored from Android S.

Sets whether this `https://developer.android.com/reference/java/security/KeyStore` entry must be encrypted at rest.
Encryption at rest will protect the entry with the secure lock screen credential (e.g.,
password, PIN, or pattern).

Note that enabling this feature requires that the secure lock screen (e.g., password,
PIN, pattern) is set up, otherwise setting the `KeyStore` entry will fail.
Moreover, this entry will be deleted when the secure lock screen is disabled or reset
(e.g., by the user or a Device Administrator). Finally, this entry cannot be used until
the user unlocks the secure lock screen after boot.

<br />

| Parameters ||
|---|---|
| `required` | `boolean` <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/security/KeyStoreParameter.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/KeyguardManager#isDeviceSecure()`