From 8f95d0ff284cc48db26c1b916b548b6ad5967dfe Mon Sep 17 00:00:00 2001 From: J08nY Date: Thu, 21 Aug 2025 16:48:52 +0200 Subject: Fix use_init and use_multiply in errors_out. --- pyecsca/ec/mult/naf.py | 5 ++++- pyecsca/ec/mult/window.py | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'pyecsca/ec') 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: -- cgit v1.2.3-70-g09d2