diff options
Diffstat (limited to 'test/ec/test_params.py')
| -rw-r--r-- | test/ec/test_params.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/test/ec/test_params.py b/test/ec/test_params.py index 3dfb0c2..9de813b 100644 --- a/test/ec/test_params.py +++ b/test/ec/test_params.py @@ -1,5 +1,8 @@ from unittest import TestCase +from parameterized import parameterized + +from pyecsca.ec.coordinates import AffineCoordinateModel from pyecsca.ec.params import get_params @@ -16,3 +19,46 @@ class DomainParameterTests(TestCase): def test_str(self): self.assertEqual(str(self.secp128r1), "DomainParameters(secg/secp128r1)") + + @parameterized.expand([ + ("secg/secp128r1", "projective"), + ("secg/secp256r1", "projective"), + ("secg/secp521r1", "projective"), + ("other/Curve25519", "xz"), + ("other/Ed25519", "projective"), + ("other/Ed448", "projective"), + ("other/E-222", "projective") + ]) + def test_get_params(self, name, coords): + params = get_params(*name.split("/"), coords) + try: + assert params.curve.is_on_curve(params.generator) + except NotImplementedError: + pass + + @parameterized.expand([ + ("no_category/some", "else"), + ("secg/no_curve", "else"), + ("secg/secp128r1", "some") + ]) + def test_unknown(self, name, coords): + with self.assertRaises(ValueError): + get_params(*name.split("/"), coords) + + def test_assumption(self): + with self.assertRaises(ValueError): + get_params("secg", "secp128r1", "projective-1") + self.assertIsNotNone(get_params("secg", "secp128r1", "projective-3")) + + def test_infty(self): + with self.assertRaises(ValueError): + get_params("secg", "secp128r1", "modified", False) + self.assertIsNotNone(get_params("secg", "secp128r1", "projective", False)) + + def test_no_binary(self): + with self.assertRaises(ValueError): + get_params("secg", "sect163r1", "something") + + def test_affine(self): + aff = get_params("secg", "secp128r1", "affine") + self.assertIsInstance(aff.curve.coordinate_model, AffineCoordinateModel)
\ No newline at end of file |
