diff --git a/cryptography/primitives/block/base.py b/cryptography/primitives/block/base.py
index 207c83d..2018138 100644
--- a/cryptography/primitives/block/base.py
+++ b/cryptography/primitives/block/base.py
@@ -12,9 +12,16 @@
 # limitations under the License.
 
 # TODO: which binding is used should be an option somewhere
+from enum import Enum
+
 from cryptography.bindings.openssl import api
 
 
+class _Operation(Enum):
+    encrypt = "encrypt"
+    decrypt = "decrypt"
+
+
 class BlockCipher(object):
     def __init__(self, cipher, mode):
         super(BlockCipher, self).__init__()
@@ -34,10 +41,10 @@
             raise ValueError("BlockCipher was already finalized")
 
         if self._operation is None:
-            self._operation = "encrypt"
-        elif self._operation != "encrypt":
+            self._operation = _Operation.encrypt
+        elif self._operation is not _Operation.encrypt:
             raise ValueError("BlockCipher cannot encrypt when the operation is"
-                             " set to %s" % self._operation)
+                             " set to %s" % self._operation.name)
 
         return api.update_encrypt_context(self._ctx, plaintext)
 
@@ -45,11 +52,11 @@
         if self._ctx is None:
             raise ValueError("BlockCipher was already finalized")
 
-        if self._operation == "encrypt":
+        if self._operation is _Operation.encrypt:
             result = api.finalize_encrypt_context(self._ctx)
         else:
             raise ValueError("BlockCipher cannot finalize the unknown "
-                             "operation %s" % self._operation)
+                             "operation %s" % self._operation.name)
 
         self._ctx = None
         return result
diff --git a/setup.py b/setup.py
index c3b754f..8fd8a72 100644
--- a/setup.py
+++ b/setup.py
@@ -10,12 +10,19 @@
 # implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+import sys
 
 from setuptools import setup
 
+install_requires = [
+    "cffi>=0.6",
+]
+
+if sys.version_info[:2] < (3, 4):
+    install_requires += ["enum34"]
 
 setup(
     name="cryptography",
     license="Apache License, Version 2.0",
-    install_requires=["cffi>=0.6"],
+    install_requires=install_requires,
 )
diff --git a/tests/primitives/test_block.py b/tests/primitives/test_block.py
index 799e5f0..9059a88 100644
--- a/tests/primitives/test_block.py
+++ b/tests/primitives/test_block.py
@@ -13,9 +13,11 @@
 
 import binascii
 
+import pretend
 import pytest
 
 from cryptography.primitives.block import BlockCipher, ciphers, modes
+from cryptography.primitives.block.base import _Operation
 
 
 class TestBlockCipher(object):
@@ -43,7 +45,7 @@
             ciphers.AES(binascii.unhexlify(b"0" * 32)),
             modes.CBC(binascii.unhexlify(b"0" * 32))
         )
-        cipher._operation = "decrypt"
+        cipher._operation = _Operation.decrypt
 
         with pytest.raises(ValueError):
             cipher.encrypt(b"b" * 16)
@@ -53,7 +55,7 @@
             ciphers.AES(binascii.unhexlify(b"0" * 32)),
             modes.CBC(binascii.unhexlify(b"0" * 32))
         )
-        cipher._operation = "wat"
+        cipher._operation = pretend.stub(name="wat")
 
         with pytest.raises(ValueError):
             cipher.encrypt(b"b" * 16)
diff --git a/tox.ini b/tox.ini
index 81c6675..80e0a15 100644
--- a/tox.ini
+++ b/tox.ini
@@ -2,7 +2,7 @@
 envlist = py26,py27,pypy,py32,py33,docs,pep8
 
 [testenv]
-deps = pytest-cov
+deps = pytest-cov pretend
 commands = py.test --cov=cryptography/ --cov=tests/
 
 [testenv:docs]
