public interface PrivateKey
implements Destroyable, Key

Known indirect subclasses



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.

Summary

Constants

long serialVersionUID

This constant was deprecated in API level 34. A serialVersionUID field in an interface is ineffectual. Do not use; no replacement.

Inherited constants

From interface java.security.Key

long serialVersionUID

This constant was deprecated in API level 34. A serialVersionUID field in an interface is ineffectual. Do not use; no replacement.

Inherited methods

From interface javax.security.auth.Destroyable

default void destroy()

Destroy this Object.

default boolean isDestroyed()

Determine if this Object has been destroyed.

From interface java.security.Key

abstract String getAlgorithm()

Returns the standard algorithm name for this key.

abstract byte[] getEncoded()

Returns the key in its primary encoding format, or null if this key does not support encoding.

abstract String getFormat()

Returns the name of the primary encoding format of this key, or null if this key does not support encoding.

Constants

serialVersionUID

public static final long serialVersionUID

This constant was deprecated in API level 34.
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.

Constant Value: 6034044314589513430 (0x53bd3b559a12c6d6)

Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Last updated 2026-02-26 UTC.