Key in the right place
diff --git a/cryptography/fernet.py b/cryptography/fernet.py
index 32bd35d..ae3a8bf 100644
--- a/cryptography/fernet.py
+++ b/cryptography/fernet.py
@@ -61,6 +61,7 @@
class Fernet(object):
def __init__(self, key, backend=None):
super(Fernet, self).__init__()
+ key = base64.urlsafe_b64decode(key)
assert len(key) == 32
self.signing_key = key[:16]
self.encryption_key = key[16:]
diff --git a/tests/test_fernet.py b/tests/test_fernet.py
index 922f722..4080bd2 100644
--- a/tests/test_fernet.py
+++ b/tests/test_fernet.py
@@ -40,7 +40,7 @@
("secret", "now", "iv", "src", "token"), "generate.json",
)
def test_generate(self, secret, now, iv, src, token):
- f = Fernet(base64.urlsafe_b64decode(secret.encode("ascii")))
+ f = Fernet(secret.encode("ascii"))
actual_token = f._encrypt_from_parts(
src.encode("ascii"),
calendar.timegm(iso8601.parse_date(now).utctimetuple()),
@@ -52,7 +52,7 @@
("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")))
+ f = Fernet(secret.encode("ascii"))
current_time = calendar.timegm(iso8601.parse_date(now).utctimetuple())
payload = f.decrypt(
token.encode("ascii"), ttl=ttl_sec, current_time=current_time
@@ -61,7 +61,7 @@
@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")))
+ f = Fernet(secret.encode("ascii"))
current_time = calendar.timegm(iso8601.parse_date(now).utctimetuple())
with pytest.raises(InvalidToken):
f.decrypt(
@@ -69,7 +69,7 @@
)
def test_unicode(self):
- f = Fernet(b"\x00" * 32)
+ f = Fernet(base64.b64encode(b"\x00" * 32))
with pytest.raises(TypeError):
f.encrypt(six.u(""))
with pytest.raises(TypeError):
@@ -77,5 +77,5 @@
@pytest.mark.parametrize("message", [b"", b"Abc!", b"\x00\xFF\x00\x80"])
def test_roundtrips(self, message):
- f = Fernet(b"\x00" * 32)
+ f = Fernet(base64.urlsafe_b64encode(b"\x00" * 32))
assert f.decrypt(f.encrypt(message)) == message