diff options
Diffstat (limited to 'test/test_builder.py')
| -rw-r--r-- | test/test_builder.py | 51 |
1 files changed, 28 insertions, 23 deletions
diff --git a/test/test_builder.py b/test/test_builder.py index 52de066..a16f714 100644 --- a/test/test_builder.py +++ b/test/test_builder.py @@ -2,13 +2,13 @@ from unittest import TestCase import tempfile from click.testing import CliRunner -from pyecsca.ec.curves import get_curve +from pyecsca.ec.curves import get_params from pyecsca.ec.mult import LTRMultiplier -from pyecsca.ec.mod import Mod -from pyecsca.ec.point import Point +from pyecsca.ec.configuration import HashType, RandomMod, Multiplication, Squaring, Reduction -from pyecsca.codegen.common import * -from pyecsca.codegen.builder import * +from pyecsca.codegen.common import Platform, DeviceConfiguration +from pyecsca.codegen.render import render_and_build +from pyecsca.codegen.builder import build_impl, list_impl class BuilderTests(TestCase): @@ -20,18 +20,16 @@ class BuilderTests(TestCase): mult = Multiplication.BASE sqr = Squaring.BASE red = Reduction.BASE - group = get_curve("secp128r1", "projective") - model = group.curve.model - coords = group.curve.coordinate_model - group.neutral = Point(coords, X=Mod(0, group.curve.prime), Y=Mod(1, group.curve.prime), - Z=Mod(0, group.curve.prime)) + params = get_params("secg", "secp128r1", "projective") + model = params.curve.model + coords = params.curve.coordinate_model add = coords.formulas["add-1998-cmo"] dbl = coords.formulas["dbl-1998-cmo"] scl = coords.formulas["z"] formulas = [add, dbl, scl] scalarmult = LTRMultiplier(add, dbl, scl) - config = Configuration(platform, hash_type, mod_rand, mult, sqr, red, model, coords, - formulas, scalarmult, True, True, True) + config = DeviceConfiguration(model, coords, formulas, scalarmult, hash_type, mod_rand, mult, + sqr, red, platform, True, True, True) temp = tempfile.mkdtemp() render_and_build(config, temp, True) @@ -39,18 +37,20 @@ class BuilderTests(TestCase): runner = CliRunner() with runner.isolated_filesystem(): result = runner.invoke(build_impl, - ["--platform", "HOST", "-v", "shortw", "projective", "add-1998-cmo", - "dbl-1998-cmo", "z", "ltr(complete=True)", "test.elf"]) + ["--platform", "HOST", "-v", "shortw", "projective", + "add-1998-cmo", + "dbl-1998-cmo", "z", "ltr(complete=True)", "."]) self.assertEqual(result.exit_code, 0) result = runner.invoke(build_impl, - ["--platform", "HOST", "--strip", "--no-remove", "shortw", "projective", + ["--platform", "HOST", "--strip", "--no-remove", "shortw", + "projective", "add-1998-cmo", "dbl-1998-cmo", "z", "ltr(complete=True)", - "test_stripped.elf"]) + "."]) self.assertEqual(result.exit_code, 0) result = runner.invoke(build_impl, ["--platform", "HOST", "--no-ecdsa", "montgom", "xz", "ladd-1987-m", "dbl-1987-m", "scale", "ldr()", - "test_ldr.elf"]) + "."]) self.assertEqual(result.exit_code, 0) def test_cli_build_fails(self): @@ -59,32 +59,37 @@ class BuilderTests(TestCase): # unknown model result = runner.invoke(build_impl, ["--platform", "HOST", "missing", "projective", "add-1998-cmo", - "dbl-1998-cmo", "z", "ltr(complete=True)", "test.elf"]) + "dbl-1998-cmo", "z", "ltr(complete=True)", "."]) self.assertEqual(result.exit_code, 2) # unknown coordinates result = runner.invoke(build_impl, ["--platform", "HOST", "shortw", "missing", "add-1998-cmo", - "dbl-1998-cmo", "z", "ltr(complete=True)", "test.elf"]) + "dbl-1998-cmo", "z", "ltr(complete=True)", "."]) self.assertEqual(result.exit_code, 2) # unknown formula result = runner.invoke(build_impl, ["--platform", "HOST", "shortw", "projective", "missing", - "dbl-1998-cmo", "z", "ltr(complete=True)", "test.elf"]) + "dbl-1998-cmo", "z", "ltr(complete=True)", "."]) self.assertEqual(result.exit_code, 2) # bad formatted mult spec result = runner.invoke(build_impl, ["--platform", "HOST", "shortw", "projective", "add-1998-cmo", - "dbl-1998-cmo", "z", "missing", "test.elf"]) + "dbl-1998-cmo", "z", "missing", "."]) self.assertEqual(result.exit_code, 2) # unknown mult result = runner.invoke(build_impl, ["--platform", "HOST", "shortw", "projective", "add-1998-cmo", - "dbl-1998-cmo", "z", "missing()", "test.elf"]) + "dbl-1998-cmo", "z", "missing()", "."]) self.assertEqual(result.exit_code, 2) # missing required formulas to mult result = runner.invoke(build_impl, ["--platform", "HOST", "shortw", "projective", "add-1998-cmo", - "z", "missing", "test.elf"]) + "z", "ltr(complete=True)", "."]) + self.assertEqual(result.exit_code, 2) + # duplicate formulas + result = runner.invoke(build_impl, + ["--platform", "HOST", "shortw", "projective", "add-1998-cmo", + "add-1998-cmo", "z", "ltr(complete=True)", "."]) self.assertEqual(result.exit_code, 2) def test_cli_list(self): |
