diff --git a/.travis.yml b/.travis.yml
index 9710537..cf6ecef 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,6 +13,7 @@
     - TOX_ENV=pypy CC=clang
     - TOX_ENV=docs
     - TOX_ENV=pep8
+    - TOX_ENV=py3pep8
 
 install:
     - "[[ ${TOX_ENV} == pypy ]] && sudo add-apt-repository -y ppa:pypy/ppa || true"
diff --git a/cryptography/hazmat/bindings/openssl/backend.py b/cryptography/hazmat/bindings/openssl/backend.py
index 8de37d5..fc73dd3 100644
--- a/cryptography/hazmat/bindings/openssl/backend.py
+++ b/cryptography/hazmat/bindings/openssl/backend.py
@@ -20,7 +20,7 @@
 
 from cryptography.hazmat.primitives import interfaces
 from cryptography.hazmat.primitives.block.ciphers import (
-    AES, Camellia, TripleDES,
+    AES, Blowfish, Camellia, CAST5, TripleDES,
 )
 from cryptography.hazmat.primitives.block.modes import CBC, CTR, ECB, OFB, CFB
 
@@ -221,6 +221,17 @@
                 mode_cls,
                 GetCipherByName("des-ede3-{mode.name}")
             )
+        for mode_cls in [CBC, CFB, OFB, ECB]:
+            self.register_cipher_adapter(
+                Blowfish,
+                mode_cls,
+                GetCipherByName("bf-{mode.name}")
+            )
+        self.register_cipher_adapter(
+            CAST5,
+            ECB,
+            GetCipherByName("cast5-ecb")
+        )
 
     def create_encrypt_ctx(self, cipher, mode):
         return _CipherContext(self._backend, cipher, mode,
diff --git a/cryptography/hazmat/primitives/block/ciphers.py b/cryptography/hazmat/primitives/block/ciphers.py
index 4143b89..8046bd2 100644
--- a/cryptography/hazmat/primitives/block/ciphers.py
+++ b/cryptography/hazmat/primitives/block/ciphers.py
@@ -76,3 +76,43 @@
     @property
     def key_size(self):
         return len(self.key) * 8
+
+
+class Blowfish(object):
+    name = "Blowfish"
+    block_size = 64
+    key_sizes = frozenset(range(32, 449, 8))
+
+    def __init__(self, key):
+        super(Blowfish, self).__init__()
+        self.key = key
+
+        # Verify that the key size matches the expected key size
+        if self.key_size not in self.key_sizes:
+            raise ValueError("Invalid key size ({0}) for {1}".format(
+                self.key_size, self.name
+            ))
+
+    @property
+    def key_size(self):
+        return len(self.key) * 8
+
+
+class CAST5(object):
+    name = "CAST5"
+    block_size = 64
+    key_sizes = frozenset([40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128])
+
+    def __init__(self, key):
+        super(CAST5, self).__init__()
+        self.key = key
+
+        # Verify that the key size matches the expected key size
+        if self.key_size not in self.key_sizes:
+            raise ValueError("Invalid key size ({0}) for {1}".format(
+                self.key_size, self.name
+            ))
+
+    @property
+    def key_size(self):
+        return len(self.key) * 8
diff --git a/docs/hazmat/primitives/symmetric-encryption.rst b/docs/hazmat/primitives/symmetric-encryption.rst
index 1e047b7..5852dc2 100644
--- a/docs/hazmat/primitives/symmetric-encryption.rst
+++ b/docs/hazmat/primitives/symmetric-encryption.rst
@@ -107,6 +107,33 @@
                       ``56`` bits long), they can simply be concatenated to
                       produce the full key. This must be kept secret.
 
+.. class:: CAST5(key)
+
+    CAST5 (also known as CAST-128) is a block cipher approved for use in the
+    Canadian government by their Communications Security Establishment. It is a
+    variable key length cipher and supports keys from 40-128 bits in length.
+
+    :param bytes key: The secret key, 40-128 bits in length (in increments of
+                      8).  This must be kept secret.
+
+Weak Ciphers
+------------
+
+.. warning::
+
+    These ciphers are considered weak for a variety of reasons. New
+    applications should avoid their use and existing applications should
+    strongly consider migrating away.
+
+.. class:: Blowfish(key)
+
+    Blowfish is a block cipher developed by Bruce Schneier. It is known to be
+    susceptible to attacks when using weak keys. The author has recommended
+    that users of Blowfish move to newer algorithms like
+    :class:`AES`.
+
+    :param bytes key: The secret key, 32-448 bits in length (in increments of
+                      8).  This must be kept secret.
 
 Modes
 ~~~~~
diff --git a/tests/hazmat/primitives/test_aes.py b/tests/hazmat/primitives/test_aes.py
index 0caac3b..192da64 100644
--- a/tests/hazmat/primitives/test_aes.py
+++ b/tests/hazmat/primitives/test_aes.py
@@ -11,10 +11,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-"""
-Test using the NIST Test Vectors
-"""
-
 from __future__ import absolute_import, division, print_function
 
 import binascii
@@ -28,7 +24,7 @@
 )
 
 
-class TestAES_CBC(object):
+class TestAES(object):
     test_CBC = generate_encrypt_test(
         lambda path: load_nist_vectors_from_file(path, "ENCRYPT"),
         os.path.join("ciphers", "AES", "CBC"),
@@ -53,8 +49,6 @@
         lambda key, iv: modes.CBC(binascii.unhexlify(iv)),
     )
 
-
-class TestAES_ECB(object):
     test_ECB = generate_encrypt_test(
         lambda path: load_nist_vectors_from_file(path, "ENCRYPT"),
         os.path.join("ciphers", "AES", "ECB"),
@@ -79,8 +73,6 @@
         lambda key: modes.ECB(),
     )
 
-
-class TestAES_OFB(object):
     test_OFB = generate_encrypt_test(
         lambda path: load_nist_vectors_from_file(path, "ENCRYPT"),
         os.path.join("ciphers", "AES", "OFB"),
@@ -105,8 +97,6 @@
         lambda key, iv: modes.OFB(binascii.unhexlify(iv)),
     )
 
-
-class TestAES_CFB(object):
     test_CFB = generate_encrypt_test(
         lambda path: load_nist_vectors_from_file(path, "ENCRYPT"),
         os.path.join("ciphers", "AES", "CFB"),
@@ -131,8 +121,6 @@
         lambda key, iv: modes.CFB(binascii.unhexlify(iv)),
     )
 
-
-class TestAES_CTR(object):
     test_CTR = generate_encrypt_test(
         load_openssl_vectors_from_file,
         os.path.join("ciphers", "AES", "CTR"),
diff --git a/tests/hazmat/primitives/test_blowfish.py b/tests/hazmat/primitives/test_blowfish.py
new file mode 100644
index 0000000..cd5e03a
--- /dev/null
+++ b/tests/hazmat/primitives/test_blowfish.py
@@ -0,0 +1,72 @@
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from __future__ import absolute_import, division, print_function
+
+import binascii
+import os
+
+from cryptography.hazmat.primitives.block import ciphers, modes
+
+from .utils import generate_encrypt_test
+from ...utils import load_nist_vectors_from_file
+
+
+class TestBlowfish(object):
+    test_ECB = generate_encrypt_test(
+        lambda path: load_nist_vectors_from_file(path, "ENCRYPT"),
+        os.path.join("ciphers", "Blowfish"),
+        ["bf-ecb.txt"],
+        lambda key: ciphers.Blowfish(binascii.unhexlify(key)),
+        lambda key: modes.ECB(),
+        only_if=lambda backend: backend.ciphers.supported(
+            ciphers.Blowfish("\x00" * 56), modes.ECB()
+        ),
+        skip_message="Does not support Blowfish ECB",
+    )
+
+    test_CBC = generate_encrypt_test(
+        lambda path: load_nist_vectors_from_file(path, "ENCRYPT"),
+        os.path.join("ciphers", "Blowfish"),
+        ["bf-cbc.txt"],
+        lambda key, iv: ciphers.Blowfish(binascii.unhexlify(key)),
+        lambda key, iv: modes.CBC(binascii.unhexlify(iv)),
+        only_if=lambda backend: backend.ciphers.supported(
+            ciphers.Blowfish("\x00" * 56), modes.CBC("\x00" * 8)
+        ),
+        skip_message="Does not support Blowfish CBC",
+    )
+
+    test_OFB = generate_encrypt_test(
+        lambda path: load_nist_vectors_from_file(path, "ENCRYPT"),
+        os.path.join("ciphers", "Blowfish"),
+        ["bf-ofb.txt"],
+        lambda key, iv: ciphers.Blowfish(binascii.unhexlify(key)),
+        lambda key, iv: modes.OFB(binascii.unhexlify(iv)),
+        only_if=lambda backend: backend.ciphers.supported(
+            ciphers.Blowfish("\x00" * 56), modes.OFB("\x00" * 8)
+        ),
+        skip_message="Does not support Blowfish OFB",
+    )
+
+    test_CFB = generate_encrypt_test(
+        lambda path: load_nist_vectors_from_file(path, "ENCRYPT"),
+        os.path.join("ciphers", "Blowfish"),
+        ["bf-cfb.txt"],
+        lambda key, iv: ciphers.Blowfish(binascii.unhexlify(key)),
+        lambda key, iv: modes.CFB(binascii.unhexlify(iv)),
+        only_if=lambda backend: backend.ciphers.supported(
+            ciphers.Blowfish("\x00" * 56), modes.CFB("\x00" * 8)
+        ),
+        skip_message="Does not support Blowfish CFB",
+    )
diff --git a/tests/hazmat/primitives/test_camellia.py b/tests/hazmat/primitives/test_camellia.py
index 46e724b..605c18d 100644
--- a/tests/hazmat/primitives/test_camellia.py
+++ b/tests/hazmat/primitives/test_camellia.py
@@ -11,10 +11,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-"""
-Tests using the CRYPTREC (Camellia) Test Vectors
-"""
-
 from __future__ import absolute_import, division, print_function
 
 import binascii
@@ -28,7 +24,7 @@
 )
 
 
-class TestCamelliaECB(object):
+class TestCamellia(object):
     test_ECB = generate_encrypt_test(
         load_cryptrec_vectors_from_file,
         os.path.join("ciphers", "Camellia"),
@@ -45,8 +41,6 @@
         skip_message="Does not support Camellia ECB",
     )
 
-
-class TestCamelliaCBC(object):
     test_CBC = generate_encrypt_test(
         load_openssl_vectors_from_file,
         os.path.join("ciphers", "Camellia"),
@@ -59,8 +53,6 @@
         skip_message="Does not support Camellia CBC",
     )
 
-
-class TestCamelliaOFB(object):
     test_OFB = generate_encrypt_test(
         load_openssl_vectors_from_file,
         os.path.join("ciphers", "Camellia"),
@@ -73,8 +65,6 @@
         skip_message="Does not support Camellia OFB",
     )
 
-
-class TestCamelliaCFB(object):
     test_CFB = generate_encrypt_test(
         load_openssl_vectors_from_file,
         os.path.join("ciphers", "Camellia"),
diff --git a/tests/hazmat/primitives/test_cast5.py b/tests/hazmat/primitives/test_cast5.py
new file mode 100644
index 0000000..bd86115
--- /dev/null
+++ b/tests/hazmat/primitives/test_cast5.py
@@ -0,0 +1,38 @@
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from __future__ import absolute_import, division, print_function
+
+import binascii
+import os
+
+from cryptography.hazmat.primitives.block import ciphers, modes
+
+from .utils import generate_encrypt_test
+from ...utils import load_nist_vectors_from_file
+
+
+class TestCAST5(object):
+    test_ECB = generate_encrypt_test(
+        lambda path: load_nist_vectors_from_file(path, "ENCRYPT"),
+        os.path.join("ciphers", "CAST5"),
+        [
+            "cast5-ecb.txt",
+        ],
+        lambda key: ciphers.CAST5(binascii.unhexlify((key))),
+        lambda key: modes.ECB(),
+        only_if=lambda backend: backend.ciphers.supported(
+            ciphers.CAST5("\x00" * 16), modes.ECB()
+        ),
+        skip_message="Does not support CAST5 ECB",
+    )
diff --git a/tests/hazmat/primitives/test_ciphers.py b/tests/hazmat/primitives/test_ciphers.py
index 26b297a..d3870a0 100644
--- a/tests/hazmat/primitives/test_ciphers.py
+++ b/tests/hazmat/primitives/test_ciphers.py
@@ -18,7 +18,7 @@
 import pytest
 
 from cryptography.hazmat.primitives.block.ciphers import (
-    AES, Camellia, TripleDES,
+    AES, Camellia, TripleDES, Blowfish, CAST5
 )
 
 
@@ -65,3 +65,29 @@
     def test_invalid_key_size(self):
         with pytest.raises(ValueError):
             TripleDES(binascii.unhexlify(b"0" * 12))
+
+
+class TestBlowfish(object):
+    @pytest.mark.parametrize(("key", "keysize"), [
+        (b"0" * (keysize // 4), keysize) for keysize in range(32, 449, 8)
+    ])
+    def test_key_size(self, key, keysize):
+        cipher = Blowfish(binascii.unhexlify(key))
+        assert cipher.key_size == keysize
+
+    def test_invalid_key_size(self):
+        with pytest.raises(ValueError):
+            Blowfish(binascii.unhexlify(b"0" * 6))
+
+
+class TestCAST5(object):
+    @pytest.mark.parametrize(("key", "keysize"), [
+        (b"0" * (keysize // 4), keysize) for keysize in range(40, 129, 8)
+    ])
+    def test_key_size(self, key, keysize):
+        cipher = CAST5(binascii.unhexlify(key))
+        assert cipher.key_size == keysize
+
+    def test_invalid_key_size(self):
+        with pytest.raises(ValueError):
+            CAST5(binascii.unhexlify(b"0" * 34))
diff --git a/tests/hazmat/primitives/vectors/ciphers/Blowfish/bf-cbc.txt b/tests/hazmat/primitives/vectors/ciphers/Blowfish/bf-cbc.txt
new file mode 100644
index 0000000..184d956
--- /dev/null
+++ b/tests/hazmat/primitives/vectors/ciphers/Blowfish/bf-cbc.txt
@@ -0,0 +1,11 @@
+# Reformatted from https://www.schneier.com/code/vectors.txt
+# to look like the NIST vectors
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 0123456789ABCDEFF0E1D2C3B4A59687
+IV = FEDCBA9876543210
+# this pt is implicitly padded with null bytes for CBC
+PLAINTEXT = 37363534333231204E6F77206973207468652074696D6520666F722000000000
+CIPHERTEXT = 6B77B4D63006DEE605B156E27403979358DEB9E7154616D959F1652BD5FF92CC
diff --git a/tests/hazmat/primitives/vectors/ciphers/Blowfish/bf-cfb.txt b/tests/hazmat/primitives/vectors/ciphers/Blowfish/bf-cfb.txt
new file mode 100644
index 0000000..8a326f5
--- /dev/null
+++ b/tests/hazmat/primitives/vectors/ciphers/Blowfish/bf-cfb.txt
@@ -0,0 +1,10 @@
+# Reformatted from https://www.schneier.com/code/vectors.txt
+# to look like the NIST vectors
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 0123456789ABCDEFF0E1D2C3B4A59687
+IV = FEDCBA9876543210
+PLAINTEXT = 37363534333231204E6F77206973207468652074696D6520666F722000
+CIPHERTEXT = E73214A2822139CAF26ECF6D2EB9E76E3DA3DE04D1517200519D57A6C3
diff --git a/tests/hazmat/primitives/vectors/ciphers/Blowfish/bf-ecb.txt b/tests/hazmat/primitives/vectors/ciphers/Blowfish/bf-ecb.txt
new file mode 100644
index 0000000..bb18a5a
--- /dev/null
+++ b/tests/hazmat/primitives/vectors/ciphers/Blowfish/bf-ecb.txt
@@ -0,0 +1,298 @@
+# Reformatted from https://www.schneier.com/code/vectors.txt
+# to look like the NIST vectors
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = 4EF997456198DD78
+
+COUNT = 1
+KEY = FFFFFFFFFFFFFFFF
+PLAINTEXT = FFFFFFFFFFFFFFFF
+CIPHERTEXT = 51866FD5B85ECB8A
+
+COUNT = 2
+KEY = 3000000000000000
+PLAINTEXT = 1000000000000001
+CIPHERTEXT = 7D856F9A613063F2
+
+COUNT = 3
+KEY = 1111111111111111
+PLAINTEXT = 1111111111111111
+CIPHERTEXT = 2466DD878B963C9D
+
+COUNT = 4
+KEY = 0123456789ABCDEF
+PLAINTEXT = 1111111111111111
+CIPHERTEXT = 61F9C3802281B096
+
+COUNT = 5
+KEY = 1111111111111111
+PLAINTEXT = 0123456789ABCDEF
+CIPHERTEXT = 7D0CC630AFDA1EC7
+
+COUNT = 6
+KEY = 0000000000000000
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = 4EF997456198DD78
+
+COUNT = 7
+KEY = FEDCBA9876543210
+PLAINTEXT = 0123456789ABCDEF
+CIPHERTEXT = 0ACEAB0FC6A0A28D
+
+COUNT = 8
+KEY = 7CA110454A1A6E57
+PLAINTEXT = 01A1D6D039776742
+CIPHERTEXT = 59C68245EB05282B
+
+COUNT = 9
+KEY = 0131D9619DC1376E
+PLAINTEXT = 5CD54CA83DEF57DA
+CIPHERTEXT = B1B8CC0B250F09A0
+
+COUNT = 10
+KEY = 07A1133E4A0B2686
+PLAINTEXT = 0248D43806F67172
+CIPHERTEXT = 1730E5778BEA1DA4
+
+COUNT = 11
+KEY = 3849674C2602319E
+PLAINTEXT = 51454B582DDF440A
+CIPHERTEXT = A25E7856CF2651EB
+
+COUNT = 12
+KEY = 04B915BA43FEB5B6
+PLAINTEXT = 42FD443059577FA2
+CIPHERTEXT = 353882B109CE8F1A
+
+COUNT = 13
+KEY = 0113B970FD34F2CE
+PLAINTEXT = 059B5E0851CF143A
+CIPHERTEXT = 48F4D0884C379918
+
+COUNT = 14
+KEY = 0170F175468FB5E6
+PLAINTEXT = 0756D8E0774761D2
+CIPHERTEXT = 432193B78951FC98
+
+COUNT = 15
+KEY = 43297FAD38E373FE
+PLAINTEXT = 762514B829BF486A
+CIPHERTEXT = 13F04154D69D1AE5
+
+COUNT = 16
+KEY = 07A7137045DA2A16
+PLAINTEXT = 3BDD119049372802
+CIPHERTEXT = 2EEDDA93FFD39C79
+
+COUNT = 17
+KEY = 04689104C2FD3B2F
+PLAINTEXT = 26955F6835AF609A
+CIPHERTEXT = D887E0393C2DA6E3
+
+COUNT = 18
+KEY = 37D06BB516CB7546
+PLAINTEXT = 164D5E404F275232
+CIPHERTEXT = 5F99D04F5B163969
+
+COUNT = 19
+KEY = 1F08260D1AC2465E
+PLAINTEXT = 6B056E18759F5CCA
+CIPHERTEXT = 4A057A3B24D3977B
+
+COUNT = 20
+KEY = 584023641ABA6176
+PLAINTEXT = 004BD6EF09176062
+CIPHERTEXT = 452031C1E4FADA8E
+
+COUNT = 21
+KEY = 025816164629B007
+PLAINTEXT = 480D39006EE762F2
+CIPHERTEXT = 7555AE39F59B87BD
+
+COUNT = 22
+KEY = 49793EBC79B3258F
+PLAINTEXT = 437540C8698F3CFA
+CIPHERTEXT = 53C55F9CB49FC019
+
+COUNT = 23
+KEY = 4FB05E1515AB73A7
+PLAINTEXT = 072D43A077075292
+CIPHERTEXT = 7A8E7BFA937E89A3
+
+COUNT = 24
+KEY = 49E95D6D4CA229BF
+PLAINTEXT = 02FE55778117F12A
+CIPHERTEXT = CF9C5D7A4986ADB5
+
+COUNT = 25
+KEY = 018310DC409B26D6
+PLAINTEXT = 1D9D5C5018F728C2
+CIPHERTEXT = D1ABB290658BC778
+
+COUNT = 26
+KEY = 1C587F1C13924FEF
+PLAINTEXT = 305532286D6F295A
+CIPHERTEXT = 55CB3774D13EF201
+
+COUNT = 27
+KEY = 0101010101010101
+PLAINTEXT = 0123456789ABCDEF
+CIPHERTEXT = FA34EC4847B268B2
+
+COUNT = 28
+KEY = 1F1F1F1F0E0E0E0E
+PLAINTEXT = 0123456789ABCDEF
+CIPHERTEXT = A790795108EA3CAE
+
+COUNT = 29
+KEY = E0FEE0FEF1FEF1FE
+PLAINTEXT = 0123456789ABCDEF
+CIPHERTEXT = C39E072D9FAC631D
+
+COUNT = 30
+KEY = 0000000000000000
+PLAINTEXT = FFFFFFFFFFFFFFFF
+CIPHERTEXT = 014933E0CDAFF6E4
+
+COUNT = 31
+KEY = FFFFFFFFFFFFFFFF
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = F21E9A77B71C49BC
+
+COUNT = 32
+KEY = 0123456789ABCDEF
+PLAINTEXT = 0000000000000000
+CIPHERTEXT = 245946885754369A
+
+COUNT = 33
+KEY = FEDCBA9876543210
+PLAINTEXT = FFFFFFFFFFFFFFFF
+CIPHERTEXT = 6B5C5A9C5D9E0A5A
+
+# Blowfish is specified for key lengths 32-448 bit
+# This an 8-bit key
+# COUNT = 34
+# KEY = F0
+# PLAINTEXT = FEDCBA9876543210
+# CIPHERTEXT = F9AD597C49DB005E
+
+# This a 16-bit key
+# COUNT = 35
+# KEY = F0E1
+# PLAINTEXT = FEDCBA9876543210
+# CIPHERTEXT = E91D21C1D961A6D6
+
+# This a 24-bit key
+# COUNT = 36
+# KEY = F0E1D2
+# PLAINTEXT = FEDCBA9876543210
+# CIPHERTEXT = E9C2B70A1BC65CF3
+
+COUNT = 37
+KEY = F0E1D2C3
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = BE1E639408640F05
+
+COUNT = 38
+KEY = F0E1D2C3B4
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = B39E44481BDB1E6E
+
+COUNT = 39
+KEY = F0E1D2C3B4A5
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 9457AA83B1928C0D
+
+COUNT = 40
+KEY = F0E1D2C3B4A596
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 8BB77032F960629D
+
+COUNT = 41
+KEY = F0E1D2C3B4A59687
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = E87A244E2CC85E82
+
+COUNT = 42
+KEY = F0E1D2C3B4A5968778
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 15750E7A4F4EC577
+
+COUNT = 43
+KEY = F0E1D2C3B4A596877869
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 122BA70B3AB64AE0
+
+COUNT = 44
+KEY = F0E1D2C3B4A5968778695A
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 3A833C9AFFC537F6
+
+COUNT = 45
+KEY = F0E1D2C3B4A5968778695A4B
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 9409DA87A90F6BF2
+
+COUNT = 46
+KEY = F0E1D2C3B4A5968778695A4B3C
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 884F80625060B8B4
+
+COUNT = 47
+KEY = F0E1D2C3B4A5968778695A4B3C2D
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 1F85031C19E11968
+
+COUNT = 48
+KEY = F0E1D2C3B4A5968778695A4B3C2D1E
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 79D9373A714CA34F
+
+COUNT = 49
+KEY = F0E1D2C3B4A5968778695A4B3C2D1E0F
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 93142887EE3BE15C
+
+COUNT = 50
+KEY = F0E1D2C3B4A5968778695A4B3C2D1E0F00
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 03429E838CE2D14B
+
+COUNT = 51
+KEY = F0E1D2C3B4A5968778695A4B3C2D1E0F0011
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = A4299E27469FF67B
+
+COUNT = 52
+KEY = F0E1D2C3B4A5968778695A4B3C2D1E0F001122
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = AFD5AED1C1BC96A8
+
+COUNT = 53
+KEY = F0E1D2C3B4A5968778695A4B3C2D1E0F00112233
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 10851C0E3858DA9F
+
+COUNT = 54
+KEY = F0E1D2C3B4A5968778695A4B3C2D1E0F0011223344
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = E6F51ED79B9DB21F
+
+COUNT = 55
+KEY = F0E1D2C3B4A5968778695A4B3C2D1E0F001122334455
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 64A6E14AFD36B46F
+
+COUNT = 56
+KEY = F0E1D2C3B4A5968778695A4B3C2D1E0F00112233445566
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 80C7D7D45A5479AD
+
+COUNT = 57
+KEY = F0E1D2C3B4A5968778695A4B3C2D1E0F0011223344556677
+PLAINTEXT = FEDCBA9876543210
+CIPHERTEXT = 05044B62FA52D080
diff --git a/tests/hazmat/primitives/vectors/ciphers/Blowfish/bf-ofb.txt b/tests/hazmat/primitives/vectors/ciphers/Blowfish/bf-ofb.txt
new file mode 100644
index 0000000..21a7421
--- /dev/null
+++ b/tests/hazmat/primitives/vectors/ciphers/Blowfish/bf-ofb.txt
@@ -0,0 +1,10 @@
+# Reformatted from https://www.schneier.com/code/vectors.txt
+# to look like the NIST vectors
+
+[ENCRYPT]
+
+COUNT = 0
+KEY = 0123456789ABCDEFF0E1D2C3B4A59687
+IV = FEDCBA9876543210
+PLAINTEXT = 37363534333231204E6F77206973207468652074696D6520666F722000
+CIPHERTEXT = E73214A2822139CA62B343CC5B65587310DD908D0C241B2263C2CF80DA
diff --git a/tests/hazmat/primitives/vectors/ciphers/CAST5/cast5-ecb.txt b/tests/hazmat/primitives/vectors/ciphers/CAST5/cast5-ecb.txt
new file mode 100644
index 0000000..04c7861
--- /dev/null
+++ b/tests/hazmat/primitives/vectors/ciphers/CAST5/cast5-ecb.txt
@@ -0,0 +1,19 @@
+# CAST5 (CAST128) ECB vectors from RFC 2144
+[ENCRYPT]
+# 128-bit key
+COUNT = 0
+key = 0123456712345678234567893456789A
+plaintext = 0123456789ABCDEF
+ciphertext = 238B4FE5847E44B2
+
+# 80-bit key
+COUNT = 1
+key = 01234567123456782345
+plaintext = 0123456789ABCDEF
+ciphertext = EB6A711A2C02271B
+
+# 40-bit key
+COUNT = 2
+key = 0123456712
+plaintext = 0123456789ABCDEF
+ciphertext = 7AC816D16E9B302E
diff --git a/tox.ini b/tox.ini
index 92bcb75..c0a9738 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
 [tox]
-envlist = py26,py27,pypy,py32,py33,docs,pep8
+envlist = py26,py27,pypy,py32,py33,docs,pep8,py3pep8
 
 [testenv]
 deps =
@@ -18,9 +18,19 @@
     sphinx-build -W -b doctest -d {envtmpdir}/doctrees docs docs/_build/html
     sphinx-build -W -b linkcheck docs docs/_build/html
 
+# Temporarily disable coverage on pypy because of performance problems with
+# coverage.py on pypy.
+[testenv:pypy]
+commands = py.test
+
 [testenv:pep8]
 deps = flake8
 commands = flake8 .
 
+[testenv:py3pep8]
+basepython = python3.3
+deps = flake8
+commands = flake8 .
+
 [flake8]
 exclude = .tox,*.egg
