aboutsummaryrefslogtreecommitdiffhomepage
path: root/pyecsca/codegen/templates
diff options
context:
space:
mode:
authorJ08nY2025-11-30 18:02:02 +0100
committerJ08nY2025-11-30 18:02:02 +0100
commitb602400a52ff42f64faf495a9e46dbb17c86a472 (patch)
treefd40cfcc862115890e401f75398b99a7ccb04804 /pyecsca/codegen/templates
parente09d15a667a5cc0285319c17ce6de806b9681d06 (diff)
downloadpyecsca-codegen-b602400a52ff42f64faf495a9e46dbb17c86a472.tar.gz
pyecsca-codegen-b602400a52ff42f64faf495a9e46dbb17c86a472.tar.zst
pyecsca-codegen-b602400a52ff42f64faf495a9e46dbb17c86a472.zip
Fix equivalence to pyecsca mults.HEADmaster
Diffstat (limited to 'pyecsca/codegen/templates')
-rw-r--r--pyecsca/codegen/templates/mult_comb.c2
-rw-r--r--pyecsca/codegen/templates/mult_sliding_w.c4
-rw-r--r--pyecsca/codegen/templates/mult_wnaf.c4
3 files changed, 7 insertions, 3 deletions
diff --git a/pyecsca/codegen/templates/mult_comb.c b/pyecsca/codegen/templates/mult_comb.c
index 1fbb5a3..d656876 100644
--- a/pyecsca/codegen/templates/mult_comb.c
+++ b/pyecsca/codegen/templates/mult_comb.c
@@ -12,7 +12,7 @@ static void scalar_mult_inner(bn_t *scalar, point_t *point, curve_t *curve, poin
point_t *current = point_copy(point);
for (int i = 0; i < {{ scalarmult.width }}; i++) {
base_points[i] = point_copy(current);
- if (i != d - 1) {
+ if (i != {{ scalarmult.width }} - 1) {
for (int j = 0; j < d; j++) {
point_dbl(current, curve, current);
}
diff --git a/pyecsca/codegen/templates/mult_sliding_w.c b/pyecsca/codegen/templates/mult_sliding_w.c
index 347c313..19d6900 100644
--- a/pyecsca/codegen/templates/mult_sliding_w.c
+++ b/pyecsca/codegen/templates/mult_sliding_w.c
@@ -10,7 +10,9 @@ static void scalar_mult_inner(bn_t *scalar, point_t *point, curve_t *curve, poin
point_dbl(current, curve, dbl);
for (long i = 0; i < {{ 2 ** (scalarmult.width - 1) }}; i++) {
points[i] = point_copy(current);
- point_add(current, dbl, curve, current);
+ if (i + 1 < {{ 2 ** (scalarmult.width - 1) }}) {
+ point_add(current, dbl, curve, current);
+ }
}
point_free(current);
point_free(dbl);
diff --git a/pyecsca/codegen/templates/mult_wnaf.c b/pyecsca/codegen/templates/mult_wnaf.c
index 569e78b..1d15f07 100644
--- a/pyecsca/codegen/templates/mult_wnaf.c
+++ b/pyecsca/codegen/templates/mult_wnaf.c
@@ -19,7 +19,9 @@ static void scalar_mult_inner(bn_t *scalar, point_t *point, curve_t *curve, poin
points_neg[i] = point_copy(current);
point_neg(points_neg[i], curve, points_neg[i]);
{%- endif %}
- point_add(current, dbl, curve, current);
+ if (i != {{ 2 ** (scalarmult.width - 2) }} - 1) {
+ point_add(current, dbl, curve, current);
+ }
}
point_free(current);
point_free(dbl);