PrivateKey
Stay organized with collections
Save and categorize content based on your preferences.
Known Indirect Subclasses
DHPrivateKey |
The interface to a Diffie-Hellman private key. |
DSAPrivateKey |
The standard interface to a DSA private key. |
ECPrivateKey |
The interface to an elliptic curve (EC) private key. |
RSAMultiPrimePrivateCrtKey |
The interface to an RSA multi-prime private key, as defined in the
PKCS#1 v2.1, using the Chinese Remainder Theorem
(CRT) information values. |
RSAPrivateCrtKey |
The interface to an RSA private key, as defined in the PKCS#1 standard,
using the Chinese Remainder Theorem (CRT) information values. |
RSAPrivateKey |
The interface to an RSA private key. |
|
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.
Constant Summary
long |
serialVersionUID |
The class fingerprint that is set to indicate serialization
compatibility with a previous version of the class. |
Inherited Constant Summary
From interface
java.security.Key
long |
serialVersionUID |
The class fingerprint that is set to indicate
serialization compatibility with a previous
version of the class. |
Inherited Method Summary
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
public
static
final
long
serialVersionUID
The class fingerprint that is set to indicate serialization
compatibility with a previous version of the class.
Constant Value:
6034044314589513430
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-07-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-07-10 UTC."],[[["\u003cp\u003e\u003ccode\u003ePrivateKey\u003c/code\u003e is an interface that serves as a common type for all private key interfaces in Java security.\u003c/p\u003e\n"],["\u003cp\u003eIt extends the \u003ccode\u003eKey\u003c/code\u003e and \u003ccode\u003eDestroyable\u003c/code\u003e interfaces, enabling key management and destruction for sensitive information.\u003c/p\u003e\n"],["\u003cp\u003eImplementations of \u003ccode\u003ePrivateKey\u003c/code\u003e are expected to provide methods for destroying and checking the destruction status of the key material.\u003c/p\u003e\n"],["\u003cp\u003eSpecific cryptographic algorithms have their own private key interfaces, like \u003ccode\u003eRSAPrivateKey\u003c/code\u003e or \u003ccode\u003eDSAPrivateKey\u003c/code\u003e, which extend \u003ccode\u003ePrivateKey\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers should be aware of serialization implications and ensure that destroyed keys are not serialized to maintain security.\u003c/p\u003e\n"]]],["The `PrivateKey` interface groups all private key interfaces, providing type safety. It extends `Key` and `Destroyable`, requiring implementations to override `destroy` and `isDestroyed` for handling sensitive key data. Key actions include getting the algorithm, encoding, and format. `PrivateKey` implementations should also override `writeObject` to prevent the serialization of destroyed keys. Key subclasses include `DHPrivateKey`, `DSAPrivateKey`, `ECPrivateKey`, `RSAMultiPrimePrivateCrtKey`, `RSAPrivateCrtKey`, and `RSAPrivateKey`.\n"],null,["# PrivateKey\n\npublic interface **PrivateKey** implements [Key](../../../reference/java/security/Key.html) [Destroyable](../../../reference/javax/security/auth/Destroyable.html) \n\n|---|---|---|\n| Known Indirect Subclasses [DHPrivateKey](../../../reference/javax/crypto/interfaces/DHPrivateKey.html), [DSAPrivateKey](../../../reference/java/security/interfaces/DSAPrivateKey.html), [ECPrivateKey](../../../reference/java/security/interfaces/ECPrivateKey.html), [RSAMultiPrimePrivateCrtKey](../../../reference/java/security/interfaces/RSAMultiPrimePrivateCrtKey.html), [RSAPrivateCrtKey](../../../reference/java/security/interfaces/RSAPrivateCrtKey.html), [RSAPrivateKey](../../../reference/java/security/interfaces/RSAPrivateKey.html) |-----------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------| | [DHPrivateKey](../../../reference/javax/crypto/interfaces/DHPrivateKey.html) | The interface to a Diffie-Hellman private key. | | [DSAPrivateKey](../../../reference/java/security/interfaces/DSAPrivateKey.html) | The standard interface to a DSA private key. | | [ECPrivateKey](../../../reference/java/security/interfaces/ECPrivateKey.html) | The interface to an elliptic curve (EC) private key. | | [RSAMultiPrimePrivateCrtKey](../../../reference/java/security/interfaces/RSAMultiPrimePrivateCrtKey.html) | The interface to an RSA multi-prime private key, as defined in the PKCS#1 v2.1, using the *Chinese Remainder Theorem* (CRT) information values. | | [RSAPrivateCrtKey](../../../reference/java/security/interfaces/RSAPrivateCrtKey.html) | The interface to an RSA private key, as defined in the PKCS#1 standard, using the *Chinese Remainder Theorem* (CRT) information values. | | [RSAPrivateKey](../../../reference/java/security/interfaces/RSAPrivateKey.html) | The interface to an RSA private key. | |||\n\nA private key.\nThe purpose of this interface is to group (and provide type safety\nfor) all private key interfaces.\n\n\nNote: The specialized private key interfaces extend this interface.\nSee, for example, the `DSAPrivateKey` interface in\n[java.security.interfaces](../../../reference/java/security/interfaces/package-summary.html).\n\n\nImplementations should override the default `destroy` and\n`isDestroyed` methods from the\n[Destroyable](../../../reference/javax/security/auth/Destroyable.html) interface to enable\nsensitive key information to be destroyed, cleared, or in the case\nwhere such information is immutable, unreferenced.\nFinally, since `PrivateKey` is `Serializable`, implementations\nshould also override\n[ObjectOutputStream.writeObject(java.lang.Object)](../../../reference/java/io/ObjectOutputStream.html#writeObject(java.lang.Object))\nto prevent keys that have been destroyed from being serialized. \n\n##### See Also\n\n- [Key](../../../reference/java/security/Key.html)\n- [PublicKey](../../../reference/java/security/PublicKey.html)\n- [ERROR(/Certificate)](../../../)\n- [Signature.initVerify(PublicKey)](../../../reference/java/security/Signature.html#initVerify(java.security.PublicKey))\n- [DSAPrivateKey](../../../reference/java/security/interfaces/DSAPrivateKey.html)\n- [RSAPrivateKey](../../../reference/java/security/interfaces/RSAPrivateKey.html)\n- [RSAPrivateCrtKey](../../../reference/java/security/interfaces/RSAPrivateCrtKey.html) \n\n### Constant Summary\n\n|------|---------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|\n| long | [serialVersionUID](../../../reference/java/security/PrivateKey.html#serialVersionUID) | The class fingerprint that is set to indicate serialization compatibility with a previous version of the class. |\n\n### Inherited Constant Summary\n\nFrom interface [java.security.Key](../../../reference/java/security/Key.html) \n\n|------|--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|\n| long | [serialVersionUID](../../../reference/java/security/Key.html#serialVersionUID) | The class fingerprint that is set to indicate serialization compatibility with a previous version of the class. |\n\n### Inherited Method Summary\n\nFrom interface [java.security.Key](../../../reference/java/security/Key.html) \n\n|-------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| abstract [String](../../../reference/java/lang/String.html) | [getAlgorithm](../../../reference/java/security/Key.html#getAlgorithm())() Returns the standard algorithm name for this key. |\n| abstract byte\\[\\] | [getEncoded](../../../reference/java/security/Key.html#getEncoded())() Returns the key in its primary encoding format, or null if this key does not support encoding. |\n| abstract [String](../../../reference/java/lang/String.html) | [getFormat](../../../reference/java/security/Key.html#getFormat())() Returns the name of the primary encoding format of this key, or null if this key does not support encoding. |\n\nFrom interface [javax.security.auth.Destroyable](../../../reference/javax/security/auth/Destroyable.html) \n\n|---------|---------------------------------------------------------------------------------------------------------------------------------------|\n| void | [destroy](../../../reference/javax/security/auth/Destroyable.html#destroy())() Destroy this `Object`. |\n| boolean | [isDestroyed](../../../reference/javax/security/auth/Destroyable.html#isDestroyed())() Determine if this `Object` has been destroyed. |\n\nConstants\n---------\n\n#### public static final long\n**serialVersionUID**\n\nThe class fingerprint that is set to indicate serialization\ncompatibility with a previous version of the class. \nConstant Value: 6034044314589513430"]]