diff --git a/src/cryptography/hazmat/backends/openssl/dsa.py b/src/cryptography/hazmat/backends/openssl/dsa.py
index f1bb6d9..ec05676 100644
--- a/src/cryptography/hazmat/backends/openssl/dsa.py
+++ b/src/cryptography/hazmat/backends/openssl/dsa.py
@@ -29,9 +29,6 @@
 @utils.register_interface(AsymmetricVerificationContext)
 class _DSAVerificationContext(object):
     def __init__(self, backend, public_key, signature, algorithm):
-        if not isinstance(signature, bytes):
-            raise TypeError("signature must be bytes.")
-
         self._backend = backend
         self._public_key = public_key
         self._signature = signature
@@ -179,6 +176,9 @@
     key_size = utils.read_only_property("_key_size")
 
     def verifier(self, signature, signature_algorithm):
+        if not isinstance(signature, bytes):
+            raise TypeError("signature must be bytes.")
+
         return _DSAVerificationContext(
             self._backend, self, signature, signature_algorithm
         )
diff --git a/src/cryptography/hazmat/backends/openssl/ec.py b/src/cryptography/hazmat/backends/openssl/ec.py
index b8692e4..6764416 100644
--- a/src/cryptography/hazmat/backends/openssl/ec.py
+++ b/src/cryptography/hazmat/backends/openssl/ec.py
@@ -119,8 +119,6 @@
 @utils.register_interface(AsymmetricVerificationContext)
 class _ECDSAVerificationContext(object):
     def __init__(self, backend, public_key, signature, algorithm):
-        if not isinstance(signature, bytes):
-            raise TypeError("signature must be bytes.")
         self._backend = backend
         self._public_key = public_key
         self._signature = signature
@@ -227,6 +225,9 @@
     curve = utils.read_only_property("_curve")
 
     def verifier(self, signature, signature_algorithm):
+        if not isinstance(signature, bytes):
+            raise TypeError("signature must be bytes.")
+
         if isinstance(signature_algorithm, ec.ECDSA):
             return _ECDSAVerificationContext(
                 self._backend, self, signature, signature_algorithm.algorithm
diff --git a/src/cryptography/hazmat/backends/openssl/rsa.py b/src/cryptography/hazmat/backends/openssl/rsa.py
index 8e32eb0..7da4229 100644
--- a/src/cryptography/hazmat/backends/openssl/rsa.py
+++ b/src/cryptography/hazmat/backends/openssl/rsa.py
@@ -337,9 +337,6 @@
 @utils.register_interface(AsymmetricVerificationContext)
 class _RSAVerificationContext(object):
     def __init__(self, backend, public_key, signature, padding, algorithm):
-        if not isinstance(signature, bytes):
-            raise TypeError("signature must be bytes.")
-
         self._backend = backend
         self._public_key = public_key
         self._signature = signature
@@ -578,6 +575,9 @@
     key_size = utils.read_only_property("_key_size")
 
     def verifier(self, signature, padding, algorithm):
+        if not isinstance(signature, bytes):
+            raise TypeError("signature must be bytes.")
+
         return _RSAVerificationContext(
             self._backend, self, signature, padding, algorithm
         )
