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")
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
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" })