Destroyable (Java SE 25 & JDK 25)
Description: declaration: module: java.base, package: javax.security.auth, interface: Destroyable
Keywords: javax.security.auth.Destroyable interface

# Interface Destroyable

All Known Subinterfaces:
  `DHPrivateKey, DSAPrivateKey, ECPrivateKey, EdECPrivateKey, 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

  Modifier and Type
  Method
  Description
  `default void`
  `destroy()`
  Destroy this `Object`.
  `default boolean`
  `isDestroyed()`
  Determine if this `Object` has been destroyed.

- ## Method Details

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

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