diff options
author | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2021-11-30 22:04:16 +0200 |
---|---|---|
committer | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2021-12-01 22:47:38 +0200 |
commit | d5bf106468e6c6b0f33b193abf04590e4e9fc011 (patch) | |
tree | 968fbb91fdd75ff0ebd43eb0458631c0edb4c6d9 /mpi | |
parent | bff9ed54285b9a332382589d89e317da987b5b38 (diff) | |
download | libgcrypt-d5bf106468e6c6b0f33b193abf04590e4e9fc011.tar.gz |
gcry_mpi_sub_ui: fix subtracting from negative value
* mpi/mpi-add.c (_gcry_mpi_sub_ui): Set output sign bit when 'u'
is negative.
* tests/mpitests.c (test_add): Additional tests for mpi_add_ui; Check
test output and fail if output does not match expected.
(test_sub): Additional tests for mpi_sub_ui; Check test output and fail
if output does not match expected.
(test_mul): Additional tests for mpi_mul_ui; Check test output and fail
if output does not match expected.
--
Reported-by: Guido Vranken <guidovranken@gmail.com>
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Diffstat (limited to 'mpi')
-rw-r--r-- | mpi/mpi-add.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/mpi/mpi-add.c b/mpi/mpi-add.c index 53f476e0..38dd352f 100644 --- a/mpi/mpi-add.c +++ b/mpi/mpi-add.c @@ -191,6 +191,7 @@ _gcry_mpi_sub_ui(gcry_mpi_t w, gcry_mpi_t u, unsigned long v ) cy = _gcry_mpih_add_1(wp, up, usize, v); wp[usize] = cy; wsize = usize + cy; + wsign = 1; } else { /* The signs are different. Need exact comparison to determine * which operand to subtract from which. */ |