aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--pyecsca/ec/point.py2
-rw-r--r--test/ec/test_regress.py3
2 files changed, 4 insertions, 1 deletions
diff --git a/pyecsca/ec/point.py b/pyecsca/ec/point.py
index a3c388e..88c925b 100644
--- a/pyecsca/ec/point.py
+++ b/pyecsca/ec/point.py
@@ -109,7 +109,7 @@ class Point(object):
elif coordinate_model.name == "yz":
result[var] = result[var] * curve.parameters["r"]
elif coordinate_model.name == "yzsquared":
- result[var] = result[var] * curve.parameters["r"]**2
+ result[var] = result[var]**2 * curve.parameters["r"]
elif var.startswith("Z"):
result[var] = Mod(1, curve.prime)
elif var == "T":
diff --git a/test/ec/test_regress.py b/test/ec/test_regress.py
index 9d0d5a3..fe14eb3 100644
--- a/test/ec/test_regress.py
+++ b/test/ec/test_regress.py
@@ -59,6 +59,7 @@ class RegressionTests(TestCase):
def test_issue_10(self):
model = EdwardsModel()
coords = model.coordinates["yz"]
+ coords_sqr = model.coordinates["yzsquared"]
p = 0x1d
c = Mod(1, p)
d = Mod(0x1c, p)
@@ -67,3 +68,5 @@ class RegressionTests(TestCase):
curve = EllipticCurve(model, coords, p, neutral, {"c": c, "d": d, "r": r})
neutral_affine = Point(AffineCoordinateModel(model), x=Mod(0, p), y=c)
self.assertEqual(neutral, neutral_affine.to_model(coords, curve))
+ neutral_sqr = Point(coords_sqr, Y=c**2 * r, Z=Mod(1, p))
+ self.assertEqual(neutral_sqr, neutral_affine.to_model(coords_sqr, curve))