aboutsummaryrefslogtreecommitdiff
path: root/pyecsca
diff options
context:
space:
mode:
Diffstat (limited to 'pyecsca')
-rw-r--r--pyecsca/ec/mult/naf.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/pyecsca/ec/mult/naf.py b/pyecsca/ec/mult/naf.py
index 6d3e566..a9ad1a1 100644
--- a/pyecsca/ec/mult/naf.py
+++ b/pyecsca/ec/mult/naf.py
@@ -101,31 +101,33 @@ class BinaryNAFMultiplier(AccumulatorMultiplier, PrecompMultiplier, ScalarMultip
q = copy(self._params.curve.neutral)
for val in scalar_naf:
q = self._dbl(q)
+ orig = q
if val == 1:
q = self._accumulate(q, self._point)
if self.always:
- self._accumulate(q, self._point_neg)
+ self._accumulate(orig, self._point_neg)
elif val == -1:
# TODO: Whether this negation is precomputed can be a parameter
q = self._accumulate(q, self._point_neg)
if self.always:
- self._accumulate(q, self._point)
+ self._accumulate(orig, self._point)
return q
def _rtl(self, scalar_naf: List[int]) -> Point:
q = self._point
r = copy(self._params.curve.neutral)
for val in reversed(scalar_naf):
+ orig = r
if val == 1:
r = self._accumulate(r, q)
if self.always:
neg = self._neg(q)
- self._accumulate(r, neg)
+ self._accumulate(orig, neg)
elif val == -1:
neg = self._neg(q)
r = self._accumulate(r, neg)
if self.always:
- self._accumulate(r, q)
+ self._accumulate(orig, q)
q = self._dbl(q)
return r