aboutsummaryrefslogtreecommitdiff
path: root/pyecsca/ec/point.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyecsca/ec/point.py')
-rw-r--r--pyecsca/ec/point.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/pyecsca/ec/point.py b/pyecsca/ec/point.py
index 2e41606..f20d5e0 100644
--- a/pyecsca/ec/point.py
+++ b/pyecsca/ec/point.py
@@ -51,20 +51,21 @@ class Point(object):
with CoordinateMappingAction(self.coordinate_model, affine_model, self):
if isinstance(self.coordinate_model, AffineCoordinateModel):
return copy(self)
- ops = set()
+ ops = list()
for s in self.coordinate_model.satisfying:
try:
- ops.add(CodeOp(s))
+ ops.append(CodeOp(s))
except Exception:
pass
result_variables = set(map(lambda x: x.result, ops))
if not result_variables.issuperset(affine_model.variables):
raise NotImplementedError
result = {}
+ locals = {**self.coords}
for op in ops:
- if op.result not in affine_model.variables:
- continue
- result[op.result] = op(**self.coords)
+ locals[op.result] = op(**locals)
+ if op.result in affine_model.variables:
+ result[op.result] = locals[op.result]
return Point(affine_model, **result)
@staticmethod