aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/hazmat/primitives/test_dh.py52
1 files changed, 35 insertions, 17 deletions
diff --git a/tests/hazmat/primitives/test_dh.py b/tests/hazmat/primitives/test_dh.py
index 5b35fe51..bdc592e9 100644
--- a/tests/hazmat/primitives/test_dh.py
+++ b/tests/hazmat/primitives/test_dh.py
@@ -18,7 +18,9 @@ from ...doubles import DummyKeySerializationEncryption
from ...utils import load_nist_vectors, load_vectors_from_file
-def _skip_dhx_unsupported(backend):
+def _skip_dhx_unsupported(backend, is_dhx):
+ if not is_dhx:
+ return
if not backend.dh_x942_serialization_supported():
pytest.skip(
"DH x9.42 serialization is not supported"
@@ -398,30 +400,34 @@ class TestDHPrivateKeySerialization(object):
assert loaded_priv_num == priv_num
@pytest.mark.parametrize(
- ("key_path", "loader_func", "encoding"),
+ ("key_path", "loader_func", "encoding", "is_dhx"),
[
(
os.path.join("asymmetric", "DH", "dhkey.pem"),
serialization.load_pem_private_key,
serialization.Encoding.PEM,
+ False,
), (
os.path.join("asymmetric", "DH", "dhkey.der"),
serialization.load_der_private_key,
serialization.Encoding.DER,
+ False,
), (
os.path.join("asymmetric", "DH", "dhkey_rfc5114_2.pem"),
serialization.load_pem_private_key,
serialization.Encoding.PEM,
+ True,
), (
os.path.join("asymmetric", "DH", "dhkey_rfc5114_2.der"),
serialization.load_der_private_key,
serialization.Encoding.DER,
+ True,
)
]
)
def test_private_bytes_match(self, key_path, loader_func,
- encoding, backend):
- _skip_dhx_unsupported(backend)
+ encoding, is_dhx, backend):
+ _skip_dhx_unsupported(backend, is_dhx)
key_bytes = load_vectors_from_file(
key_path,
lambda pemfile: pemfile.read(), mode="rb"
@@ -434,30 +440,34 @@ class TestDHPrivateKeySerialization(object):
assert serialized == key_bytes
@pytest.mark.parametrize(
- ("key_path", "loader_func", "vec_path"),
+ ("key_path", "loader_func", "vec_path", "is_dhx"),
[
(
os.path.join("asymmetric", "DH", "dhkey.pem"),
serialization.load_pem_private_key,
- os.path.join("asymmetric", "DH", "dhkey.txt")
+ os.path.join("asymmetric", "DH", "dhkey.txt"),
+ False,
), (
os.path.join("asymmetric", "DH", "dhkey.der"),
serialization.load_der_private_key,
- os.path.join("asymmetric", "DH", "dhkey.txt")
+ os.path.join("asymmetric", "DH", "dhkey.txt"),
+ False,
), (
os.path.join("asymmetric", "DH", "dhkey_rfc5114_2.pem"),
serialization.load_pem_private_key,
- os.path.join("asymmetric", "DH", "dhkey_rfc5114_2.txt")
+ os.path.join("asymmetric", "DH", "dhkey_rfc5114_2.txt"),
+ True,
), (
os.path.join("asymmetric", "DH", "dhkey_rfc5114_2.der"),
serialization.load_der_private_key,
- os.path.join("asymmetric", "DH", "dhkey_rfc5114_2.txt")
+ os.path.join("asymmetric", "DH", "dhkey_rfc5114_2.txt"),
+ True,
)
]
)
def test_private_bytes_values(self, key_path, loader_func,
- vec_path, backend):
- _skip_dhx_unsupported(backend)
+ vec_path, is_dhx, backend):
+ _skip_dhx_unsupported(backend, is_dhx)
key_bytes = load_vectors_from_file(
key_path,
lambda pemfile: pemfile.read(), mode="rb"
@@ -558,30 +568,34 @@ class TestDHPublicKeySerialization(object):
assert loaded_pub_num == pub_num
@pytest.mark.parametrize(
- ("key_path", "loader_func", "encoding"),
+ ("key_path", "loader_func", "encoding", "is_dhx"),
[
(
os.path.join("asymmetric", "DH", "dhpub.pem"),
serialization.load_pem_public_key,
serialization.Encoding.PEM,
+ False,
), (
os.path.join("asymmetric", "DH", "dhpub.der"),
serialization.load_der_public_key,
serialization.Encoding.DER,
+ False,
), (
os.path.join("asymmetric", "DH", "dhpub_rfc5114_2.pem"),
serialization.load_pem_public_key,
serialization.Encoding.PEM,
+ True,
), (
os.path.join("asymmetric", "DH", "dhpub_rfc5114_2.der"),
serialization.load_der_public_key,
serialization.Encoding.DER,
+ True,
)
]
)
def test_public_bytes_match(self, key_path, loader_func,
- encoding, backend):
- _skip_dhx_unsupported(backend)
+ encoding, is_dhx, backend):
+ _skip_dhx_unsupported(backend, is_dhx)
key_bytes = load_vectors_from_file(
key_path,
lambda pemfile: pemfile.read(), mode="rb"
@@ -594,30 +608,34 @@ class TestDHPublicKeySerialization(object):
assert serialized == key_bytes
@pytest.mark.parametrize(
- ("key_path", "loader_func", "vec_path"),
+ ("key_path", "loader_func", "vec_path", "is_dhx"),
[
(
os.path.join("asymmetric", "DH", "dhpub.pem"),
serialization.load_pem_public_key,
os.path.join("asymmetric", "DH", "dhkey.txt"),
+ False,
), (
os.path.join("asymmetric", "DH", "dhpub.der"),
serialization.load_der_public_key,
os.path.join("asymmetric", "DH", "dhkey.txt"),
+ False,
), (
os.path.join("asymmetric", "DH", "dhpub_rfc5114_2.pem"),
serialization.load_pem_public_key,
os.path.join("asymmetric", "DH", "dhkey_rfc5114_2.txt"),
+ True,
), (
os.path.join("asymmetric", "DH", "dhpub_rfc5114_2.der"),
serialization.load_der_public_key,
os.path.join("asymmetric", "DH", "dhkey_rfc5114_2.txt"),
+ True,
)
]
)
def test_public_bytes_values(self, key_path, loader_func,
- vec_path, backend):
- _skip_dhx_unsupported(backend)
+ vec_path, is_dhx, backend):
+ _skip_dhx_unsupported(backend, is_dhx)
key_bytes = load_vectors_from_file(
key_path,
lambda pemfile: pemfile.read(), mode="rb"