# tspex v0.1.0 - API Reference

## Modules

- [Tspex](Tspex.md): Time-Stamp Protocol (RFC 3161, RFC 5816) in pure Elixir: build requests,
ask a time-stamping authority (TSA), read the answers, and verify a
time-stamp at the date it was issued. It also puts time-stamps in
signatures made with `Cmsex`.
- [Tspex.HTTP](Tspex.HTTP.md): The HTTP transport of `Tspex.stamp/2`: one `POST` of a time-stamp request
to a TSA (RFC 3161, section 3.4), written on `:gen_tcp` and `:ssl`.
- [Tspex.Request](Tspex.Request.md): A time-stamp request, the `TimeStampReq` of RFC 3161 (2.4.1).
- [Tspex.Response](Tspex.Response.md): A time-stamp response, the `TimeStampResp` of RFC 3161 (2.4.2), as
`Tspex.decode_response/2` reads it. Reading only parses: a rejection is a
valid response, with `token: nil`, and it is `Tspex.verify/3` that turns
it into an error.
- [Tspex.TSTInfo](Tspex.TSTInfo.md): The `TSTInfo` of a time-stamp token (RFC 3161, 2.4.2): what the TSA signed.
- [Tspex.TimeStampedData](Tspex.TimeStampedData.md): A document bound to a chain of time-stamps: `TimeStampedData`, RFC 5544.
- [Tspex.Verified](Tspex.Verified.md): The result of `Tspex.verify/3`: a token that passed every check.

- Exceptions
  - [Tspex.Error](Tspex.Error.md): Why a time-stamp request, response or token could not be built, read or
verified.

