diff options
| author | J08nY | 2023-10-04 21:23:36 +0200 |
|---|---|---|
| committer | J08nY | 2023-10-04 21:23:36 +0200 |
| commit | ee155ddad1308a5de6149233f93467b1565ac2e2 (patch) | |
| tree | 6c0dbc76ca2da50a805aeca457d82c79bc43d19f /test | |
| parent | b22af4813f19427e22f0f22aa9c682a03b8da257 (diff) | |
| download | pyecsca-ee155ddad1308a5de6149233f93467b1565ac2e2.tar.gz pyecsca-ee155ddad1308a5de6149233f93467b1565ac2e2.tar.zst pyecsca-ee155ddad1308a5de6149233f93467b1565ac2e2.zip | |
Add Comb multipliers.
Diffstat (limited to 'test')
| -rw-r--r-- | test/ec/test_configuration.py | 2 | ||||
| -rw-r--r-- | test/ec/test_mult.py | 11 |
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) |
