summaryrefslogtreecommitdiff
path: root/libtommath/bn_mp_grow.c
diff options
context:
space:
mode:
Diffstat (limited to 'libtommath/bn_mp_grow.c')
-rw-r--r--libtommath/bn_mp_grow.c30
1 files changed, 7 insertions, 23 deletions
diff --git a/libtommath/bn_mp_grow.c b/libtommath/bn_mp_grow.c
index bb77565..9e904c5 100644
--- a/libtommath/bn_mp_grow.c
+++ b/libtommath/bn_mp_grow.c
@@ -1,35 +1,25 @@
#include "tommath_private.h"
#ifdef BN_MP_GROW_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 */
/* grow as required */
-int mp_grow(mp_int *a, int size)
+mp_err mp_grow(mp_int *a, int size)
{
int i;
mp_digit *tmp;
/* if the alloc size is smaller alloc more ram */
if (a->alloc < size) {
- /* ensure there are always at least MP_PREC digits extra on top */
- size += (MP_PREC * 2) - (size % MP_PREC);
-
/* reallocate the array a->dp
*
* We store the return in a temporary variable
* in case the operation failed we don't want
* to overwrite the dp member of a.
*/
- tmp = OPT_CAST(mp_digit) XREALLOC(a->dp, sizeof(mp_digit) * (size_t)size);
+ tmp = (mp_digit *) MP_REALLOC(a->dp,
+ (size_t)a->alloc * sizeof(mp_digit),
+ (size_t)size * sizeof(mp_digit));
if (tmp == NULL) {
/* reallocation failed but "a" is still valid [can be freed] */
return MP_MEM;
@@ -41,14 +31,8 @@ int mp_grow(mp_int *a, int size)
/* zero excess digits */
i = a->alloc;
a->alloc = size;
- for (; i < a->alloc; i++) {
- a->dp[i] = 0;
- }
+ MP_ZERO_DIGITS(a->dp + i, a->alloc - i);
}
return MP_OKAY;
}
#endif
-
-/* ref: HEAD -> master, tag: v1.1.0 */
-/* git commit: 08549ad6bc8b0cede0b357a9c341c5c6473a9c55 */
-/* commit time: 2019-01-28 20:32:32 +0100 */