Generate and verify HMAC-based authentication tokens
Description
Fernet takes a user-provided *message* (an arbitrary sequence of bytes), a key
(256 bits), and the current time, and produces a token, which contains the
message in a form that can't be read or altered without the key.