diff --git a/cryptography/hazmat/primitives/padding.py b/cryptography/hazmat/primitives/padding.py
index d78c6a5..c1a763b 100644
--- a/cryptography/hazmat/primitives/padding.py
+++ b/cryptography/hazmat/primitives/padding.py
@@ -20,6 +20,7 @@
 import six
 
 from cryptography import utils
+from cryptography.exceptions import AlreadyFinalized
 from cryptography.hazmat.bindings.utils import _create_modulename
 from cryptography.hazmat.primitives import interfaces
 
@@ -101,7 +102,7 @@
 
     def update(self, data):
         if self._buffer is None:
-            raise ValueError("Context was already finalized")
+            raise AlreadyFinalized("Context was already finalized")
 
         if isinstance(data, six.text_type):
             raise TypeError("Unicode-objects must be encoded before padding")
@@ -117,7 +118,7 @@
 
     def finalize(self):
         if self._buffer is None:
-            raise ValueError("Context was already finalized")
+            raise AlreadyFinalized("Context was already finalized")
 
         pad_size = self.block_size // 8 - len(self._buffer)
         result = self._buffer + six.int2byte(pad_size) * pad_size
@@ -134,7 +135,7 @@
 
     def update(self, data):
         if self._buffer is None:
-            raise ValueError("Context was already finalized")
+            raise AlreadyFinalized("Context was already finalized")
 
         if isinstance(data, six.text_type):
             raise TypeError("Unicode-objects must be encoded before unpadding")
@@ -153,7 +154,7 @@
 
     def finalize(self):
         if self._buffer is None:
-            raise ValueError("Context was already finalized")
+            raise AlreadyFinalized("Context was already finalized")
 
         if len(self._buffer) != self.block_size // 8:
             raise ValueError("Invalid padding bytes")
diff --git a/tests/hazmat/primitives/test_padding.py b/tests/hazmat/primitives/test_padding.py
index 932cef1..cac54f2 100644
--- a/tests/hazmat/primitives/test_padding.py
+++ b/tests/hazmat/primitives/test_padding.py
@@ -17,6 +17,7 @@
 
 import six
 
+from cryptography.exceptions import AlreadyFinalized
 from cryptography.hazmat.primitives import padding
 
 
@@ -97,15 +98,15 @@
     def test_use_after_finalize(self):
         padder = padding.PKCS7(128).padder()
         b = padder.finalize()
-        with pytest.raises(ValueError):
+        with pytest.raises(AlreadyFinalized):
             padder.update(b"")
-        with pytest.raises(ValueError):
+        with pytest.raises(AlreadyFinalized):
             padder.finalize()
 
         unpadder = padding.PKCS7(128).unpadder()
         unpadder.update(b)
         unpadder.finalize()
-        with pytest.raises(ValueError):
+        with pytest.raises(AlreadyFinalized):
             unpadder.update(b"")
-        with pytest.raises(ValueError):
+        with pytest.raises(AlreadyFinalized):
             unpadder.finalize()
