Module java.base
Package javax.security.auth

## Interface Destroyable

All Known Subinterfaces:
  `DHPrivateKey`, `DSAPrivateKey`, `ECPrivateKey`, `PBEKey`, `PrivateKey`, `RSAMultiPrimePrivateCrtKey`, `RSAPrivateCrtKey`, `RSAPrivateKey`, `SecretKey`, `XECPrivateKey`

All Known Implementing Classes:
  `EncryptionKey`, `KerberosCredMessage`, `KerberosKey`, `KerberosTicket`, `KeyStore.PasswordProtection`, `SecretKeySpec`, `X500PrivateCredential`

    public interface Destroyable

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

Since:
  1.4
See Also:
  `Subject`

### Method Summary

All Methods Instance Methods Default Methods
`default void` `destroy()` Destroy this `Object`.
`default boolean` `isDestroyed()` Determine if this `Object` has been destroyed.

### Method Detail

#### destroy

    default void destroy()
                  throws DestroyFailedException

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.

Implementation Requirements:
  The default implementation throws `DestroyFailedException`.
Throws:
  `DestroyFailedException` - if the destroy operation fails.
  `SecurityException` - if the caller does not have permission to destroy this `Object`.

#### isDestroyed

    default boolean isDestroyed()

Determine if this `Object` has been destroyed.

Implementation Requirements:
  The default implementation returns false.
Returns:
  true if this `Object` has been destroyed, false otherwise.