From a0054ad8212ecf0f31608fee60cafb32fbde789d Mon Sep 17 00:00:00 2001 From: Thomas Pornin Date: Tue, 31 Jul 2018 22:53:35 +0200 Subject: [PATCH] Fixed computation of product size. --- src/int/i15_mulacc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/int/i15_mulacc.c b/src/int/i15_mulacc.c index 69f4696..7a073ac 100644 --- a/src/int/i15_mulacc.c +++ b/src/int/i15_mulacc.c @@ -38,9 +38,9 @@ br_i15_mulacc(uint16_t *d, const uint16_t *a, const uint16_t *b) * Announced bit length of d[] will be the sum of the announced * bit lengths of a[] and b[]; but the lengths are encoded. */ - dl = (a[0] & 15) + (d[0] & 15); + dl = (a[0] & 15) + (b[0] & 15); dh = (a[0] >> 4) + (b[0] >> 4); - d[0] = (dh << 4) + dl + (~(uint16_t)(dl - 15) >> 15); + d[0] = (dh << 4) + dl + (~(uint32_t)(dl - 15) >> 31); for (u = 0; u < blen; u ++) { uint32_t f; -- 2.17.1