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

Pure TLS 1.3 encrypted record protection for one complete framed record.

Stream accumulation remains the responsibility of `SSL.Protocol.RecordFramer`.
Successful operations return an immutable traffic state advanced by one
record; failures return no advanced state.

# `decrypt`

```elixir
@spec decrypt(SSL.Crypto.TrafficState.t(), term()) ::
  {:ok, SSL.Protocol.InnerPlaintext.content_type(), binary(),
   SSL.Crypto.TrafficState.t()}
  | {:error, term()}
```

# `encrypt`

```elixir
@spec encrypt(SSL.Crypto.TrafficState.t(), term(), term(), keyword()) ::
  {:ok, binary(), SSL.Crypto.TrafficState.t()} | {:error, term()}
```

---

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