aboutsummaryrefslogtreecommitdiffhomepage
path: root/pyecsca/ec
diff options
context:
space:
mode:
Diffstat (limited to 'pyecsca/ec')
-rw-r--r--pyecsca/ec/curve.py4
-rw-r--r--pyecsca/ec/formula/base.py7
2 files changed, 7 insertions, 4 deletions
diff --git a/pyecsca/ec/curve.py b/pyecsca/ec/curve.py
index f274683..fedf65f 100644
--- a/pyecsca/ec/curve.py
+++ b/pyecsca/ec/curve.py
@@ -120,8 +120,8 @@ class EllipticCurve:
lhs, rhs = assumption_string.split(" = ")
expr = sympify(f"{rhs} - {lhs}")
for symbol in expr.free_symbols:
- if (value := self.parameters.get(str(symbol), None)) is not None:
- expr = expr.subs(symbol, value)
+ if (val := self.parameters.get(str(symbol), None)) is not None:
+ expr = expr.subs(symbol, val)
if len(expr.free_symbols) > 0:
raise ValueError(
f"Missing necessary coordinate model parameter ({assumption_string})."
diff --git a/pyecsca/ec/formula/base.py b/pyecsca/ec/formula/base.py
index 7e6c1ad..22148cb 100644
--- a/pyecsca/ec/formula/base.py
+++ b/pyecsca/ec/formula/base.py
@@ -187,15 +187,18 @@ class Formula(ABC):
params[lhs] = SymbolicMod(expr, field)
else:
expr = sympify(f"{rhs} - {lhs}", evaluate=False)
+ remaining = []
for symbol in expr.free_symbols:
if (value := params.get(str(symbol), None)) is not None:
if isinstance(value, SymbolicMod):
expr = expr.subs(symbol, value.x)
else:
expr = expr.subs(symbol, int(value))
+ else:
+ remaining.append(symbol)
if (
- len(expr.free_symbols) > 1
- or (param := str(expr.free_symbols.pop())) not in self.parameters
+ len(remaining) > 1
+ or (param := str(remaining[0])) not in self.parameters
):
raise ValueError(
f"This formula couldn't be executed due to an unsupported assumption ({assumption_string})."