From 7c9fa3a7384d3b8e14dc8a56390cd4fce222dcba Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Fri, 27 Jun 2014 16:14:00 -0600 Subject: add multibackend support for new DSABackend method --- cryptography/hazmat/backends/multibackend.py | 6 ++++++ tests/hazmat/backends/test_multibackend.py | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/cryptography/hazmat/backends/multibackend.py b/cryptography/hazmat/backends/multibackend.py index 27ab0636..800c3503 100644 --- a/cryptography/hazmat/backends/multibackend.py +++ b/cryptography/hazmat/backends/multibackend.py @@ -205,6 +205,12 @@ class MultiBackend(object): raise UnsupportedAlgorithm("DSA is not supported by the backend.", _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM) + def generate_dsa_private_key_and_parameters(self, key_size): + for b in self._filtered_backends(DSABackend): + return b.generate_dsa_private_key_and_parameters(key_size) + 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, diff --git a/tests/hazmat/backends/test_multibackend.py b/tests/hazmat/backends/test_multibackend.py index 64dc062c..a68fe560 100644 --- a/tests/hazmat/backends/test_multibackend.py +++ b/tests/hazmat/backends/test_multibackend.py @@ -128,6 +128,9 @@ class DummyDSABackend(object): def generate_dsa_private_key(self, parameters): pass + def generate_dsa_private_key_and_parameters(self, key_size): + pass + def create_dsa_signature_ctx(self, private_key, algorithm): pass @@ -343,6 +346,7 @@ class TestMultiBackend(object): parameters = object() backend.generate_dsa_private_key(parameters) + backend.generate_dsa_private_key_and_parameters(key_size=1024) backend.create_dsa_verification_ctx("public_key", "sig", hashes.SHA1()) backend.create_dsa_signature_ctx("private_key", hashes.SHA1()) @@ -360,6 +364,11 @@ class TestMultiBackend(object): ): backend.generate_dsa_private_key(parameters) + with raises_unsupported_algorithm( + _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM + ): + backend.generate_dsa_private_key_and_parameters(key_size=1024) + with raises_unsupported_algorithm( _Reasons.UNSUPPORTED_PUBLIC_KEY_ALGORITHM ): -- cgit v1.2.3