diff options
| author | J08nY | 2020-03-02 17:23:20 +0100 |
|---|---|---|
| committer | J08nY | 2020-03-02 17:23:20 +0100 |
| commit | 49018aa37f44b56292193b763ed4a8bb15389c30 (patch) | |
| tree | 9d62101f699075d18c9406a2a175bdd5c377954a /test/test_impl.py | |
| parent | 81e5f24363cf8f50099b7fbed0fd3bcfaac9d5ea (diff) | |
| download | pyecsca-codegen-49018aa37f44b56292193b763ed4a8bb15389c30.tar.gz pyecsca-codegen-49018aa37f44b56292193b763ed4a8bb15389c30.tar.zst pyecsca-codegen-49018aa37f44b56292193b763ed4a8bb15389c30.zip | |
Add support for specifying multiplication and square algos.
Diffstat (limited to 'test/test_impl.py')
| -rw-r--r-- | test/test_impl.py | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/test/test_impl.py b/test/test_impl.py index 9e61390..7e37722 100644 --- a/test/test_impl.py +++ b/test/test_impl.py @@ -27,26 +27,32 @@ class ImplTests(TestCase): def do_basic_test(self, callback, runner, params, mult_class, formulas, mult_name, ecdsa, ecdh, **mult_kwargs): - with runner.isolated_filesystem() as tmpdir: - runner.invoke(build_impl, - ["--platform", "HOST", - #"--red", "MONTGOMERY", - "--ecdsa" if ecdsa else "--no-ecdsa", - "--ecdh" if ecdh else "--no-ecdh", - params.curve.model.shortname, params.curve.coordinate_model.name, - *formulas, - f"{mult_name}({','.join(f'{key}={value}' for key, value in mult_kwargs.items())})", - "."]) - target = HostTarget(params.curve.model, params.curve.coordinate_model, - binary=join(tmpdir, "pyecsca-codegen-HOST.elf")) - target.connect() - target.set_params(params) - formula_instances = [params.curve.coordinate_model.formulas[formula] for formula - in formulas] - mult = mult_class(*formula_instances, **mult_kwargs) - mult.init(params, params.generator) - callback(target, mult, params) - target.disconnect() + other_args = [ + ("--mul", "KARATSUBA", "--sqr", "KARATSUBA"), + ("--mul", "TOOM_COOK", "--sqr", "TOOM_COOK"), + ("--red", "BARRETT") + ] + for additional in other_args: + with runner.isolated_filesystem() as tmpdir: + runner.invoke(build_impl, + ["--platform", "HOST", + *additional, + "--ecdsa" if ecdsa else "--no-ecdsa", + "--ecdh" if ecdh else "--no-ecdh", + params.curve.model.shortname, params.curve.coordinate_model.name, + *formulas, + f"{mult_name}({','.join(f'{key}={value}' for key, value in mult_kwargs.items())})", + "."]) + target = HostTarget(params.curve.model, params.curve.coordinate_model, + binary=join(tmpdir, "pyecsca-codegen-HOST.elf")) + target.connect() + target.set_params(params) + formula_instances = [params.curve.coordinate_model.formulas[formula] for formula + in formulas] + mult = mult_class(*formula_instances, **mult_kwargs) + mult.init(params, params.generator) + callback(target, mult, params) + target.disconnect() class PRNGTests(ImplTests): |
