Change method to property
diff --git a/docs/x509/reference.rst b/docs/x509/reference.rst
index 568eb40..3b14567 100644
--- a/docs/x509/reference.rst
+++ b/docs/x509/reference.rst
@@ -761,14 +761,11 @@
         key embedded in the CSR). This data may be used to validate the CSR
         signature.
 
-    .. method:: verify()
+    .. attribute:: is_signature_valid
 
         .. versionadded:: 1.3
 
-        :raises cryptography.exceptions.InvalidSignature: If the signature does
-            not validate.
-
-        Verifies the CSR signature.
+        Returns True if the CSR signature is correct, False otherwise.
 
 X.509 Certificate Revocation List Builder
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/src/cryptography/hazmat/backends/openssl/x509.py b/src/cryptography/hazmat/backends/openssl/x509.py
index 18274aa..c71f8d9 100644
--- a/src/cryptography/hazmat/backends/openssl/x509.py
+++ b/src/cryptography/hazmat/backends/openssl/x509.py
@@ -7,7 +7,7 @@
 import operator
 
 from cryptography import utils, x509
-from cryptography.exceptions import UnsupportedAlgorithm, InvalidSignature
+from cryptography.exceptions import UnsupportedAlgorithm
 from cryptography.hazmat.backends.openssl.decode_asn1 import (
     _CERTIFICATE_EXTENSION_PARSER, _CRL_EXTENSION_PARSER,
     _CSR_EXTENSION_PARSER, _REVOKED_CERTIFICATE_EXTENSION_PARSER,
@@ -363,7 +363,8 @@
     def signature(self):
         return _asn1_string_to_bytes(self._backend, self._x509_req.signature)
 
-    def verify(self):
+    @property
+    def is_signature_valid(self):
         pkey = self._backend._lib.X509_REQ_get_pubkey(self._x509_req)
         self._backend.openssl_assert(pkey != self._backend._ffi.NULL)
         pkey = self._backend._ffi.gc(pkey, self._backend._lib.EVP_PKEY_free)
@@ -371,4 +372,6 @@
 
         if res != 1:
             self._backend._consume_errors()
-            raise InvalidSignature
+            return False
+
+        return True
diff --git a/src/cryptography/x509/base.py b/src/cryptography/x509/base.py
index d24070d..4a22ed0 100644
--- a/src/cryptography/x509/base.py
+++ b/src/cryptography/x509/base.py
@@ -288,8 +288,8 @@
         2986.
         """
 
-    @abc.abstractmethod
-    def verify(self):
+    @abc.abstractproperty
+    def is_signature_valid(self):
         """
         Verifies signature of signing request.
         """
diff --git a/tests/test_x509.py b/tests/test_x509.py
index fde0755..0eef0bc 100644
--- a/tests/test_x509.py
+++ b/tests/test_x509.py
@@ -18,7 +18,7 @@
 import six
 
 from cryptography import utils, x509
-from cryptography.exceptions import UnsupportedAlgorithm, InvalidSignature
+from cryptography.exceptions import UnsupportedAlgorithm
 from cryptography.hazmat.backends.interfaces import (
     DSABackend, EllipticCurveBackend, RSABackend, X509Backend
 )
@@ -1241,23 +1241,21 @@
         with pytest.raises(TypeError):
             request.public_bytes('NotAnEncoding')
 
-    def test_verify_bad(self, backend):
+    def test_signature_invalid(self, backend):
         request = _load_cert(
             os.path.join("x509", "requests", "invalid_signature.pem"),
             x509.load_pem_x509_csr,
             backend
         )
+        assert not request.is_signature_valid
 
-        with pytest.raises(InvalidSignature):
-            request.verify()
-
-    def test_verify_good(self, backend):
+    def test_signature_valid(self, backend):
         request = _load_cert(
             os.path.join("x509", "requests", "rsa_sha256.pem"),
             x509.load_pem_x509_csr,
             backend
         )
-        request.verify()
+        assert request.is_signature_valid
 
     @pytest.mark.parametrize(
         ("request_path", "loader_func", "encoding"),