Skip to content

Commit fbbfb99

Browse files
committed
Fix: change the MLD_INTT_BOUND to (3 * MLDSA_Q / 4), fix the debug test error
Signed-off-by: willieyz <willie.zhao@chelpis.com>
1 parent 90a6698 commit fbbfb99

File tree

4 files changed

+12
-16
lines changed

4 files changed

+12
-16
lines changed

mldsa/debug.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,9 @@ void mld_debug_check_bounds(const char *file, int line, const int32_t *ptr,
6666
* ptr: Base of array, expression of type int32_t*
6767
* len: Number of int32_t in array
6868
* value_abs_bd: Exclusive absolute upper bound */
69-
#define mld_assert_abs_bound(ptr, len, value_abs_bd) \
70-
mld_assert_bound((ptr), (len), (-((int64_t)(value_abs_bd)) + 1), (value_abs_bd))
69+
#define mld_assert_abs_bound(ptr, len, value_abs_bd) \
70+
mld_assert_bound((ptr), (len), (-((int64_t)(value_abs_bd)) + 1), \
71+
(value_abs_bd))
7172

7273
/* Version of bounds assertions for 2-dimensional arrays */
7374
#define mld_assert_bound_2d(ptr, len0, len1, value_lb, value_ub) \

mldsa/ntt.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
/* Absolute exclusive upper bound for the output of the forward NTT */
1313
#define MLD_NTT_BOUND (9 * MLDSA_Q)
1414
/* Absolute exclusive upper bound for the output of the inverse NTT*/
15-
#define MLD_INTT_BOUND 4211139
15+
#define MLD_INTT_BOUND (3 * MLDSA_Q / 4)
1616

1717
#define mld_ntt MLD_NAMESPACE(ntt)
1818
/*************************************************

mldsa/poly.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ void mld_poly_invntt_tomont(mld_poly *a)
138138
{
139139
mld_assert_abs_bound(a->coeffs, MLDSA_N, MLDSA_Q);
140140
mld_intt_native(a->coeffs);
141-
mld_assert_abs_bound(a->coeffs, MLDSA_N, MLDSA_Q);
141+
mld_assert_abs_bound(a->coeffs, MLDSA_N, MLD_INTT_BOUND);
142142
}
143143
#endif /* MLD_USE_NATIVE_INTT */
144144

mldsa/polyvec.c

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,7 @@ void mld_polyvecl_uniform_gamma1(mld_polyvecl *v,
167167
void mld_polyvecl_reduce(mld_polyvecl *v)
168168
{
169169
unsigned int i;
170-
mld_assert_bound_2d(v->vec, MLDSA_L, MLDSA_N, INT32_MIN,
171-
REDUCE32_DOMAIN_MAX);
170+
mld_assert_bound_2d(v->vec, MLDSA_L, MLDSA_N, INT32_MIN, REDUCE32_DOMAIN_MAX);
172171

173172
for (i = 0; i < MLDSA_L; ++i)
174173
__loop__(
@@ -203,8 +202,7 @@ void mld_polyvecl_add(mld_polyvecl *u, const mld_polyvecl *v)
203202
{
204203
mld_poly_add(&u->vec[i], &v->vec[i]);
205204
}
206-
mld_assert_bound_2d(u->vec, MLDSA_L, MLDSA_N, INT32_MIN,
207-
REDUCE32_DOMAIN_MAX);
205+
mld_assert_bound_2d(u->vec, MLDSA_L, MLDSA_N, INT32_MIN, REDUCE32_DOMAIN_MAX);
208206
}
209207

210208
void mld_polyvecl_ntt(mld_polyvecl *v)
@@ -240,7 +238,7 @@ void mld_polyvecl_invntt_tomont(mld_polyvecl *v)
240238
mld_poly_invntt_tomont(&v->vec[i]);
241239
}
242240

243-
mld_assert_abs_bound_2d(v->vec, MLDSA_L, MLDSA_N, MLD_NTT_BOUND);
241+
mld_assert_abs_bound_2d(v->vec, MLDSA_L, MLDSA_N, MLD_INTT_BOUND);
244242
}
245243

246244
void mld_polyvecl_pointwise_poly_montgomery(mld_polyvecl *r, const mld_poly *a,
@@ -350,8 +348,7 @@ uint32_t mld_polyvecl_chknorm(const mld_polyvecl *v, int32_t bound)
350348
void mld_polyveck_reduce(mld_polyveck *v)
351349
{
352350
unsigned int i;
353-
mld_assert_bound_2d(v->vec, MLDSA_K, MLDSA_N, INT32_MIN,
354-
REDUCE32_DOMAIN_MAX);
351+
mld_assert_bound_2d(v->vec, MLDSA_K, MLDSA_N, INT32_MIN, REDUCE32_DOMAIN_MAX);
355352

356353
for (i = 0; i < MLDSA_K; ++i)
357354
__loop__(
@@ -405,8 +402,7 @@ void mld_polyveck_add(mld_polyveck *u, const mld_polyveck *v)
405402
{
406403
mld_poly_add(&u->vec[i], &v->vec[i]);
407404
}
408-
mld_assert_bound_2d(u->vec, MLDSA_L, MLDSA_N, INT32_MIN,
409-
REDUCE32_DOMAIN_MAX);
405+
mld_assert_bound_2d(u->vec, MLDSA_L, MLDSA_N, INT32_MIN, REDUCE32_DOMAIN_MAX);
410406
}
411407

412408
void mld_polyveck_sub(mld_polyveck *u, const mld_polyveck *v)
@@ -427,8 +423,7 @@ void mld_polyveck_sub(mld_polyveck *u, const mld_polyveck *v)
427423
mld_poly_sub(&u->vec[i], &v->vec[i]);
428424
}
429425

430-
mld_assert_bound_2d(u->vec, MLDSA_K, MLDSA_N, INT32_MIN,
431-
REDUCE32_DOMAIN_MAX);
426+
mld_assert_bound_2d(u->vec, MLDSA_K, MLDSA_N, INT32_MIN, REDUCE32_DOMAIN_MAX);
432427
}
433428

434429
void mld_polyveck_shiftl(mld_polyveck *v)
@@ -483,7 +478,7 @@ void mld_polyveck_invntt_tomont(mld_polyveck *v)
483478
mld_poly_invntt_tomont(&v->vec[i]);
484479
}
485480

486-
mld_assert_abs_bound_2d(v->vec, MLDSA_K, MLDSA_N, MLD_NTT_BOUND);
481+
mld_assert_abs_bound_2d(v->vec, MLDSA_K, MLDSA_N, MLD_INTT_BOUND);
487482
}
488483

489484
void mld_polyveck_pointwise_poly_montgomery(mld_polyveck *r, const mld_poly *a,

0 commit comments

Comments
 (0)