Merge pull request #999 from alex/remove-out-of-date-comment

Removed out of date comment
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index de87750..80ad872 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -16,6 +16,10 @@
   :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`
   and encryption support to
   :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`.
+* Added signature support to
+  :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`
+  and verification support to
+  :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`.
 
 0.3 - 2014-03-27
 ~~~~~~~~~~~~~~~~
diff --git a/cryptography/hazmat/backends/multibackend.py b/cryptography/hazmat/backends/multibackend.py
index 981a60b..753f4fc 100644
--- a/cryptography/hazmat/backends/multibackend.py
+++ b/cryptography/hazmat/backends/multibackend.py
@@ -158,6 +158,31 @@
         raise UnsupportedAlgorithm("DSA is not supported by the backend",
                                    _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM)
 
+    def create_dsa_verification_ctx(self, public_key, signature, algorithm):
+        for b in self._filtered_backends(DSABackend):
+            return b.create_dsa_verification_ctx(public_key, signature,
+                                                 algorithm)
+        raise UnsupportedAlgorithm("DSA is not supported by the backend",
+                                   _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM)
+
+    def create_dsa_signature_ctx(self, private_key, algorithm):
+        for b in self._filtered_backends(DSABackend):
+            return b.create_dsa_signature_ctx(private_key, algorithm)
+        raise UnsupportedAlgorithm("DSA is not supported by the backend",
+                                   _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM)
+
+    def dsa_hash_supported(self, algorithm):
+        for b in self._filtered_backends(DSABackend):
+            return b.dsa_hash_supported(algorithm)
+        raise UnsupportedAlgorithm("DSA is not supported by the backend",
+                                   _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM)
+
+    def dsa_parameters_supported(self, p, q, g):
+        for b in self._filtered_backends(DSABackend):
+            return b.dsa_parameters_supported(p, q, g)
+        raise UnsupportedAlgorithm("DSA is not supported by the backend",
+                                   _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM)
+
     def cmac_algorithm_supported(self, algorithm):
         return any(
             b.cmac_algorithm_supported(algorithm)
diff --git a/docs/hazmat/primitives/asymmetric/dsa.rst b/docs/hazmat/primitives/asymmetric/dsa.rst
index 1d58cce..f7abaf0 100644
--- a/docs/hazmat/primitives/asymmetric/dsa.rst
+++ b/docs/hazmat/primitives/asymmetric/dsa.rst
@@ -103,7 +103,7 @@
 
         Sign data which can be verified later by others using the public key.
 
-        .. code-block:: pycon
+        .. doctest::
 
             >>> from cryptography.hazmat.backends import default_backend
             >>> from cryptography.hazmat.primitives import hashes
@@ -167,7 +167,7 @@
         Verify data was signed by the private key associated with this public
         key.
 
-        .. code-block:: pycon
+        .. doctest::
 
             >>> from cryptography.hazmat.backends import default_backend
             >>> from cryptography.hazmat.primitives import hashes
diff --git a/tests/hazmat/backends/test_multibackend.py b/tests/hazmat/backends/test_multibackend.py
index d8c09bd..fd2a30c 100644
--- a/tests/hazmat/backends/test_multibackend.py
+++ b/tests/hazmat/backends/test_multibackend.py
@@ -107,6 +107,18 @@
     def generate_dsa_private_key(self, parameters):
         pass
 
+    def create_dsa_signature_ctx(self, private_key, algorithm):
+        pass
+
+    def create_dsa_verification_ctx(self, public_key, signature, algorithm):
+        pass
+
+    def dsa_hash_supported(self, algorithm):
+        pass
+
+    def dsa_parameters_supported(self, p, q, g):
+        pass
+
 
 @utils.register_interface(CMACBackend)
 class DummyCMACBackend(object):
@@ -227,6 +239,11 @@
         parameters = object()
         backend.generate_dsa_private_key(parameters)
 
+        backend.create_dsa_verification_ctx("public_key", "sig", hashes.SHA1())
+        backend.create_dsa_signature_ctx("private_key", hashes.SHA1())
+        backend.dsa_hash_supported(hashes.SHA1())
+        backend.dsa_parameters_supported(1, 2, 3)
+
         backend = MultiBackend([])
         with raises_unsupported_algorithm(
             _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM
@@ -238,6 +255,28 @@
         ):
             backend.generate_dsa_private_key(parameters)
 
+        with raises_unsupported_algorithm(
+            _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM
+        ):
+            backend.create_dsa_signature_ctx("private_key", hashes.SHA1())
+
+        with raises_unsupported_algorithm(
+            _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM
+        ):
+            backend.create_dsa_verification_ctx(
+                "public_key", b"sig", hashes.SHA1()
+            )
+
+        with raises_unsupported_algorithm(
+            _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM
+        ):
+            backend.dsa_hash_supported(hashes.SHA1())
+
+        with raises_unsupported_algorithm(
+            _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM
+        ):
+            backend.dsa_parameters_supported('p', 'q', 'g')
+
     def test_cmac(self):
         backend = MultiBackend([
             DummyCMACBackend([algorithms.AES])