# Class KeyStore.PrivateKeyEntry

java.lang.Object
java.security.KeyStore.PrivateKeyEntry

All Implemented Interfaces:
  `KeyStore.Entry`

Enclosing class:
  `KeyStore`

public static final class KeyStore.PrivateKeyEntry extends Object implements KeyStore.Entry
A `KeyStore` entry that holds a `PrivateKey` and corresponding certificate chain.

Since:
  1.5

- ## Nested Class Summary

  ### Nested classes/interfaces declared in interface KeyStore.Entry

  `KeyStore.Entry.Attribute`
  Modifier and Type
  Interface
  Description
  `static interface`
  `KeyStore.Entry.Attribute`
  An attribute associated with a keystore entry.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PrivateKeyEntry(PrivateKey privateKey, Certificate[] chain)`
  Constructs a `PrivateKeyEntry` with a `PrivateKey` and corresponding certificate chain.
  `PrivateKeyEntry(PrivateKey privateKey, Certificate[] chain, Set<KeyStore.Entry.Attribute> attributes)`
  Constructs a `PrivateKeyEntry` with a `PrivateKey` and corresponding certificate chain and associated entry attributes.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Set<KeyStore.Entry.Attribute>`
  `getAttributes()`
  Retrieves the attributes associated with an entry.
  `Certificate`
  `getCertificate()`
  Gets the end entity `Certificate` from the certificate chain in this entry.
  `Certificate[]`
  `getCertificateChain()`
  Gets the `Certificate` chain from this entry.
  `PrivateKey`
  `getPrivateKey()`
  Gets the `PrivateKey` from this entry.
  `String`
  `toString()`
  Returns a string representation of this PrivateKeyEntry.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### PrivateKeyEntry

    public PrivateKeyEntry(PrivateKey privateKey, Certificate[] chain)
    Constructs a `PrivateKeyEntry` with a `PrivateKey` and corresponding certificate chain.

    The specified `chain` is cloned before it is stored in the new `PrivateKeyEntry` object.

    Parameters:
      `privateKey` - the `PrivateKey`
      `chain` - an array of `Certificate`s representing the certificate chain. The chain must be ordered and contain a `Certificate` at index 0 corresponding to the private key.
    Throws:
      `NullPointerException` - if `privateKey` or `chain` is `null`
      `IllegalArgumentException` - if the specified chain has a length of 0, if the specified chain does not contain `Certificate`s of the same type, or if the `PrivateKey` algorithm does not match the algorithm of the `PublicKey` in the end entity `Certificate` (at index 0)

  - ### PrivateKeyEntry

    public PrivateKeyEntry(PrivateKey privateKey, Certificate[] chain, Set<KeyStore.Entry.Attribute> attributes)
    Constructs a `PrivateKeyEntry` with a `PrivateKey` and corresponding certificate chain and associated entry attributes.

    The specified `chain` and `attributes` are cloned before they are stored in the new `PrivateKeyEntry` object.

    Parameters:
      `privateKey` - the `PrivateKey`
      `chain` - an array of `Certificate`s representing the certificate chain. The chain must be ordered and contain a `Certificate` at index 0 corresponding to the private key.
      `attributes` - the attributes
    Throws:
      `NullPointerException` - if `privateKey`, `chain` or `attributes` is `null`
      `IllegalArgumentException` - if the specified chain has a length of 0, if the specified chain does not contain `Certificate`s of the same type, or if the `PrivateKey` algorithm does not match the algorithm of the `PublicKey` in the end entity `Certificate` (at index 0)
    Since:
      1.8

- ## Method Details

  - ### getPrivateKey

    public PrivateKey getPrivateKey()
    Gets the `PrivateKey` from this entry.
    Returns:
      the `PrivateKey` from this entry

  - ### getCertificateChain

    public Certificate[] getCertificateChain()
    Gets the `Certificate` chain from this entry.

    The stored chain is cloned before being returned.

    Returns:
      an array of `Certificate`s corresponding to the certificate chain for the public key. If the certificates are of type X.509, the runtime type of the returned array is `X509Certificate[]`.

  - ### getCertificate

    public Certificate getCertificate()
    Gets the end entity `Certificate` from the certificate chain in this entry.
    Returns:
      the end entity `Certificate` (at index 0) from the certificate chain in this entry. If the certificate is of type X.509, the runtime type of the returned certificate is `X509Certificate`.

  - ### getAttributes

    public Set<KeyStore.Entry.Attribute> getAttributes()
    Retrieves the attributes associated with an entry.
    Specified by:
      `getAttributes` in interface `KeyStore.Entry`
    Returns:
      an unmodifiable `Set` of attributes, possibly empty
    Since:
      1.8

  - ### toString

    public String toString()
    Returns a string representation of this PrivateKeyEntry.
    Overrides:
      `toString` in class `Object`
    Returns:
      a string representation of this PrivateKeyEntry.