aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2013-11-23 07:47:23 -0800
committerAlex Gaynor <alex.gaynor@gmail.com>2013-11-23 07:47:23 -0800
commit3417656d6e35bd5c6e4687bb7d008be6d8c73b43 (patch)
treee5fc962abef2a16934692f9d6dcf2463442fb7cd
parent09bff867916af9694d66c2fea917d192f7dd1a25 (diff)
downloadcryptography-3417656d6e35bd5c6e4687bb7d008be6d8c73b43.tar.gz
cryptography-3417656d6e35bd5c6e4687bb7d008be6d8c73b43.tar.bz2
cryptography-3417656d6e35bd5c6e4687bb7d008be6d8c73b43.zip
Handle the clock skew check
-rw-r--r--cryptography/fernet.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/cryptography/fernet.py b/cryptography/fernet.py
index aa46b36f..2ae0ae8b 100644
--- a/cryptography/fernet.py
+++ b/cryptography/fernet.py
@@ -57,6 +57,8 @@ bool Cryptography_constant_time_compare(uint8_t *a, size_t len_a, uint8_t *b,
}
""")
+_MAX_CLOCK_SKEW = 60
+
class Fernet(object):
def __init__(self, key, backend=None):
@@ -117,6 +119,8 @@ class Fernet(object):
if ttl is not None:
if struct.unpack(">Q", timestamp)[0] + ttl < current_time:
raise InvalidToken
+ if current_time + _MAX_CLOCK_SKEW < struct.unpack(">Q", timestamp)[0]:
+ raise InvalidToken
h = HMAC(self.signing_key, hashes.SHA256(), self.backend)
h.update(data[:-32])
hmac = h.finalize()