# Destroyable

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Summary:[Methods](https://developer.android.com/reference/javax/security/auth/Destroyable#pubmethods)  

# Destroyable

`
public


interface
Destroyable
`  
`


`

|---------------------------------|
| javax.security.auth.Destroyable |

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known indirect subclasses [DHPrivateKey](https://developer.android.com/reference/javax/crypto/interfaces/DHPrivateKey),[DSAPrivateKey](https://developer.android.com/reference/java/security/interfaces/DSAPrivateKey),[ECPrivateKey](https://developer.android.com/reference/java/security/interfaces/ECPrivateKey),[EdECPrivateKey](https://developer.android.com/reference/java/security/interfaces/EdECPrivateKey),[KeyStore.PasswordProtection](https://developer.android.com/reference/java/security/KeyStore.PasswordProtection),[PBEKey](https://developer.android.com/reference/javax/crypto/interfaces/PBEKey),[PrivateKey](https://developer.android.com/reference/java/security/PrivateKey),[RSAMultiPrimePrivateCrtKey](https://developer.android.com/reference/java/security/interfaces/RSAMultiPrimePrivateCrtKey),[RSAPrivateCrtKey](https://developer.android.com/reference/java/security/interfaces/RSAPrivateCrtKey),[RSAPrivateKey](https://developer.android.com/reference/java/security/interfaces/RSAPrivateKey),[SecretKey](https://developer.android.com/reference/javax/crypto/SecretKey),[SecretKeySpec](https://developer.android.com/reference/javax/crypto/spec/SecretKeySpec),[X500PrivateCredential](https://developer.android.com/reference/javax/security/auth/x500/X500PrivateCredential),[XECPrivateKey](https://developer.android.com/reference/java/security/interfaces/XECPrivateKey) |---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [DHPrivateKey](https://developer.android.com/reference/javax/crypto/interfaces/DHPrivateKey)                              | The interface to a Diffie-Hellman private key.                                                                                                                                                 | | [DSAPrivateKey](https://developer.android.com/reference/java/security/interfaces/DSAPrivateKey)                           | The standard interface to a DSA private key.                                                                                                                                                   | | [ECPrivateKey](https://developer.android.com/reference/java/security/interfaces/ECPrivateKey)                             | The interface to an elliptic curve (EC) private key.                                                                                                                                           | | [EdECPrivateKey](https://developer.android.com/reference/java/security/interfaces/EdECPrivateKey)                         | An interface for an elliptic curve private key as defined by[RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA)](https://tools.ietf.org/html/rfc8032).                                | | [KeyStore.PasswordProtection](https://developer.android.com/reference/java/security/KeyStore.PasswordProtection)          | A password-based implementation of`ProtectionParameter`.                                                                                                                                       | | [PBEKey](https://developer.android.com/reference/javax/crypto/interfaces/PBEKey)                                          | The interface to a PBE key.                                                                                                                                                                    | | [PrivateKey](https://developer.android.com/reference/java/security/PrivateKey)                                            | A private key.                                                                                                                                                                                 | | [RSAMultiPrimePrivateCrtKey](https://developer.android.com/reference/java/security/interfaces/RSAMultiPrimePrivateCrtKey) | The interface to an RSA multi-prime private key, as defined in the[PKCS#1 v2.2](https://tools.ietf.org/rfc/rfc8017.txt)standard, using the*Chinese Remainder Theorem*(CRT) information values. | | [RSAPrivateCrtKey](https://developer.android.com/reference/java/security/interfaces/RSAPrivateCrtKey)                     | The interface to an RSA private key, as defined in the[PKCS#1 v2.2](https://tools.ietf.org/rfc/rfc8017.txt)standard, using the*Chinese Remainder Theorem*(CRT) information values.             | | [RSAPrivateKey](https://developer.android.com/reference/java/security/interfaces/RSAPrivateKey)                           | The interface to an RSA private key.                                                                                                                                                           | | [SecretKey](https://developer.android.com/reference/javax/crypto/SecretKey)                                               | A secret (symmetric) key.                                                                                                                                                                      | | [SecretKeySpec](https://developer.android.com/reference/javax/crypto/spec/SecretKeySpec)                                  | This class specifies a secret key in a provider-independent fashion.                                                                                                                           | | [X500PrivateCredential](https://developer.android.com/reference/javax/security/auth/x500/X500PrivateCredential)           | This class represents an`X500PrivateCredential`.                                                                                                                                               | | [XECPrivateKey](https://developer.android.com/reference/java/security/interfaces/XECPrivateKey)                           | An interface for an elliptic curve private key as defined by RFC 7748.                                                                                                                         | |

<br />

*** ** * ** ***

Objects such as credentials may optionally implement this interface to provide the capability to destroy its contents.  
**See also:**

- [Subject](https://developer.android.com/reference/javax/security/auth/Subject)

## Summary

|                                                                              ### Public methods                                                                               ||
|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` default void`    | ` `[destroy](https://developer.android.com/reference/javax/security/auth/Destroyable#destroy())`() ` Destroy this`Object`.                                |
| ` default boolean` | ` `[isDestroyed](https://developer.android.com/reference/javax/security/auth/Destroyable#isDestroyed())`() ` Determine if this`Object`has been destroyed. |

## Public methods

### destroy

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

```
public void destroy ()
```

Destroy this`Object`.

Sensitive information associated with this`Object`is destroyed or cleared. Subsequent calls to certain methods on this`Object`will result in an`IllegalStateException`being thrown.

The default implementation throws`DestroyFailedException`.

Android note: Up to and including API 25 this method did not have a default implementation. Implementations of this interface must provide a concrete implementation of this method in order to work on older versions of Android.

<br />

|                                                                                    Throws                                                                                     ||
|--------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------|
| [DestroyFailedException](https://developer.android.com/reference/javax/security/auth/DestroyFailedException) | if the destroy operation fails. <br />                          |
| [SecurityException](https://developer.android.com/reference/java/lang/SecurityException)                     | if the caller does not have permission to destroy this`Object`. |

### isDestroyed

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

```
public boolean isDestroyed ()
```

Determine if this`Object`has been destroyed.

The default implementation returns false.

Android note: Up to and including API 25 this method did not have a default implementation. Implementations of this interface must provide a concrete implementation of this method in order to work on older versions of Android.

<br />

|                                  Returns                                   ||
|-----------|-----------------------------------------------------------------|
| `boolean` | true if this`Object`has been destroyed, false otherwise. <br /> |