mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-03-31 02:32:49 -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:
parent
3adfb1aa5b
commit
d5af33da53
@ -82,6 +82,14 @@ mp_int *mp_new(size_t maxbits)
|
|||||||
return mp_make_sized(words);
|
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 *mp_from_integer(uintmax_t n)
|
||||||
{
|
{
|
||||||
mp_int *x = mp_make_sized(
|
mp_int *x = mp_make_sized(
|
||||||
|
7
mpint.h
7
mpint.h
@ -42,6 +42,13 @@ mp_int *mp_new(size_t maxbits);
|
|||||||
void mp_free(mp_int *);
|
void mp_free(mp_int *);
|
||||||
void mp_clear(mp_int *x);
|
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
|
* Create mp_ints from various sources: little- and big-endian binary
|
||||||
* data, an ordinary C unsigned integer type, a decimal or hex string
|
* data, an ordinary C unsigned integer type, a decimal or hex string
|
||||||
|
Loading…
x
Reference in New Issue
Block a user