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