diff options
Diffstat (limited to 'test/ec/perf_mult.py')
| -rwxr-xr-x | test/ec/perf_mult.py | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/test/ec/perf_mult.py b/test/ec/perf_mult.py index d5e6a83..50a7191 100755 --- a/test/ec/perf_mult.py +++ b/test/ec/perf_mult.py @@ -3,8 +3,9 @@ from typing import cast import click +from pyecsca.ec.context import local, DefaultContext from pyecsca.ec.formula import AdditionFormula, DoublingFormula -from pyecsca.ec.mod import has_gmp +from pyecsca.ec.mod import has_gmp, has_flint from pyecsca.ec.mult import LTRMultiplier from pyecsca.ec.params import get_params from pyecsca.misc.cfg import TemporaryConfig @@ -12,12 +13,12 @@ from test.utils import Profiler @click.command() -@click.option("-p", "--profiler", type=click.Choice(("py", "c")), default="py") +@click.option("-p", "--profiler", type=click.Choice(("py", "c", "raw")), default="py") @click.option( "-m", "--mod", - type=click.Choice(("python", "gmp")), - default="gmp" if has_gmp else "python", + type=click.Choice(("python", "gmp", "flint")), + default="flint" if has_flint else "gmp" if has_gmp else "python", ) @click.option("-o", "--operations", type=click.INT, default=50) @click.option( @@ -45,6 +46,17 @@ def main(profiler, mod, operations, directory): one_point = mult.multiply( 0x71A55E0C1ABB3A0E069419E0F837BC195F1B9545E69FC51E53C4D48D7FEA3B1A ) + click.echo( + f"Profiling {operations} {p256.curve.prime.bit_length()}-bit scalar multiplication executions (with tracing)..." + ) + with local(DefaultContext()): + one_point = p256.generator + with Profiler(profiler, directory, f"mult_ltr_rcb_p256_wtrace_{operations}_{mod}"): + for _ in range(operations): + mult.init(p256, one_point) + one_point = mult.multiply( + 0x71A55E0C1ABB3A0E069419E0F837BC195F1B9545E69FC51E53C4D48D7FEA3B1A + ) if __name__ == "__main__": |
