diff --git a/tests/test_crypto.py b/tests/test_crypto.py index 4d20ad24edf11812261578693ed487b6c0aa3a99..a68652a8616c44e45df2e51e64ae68d6e22bfc86 100644 --- a/tests/test_crypto.py +++ b/tests/test_crypto.py @@ -630,33 +630,27 @@ def test_KeyGenerator_string_representation(algorithm, parameters, string_repres assert str(key_generator) == string_representation -@pytest.mark.parametrize("key_size", [1024, 2048, 4096]) -def test_KeyGenerator_instance_returns_rsa_private_key_of_correct_size(key_size): - - key_generator = gimmecert.crypto.KeyGenerator("rsa", key_size) - - private_key = key_generator() - - assert isinstance(private_key, cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey) - assert private_key.key_size == key_size - - -@pytest.mark.parametrize("curve", [ - cryptography.hazmat.primitives.asymmetric.ec.SECP192R1, - cryptography.hazmat.primitives.asymmetric.ec.SECP224R1, - cryptography.hazmat.primitives.asymmetric.ec.SECP256K1, - cryptography.hazmat.primitives.asymmetric.ec.SECP256R1, - cryptography.hazmat.primitives.asymmetric.ec.SECP384R1, - cryptography.hazmat.primitives.asymmetric.ec.SECP521R1, +@pytest.mark.parametrize("key_specification, key_instance_type", [ + (("rsa", 1024), cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey), + (("rsa", 2048), cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey), + (("rsa", 4096), cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey), + (("ecdsa", cryptography.hazmat.primitives.asymmetric.ec.SECP192R1), cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey), + (("ecdsa", cryptography.hazmat.primitives.asymmetric.ec.SECP224R1), cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey), + (("ecdsa", cryptography.hazmat.primitives.asymmetric.ec.SECP256K1), cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey), + (("ecdsa", cryptography.hazmat.primitives.asymmetric.ec.SECP256R1), cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey), + (("ecdsa", cryptography.hazmat.primitives.asymmetric.ec.SECP384R1), cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey), + (("ecdsa", cryptography.hazmat.primitives.asymmetric.ec.SECP521R1), cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey), ]) -def test_KeyGenerator_instance_returns_ecdsa_private_with_correct_curve(curve): +def test_KeyGenerator_instance_returns_correct_private_key_using_passed_in_key_specification(key_specification, key_instance_type): - key_generator = gimmecert.crypto.KeyGenerator("ecdsa", curve) + key_generator = gimmecert.crypto.KeyGenerator(*key_specification) private_key = key_generator() + public_key = private_key.public_key() + public_key_specification = gimmecert.crypto.key_specification_from_public_key(public_key) - assert isinstance(private_key, cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey) - assert isinstance(private_key.curve, curve) + assert isinstance(private_key, key_instance_type) + assert public_key_specification == key_specification @pytest.mark.parametrize("key_generator, expected_bit_size", [