def test_bad_payload(self): signer = signing.FernetSigner('predictable-key') value = signer.sign('hello') with self.assertRaises(signing.BadSignature): # Break the version signer.unsign(b' ' + value[1:]) with self.assertRaises(signing.BadSignature): # Break the signature signer.unsign(value[:-1] + b' ')
def test_fernet_signer(self): value = b'hello' with freeze_time(123456789): signer = signing.FernetSigner('predictable-key') ts = signer.sign(value) self.assertEqual(signer.unsign(ts), value) with freeze_time(123456800 + signing._MAX_CLOCK_SKEW): self.assertEqual(signer.unsign(ts, ttl=12), value) # max_age parameter can also accept a datetime.timedelta object self.assertEqual( signer.unsign(ts, ttl=datetime.timedelta(seconds=11)), value) with self.assertRaises(signing.SignatureExpired): signer.unsign(ts, ttl=10) with freeze_time(123456778 - signing._MAX_CLOCK_SKEW): with self.assertRaises(signing.SignatureExpired): signer.unsign(ts, ttl=10)
def test_unsupported(self): value = b'hello' signer = signing.FernetSigner('predictable-key') with self.assertRaises(signing.BadSignature): signer.unsign(value)