# Interface EdECPrivateKey

All Superinterfaces:
  `AsymmetricKey`, `Destroyable`, `EdECKey`, `Key`, `PrivateKey`, `Serializable`

public interface EdECPrivateKey extends EdECKey, PrivateKey
An interface for an elliptic curve private key as defined by RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA). These keys are distinct from the keys represented by `ECPrivateKey`, and they are intended for use with algorithms based on RFC 8032 such as the EdDSA `Signature` algorithm.

An Edwards-Curve private key is a bit string. This interface only supports bit string lengths that are a multiple of 8, and the key is represented using a byte array.

Since:
  15
External Specifications
  - RFC 8032: Edwards-Curve Digital Signature Algorithm (EdDSA)

- ## Field Summary

  ### Fields declared in interface java.security.PrivateKey

  `serialVersionUID`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Optional<byte[]>`
  `getBytes()`
  Get a copy of the byte array representing the private key.
  `default NamedParameterSpec`
  `getParams()`
  Returns the parameters associated with this key.

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

  `destroy, isDestroyed`

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

  `getAlgorithm, getEncoded, getFormat`

- ## Method Details

  - ### getBytes

    Optional<byte[]> getBytes()
    Get a copy of the byte array representing the private key. This method may return an empty `Optional` if the implementation is not willing to produce the private key value.
    Returns:
      an `Optional` containing the private key byte array. If the key is not available, then an empty `Optional`.

  - ### getParams

    default NamedParameterSpec getParams()
    Returns the parameters associated with this key. The parameters are optional and may be either explicitly specified or implicitly created during key pair generation.
    Specified by:
      `getParams` in interface `AsymmetricKey`
    Specified by:
      `getParams` in interface `EdECKey`
    Implementation Requirements:
      The default implementation returns `null`.
    Returns:
      the associated parameters, may be `null`