diff options
author | Steffen Jaeckel <s@jaeckel.eu> | 2020-05-26 17:36:47 +0200 |
---|---|---|
committer | Steffen Jaeckel <s@jaeckel.eu> | 2020-05-26 17:36:47 +0200 |
commit | 4f11c927dfb74496017fd1d2e2b18e3afb2a93fd (patch) | |
tree | b448865b4989998f041b159bd913b79542f8623a /libtommath/bn_mp_shrink.c | |
parent | 1de4c3c6588830f9c2c4c7236596f5e0c639e588 (diff) | |
download | dropbear-4f11c927dfb74496017fd1d2e2b18e3afb2a93fd.tar.gz |
Update LibTomMath to 1.2.0 (#84)
* update C files
* update other files
* update headers
* update makefiles
* remove mp_set/get_double()
* use ltm 1.2.0 API
* update ltm_desc
* use bundled tommath if system-tommath is too old
* XMALLOC etc. were changed to MP_MALLOC etc.
Diffstat (limited to 'libtommath/bn_mp_shrink.c')
-rw-r--r-- | libtommath/bn_mp_shrink.c | 34 |
1 files changed, 9 insertions, 25 deletions
diff --git a/libtommath/bn_mp_shrink.c b/libtommath/bn_mp_shrink.c index f30c170..cf27ed9 100644 --- a/libtommath/bn_mp_shrink.c +++ b/libtommath/bn_mp_shrink.c @@ -1,38 +1,22 @@ #include "tommath_private.h" #ifdef BN_MP_SHRINK_C -/* LibTomMath, multiple-precision integer library -- Tom St Denis - * - * LibTomMath is a library that provides multiple-precision - * integer arithmetic as well as number theoretic functionality. - * - * The library was designed directly after the MPI library by - * Michael Fromberger but has been written from scratch with - * additional optimizations in place. - * - * SPDX-License-Identifier: Unlicense - */ +/* LibTomMath, multiple-precision integer library -- Tom St Denis */ +/* SPDX-License-Identifier: Unlicense */ /* shrink a bignum */ -int mp_shrink(mp_int *a) +mp_err mp_shrink(mp_int *a) { mp_digit *tmp; - int used = 1; - - if (a->used > 0) { - used = a->used; - } - - if (a->alloc != used) { - if ((tmp = OPT_CAST(mp_digit) XREALLOC(a->dp, sizeof(mp_digit) * (size_t)used)) == NULL) { + int alloc = MP_MAX(MP_MIN_PREC, a->used); + if (a->alloc != alloc) { + if ((tmp = (mp_digit *) MP_REALLOC(a->dp, + (size_t)a->alloc * sizeof(mp_digit), + (size_t)alloc * sizeof(mp_digit))) == NULL) { return MP_MEM; } a->dp = tmp; - a->alloc = used; + a->alloc = alloc; } return MP_OKAY; } #endif - -/* ref: HEAD -> master, tag: v1.1.0 */ -/* git commit: 08549ad6bc8b0cede0b357a9c341c5c6473a9c55 */ -/* commit time: 2019-01-28 20:32:32 +0100 */ |