diff options
| author | J08nY | 2023-08-27 16:38:00 +0200 |
|---|---|---|
| committer | J08nY | 2023-08-27 16:38:00 +0200 |
| commit | 54e9958c811a57b7adbc052cc86fedaa582c102f (patch) | |
| tree | ec3f5002e12bd1cb4a3e1f3f7bdf27f7d151342b /test/ec | |
| parent | 19bc2ed369cbcd41c08132edb74d7a1afd843962 (diff) | |
| download | pyecsca-54e9958c811a57b7adbc052cc86fedaa582c102f.tar.gz pyecsca-54e9958c811a57b7adbc052cc86fedaa582c102f.tar.zst pyecsca-54e9958c811a57b7adbc052cc86fedaa582c102f.zip | |
Add sliding window multiplier.
Diffstat (limited to 'test/ec')
| -rw-r--r-- | test/ec/test_configuration.py | 4 | ||||
| -rw-r--r-- | test/ec/test_mult.py | 12 |
2 files changed, 11 insertions, 5 deletions
diff --git a/test/ec/test_configuration.py b/test/ec/test_configuration.py index bfb6463..4e2e4ca 100644 --- a/test/ec/test_configuration.py +++ b/test/ec/test_configuration.py @@ -30,7 +30,8 @@ def test_weierstrass_projective(base_independents): model = ShortWeierstrassModel() coords = model.coordinates["projective"] configs = list(all_configurations(model=model, coords=coords, **base_independents)) - assert len(configs) == 4900 + assert len(set(map(lambda cfg: cfg.scalarmult, configs))) == len(configs) + assert len(configs) == 6020 def test_mult_class(base_independents): @@ -38,6 +39,7 @@ def test_mult_class(base_independents): coords = model.coordinates["projective"] scalarmult = LTRMultiplier configs = list(all_configurations(model=model, coords=coords, scalarmult=scalarmult, **base_independents)) + assert len(set(map(lambda cfg: cfg.scalarmult, configs))) == len(configs) assert len(configs) == 1120 diff --git a/test/ec/test_mult.py b/test/ec/test_mult.py index 519e34c..2a17867 100644 --- a/test/ec/test_mult.py +++ b/test/ec/test_mult.py @@ -15,7 +15,7 @@ from pyecsca.ec.mult import ( CoronMultiplier, FixedWindowLTRMultiplier, ProcessingDirection, - AccumulationOrder, ScalarMultiplier + AccumulationOrder, ScalarMultiplier, SlidingWindowMultiplier ) from pyecsca.ec.point import InfinityPoint, Point from .utils import cartesian @@ -292,10 +292,15 @@ def test_basic_multipliers(secp128r1, num, add, dbl): wnafs = [WindowNAFMultiplier(add, dbl, neg, scl=scale, **dict(zip(wnaf_options.keys(), combination))) for combination in product(*wnaf_options.values())] ladder_options = {"complete": (True, False)} ladders = [SimpleLadderMultiplier(add, dbl, scale, **dict(zip(ladder_options.keys(), combination))) for combination in product(*ladder_options.values())] - fixed_options = {"m": (5, 8), "accumulation_order": tuple(AccumulationOrder)} + fixed_options = {"m": (5, 8), + "accumulation_order": tuple(AccumulationOrder)} fixeds = [FixedWindowLTRMultiplier(add, dbl, scl=scale, **dict(zip(fixed_options.keys(), combination))) for combination in product(*fixed_options.values())] + sliding_options = {"width": (3, 5), + "recoding_direction": tuple(ProcessingDirection), + "accumulation_order": tuple(AccumulationOrder)} + slides = [SlidingWindowMultiplier(add, dbl, scl=scale, **dict(zip(sliding_options.keys(), combination))) for combination in product(*sliding_options.values())] - mults: Sequence[ScalarMultiplier] = ltrs + rtls + bnafs + wnafs + [CoronMultiplier(add, dbl, scale)] + ladders + fixeds + mults: Sequence[ScalarMultiplier] = ltrs + rtls + bnafs + wnafs + [CoronMultiplier(add, dbl, scale)] + ladders + fixeds + slides results = [] for mult in mults: mult.init(secp128r1, secp128r1.generator) @@ -303,7 +308,6 @@ def test_basic_multipliers(secp128r1, num, add, dbl): if results: assert res == results[-1], f"Points not equal {res} != {results[-1]} for mult = {mult}" results.append(res) - print(len(results)) def test_init_fail(curve25519, secp128r1): |
