# `SSL.Protocol.ServerHandshake`
[🔗](https://github.com/gsmlg-dev/http_fetch/blob/v0.16.7/apps/ex_ssl/lib/ssl/protocol/server_handshake.ex#L1)

Record-free TLS 1.3 full-certificate server handshake operations.

# `accept_hello`

```elixir
@spec accept_hello(map(), binary(), SSL.Protocol.ServerHandshake.State.t() | nil) ::
  {:ok, SSL.Protocol.ServerHandshake.State.t()}
  | {:retry, SSL.Protocol.ServerHandshake.State.t(), binary()}
  | {:error, term()}
```

# `finish`

```elixir
@spec finish(SSL.Protocol.ServerHandshake.State.t(), binary()) ::
  :ok | {:error, term()}
```

# `flight`

```elixir
@spec flight(
  SSL.Protocol.ServerHandshake.State.t(),
  map(),
  SSL.Crypto.KeyExchange.KeyPair.t(),
  binary()
) ::
  {:ok, SSL.Protocol.ServerHandshake.State.t(), binary(), [binary()]}
  | {:error, term()}
```

# `parameters`

```elixir
@spec parameters(list()) :: {:ok, binary()} | {:error, term()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
