Example #1
0
    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' ')
Example #2
0
    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)
Example #3
0
    def test_unsupported(self):
        value = b'hello'
        signer = signing.FernetSigner('predictable-key')

        with self.assertRaises(signing.BadSignature):
            signer.unsign(value)