rename backend method, add some docs
diff --git a/cryptography/hazmat/backends/interfaces.py b/cryptography/hazmat/backends/interfaces.py
index 70168a0..5ed4996 100644
--- a/cryptography/hazmat/backends/interfaces.py
+++ b/cryptography/hazmat/backends/interfaces.py
@@ -166,14 +166,14 @@
@abc.abstractmethod
def generate_dsa_private_key(self, parameters):
"""
- Generate an DSAPrivateKey instance with parameters as
- a DSAParameters object.
+ Generate a DSAPrivateKey instance with parameters as a DSAParameters
+ object.
"""
@abc.abstractmethod
- def generate_dsa_private_key_with_key_size(self, key_size):
+ def generate_dsa_private_key_and_parameters(self, key_size):
"""
- Generate an DSAPrivateKey instance using key size only.
+ Generate a DSAPrivateKey instance using key size only.
"""
@abc.abstractmethod
diff --git a/cryptography/hazmat/backends/openssl/backend.py b/cryptography/hazmat/backends/openssl/backend.py
index 82bdd7c..8d167ab 100644
--- a/cryptography/hazmat/backends/openssl/backend.py
+++ b/cryptography/hazmat/backends/openssl/backend.py
@@ -626,7 +626,7 @@
return _DSAPrivateKey(self, ctx)
- def generate_dsa_private_key_with_key_size(self, key_size):
+ def generate_dsa_private_key_and_parameters(self, key_size):
parameters = self.generate_dsa_parameters(key_size)
return self.generate_dsa_private_key(parameters)
diff --git a/cryptography/hazmat/primitives/asymmetric/dsa.py b/cryptography/hazmat/primitives/asymmetric/dsa.py
index 08bdad3..7a8a61c 100644
--- a/cryptography/hazmat/primitives/asymmetric/dsa.py
+++ b/cryptography/hazmat/primitives/asymmetric/dsa.py
@@ -26,7 +26,7 @@
def generate_private_key(key_size, backend):
- return backend.generate_dsa_private_key_with_key_size(key_size)
+ return backend.generate_dsa_private_key_and_parameters(key_size)
def _check_dsa_parameters(parameters):
diff --git a/docs/hazmat/backends/interfaces.rst b/docs/hazmat/backends/interfaces.rst
index 5cbd47d..fea935c 100644
--- a/docs/hazmat/backends/interfaces.rst
+++ b/docs/hazmat/backends/interfaces.rst
@@ -421,6 +421,22 @@
1.0.0 and the key size is larger than 1024; older OpenSSL versions
do not support keys larger than 1024 bits.
+ .. method:: generate_dsa_private_key_and_parameters(key_size)
+
+ :param int key_size: The length of the modulus in bits. It should be
+ either 1024, 2048 or 3072. For keys generated in 2014 this should
+ be at least 2048.
+ Note that some applications (such as SSH) have not yet gained
+ support for larger key sizes specified in FIPS 186-3 and are still
+ restricted to only the 1024-bit keys specified in FIPS 186-2.
+
+ :return: A new instance of a
+ :class:`~cryptography.hazmat.primitives.interfaces.DSAPrivateKey`
+ provider.
+
+ :raises ValueError: This is raised if the key size is not supported
+ by the backend.
+
.. method:: create_dsa_signature_ctx(private_key, algorithm)
:param private_key: An instance of a