diff options
author | Steffen Jaeckel <s@jaeckel.eu> | 2020-05-26 17:36:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-26 23:36:47 +0800 |
commit | b4bd23b4d2a4c640880b49069e02cd598dd03416 (patch) | |
tree | fb480b4e501cc69b305de95fb15259aa6afa1963 /libtommath/bn_mp_sub.c | |
parent | 724e61f8ae9e9f216b0252e41c5ebd5d64ad79a6 (diff) |
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_sub.c')
-rw-r--r-- | libtommath/bn_mp_sub.c | 33 |
1 files changed, 9 insertions, 24 deletions
diff --git a/libtommath/bn_mp_sub.c b/libtommath/bn_mp_sub.c index 51b998d..c1ea39e 100644 --- a/libtommath/bn_mp_sub.c +++ b/libtommath/bn_mp_sub.c @@ -1,24 +1,13 @@ #include "tommath_private.h" #ifdef BN_MP_SUB_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 */ /* high level subtraction (handles signs) */ -int mp_sub(const mp_int *a, const mp_int *b, mp_int *c) +mp_err mp_sub(const mp_int *a, const mp_int *b, mp_int *c) { - int sa, sb, res; - - sa = a->sign; - sb = b->sign; + mp_sign sa = a->sign, sb = b->sign; + mp_err err; if (sa != sb) { /* subtract a negative from a positive, OR */ @@ -26,7 +15,7 @@ int mp_sub(const mp_int *a, const mp_int *b, mp_int *c) /* In either case, ADD their magnitudes, */ /* and use the sign of the first number. */ c->sign = sa; - res = s_mp_add(a, b, c); + err = s_mp_add(a, b, c); } else { /* subtract a positive from a positive, OR */ /* subtract a negative from a negative. */ @@ -36,20 +25,16 @@ int mp_sub(const mp_int *a, const mp_int *b, mp_int *c) /* Copy the sign from the first */ c->sign = sa; /* The first has a larger or equal magnitude */ - res = s_mp_sub(a, b, c); + err = s_mp_sub(a, b, c); } else { /* The result has the *opposite* sign from */ /* the first number. */ c->sign = (sa == MP_ZPOS) ? MP_NEG : MP_ZPOS; /* The second has a larger magnitude */ - res = s_mp_sub(b, a, c); + err = s_mp_sub(b, a, c); } } - return res; + return err; } #endif - -/* ref: HEAD -> master, tag: v1.1.0 */ -/* git commit: 08549ad6bc8b0cede0b357a9c341c5c6473a9c55 */ -/* commit time: 2019-01-28 20:32:32 +0100 */ |