def test_invalid(self, secret, token, now, ttl_sec, backend, monkeypatch):
     f = Fernet(secret.encode("ascii"), backend=backend)
     current_time = calendar.timegm(iso8601.parse_date(now).utctimetuple())
     with pytest.raises(InvalidToken):
         f.decrypt_at_time(
             token.encode("ascii"),
             ttl=ttl_sec,
             current_time=current_time,
         )
     monkeypatch.setattr(time, "time", lambda: current_time)
     with pytest.raises(InvalidToken):
         f.decrypt(token.encode("ascii"), ttl=ttl_sec)
示例#2
0
 def test_timestamp_ignored_no_ttl(self, monkeypatch, backend):
     f = Fernet(base64.urlsafe_b64encode(b"\x00" * 32), backend=backend)
     pt = b"encrypt me"
     token = f.encrypt(pt)
     ts = "1985-10-26T01:20:01-07:00"
     current_time = calendar.timegm(iso8601.parse_date(ts).utctimetuple())
     assert f.decrypt_at_time(token, ttl=None,
                              current_time=current_time) == pt
     monkeypatch.setattr(time, "time", lambda: current_time)
     assert f.decrypt(token, ttl=None) == pt
 def test_verify(self, secret, now, src, ttl_sec, token, backend,
                 monkeypatch):
     f = Fernet(secret.encode("ascii"), backend=backend)
     current_time = calendar.timegm(iso8601.parse_date(now).utctimetuple())
     payload = f.decrypt_at_time(
         token.encode("ascii"),
         ttl=ttl_sec,
         current_time=current_time,
     )
     assert payload == src.encode("ascii")
     monkeypatch.setattr(time, "time", lambda: current_time)
     payload = f.decrypt(token.encode("ascii"), ttl=ttl_sec)
     assert payload == src.encode("ascii")
 def test_ttl_required_in_decrypt_at_time(self, monkeypatch, backend):
     f = Fernet(base64.urlsafe_b64encode(b"\x00" * 32), backend=backend)
     pt = b"encrypt me"
     token = f.encrypt(pt)
     with pytest.raises(ValueError):
         f.decrypt_at_time(token, ttl=None, current_time=int(time.time()))