aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_fernet.py
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2013-10-31 14:50:00 -0700
committerAlex Gaynor <alex.gaynor@gmail.com>2013-10-31 14:50:00 -0700
commit38f34557e432f98cc8a023e621b5efe525ef886c (patch)
tree27b90a83eb65c3df4d6c8c9ca874b15abd25d604 /tests/test_fernet.py
parentfb8adfcb2f0a67519ee81cad0c50d2e359ff3a20 (diff)
downloadcryptography-38f34557e432f98cc8a023e621b5efe525ef886c.tar.gz
cryptography-38f34557e432f98cc8a023e621b5efe525ef886c.tar.bz2
cryptography-38f34557e432f98cc8a023e621b5efe525ef886c.zip
Started working on the invalid cases
Diffstat (limited to 'tests/test_fernet.py')
-rw-r--r--tests/test_fernet.py28
1 files changed, 22 insertions, 6 deletions
diff --git a/tests/test_fernet.py b/tests/test_fernet.py
index 382a232c..15071718 100644
--- a/tests/test_fernet.py
+++ b/tests/test_fernet.py
@@ -9,10 +9,11 @@ import pytest
import six
-from cryptography.fernet import Fernet
+from cryptography.fernet import Fernet, InvalidToken
-def json_parametrize(keys, path):
+def json_parametrize(keys, fname):
+ path = os.path.join(os.path.dirname(__file__), "vectors", "fernet", fname)
with open(path) as f:
data = json.load(f)
return pytest.mark.parametrize(keys, [
@@ -23,8 +24,7 @@ def json_parametrize(keys, path):
class TestFernet(object):
@json_parametrize(
- ("secret", "now", "iv", "src", "token"),
- os.path.join(os.path.dirname(__file__), "vectors", "fernet", "generate.json")
+ ("secret", "now", "iv", "src", "token"), "generate.json",
)
def test_generate(self, secret, now, iv, src, token):
f = Fernet(base64.urlsafe_b64decode(secret.encode("ascii")))
@@ -36,8 +36,7 @@ class TestFernet(object):
assert actual_token == token
@json_parametrize(
- ("secret", "now", "src", "ttl_sec", "token"),
- os.path.join(os.path.dirname(__file__), "vectors", "fernet", "verify.json")
+ ("secret", "now", "src", "ttl_sec", "token"), "verify.json",
)
def test_verify(self, secret, now, src, ttl_sec, token):
f = Fernet(base64.urlsafe_b64decode(secret.encode("ascii")))
@@ -47,3 +46,20 @@ class TestFernet(object):
current_time=calendar.timegm(iso8601.parse_date(now).utctimetuple())
)
assert payload == src
+
+ @json_parametrize(("secret", "token", "now", "ttl_sec"), "invalid.json")
+ def test_invalid(self, secret, token, now, ttl_sec):
+ f = Fernet(base64.urlsafe_b64decode(secret.encode("ascii")))
+ with pytest.raises(InvalidToken):
+ f.decrypt(
+ token.encode("ascii"),
+ ttl=ttl_sec,
+ current_time=calendar.timegm(iso8601.parse_date(now).utctimetuple())
+ )
+
+ def test_unicode(self):
+ f = Fernet(b"\x00" * 32)
+ with pytest.raises(TypeError):
+ f.encrypt(six.u(""))
+ with pytest.raises(TypeError):
+ f.decrypt(six.u(""))