aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest/ec/perf_formula.py4
-rwxr-xr-xtest/ec/perf_mult.py4
-rw-r--r--test/ec/test_configuration.py4
-rw-r--r--test/ec/test_key_agreement.py4
-rw-r--r--test/ec/test_mult.py22
-rw-r--r--test/ec/test_signature.py4
-rw-r--r--test/sca/perf_zvp.py2
-rw-r--r--test/sca/test_target.py26
-rw-r--r--test/sca/test_zvp.py9
9 files changed, 42 insertions, 37 deletions
diff --git a/test/ec/perf_formula.py b/test/ec/perf_formula.py
index baa6347..f4affa3 100755
--- a/test/ec/perf_formula.py
+++ b/test/ec/perf_formula.py
@@ -28,8 +28,8 @@ def main(profiler, mod, operations, directory):
cfg.ec.mod_implementation = mod
p256 = get_params("secg", "secp256r1", "projective")
coords = p256.curve.coordinate_model
- add = coords.formulas["add-2016-rcb"]
- dbl = coords.formulas["dbl-2016-rcb"]
+ add = coords.formulas["add-2015-rcb"]
+ dbl = coords.formulas["dbl-2015-rcb"]
click.echo(
f"Profiling {operations} {p256.curve.prime.bit_length()}-bit doubling formula (dbl2016rcb) executions..."
)
diff --git a/test/ec/perf_mult.py b/test/ec/perf_mult.py
index e2adf29..d5e6a83 100755
--- a/test/ec/perf_mult.py
+++ b/test/ec/perf_mult.py
@@ -32,8 +32,8 @@ def main(profiler, mod, operations, directory):
cfg.ec.mod_implementation = mod
p256 = get_params("secg", "secp256r1", "projective")
coords = p256.curve.coordinate_model
- add = cast(AdditionFormula, coords.formulas["add-2016-rcb"])
- dbl = cast(DoublingFormula, coords.formulas["dbl-2016-rcb"])
+ add = cast(AdditionFormula, coords.formulas["add-2015-rcb"])
+ dbl = cast(DoublingFormula, coords.formulas["dbl-2015-rcb"])
mult = LTRMultiplier(add, dbl)
click.echo(
f"Profiling {operations} {p256.curve.prime.bit_length()}-bit scalar multiplication executions..."
diff --git a/test/ec/test_configuration.py b/test/ec/test_configuration.py
index 4e2e4ca..892c634 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) == 6020
+ assert len(configs) == 6880
def test_mult_class(base_independents):
@@ -40,7 +40,7 @@ def test_mult_class(base_independents):
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
+ assert len(configs) == 1280
def test_one(base_independents):
diff --git a/test/ec/test_key_agreement.py b/test/ec/test_key_agreement.py
index 392b21f..248d172 100644
--- a/test/ec/test_key_agreement.py
+++ b/test/ec/test_key_agreement.py
@@ -55,8 +55,8 @@ def test_ka_secg():
secg_data = json.load(f)
secp160r1 = get_params("secg", "secp160r1", "projective")
affine_model = AffineCoordinateModel(secp160r1.curve.model)
- add = secp160r1.curve.coordinate_model.formulas["add-2016-rcb"]
- dbl = secp160r1.curve.coordinate_model.formulas["dbl-2016-rcb"]
+ add = secp160r1.curve.coordinate_model.formulas["add-2015-rcb"]
+ dbl = secp160r1.curve.coordinate_model.formulas["dbl-2015-rcb"]
mult = LTRMultiplier(add, dbl)
privA = Mod(int(secg_data["keyA"]["priv"], 16), secp160r1.order)
pubA_affine = Point(affine_model,
diff --git a/test/ec/test_mult.py b/test/ec/test_mult.py
index 8e5a06e..16d9c7f 100644
--- a/test/ec/test_mult.py
+++ b/test/ec/test_mult.py
@@ -57,7 +57,7 @@ def do_basic_test(
@pytest.mark.parametrize("add,dbl,scale",
[
("add-1998-cmo", "dbl-1998-cmo", "z"),
- ("add-2016-rcb", "dbl-2016-rcb", None),
+ ("add-2015-rcb", "dbl-2015-rcb", None),
("add-1998-cmo", "dbl-1998-cmo", None),
])
def test_rtl(secp128r1, add, dbl, scale):
@@ -67,7 +67,7 @@ def test_rtl(secp128r1, add, dbl, scale):
@pytest.mark.parametrize("add,dbl,scale",
[
("add-1998-cmo", "dbl-1998-cmo", "z"),
- ("add-2016-rcb", "dbl-2016-rcb", None),
+ ("add-2015-rcb", "dbl-2015-rcb", None),
("add-1998-cmo", "dbl-1998-cmo", None),
])
def test_ltr(secp128r1, add, dbl, scale):
@@ -98,7 +98,7 @@ def test_ltr(secp128r1, add, dbl, scale):
@pytest.mark.parametrize("add,dbl,scale",
[
("add-1998-cmo", "dbl-1998-cmo", "z"),
- ("add-2016-rcb", "dbl-2016-rcb", None),
+ ("add-2015-rcb", "dbl-2015-rcb", None),
("add-1998-cmo", "dbl-1998-cmo", None),
])
def test_doubleandadd(secp128r1, add, dbl, scale):
@@ -130,7 +130,7 @@ def test_doubleandadd(secp128r1, add, dbl, scale):
@pytest.mark.parametrize("add,dbl,scale",
[
("add-1998-cmo", "dbl-1998-cmo", "z"),
- ("add-2016-rcb", "dbl-2016-rcb", None),
+ ("add-2015-rcb", "dbl-2015-rcb", None),
("add-1998-cmo", "dbl-1998-cmo", None),
]
)
@@ -162,7 +162,7 @@ def test_ladder(curve25519):
@pytest.mark.parametrize("add,dbl,scale",
[
("add-1998-cmo", "dbl-1998-cmo", "z"),
- ("add-2016-rcb", "dbl-2016-rcb", None),
+ ("add-2015-rcb", "dbl-2015-rcb", None),
("add-1998-cmo", "dbl-1998-cmo", None),
])
def test_simple_ladder(secp128r1, add, dbl, scale):
@@ -204,7 +204,7 @@ def test_ladder_differential(curve25519, num, complete):
@pytest.mark.parametrize("add,dbl,neg,scale",
[
("add-1998-cmo", "dbl-1998-cmo", "neg", "z"),
- ("add-2016-rcb", "dbl-2016-rcb", "neg", None),
+ ("add-2015-rcb", "dbl-2015-rcb", "neg", None),
("add-1998-cmo", "dbl-1998-cmo", "neg", None),
])
def test_binary_naf(secp128r1, add, dbl, neg, scale):
@@ -217,10 +217,10 @@ def test_binary_naf(secp128r1, add, dbl, neg, scale):
[
("add-1998-cmo", "dbl-1998-cmo", "neg", 3, "z"),
("add-1998-cmo", "dbl-1998-cmo", "neg", 3, None),
- ("add-2016-rcb", "dbl-2016-rcb", "neg", 3, None),
+ ("add-2015-rcb", "dbl-2015-rcb", "neg", 3, None),
("add-1998-cmo", "dbl-1998-cmo", "neg", 5, "z"),
("add-1998-cmo", "dbl-1998-cmo", "neg", 5, None),
- ("add-2016-rcb", "dbl-2016-rcb", "neg", 5, None),
+ ("add-2015-rcb", "dbl-2015-rcb", "neg", 5, None),
])
def test_window_naf(secp128r1, add, dbl, neg, width, scale):
formulas = get_formulas(secp128r1.curve.coordinate_model, add, dbl, neg, scale)
@@ -245,7 +245,7 @@ def test_window_naf(secp128r1, add, dbl, neg, width, scale):
@pytest.mark.parametrize("add,dbl,width,scale",
[
("add-1998-cmo", "dbl-1998-cmo", 5, "z"),
- ("add-2016-rcb", "dbl-2016-rcb", 5, None),
+ ("add-2015-rcb", "dbl-2015-rcb", 5, None),
("add-1998-cmo", "dbl-1998-cmo", 5, None),
])
def test_fixed_window(secp128r1, add, dbl, width, scale):
@@ -261,12 +261,12 @@ def test_fixed_window(secp128r1, add, dbl, width, scale):
assert InfinityPoint(secp128r1.curve.coordinate_model) == mult.multiply(0)
-@pytest.fixture(params=["add-1998-cmo", "add-2016-rcb"])
+@pytest.fixture(params=["add-1998-cmo", "add-2015-rcb"])
def add(secp128r1, request):
return secp128r1.curve.coordinate_model.formulas[request.param]
-@pytest.fixture(params=["dbl-1998-cmo", "dbl-2016-rcb"])
+@pytest.fixture(params=["dbl-1998-cmo", "dbl-2015-rcb"])
def dbl(secp128r1, request):
return secp128r1.curve.coordinate_model.formulas[request.param]
diff --git a/test/ec/test_signature.py b/test/ec/test_signature.py
index c5abf74..1244d6e 100644
--- a/test/ec/test_signature.py
+++ b/test/ec/test_signature.py
@@ -123,8 +123,8 @@ def test_ecdsa_nist():
P192 = get_params("nist", "P-192", "projective")
affine_model = AffineCoordinateModel(P192.curve.model)
- add = P192.curve.coordinate_model.formulas["add-2016-rcb"]
- dbl = P192.curve.coordinate_model.formulas["dbl-2016-rcb"]
+ add = P192.curve.coordinate_model.formulas["add-2015-rcb"]
+ dbl = P192.curve.coordinate_model.formulas["dbl-2015-rcb"]
mult = LTRMultiplier(add, dbl)
priv = Mod(int(nist_data["priv"], 16), P192.order)
diff --git a/test/sca/perf_zvp.py b/test/sca/perf_zvp.py
index 770863e..6b4744f 100644
--- a/test/sca/perf_zvp.py
+++ b/test/sca/perf_zvp.py
@@ -28,7 +28,7 @@ def main(profiler, mod, operations, directory):
with TemporaryConfig() as cfg:
cfg.ec.mod_implementation = mod
p128 = get_params("secg", "secp128r1", "projective")
- formula = p128.curve.coordinate_model.formulas["add-2016-rcb"]
+ formula = p128.curve.coordinate_model.formulas["add-2015-rcb"]
unrolled = unroll_formula(formula)
poly = unrolled[7]
k = 5
diff --git a/test/sca/test_target.py b/test/sca/test_target.py
index 223b7cb..96dc081 100644
--- a/test/sca/test_target.py
+++ b/test/sca/test_target.py
@@ -327,8 +327,8 @@ def test_ecdh(target, secp256r1_affine, secp256r1_projective):
)
mult = LTRMultiplier(
- secp256r1_projective.curve.coordinate_model.formulas["add-2016-rcb"],
- secp256r1_projective.curve.coordinate_model.formulas["dbl-2016-rcb"],
+ secp256r1_projective.curve.coordinate_model.formulas["add-2015-rcb"],
+ secp256r1_projective.curve.coordinate_model.formulas["dbl-2015-rcb"],
)
ecdh = ECDH_SHA1(mult, secp256r1_projective, pubkey_projective, privkey)
expected = ecdh.perform()
@@ -348,8 +348,8 @@ def test_ecdh_raw(target, secp256r1_projective):
)
target.generate(KeypairEnum.KEYPAIR_LOCAL)
mult = LTRMultiplier(
- secp256r1_projective.curve.coordinate_model.formulas["add-2016-rcb"],
- secp256r1_projective.curve.coordinate_model.formulas["dbl-2016-rcb"],
+ secp256r1_projective.curve.coordinate_model.formulas["add-2015-rcb"],
+ secp256r1_projective.curve.coordinate_model.formulas["dbl-2015-rcb"],
)
keygen = KeyGeneration(copy(mult), secp256r1_projective)
_, pubkey_projective = keygen.generate()
@@ -412,13 +412,13 @@ def test_ecdsa(target, secp256r1_affine, secp256r1_projective):
sig = SignatureResult.from_DER(ecdsa_resp.signature)
mult = LTRMultiplier(
- secp256r1_projective.curve.coordinate_model.formulas["add-2016-rcb"],
- secp256r1_projective.curve.coordinate_model.formulas["dbl-2016-rcb"],
+ secp256r1_projective.curve.coordinate_model.formulas["add-2015-rcb"],
+ secp256r1_projective.curve.coordinate_model.formulas["dbl-2015-rcb"],
)
ecdsa = ECDSA_SHA1(
copy(mult),
secp256r1_projective,
- secp256r1_projective.curve.coordinate_model.formulas["add-2016-rcb"],
+ secp256r1_projective.curve.coordinate_model.formulas["add-2015-rcb"],
pubkey_projective,
)
assert ecdsa.verify_data(sig, data)
@@ -454,13 +454,13 @@ def test_ecdsa_sign(target, secp256r1_affine, secp256r1_projective):
sig = SignatureResult.from_DER(ecdsa_resp.signature)
mult = LTRMultiplier(
- secp256r1_projective.curve.coordinate_model.formulas["add-2016-rcb"],
- secp256r1_projective.curve.coordinate_model.formulas["dbl-2016-rcb"],
+ secp256r1_projective.curve.coordinate_model.formulas["add-2015-rcb"],
+ secp256r1_projective.curve.coordinate_model.formulas["dbl-2015-rcb"],
)
ecdsa = ECDSA_SHA1(
copy(mult),
secp256r1_projective,
- secp256r1_projective.curve.coordinate_model.formulas["add-2016-rcb"],
+ secp256r1_projective.curve.coordinate_model.formulas["add-2015-rcb"],
pubkey_projective,
)
assert ecdsa.verify_data(sig, data)
@@ -478,8 +478,8 @@ def test_ecdsa_verify(target, secp256r1_projective):
KeypairEnum.KEYPAIR_LOCAL, CurveEnum.secp256r1, ParameterEnum.DOMAIN_FP
)
mult = LTRMultiplier(
- secp256r1_projective.curve.coordinate_model.formulas["add-2016-rcb"],
- secp256r1_projective.curve.coordinate_model.formulas["dbl-2016-rcb"],
+ secp256r1_projective.curve.coordinate_model.formulas["add-2015-rcb"],
+ secp256r1_projective.curve.coordinate_model.formulas["dbl-2015-rcb"],
)
keygen = KeyGeneration(copy(mult), secp256r1_projective)
priv, pubkey_projective = keygen.generate()
@@ -494,7 +494,7 @@ def test_ecdsa_verify(target, secp256r1_projective):
ecdsa = ECDSA_SHA1(
copy(mult),
secp256r1_projective,
- secp256r1_projective.curve.coordinate_model.formulas["add-2016-rcb"],
+ secp256r1_projective.curve.coordinate_model.formulas["add-2015-rcb"],
pubkey_projective,
priv,
)
diff --git a/test/sca/test_zvp.py b/test/sca/test_zvp.py
index 30eade1..0be304f 100644
--- a/test/sca/test_zvp.py
+++ b/test/sca/test_zvp.py
@@ -9,7 +9,7 @@ from pyecsca.ec.context import local, DefaultContext
from sympy import symbols, Poly, sympify, FF
-@pytest.fixture(params=["add-2007-bl", "add-2016-rcb"])
+@pytest.fixture(params=["add-2007-bl", "add-2015-rcb"])
def formula(secp128r1, request):
return secp128r1.curve.coordinate_model.formulas[request.param]
@@ -21,6 +21,11 @@ def test_unroll(formula):
assert isinstance(res, Poly)
+def test_model_map(secp128r1):
+ # to_model_map(secp128r1.curve.coordinate_model)
+ pass
+
+
@pytest.mark.xfail(reason="Not removing Zs so far.")
def test_factor_set(formula):
factor_set = compute_factor_set(formula)
@@ -43,7 +48,7 @@ def test_factor_set(formula):
"2*X1^4 + 4*X1^3*X2 + 6*X1^2*X2^2 + 4*X1*X2^3 + 2*X2^4 - 3*X1*Y1^2 - 3*X2*Y1^2 - 6*X1*Y1*Y2 - 6*X2*Y1*Y2 - 3*X1*Y2^2 - 3*X2*Y2^2 + 4*X1^2*a + 4*X1*X2*a + 4*X2^2*a + 2*a^2",
"2*X1^6 + 6*X1^5*X2 + 12*X1^4*X2^2 + 14*X1^3*X2^3 + 12*X1^2*X2^4 + 6*X1*X2^5 + 2*X2^6 - 3*X1^3*Y1^2 - 6*X1^2*X2*Y1^2 - 6*X1*X2^2*Y1^2 - 3*X2^3*Y1^2 - 6*X1^3*Y1*Y2 - 12*X1^2*X2*Y1*Y2 - 12*X1*X2^2*Y1*Y2 - 6*X2^3*Y1*Y2 - 3*X1^3*Y2^2 - 6*X1^2*X2*Y2^2 - 6*X1*X2^2*Y2^2 - 3*X2^3*Y2^2 + 6*X1^4*a + 12*X1^3*X2*a + 18*X1^2*X2^2*a + 12*X1*X2^3*a + 6*X2^4*a + Y1^4 + 4*Y1^3*Y2 + 6*Y1^2*Y2^2 + 4*Y1*Y2^3 + Y2^4 - 3*X1*Y1^2*a - 3*X2*Y1^2*a - 6*X1*Y1*Y2*a - 6*X2*Y1*Y2*a - 3*X1*Y2^2*a - 3*X2*Y2^2*a + 6*X1^2*a^2 + 6*X1*X2*a^2 + 6*X2^2*a^2 + 2*a^3"
},
- "add-2016-rcb": {
+ "add-2015-rcb": {
"Y2",
"Y2 + 1",
"Y1",