aboutsummaryrefslogtreecommitdiff
path: root/pyecsca/ec/context.py
diff options
context:
space:
mode:
authorJ08nY2019-01-05 17:12:22 +0100
committerJ08nY2019-03-21 11:00:14 +0100
commit7b7ec1729030ededfb400967df082fa86ce3239f (patch)
tree074c177b3776f21217d54624ac8f26ffe7b4e338 /pyecsca/ec/context.py
parente016716968700950f9a92f14389d20f643365c5e (diff)
downloadpyecsca-7b7ec1729030ededfb400967df082fa86ce3239f.tar.gz
pyecsca-7b7ec1729030ededfb400967df082fa86ce3239f.tar.zst
pyecsca-7b7ec1729030ededfb400967df082fa86ce3239f.zip
Diffstat (limited to 'pyecsca/ec/context.py')
-rw-r--r--pyecsca/ec/context.py11
1 files changed, 4 insertions, 7 deletions
diff --git a/pyecsca/ec/context.py b/pyecsca/ec/context.py
index e691184..7fafadc 100644
--- a/pyecsca/ec/context.py
+++ b/pyecsca/ec/context.py
@@ -24,13 +24,10 @@ class Context(object):
for coord, value in point.coords.items():
coords[coord + str(i + 1)] = value
locals = {**coords, **params}
- previous_locals = set(locals.keys())
- for line in formula.code:
- exec(compile(line, "", mode="exec"), {}, locals)
- diff = set(locals.keys()).difference(previous_locals)
- previous_locals = set(locals.keys())
- for key in diff:
- self.intermediates.append((key, locals[key]))
+ for op in formula.code:
+ op_result = op(**locals)
+ self.intermediates.append((op.result, op_result))
+ locals[op.result] = op_result
result = []
for i in range(formula.num_outputs):
ind = str(i + 3)