def test_extract_timestamp(self, monkeypatch, backend):
     f = Fernet(base64.urlsafe_b64encode(b"\x00" * 32), backend=backend)
     current_time = 1526138327
     token = f.encrypt_at_time(b"encrypt me", current_time)
     assert f.extract_timestamp(token) == current_time
     with pytest.raises(InvalidToken):
         f.extract_timestamp(b"nonsensetoken")
示例#2
0
def encrypt(message: bytes, exp: timedelta = None) -> Tuple[bytes, bytes]:
    key = Fernet.generate_key()
    fernet = Fernet(key)
    if exp:
        seconds = (datetime.utcnow().replace(microsecond=0) + exp).timestamp()
        pw = fernet.encrypt_at_time(message, int(seconds))
    else:
        pw = fernet.encrypt(message)
    return key, pw
示例#3
0
    def test_listdocuments_expired_token(self):
        f = Fernet(TESTKEY)
        value = f"{self.TEST_BSN}:ZAAKKEY1".encode()
        expired_time = int(time.time()) - (60 * 60 + 2)  # one hour + 2 seconds
        encrypted_token = f.encrypt_at_time(value, expired_time)

        response = self.client_get(
            f"/decosjoin/listdocuments/{encrypted_token}")
        self.assertEqual(response.status_code, 500)
        self.assertEqual(response.json, {
            "message": "Server error occurred",
            "status": "ERROR"
        })