From 57b68a73b1c49b6eeb5b668bff4efb5ac1aef881 Mon Sep 17 00:00:00 2001 From: J08nY Date: Wed, 28 Aug 2024 14:33:04 +0200 Subject: Remove SwapLadderMultiplier. It is the same as LadderMultiplier. The swaps are not tracked. --- test/ec/test_key_agreement.py | 9 ++--- test/ec/test_mult.py | 76 +++++++++++++------------------------------ 2 files changed, 26 insertions(+), 59 deletions(-) (limited to 'test/ec') diff --git a/test/ec/test_key_agreement.py b/test/ec/test_key_agreement.py index a045c49..aa09051 100644 --- a/test/ec/test_key_agreement.py +++ b/test/ec/test_key_agreement.py @@ -19,7 +19,6 @@ from pyecsca.ec.mod import Mod, mod from pyecsca.ec.mult import ( LTRMultiplier, LadderMultiplier, - SwapLadderMultiplier, DifferentialLadderMultiplier, ) import test.data.ec @@ -59,7 +58,7 @@ def test_ka(algo, mult, secp128r1, keypair_a, keypair_b): assert result_ab == result_ba -def test_ka_secg(): +def test_ecdh_secg(): with files(test.data.ec).joinpath("ecdh_tv.json").open("r") as f: secg_data = json.load(f) secp160r1 = get_params("secg", "secp160r1", "projective") @@ -102,10 +101,9 @@ def test_ka_secg(): "mult_args", [ (LadderMultiplier, "ladd-1987-m", "dbl-1987-m", "scale"), - (SwapLadderMultiplier, "ladd-1987-m", "dbl-1987-m", "scale"), (DifferentialLadderMultiplier, "dadd-1987-m", "dbl-1987-m", "scale"), ], - ids=["ladd", "swap", "diff"] + ids=["ladd", "diff"] ) @pytest.mark.parametrize("complete", [True, False], ids=["complete", ""]) @pytest.mark.parametrize("short_circuit", [True, False], ids=["shorted", ""]) @@ -167,10 +165,9 @@ def test_x25519( "mult_args", [ (LadderMultiplier, "ladd-1987-m", "dbl-1987-m", "scale"), - (SwapLadderMultiplier, "ladd-1987-m", "dbl-1987-m", "scale"), (DifferentialLadderMultiplier, "dadd-1987-m", "dbl-1987-m", "scale"), ], - ids=["ladd", "swap", "diff"] + ids=["ladd", "diff"] ) @pytest.mark.parametrize("complete", [True, False], ids=["complete", ""]) @pytest.mark.parametrize("short_circuit", [True, False], ids=["shorted", ""]) diff --git a/test/ec/test_mult.py b/test/ec/test_mult.py index e65dfdd..a7719dc 100644 --- a/test/ec/test_mult.py +++ b/test/ec/test_mult.py @@ -23,11 +23,9 @@ from pyecsca.ec.mult import ( BGMWMultiplier, CombMultiplier, WindowBoothMultiplier, - SwapLadderMultiplier, ) from pyecsca.ec.mult.fixed import FullPrecompMultiplier from pyecsca.ec.point import InfinityPoint, Point -from pyecsca.sca import MultipleContext def get_formulas(coords, *names): @@ -235,57 +233,29 @@ def test_simple_ladder(secp128r1, add, dbl, scale): 0x1000000000000000000000000000000014DEF9DEA2F79CD65812631A5CF5D3ED - 1, ], ) -@pytest.mark.parametrize("complete", [True, False]) -@pytest.mark.parametrize("short_circuit", [True, False]) -def test_ladder_swap(curve25519, num, complete, short_circuit): - ladder = LadderMultiplier( - curve25519.curve.coordinate_model.formulas["ladd-1987-m"], - curve25519.curve.coordinate_model.formulas["dbl-1987-m"], - curve25519.curve.coordinate_model.formulas["scale"], - complete=complete, - short_circuit=short_circuit, - ) - swap = SwapLadderMultiplier( - curve25519.curve.coordinate_model.formulas["ladd-1987-m"], - curve25519.curve.coordinate_model.formulas["dbl-1987-m"], - curve25519.curve.coordinate_model.formulas["scale"], - complete=complete, - short_circuit=short_circuit, - ) - ladder.init(curve25519, curve25519.generator) - res_ladder = ladder.multiply(num) - swap.init(curve25519, curve25519.generator) - res_swap = swap.multiply(num) - assert res_ladder == res_swap - assert curve25519.curve.neutral == swap.multiply(0) - - -@pytest.mark.parametrize( - "num", - [ - 15, - 2355498743, - 325385790209017329644351321912443757746, - 0x1000000000000000000000000000000014DEF9DEA2F79CD65812631A5CF5D3ED - 1, - ], -) -@pytest.mark.parametrize("complete", [True, False]) -@pytest.mark.parametrize("short_circuit", [True, False]) -def test_ladder_differential(curve25519, num, complete, short_circuit): - ladder = LadderMultiplier( - curve25519.curve.coordinate_model.formulas["ladd-1987-m"], - curve25519.curve.coordinate_model.formulas["dbl-1987-m"], - curve25519.curve.coordinate_model.formulas["scale"], - complete=complete, - short_circuit=short_circuit, - ) - differential = DifferentialLadderMultiplier( - curve25519.curve.coordinate_model.formulas["dadd-1987-m"], - curve25519.curve.coordinate_model.formulas["dbl-1987-m"], - curve25519.curve.coordinate_model.formulas["scale"], - complete=complete, - short_circuit=short_circuit, - ) +@pytest.mark.parametrize("complete", [True, False], ids=["complete", ""]) +@pytest.mark.parametrize("short_circuit", [True, False], ids=["shorted", ""]) +@pytest.mark.parametrize("full", [True, False], ids=["full", ""]) +def test_ladder_differential(curve25519, num, complete, short_circuit, full): + try: + ladder = LadderMultiplier( + curve25519.curve.coordinate_model.formulas["ladd-1987-m"], + curve25519.curve.coordinate_model.formulas["dbl-1987-m"], + curve25519.curve.coordinate_model.formulas["scale"], + complete=complete, + short_circuit=short_circuit, + full=full + ) + differential = DifferentialLadderMultiplier( + curve25519.curve.coordinate_model.formulas["dadd-1987-m"], + curve25519.curve.coordinate_model.formulas["dbl-1987-m"], + curve25519.curve.coordinate_model.formulas["scale"], + complete=complete, + short_circuit=short_circuit, + full=full + ) + except ValueError: + return ladder.init(curve25519, curve25519.generator) res_ladder = ladder.multiply(num) differential.init(curve25519, curve25519.generator) -- cgit v1.2.3-70-g09d2