aboutsummaryrefslogtreecommitdiff
path: root/test/ec
diff options
context:
space:
mode:
authorJ08nY2024-08-28 14:33:04 +0200
committerJ08nY2024-08-28 14:33:04 +0200
commit57b68a73b1c49b6eeb5b668bff4efb5ac1aef881 (patch)
treef01704e1277a2e7da27edb050d313e294e5c2ab6 /test/ec
parent979d86979313de02c4dab71f99ce1c5dddd5877a (diff)
downloadpyecsca-57b68a73b1c49b6eeb5b668bff4efb5ac1aef881.tar.gz
pyecsca-57b68a73b1c49b6eeb5b668bff4efb5ac1aef881.tar.zst
pyecsca-57b68a73b1c49b6eeb5b668bff4efb5ac1aef881.zip
Diffstat (limited to 'test/ec')
-rw-r--r--test/ec/test_key_agreement.py9
-rw-r--r--test/ec/test_mult.py76
2 files changed, 26 insertions, 59 deletions
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)