diff options
author | Matt Johnston <matt@ucc.asn.au> | 2020-06-26 21:07:34 +0800 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2020-06-26 21:07:34 +0800 |
commit | 71b4ec569cb33a5dcd4abf50650ccd78e6d3b2dd (patch) | |
tree | 497adde943fd41206f8d263131b255dda1833ca1 /libtommath/bn_mp_to_sbin.c | |
parent | 3187f27fcd533b8d16feebba9090007c82725eff (diff) | |
parent | eaf9be05d7d9de22f2ff936882874331fc2d1a0e (diff) | |
download | dropbear-71b4ec569cb33a5dcd4abf50650ccd78e6d3b2dd.tar.gz |
merge coverity from maincoverity
Diffstat (limited to 'libtommath/bn_mp_to_sbin.c')
-rw-r--r-- | libtommath/bn_mp_to_sbin.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libtommath/bn_mp_to_sbin.c b/libtommath/bn_mp_to_sbin.c new file mode 100644 index 0000000..dbaf53e --- /dev/null +++ b/libtommath/bn_mp_to_sbin.c @@ -0,0 +1,22 @@ +#include "tommath_private.h" +#ifdef BN_MP_TO_SBIN_C +/* LibTomMath, multiple-precision integer library -- Tom St Denis */ +/* SPDX-License-Identifier: Unlicense */ + +/* store in signed [big endian] format */ +mp_err mp_to_sbin(const mp_int *a, unsigned char *buf, size_t maxlen, size_t *written) +{ + mp_err err; + if (maxlen == 0u) { + return MP_BUF; + } + if ((err = mp_to_ubin(a, buf + 1, maxlen - 1u, written)) != MP_OKAY) { + return err; + } + if (written != NULL) { + (*written)++; + } + buf[0] = (a->sign == MP_ZPOS) ? (unsigned char)0 : (unsigned char)1; + return MP_OKAY; +} +#endif |