Module java.base
Package javax.net.ssl

# Enum Class SSLEngineResult.HandshakeStatus

java.lang.Object
java.lang.Enum<SSLEngineResult.HandshakeStatus>
javax.net.ssl.SSLEngineResult.HandshakeStatus

All Implemented Interfaces:
  `Serializable`, `Comparable<SSLEngineResult.HandshakeStatus>`, `Constable`

Enclosing class:
  `SSLEngineResult`

public static enum SSLEngineResult.HandshakeStatus extends Enum<SSLEngineResult.HandshakeStatus>
An `SSLEngineResult` enum describing the current handshaking state of this `SSLEngine`.

Since:
  1.5

- ## Nested Class Summary

  ## Nested classes/interfaces declared in class java.lang.Enum

  `Enum.EnumDesc<E extends Enum<E>>`

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `FINISHED`
  The `SSLEngine` has just finished handshaking.
  `NEED_TASK`
  The `SSLEngine` needs the results of one (or more) delegated tasks before handshaking can continue.
  `NEED_UNWRAP`
  The `SSLEngine` needs to receive data from the remote side before handshaking can continue.
  `NEED_UNWRAP_AGAIN`
  The `SSLEngine` needs to unwrap before handshaking can continue.
  `NEED_WRAP`
  The `SSLEngine` must send data to the remote side before handshaking can continue, so `SSLEngine.wrap()` should be called.
  `NOT_HANDSHAKING`
  The `SSLEngine` is not currently handshaking.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static SSLEngineResult.HandshakeStatus`
  `valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static SSLEngineResult.HandshakeStatus[]`
  `values()`
  Returns an array containing the constants of this enum class, in the order they are declared.

  ### Methods declared in class java.lang.Enum

  `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

  ### Methods declared in class java.lang.Object

  `getClass, notify, notifyAll, wait, wait, wait`

- ## Enum Constant Details

  - ### NOT_HANDSHAKING

    public static final SSLEngineResult.HandshakeStatus NOT_HANDSHAKING
    The `SSLEngine` is not currently handshaking.

  - ### FINISHED

    public static final SSLEngineResult.HandshakeStatus FINISHED
    The `SSLEngine` has just finished handshaking.

    This value is only generated by a call to `SSLEngine.wrap()/unwrap()` when that call finishes a handshake. It is never generated by `SSLEngine.getHandshakeStatus()`.

    See Also:
      - `SSLEngine.wrap(ByteBuffer, ByteBuffer)`
      - `SSLEngine.unwrap(ByteBuffer, ByteBuffer)`
      - `SSLEngine.getHandshakeStatus()`

  - ### NEED_TASK

    public static final SSLEngineResult.HandshakeStatus NEED_TASK
    The `SSLEngine` needs the results of one (or more) delegated tasks before handshaking can continue.
    See Also:
      - `SSLEngine.getDelegatedTask()`

  - ### NEED_WRAP

    public static final SSLEngineResult.HandshakeStatus NEED_WRAP
    The `SSLEngine` must send data to the remote side before handshaking can continue, so `SSLEngine.wrap()` should be called.
    See Also:
      - `SSLEngine.wrap(ByteBuffer, ByteBuffer)`

  - ### NEED_UNWRAP

    public static final SSLEngineResult.HandshakeStatus NEED_UNWRAP
    The `SSLEngine` needs to receive data from the remote side before handshaking can continue.

  - ### NEED_UNWRAP_AGAIN

    public static final SSLEngineResult.HandshakeStatus NEED_UNWRAP_AGAIN
    The `SSLEngine` needs to unwrap before handshaking can continue.

    This value is used to indicate that not-yet-interpreted data has been previously received from the remote side, and does not need to be received again.

    This handshake status only applies to DTLS.

    Since:
      9

- ## Method Details

  - ### values

    public static SSLEngineResult.HandshakeStatus[] values()
    Returns an array containing the constants of this enum class, in the order they are declared.
    Returns:
      an array containing the constants of this enum class, in the order they are declared

  - ### valueOf

    public static SSLEngineResult.HandshakeStatus valueOf(String name)
    Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
    Parameters:
      `name` - the name of the enum constant to be returned.
    Returns:
      the enum constant with the specified name
    Throws:
      `IllegalArgumentException` - if this enum class has no constant with the specified name
      `NullPointerException` - if the argument is null