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

# KeyPermanentlyInvalidatedException

*** ** * ** ***


`
public


class
KeyPermanentlyInvalidatedException
`


`


`

`


`

`


`

`


`

`


`

`

extends https://developer.android.com/reference/java/security/InvalidKeyException


`

`


`

|---|---|---|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) |||||||
| ↳ | [java.lang.Throwable](https://developer.android.com/reference/java/lang/Throwable) ||||||
|   | ↳ | [java.lang.Exception](https://developer.android.com/reference/java/lang/Exception) |||||
|   |   | ↳ | [java.security.GeneralSecurityException](https://developer.android.com/reference/java/security/GeneralSecurityException) ||||
|   |   |   | ↳ | [java.security.KeyException](https://developer.android.com/reference/java/security/KeyException) |||
|   |   |   |   | ↳ | [java.security.InvalidKeyException](https://developer.android.com/reference/java/security/InvalidKeyException) ||
|   |   |   |   |   | ↳ | android.security.keystore.KeyPermanentlyInvalidatedException |

<br />

*** ** * ** ***

Indicates that the key can no longer be used because it has been permanently invalidated.

This only occurs for keys which are authorized to be used only if the user has been
authenticated. Such keys are permanently and irreversibly invalidated once the secure lock screen
is disabled (i.e., reconfigured to None, Swipe or other mode which does not authenticate the
user) or when the secure lock screen is forcibly reset (e.g., by Device Admin). Additionally,
keys configured to require user authentication to take place for every of the keys, are also
permanently invalidated once a new fingerprint is enrolled or once no more fingerprints are
enrolled.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/security/keystore/KeyPermanentlyInvalidatedException#KeyPermanentlyInvalidatedException()() ` Constructs a new `KeyPermanentlyInvalidatedException` without detail message and cause. |
| ` https://developer.android.com/reference/android/security/keystore/KeyPermanentlyInvalidatedException#KeyPermanentlyInvalidatedException(java.lang.String)(https://developer.android.com/reference/java/lang/String message) ` Constructs a new `KeyPermanentlyInvalidatedException` with the provided detail message and no cause. |
| ` https://developer.android.com/reference/android/security/keystore/KeyPermanentlyInvalidatedException#KeyPermanentlyInvalidatedException(java.lang.String,%20java.lang.Throwable)(https://developer.android.com/reference/java/lang/String message, https://developer.android.com/reference/java/lang/Throwable cause) ` Constructs a new `KeyPermanentlyInvalidatedException` with the provided detail message and cause. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Throwable ` |---|---| | ` final void` | ` https://developer.android.com/reference/java/lang/Throwable#addSuppressed(java.lang.Throwable)(https://developer.android.com/reference/java/lang/Throwable exception) ` Appends the specified exception to the exceptions that were suppressed in order to deliver this exception. | | ` https://developer.android.com/reference/java/lang/Throwable` | ` https://developer.android.com/reference/java/lang/Throwable#fillInStackTrace()() ` Fills in the execution stack trace. | | ` https://developer.android.com/reference/java/lang/Throwable` | ` https://developer.android.com/reference/java/lang/Throwable#getCause()() ` Returns the cause of this throwable or `null` if the cause is nonexistent or unknown. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Throwable#getLocalizedMessage()() ` Creates a localized description of this throwable. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Throwable#getMessage()() ` Returns the detail message string of this throwable. | | ` https://developer.android.com/reference/java/lang/StackTraceElement` | ` https://developer.android.com/reference/java/lang/Throwable#getStackTrace()() ` Provides programmatic access to the stack trace information printed by `https://developer.android.com/reference/java/lang/Throwable#printStackTrace()`. | | ` final https://developer.android.com/reference/java/lang/Throwable` | ` https://developer.android.com/reference/java/lang/Throwable#getSuppressed()() ` Returns an array containing all of the exceptions that were suppressed, typically by the `try`-with-resources statement, in order to deliver this exception. | | ` https://developer.android.com/reference/java/lang/Throwable` | ` https://developer.android.com/reference/java/lang/Throwable#initCause(java.lang.Throwable)(https://developer.android.com/reference/java/lang/Throwable cause) ` Initializes the *cause* of this throwable to the specified value. | | ` void` | ` https://developer.android.com/reference/java/lang/Throwable#printStackTrace()() ` Prints this throwable and its backtrace to the standard error stream. | | ` void` | ` https://developer.android.com/reference/java/lang/Throwable#printStackTrace(java.io.PrintWriter)(https://developer.android.com/reference/java/io/PrintWriter s) ` Prints this throwable and its backtrace to the specified print writer. | | ` void` | ` https://developer.android.com/reference/java/lang/Throwable#printStackTrace(java.io.PrintStream)(https://developer.android.com/reference/java/io/PrintStream s) ` Prints this throwable and its backtrace to the specified print stream. | | ` void` | ` https://developer.android.com/reference/java/lang/Throwable#setStackTrace(java.lang.StackTraceElement[])(https://developer.android.com/reference/java/lang/StackTraceElement stackTrace) ` Sets the stack trace elements that will be returned by `https://developer.android.com/reference/java/lang/Throwable#getStackTrace()` and printed by `https://developer.android.com/reference/java/lang/Throwable#printStackTrace()` and related methods. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Throwable#toString()() ` Returns a short description of this throwable. | ||
| 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

### KeyPermanentlyInvalidatedException

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

```
public KeyPermanentlyInvalidatedException ()
```

Constructs a new `KeyPermanentlyInvalidatedException` without detail message and cause.

<br />

### KeyPermanentlyInvalidatedException

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

```
public KeyPermanentlyInvalidatedException (String message)
```

Constructs a new `KeyPermanentlyInvalidatedException` with the provided detail message
and no cause.

<br />

| Parameters ||
|---|---|
| `message` | `String` <br /> |

### KeyPermanentlyInvalidatedException

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

```
public KeyPermanentlyInvalidatedException (String message, 
                Throwable cause)
```

Constructs a new `KeyPermanentlyInvalidatedException` with the provided detail message
and cause.

<br />

| Parameters ||
|---|---|
| `message` | `String` <br /> |
| `cause` | `Throwable` <br /> |