aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorJ08nY2023-10-04 21:23:36 +0200
committerJ08nY2023-10-04 21:23:36 +0200
commitee155ddad1308a5de6149233f93467b1565ac2e2 (patch)
tree6c0dbc76ca2da50a805aeca457d82c79bc43d19f /test
parentb22af4813f19427e22f0f22aa9c682a03b8da257 (diff)
downloadpyecsca-ee155ddad1308a5de6149233f93467b1565ac2e2.tar.gz
pyecsca-ee155ddad1308a5de6149233f93467b1565ac2e2.tar.zst
pyecsca-ee155ddad1308a5de6149233f93467b1565ac2e2.zip
Add Comb multipliers.
Diffstat (limited to 'test')
-rw-r--r--test/ec/test_configuration.py2
-rw-r--r--test/ec/test_mult.py11
2 files changed, 11 insertions, 2 deletions
diff --git a/test/ec/test_configuration.py b/test/ec/test_configuration.py
index 9aeae37..bdd7d68 100644
--- a/test/ec/test_configuration.py
+++ b/test/ec/test_configuration.py
@@ -31,7 +31,7 @@ def test_weierstrass_projective(base_independents):
coords = model.coordinates["projective"]
configs = list(all_configurations(model=model, coords=coords, **base_independents))
assert len(set(map(lambda cfg: cfg.scalarmult, configs))) == len(configs)
- assert len(configs) == 9440
+ assert len(configs) == 11360
def test_mult_class(base_independents):
diff --git a/test/ec/test_mult.py b/test/ec/test_mult.py
index 0d4783b..75270c9 100644
--- a/test/ec/test_mult.py
+++ b/test/ec/test_mult.py
@@ -18,6 +18,8 @@ from pyecsca.ec.mult import (
AccumulationOrder,
ScalarMultiplier,
SlidingWindowMultiplier,
+ BGMWMultiplier,
+ CombMultiplier,
)
from pyecsca.ec.mult.fixed import FullPrecompMultiplier
from pyecsca.ec.point import InfinityPoint, Point
@@ -306,8 +308,15 @@ def test_basic_multipliers(secp128r1, num, add, dbl):
"direction": tuple(ProcessingDirection),
"accumulation_order": tuple(AccumulationOrder)}
precomps = [FullPrecompMultiplier(add, dbl, scl=scale, **dict(zip(precomp_options.keys(), combination))) for combination in product(*precomp_options.values())]
+ bgmw_options = {"width": (3, 5),
+ "direction": tuple(ProcessingDirection),
+ "accumulation_order": tuple(AccumulationOrder)}
+ bgmws = [BGMWMultiplier(add, dbl, scl=scale, **dict(zip(bgmw_options.keys(), combination))) for combination in product(*bgmw_options.values())]
+ comb_options = {"width": (2, 3, 5),
+ "accumulation_order": tuple(AccumulationOrder)}
+ combs = [CombMultiplier(add, dbl, scl=scale, **dict(zip(comb_options.keys(), combination))) for combination in product(*comb_options.values())]
- mults: Sequence[ScalarMultiplier] = ltrs + rtls + bnafs + wnafs + [CoronMultiplier(add, dbl, scale)] + ladders + fixeds + slides + precomps
+ mults: Sequence[ScalarMultiplier] = ltrs + rtls + bnafs + wnafs + [CoronMultiplier(add, dbl, scale)] + ladders + fixeds + slides + precomps + bgmws + combs
results = []
for mult in mults:
mult.init(secp128r1, secp128r1.generator)