1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-03-28 09:17:07 -05:00

Utility function mp_resize.

This reallocs an existing mp_int to have a different physical size,
e.g. to make sure there's enough space at the top of it.

Trivial, but I'm a little surprised I haven't needed it until now!
This commit is contained in:
Simon Tatham 2022-04-15 17:18:23 +01:00
parent 3adfb1aa5b
commit d5af33da53
2 changed files with 15 additions and 0 deletions

View File

@ -82,6 +82,14 @@ mp_int *mp_new(size_t maxbits)
return mp_make_sized(words);
}
mp_int *mp_resize(mp_int *mp, size_t newmaxbits)
{
mp_int *copy = mp_new(newmaxbits);
mp_copy_into(copy, mp);
mp_free(mp);
return copy;
}
mp_int *mp_from_integer(uintmax_t n)
{
mp_int *x = mp_make_sized(

View File

@ -42,6 +42,13 @@ mp_int *mp_new(size_t maxbits);
void mp_free(mp_int *);
void mp_clear(mp_int *x);
/*
* Resize the physical size of existing mp_int, e.g. so that you have
* room to transform it in place to a larger value. Destroys the old
* mp_int in the process.
*/
mp_int *mp_resize(mp_int *, size_t newmaxbits);
/*
* Create mp_ints from various sources: little- and big-endian binary
* data, an ordinary C unsigned integer type, a decimal or hex string