summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2020-07-05 20:19:39 -0500
committerGitHub <noreply@github.com>2020-07-05 21:19:39 -0400
commit7a233b9a602d76684e17d509d9a5378eeee6a362 (patch)
treed60808a532177952e8abe2b3185bce4eda54bd2d /tests
parentc8689610332ff444580f1cdf08d50909290af008 (diff)
downloadcryptography-7a233b9a602d76684e17d509d9a5378eeee6a362.tar.gz
support 4096 bit DSA parsing from numbers classes (#5301)
* support 4096 bit DSA parsing from numbers classes * need to get local linting fixed. * reorder * add a link to more reasons why DSA sucks
Diffstat (limited to 'tests')
-rw-r--r--tests/hazmat/primitives/test_dsa.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/hazmat/primitives/test_dsa.py b/tests/hazmat/primitives/test_dsa.py
index 9e1acf935..4287ad2a0 100644
--- a/tests/hazmat/primitives/test_dsa.py
+++ b/tests/hazmat/primitives/test_dsa.py
@@ -349,6 +349,28 @@ class TestDSA(object):
y=y
).public_key(backend)
+ def test_large_p(self, backend):
+ key = load_vectors_from_file(
+ os.path.join("asymmetric", "PEM_Serialization", "dsa_4096.pem"),
+ lambda pemfile: serialization.load_pem_private_key(
+ pemfile.read(), None, backend
+ ), mode="rb"
+ )
+ pn = key.private_numbers()
+ assert pn.public_numbers.parameter_numbers.p.bit_length() == 4096
+ # Turn it back into a key to confirm that values this large pass
+ # verification
+ dsa.DSAPrivateNumbers(
+ public_numbers=dsa.DSAPublicNumbers(
+ parameter_numbers=dsa.DSAParameterNumbers(
+ p=pn.public_numbers.parameter_numbers.p,
+ q=pn.public_numbers.parameter_numbers.q,
+ g=pn.public_numbers.parameter_numbers.g,
+ ),
+ y=pn.public_numbers.y
+ ), x=pn.x
+ ).private_key(backend)
+
@pytest.mark.requires_backend_interface(interface=DSABackend)
class TestDSAVerification(object):