aboutsummaryrefslogtreecommitdiff
path: root/pyecsca/ec/mult
diff options
context:
space:
mode:
authorJ08nY2025-08-21 16:48:52 +0200
committerJ08nY2025-08-21 16:48:52 +0200
commit8f95d0ff284cc48db26c1b916b548b6ad5967dfe (patch)
tree3576f0750d3ddef5fab5909507c3157658ee92f0 /pyecsca/ec/mult
parentc36ee8a2c07ec58b556e505e4ecf61c871dc94c9 (diff)
downloadpyecsca-8f95d0ff284cc48db26c1b916b548b6ad5967dfe.tar.gz
pyecsca-8f95d0ff284cc48db26c1b916b548b6ad5967dfe.tar.zst
pyecsca-8f95d0ff284cc48db26c1b916b548b6ad5967dfe.zip
Diffstat (limited to 'pyecsca/ec/mult')
-rw-r--r--pyecsca/ec/mult/naf.py5
-rw-r--r--pyecsca/ec/mult/window.py8
2 files changed, 8 insertions, 5 deletions
diff --git a/pyecsca/ec/mult/naf.py b/pyecsca/ec/mult/naf.py
index cbb884e..1d77056 100644
--- a/pyecsca/ec/mult/naf.py
+++ b/pyecsca/ec/mult/naf.py
@@ -271,7 +271,10 @@ class WindowNAFMultiplier(AccumulatorMultiplier, PrecompMultiplier, ScalarMultip
if self.precompute_negation:
self._points_neg[2 * i + 1] = self._neg(current_point)
current_point = self._add(current_point, double_point)
- action.exit({**self._points, **self._points_neg})
+ result = {**self._points}
+ if self.precompute_negation:
+ result.update({-k: v for k, v in self._points_neg.items()})
+ action.exit(result)
def multiply(self, scalar: int) -> Point:
if not self._initialized:
diff --git a/pyecsca/ec/mult/window.py b/pyecsca/ec/mult/window.py
index 327f794..ed0cd05 100644
--- a/pyecsca/ec/mult/window.py
+++ b/pyecsca/ec/mult/window.py
@@ -309,7 +309,7 @@ class WindowBoothMultiplier(AccumulatorMultiplier, PrecompMultiplier, ScalarMult
return f"{self.__class__.__name__}({', '.join(map(str, self.formulas.values()))}, short_circuit={self.short_circuit}, width={self.width}, precompute_negation={self.precompute_negation}, accumulation_order={self.accumulation_order.name})"
def init(self, params: DomainParameters, point: Point, bits: Optional[int] = None):
- with PrecomputationAction(params, point) as actions:
+ with PrecomputationAction(params, point) as action:
super().init(params, point, bits)
double_point = self._dbl(point)
self._points = {1: point, 2: double_point}
@@ -321,10 +321,10 @@ class WindowBoothMultiplier(AccumulatorMultiplier, PrecompMultiplier, ScalarMult
self._points[i] = current_point
if self.precompute_negation:
self._points_neg[i] = self._neg(current_point)
+ result = {**self._points}
if self.precompute_negation:
- actions.exit({**self._points, **self._points_neg})
- else:
- actions.exit(self._points)
+ result.update({-k: v for k, v in self._points_neg.items()})
+ action.exit(result)
def multiply(self, scalar: int) -> Point:
if not self._initialized: