(self, backend)
| 251 | mf1.decrypt(rotated) |
| 252 | |
| 253 | def test_rotate_preserves_timestamp(self, backend): |
| 254 | f1 = Fernet(base64.urlsafe_b64encode(b"\x00" * 32), backend=backend) |
| 255 | f2 = Fernet(base64.urlsafe_b64encode(b"\x01" * 32), backend=backend) |
| 256 | |
| 257 | mf1 = MultiFernet([f1]) |
| 258 | mf2 = MultiFernet([f2, f1]) |
| 259 | |
| 260 | plaintext = b"abc" |
| 261 | original_time = int(time.time()) - 5 * 60 |
| 262 | mf1_ciphertext = mf1.encrypt_at_time(plaintext, original_time) |
| 263 | |
| 264 | rotated_time, _ = Fernet._get_unverified_token_data( |
| 265 | mf2.rotate(mf1_ciphertext) |
| 266 | ) |
| 267 | |
| 268 | assert int(time.time()) != rotated_time |
| 269 | assert original_time == rotated_time |
| 270 | |
| 271 | def test_rotate_decrypt_no_shared_keys(self, backend): |
| 272 | f1 = Fernet(base64.urlsafe_b64encode(b"\x00" * 32), backend=backend) |
nothing calls this directly
no test coverage detected