Alex Gaynor | 2b21b12 | 2013-10-31 09:39:25 -0700 | [diff] [blame] | 1 | import base64 |
| 2 | |
Alex Gaynor | de36e90 | 2013-10-31 10:10:44 -0700 | [diff] [blame^] | 3 | import six |
| 4 | |
Alex Gaynor | 2b21b12 | 2013-10-31 09:39:25 -0700 | [diff] [blame] | 5 | from cryptography.fernet import Fernet |
| 6 | |
| 7 | |
| 8 | class TestFernet(object): |
| 9 | def test_generate(self): |
| 10 | f = Fernet(base64.urlsafe_b64decode( |
| 11 | b"cw_0x689RpI-jtRR7oE8h_eQsKImvJapLeSbXpwF4e4=" |
| 12 | )) |
| 13 | token = f._encrypt_from_parts( |
| 14 | b"hello", |
| 15 | 499162800, |
Alex Gaynor | de36e90 | 2013-10-31 10:10:44 -0700 | [diff] [blame^] | 16 | b"".join(map(six.int2byte, range(16))), |
Alex Gaynor | 2b21b12 | 2013-10-31 09:39:25 -0700 | [diff] [blame] | 17 | ) |
Alex Gaynor | 5e87dfd | 2013-10-31 09:46:03 -0700 | [diff] [blame] | 18 | assert token == (b"gAAAAAAdwJ6wAAECAwQFBgcICQoLDA0ODy021cpGVWKZ_eEwCGM" |
Alex Gaynor | de36e90 | 2013-10-31 10:10:44 -0700 | [diff] [blame^] | 19 | "4BLLF_5CV9dOPmrhuVUPgJobwOz7JcbmrR64jVmpU4IwqDA==") |
Alex Gaynor | 2b21b12 | 2013-10-31 09:39:25 -0700 | [diff] [blame] | 20 | |
| 21 | def test_verify(self): |
| 22 | f = Fernet(base64.urlsafe_b64decode( |
| 23 | b"cw_0x689RpI-jtRR7oE8h_eQsKImvJapLeSbXpwF4e4=" |
| 24 | )) |
Alex Gaynor | 5e87dfd | 2013-10-31 09:46:03 -0700 | [diff] [blame] | 25 | payload = f.decrypt( |
| 26 | (b"gAAAAAAdwJ6wAAECAwQFBgcICQoLDA0ODy021cpGVWKZ_eEwCGM4BLLF_5CV9dO" |
Alex Gaynor | de36e90 | 2013-10-31 10:10:44 -0700 | [diff] [blame^] | 27 | "PmrhuVUPgJobwOz7JcbmrR64jVmpU4IwqDA=="), |
Alex Gaynor | 5e87dfd | 2013-10-31 09:46:03 -0700 | [diff] [blame] | 28 | ttl=60, |
| 29 | current_time=499162801 |
| 30 | ) |
Alex Gaynor | 2b21b12 | 2013-10-31 09:39:25 -0700 | [diff] [blame] | 31 | assert payload == b"hello" |