SSLEngineResult.HandshakeStatus (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: javax.net.ssl, class: SSLEngineResult, enum: HandshakeStatus
Keywords: javax.net.ssl.SSLEngineResult.HandshakeStatus class

# 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 Enum

  `Enum.EnumDesc<E>`
  Modifier and Type
  Class
  Description
  `static final class`
  `Enum.EnumDesc<E extends Enum<E>>`
  A nominal descriptor for an `enum` constant.

- ## 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 Enum

  `clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`
  Modifier and Type
  Method
  Description
  `protected final Object`
  `clone()`
  Throws CloneNotSupportedException.
  `final int`
  `compareTo(SSLEngineResult.HandshakeStatus o)`
  Compares this enum with the specified object for order.
  `final Optional<Enum.EnumDesc<SSLEngineResult.HandshakeStatus>>`
  `describeConstable()`
  Returns an enum descriptor `EnumDesc` for this instance, if one can be constructed, or an empty `Optional` if one cannot be.
  `final boolean`
  `equals(Object other)`
  Returns true if the specified object is equal to this enum constant.
  `protected final void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization has been deprecated for removal.
  `final Class<SSLEngineResult.HandshakeStatus>`
  `getDeclaringClass()`
  Returns the Class object corresponding to this enum constant's enum type.
  `final int`
  `hashCode()`
  Returns a hash code for this enum constant.
  `final String`
  `name()`
  Returns the name of this enum constant, exactly as declared in its enum declaration.
  `final int`
  `ordinal()`
  Returns the ordinal of this enumeration constant (its position in its enum declaration, where the initial constant is assigned an ordinal of zero).
  `String`
  `toString()`
  Returns the name of this enum constant, as contained in the declaration.
  `static <T extends Enum<T>>
  T`
  `valueOf(Class<T> enumClass, String name)`
  Returns the enum constant of the specified enum class with the specified name.

  ### Methods declared in class Object

  `getClass, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `final Class<?>`
  `getClass()`
  Returns the runtime class of 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.

- ## 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