# `BoundedAuthorityProtocol.ContentAssertion.V1.ExpectedContentAssertion`
[🔗](https://github.com/baselabs/bounded_authority_protocol/blob/v1.0.0/lib/bounded_authority_protocol/content_assertion/v1/expected_content_assertion.ex#L1)

Explicit trusted key, exact context, content digest, time and bounds.

## Fields

* `attestor` - the `BoundedAuthorityProtocol.V1.HistoricalPublicKey` of the attestor you trust;
  the assertion window must lie inside its validity window.
* `issuer` - the expected `iss`.
* `audience` - the expected `aud`.
* `subject` - the expected `sub`.
* `profile` - the expected `profile`.
* `profile_digest` - the expected raw 32-byte profile digest.
* `content_digest` - the expected raw 32-byte content digest; there is no opt-out.
* `now` - the caller's current time, integer Unix time in seconds; it must satisfy `nbf <= now <
  exp`.
* `bounds` - a `BoundedAuthorityProtocol.V1.Bounds` struct or a map of tightening overrides; `%{}`
  means the profile maxima (see `BoundedAuthorityProtocol.V1.Bounds.coerce/1`).

# `t`

```elixir
@type t() :: %BoundedAuthorityProtocol.ContentAssertion.V1.ExpectedContentAssertion{
  attestor: BoundedAuthorityProtocol.V1.HistoricalPublicKey.t(),
  audience: binary(),
  bounds: BoundedAuthorityProtocol.V1.Bounds.t() | map(),
  content_digest: binary(),
  issuer: binary(),
  now: integer(),
  profile: binary(),
  profile_digest: binary(),
  subject: binary()
}
```

Expected context for `BoundedAuthorityProtocol.ContentAssertion.V1.verify_assertion/2`.

---

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