Module java.base
Package java.security

# Interface PrivateKey

All Superinterfaces:
  `Destroyable`, `Key`, `Serializable`

All Known Subinterfaces:
  `DHPrivateKey`, `DSAPrivateKey`, `ECPrivateKey`, `EdECPrivateKey`, `RSAMultiPrimePrivateCrtKey`, `RSAPrivateCrtKey`, `RSAPrivateKey`, `XECPrivateKey`

public interface PrivateKey extends Key, Destroyable
A private key. The purpose of this interface is to group (and provide type safety for) all private key interfaces.

Note: The specialized private key interfaces extend this interface. See, for example, the `DSAPrivateKey` interface in `java.security.interfaces`.

Implementations should override the default `destroy` and `isDestroyed` methods from the `Destroyable` interface to enable sensitive key information to be destroyed, cleared, or in the case where such information is immutable, unreferenced. Finally, since `PrivateKey` is `Serializable`, implementations should also override `ObjectOutputStream.writeObject(java.lang.Object)` to prevent keys that have been destroyed from being serialized.

Since:
  1.1
See Also:
  - `Key`
  - `PublicKey`
  - `Certificate`
  - `Signature.initVerify(java.security.PublicKey)`
  - `DSAPrivateKey`
  - `RSAPrivateKey`
  - `RSAPrivateCrtKey`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final long`
`serialVersionUID`
Deprecated.
A `serialVersionUID` field in an interface is ineffectual.

## Method Summary

### Methods declared in interface javax.security.auth.Destroyable

`destroy, isDestroyed`

### Methods declared in interface java.security.Key

`getAlgorithm, getEncoded, getFormat`

## Field Details

### serialVersionUID

@Deprecated static final long serialVersionUID
Deprecated.
A `serialVersionUID` field in an interface is ineffectual. Do not use; no replacement.
The class fingerprint that is set to indicate serialization compatibility with a previous version of the class.

See Also:
  - Constant Field Values