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

Frames complete TLS handshake messages from an arbitrarily chunked byte stream.

Incomplete data is retained as an opaque chunk accumulator so repeated small
feeds do not rebuild the entire buffered message.

# `t`

```elixir
@opaque t()
```

# `buffered_bytes`

```elixir
@spec buffered_bytes(t() | binary()) :: binary()
```

# `buffered_size`

```elixir
@spec buffered_size(t() | binary()) :: non_neg_integer()
```

# `feed`

```elixir
@spec feed(t() | binary(), binary(), keyword()) ::
  {:ok, [binary()], t()} | {:error, term()}
```

# `new`

```elixir
@spec new() :: t()
```

---

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