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: [Nested Classes](https://developer.android.com/reference/android/security/KeyStoreParameter#nestedclasses) \| [Methods](https://developer.android.com/reference/android/security/KeyStoreParameter#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/security/KeyStoreParameter#inhmethods)

# KeyStoreParameter

*** ** * ** ***


`
public

final

class
KeyStoreParameter
`


`

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


`

`


implements

https://developer.android.com/reference/java/security/KeyStore.ProtectionParameter


`

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

<br />

*** ** * ** ***


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

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

This provides the optional parameters that can be specified for
`KeyStore` entries that work with
[Android KeyStore
facility](https://developer.android.com/training/articles/keystore). The Android KeyStore facility is accessed through a
`https://developer.android.com/reference/java/security/KeyStore` API using the `AndroidKeyStore`
provider. The `context` passed in may be used to pop up some UI to ask
the user to unlock or initialize the Android KeyStore facility.


Any entries placed in the `KeyStore` may be retrieved later. Note that
there is only one logical instance of the `KeyStore` per application
UID so apps using the `sharedUid` facility will also share a
`KeyStore`.


Keys may be generated using the `https://developer.android.com/reference/java/security/KeyPairGenerator` facility with a
`https://developer.android.com/reference/android/security/KeyPairGeneratorSpec` to specify the entry's `alias`. A
self-signed X.509 certificate will be attached to generated entries, but that
may be replaced at a later time by a certificate signed by a real Certificate
Authority.

## Summary

| ### Nested classes ||
|---|---|
| ` class` | `https://developer.android.com/reference/android/security/KeyStoreParameter.Builder` *This class was deprecated in API level 23. Use `https://developer.android.com/reference/android/security/keystore/KeyProtection.Builder` instead.* |

| ### Public methods ||
|---|---|
| ` boolean` | ` https://developer.android.com/reference/android/security/KeyStoreParameter#isEncryptionRequired()() ` *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 methods

### isEncryptionRequired

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

```
public boolean isEncryptionRequired ()
```


**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.

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

Note that encrypting the key at rest requires that the secure lock screen (e.g., password,
PIN, pattern) is set up, otherwise key generation will fail. Moreover, this key will be
deleted when the secure lock screen is disabled or reset (e.g., by the user or a Device
Administrator). Finally, this key cannot be used until the user unlocks the secure lock
screen after boot.

<br />

| Returns ||
|---|---|
| `boolean` | <br /> |

**See also:**

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