aboutsummaryrefslogtreecommitdiff
path: root/test/ec/bench_divpoly.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/ec/bench_divpoly.py')
-rwxr-xr-xtest/ec/bench_divpoly.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/ec/bench_divpoly.py b/test/ec/bench_divpoly.py
new file mode 100755
index 0000000..0df7d59
--- /dev/null
+++ b/test/ec/bench_divpoly.py
@@ -0,0 +1,34 @@
+#!/usr/bin/env python
+import sys
+
+import click
+
+from pyecsca.ec.divpoly import mult_by_n
+from pyecsca.ec.params import get_params
+from datetime import datetime
+
+
+@click.command()
+@click.option("-n", type=click.INT, default=21)
+def main(n):
+ p256 = get_params("secg", "secp256r1", "projective")
+
+ print("Benchmarking divpoly computation on P-256...", file=sys.stderr)
+
+ ns = []
+ durs = []
+ mems = []
+ for i in range(2, n):
+ start = datetime.now()
+ mx, my = mult_by_n(p256.curve, i)
+ end = datetime.now()
+ duration = (end - start).total_seconds()
+ memory = (mx[0].degree() + mx[1].degree() + my[0].degree() + my[1].degree()) * 32
+ ns.append(i)
+ durs.append((end - start).total_seconds())
+ mems.append(memory)
+ print(i, duration, memory, sep=",")
+
+
+if __name__ == "__main__":
+ main()