diff options
| author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2020-07-05 20:19:39 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-05 21:19:39 -0400 |
| commit | 7a233b9a602d76684e17d509d9a5378eeee6a362 (patch) | |
| tree | d60808a532177952e8abe2b3185bce4eda54bd2d /tests | |
| parent | c8689610332ff444580f1cdf08d50909290af008 (diff) | |
| download | cryptography-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.py | 22 |
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): |
