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

Untrusted bounded content assertion fields; decoding establishes no signature or trust.

Returned by `BoundedAuthorityProtocol.ContentAssertion.V1.decode_assertion/2` for diagnosis only; it is never a verified value.

## Fields

* `version` - always `1`.
* `attestor_key_id` - the attestor key identifier, the header `kid`: 1 to `kid_bytes` (128) bytes
  of ASCII letters, digits, `-`, `.`, `_` or `~`.
* `jti` - the assertion identifier: non-empty StringOrURI of at most `identifier_bytes` (512)
  UTF-8 bytes.
* `iss` - the asserted issuer: non-empty StringOrURI of at most `identifier_bytes` (512) UTF-8
  bytes.
* `aud` - the one audience: non-empty StringOrURI of at most `identifier_bytes` (512) UTF-8 bytes.
* `sub` - the stable assertion-lineage identifier: non-empty StringOrURI of at most
  `identifier_bytes` (512) UTF-8 bytes.
* `profile` - the semantic-profile identifier, compared as data: non-empty StringOrURI of at most
  `identifier_bytes` (512) UTF-8 bytes.
* `profile_digest` - an opaque raw 32-byte caller-pinned profile identity.
* `content_digest` - the raw 32-byte digest of the exact content bytes (see `BoundedAuthorityProtocol.ContentAssertion.V1.content_digest/2`).
* `gen` - the generation, `1` to `integer_magnitude`; `1` exactly when `prev` is 32 zero bytes.
* `prev` - the raw 32-byte `BoundedAuthorityProtocol.ContentAssertion.V1.assertion_digest/2` of the predecessor, or 32 zero bytes at generation
  1.
* `iat` - the issue time, integer Unix time in seconds.
* `nbf` - the start of the window, integer Unix time in seconds; `iat <= nbf`.
* `exp` - the exclusive end of the window, integer Unix time in seconds; `nbf < exp`.
* `verification` - always `:not_evaluated`.

# `t`

```elixir
@type t() :: %BoundedAuthorityProtocol.ContentAssertion.V1.DecodedContentAssertion{
  attestor_key_id: binary(),
  aud: binary(),
  content_digest: binary(),
  exp: integer(),
  gen: integer(),
  iat: integer(),
  iss: binary(),
  jti: binary(),
  nbf: integer(),
  prev: binary(),
  profile: binary(),
  profile_digest: binary(),
  sub: binary(),
  verification: :not_evaluated,
  version: 1
}
```

An unverified decoded content assertion.

---

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