aboutsummaryrefslogtreecommitdiffhomepage
path: root/pyecsca
diff options
context:
space:
mode:
authorJ08nY2025-03-28 10:08:17 +0100
committerJ08nY2025-03-28 10:08:17 +0100
commit7afddf743cfdadbaff1a3bf2581c039c6e0816bb (patch)
tree5d912f55679428f31ac620b009b94d82ecd5a40f /pyecsca
parent1e72c45f317103bee20e00e66eff473ade40e33d (diff)
downloadpyecsca-7afddf743cfdadbaff1a3bf2581c039c6e0816bb.tar.gz
pyecsca-7afddf743cfdadbaff1a3bf2581c039c6e0816bb.tar.zst
pyecsca-7afddf743cfdadbaff1a3bf2581c039c6e0816bb.zip
Fix bnaf always.
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