aboutsummaryrefslogtreecommitdiffstats
path: root/docs/fernet.rst
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2018-05-12 11:57:32 -0400
committerAlex Gaynor <alex.gaynor@gmail.com>2018-05-12 11:57:32 -0400
commit36ad98fd5e4b7358dc2aa903b6d51569bf19c5f8 (patch)
treeb176b10478a5cfe302ca3ed7193fda5964c16d8b /docs/fernet.rst
parent33ae3cea990b307eafaa5f52232eba8315fd05fe (diff)
downloadcryptography-36ad98fd5e4b7358dc2aa903b6d51569bf19c5f8.tar.gz
cryptography-36ad98fd5e4b7358dc2aa903b6d51569bf19c5f8.tar.bz2
cryptography-36ad98fd5e4b7358dc2aa903b6d51569bf19c5f8.zip
Add support for extracting timestamp from a Fernet token (#4229)
* Add API for retrieving the seconds-to-expiry for the token, given a TTL. * Process PR feedback: * Do compute the TTL, but just the age of the token. The caller can decided what to do next. * Factored out the HMAC signature verification to a separate function. * Fixed a copy&paste mistake in the test cases * Tests cleanup. * `struct` no longer needed * Document `def age()` * typo in `age()` documentation * token, not data * remove test for TTL expiry that is already covered by the parameterized `test_invalid()`. * let's call this extract_timestamp and just return timestamp * review comments * it's UNIX I know this
Diffstat (limited to 'docs/fernet.rst')
-rw-r--r--docs/fernet.rst16
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/fernet.rst b/docs/fernet.rst
index a0ffe64f..2d7d2281 100644
--- a/docs/fernet.rst
+++ b/docs/fernet.rst
@@ -80,6 +80,22 @@ has support for implementing key rotation via :class:`MultiFernet`.
:raises TypeError: This exception is raised if ``token`` is not
``bytes``.
+ .. method:: extract_timestamp(token)
+
+ .. versionadded:: 2.3
+
+ Returns the timestamp for the token. The caller can then decide if
+ the token is about to expire and, for example, issue a new token.
+
+ :param bytes token: The Fernet token. This is the result of calling
+ :meth:`encrypt`.
+ :returns int: The UNIX timestamp of the token.
+ :raises cryptography.fernet.InvalidToken: If the ``token``'s signature
+ is invalid this exception
+ is raised.
+ :raises TypeError: This exception is raised if ``token`` is not
+ ``bytes``.
+
.. class:: MultiFernet(fernets)