diff options
Diffstat (limited to 'libtommath/bn_mp_radix_size.c')
-rw-r--r-- | libtommath/bn_mp_radix_size.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libtommath/bn_mp_radix_size.c b/libtommath/bn_mp_radix_size.c index 3d423ba..29b1d22 100644 --- a/libtommath/bn_mp_radix_size.c +++ b/libtommath/bn_mp_radix_size.c @@ -66,8 +66,17 @@ int mp_radix_size (mp_int * a, int radix, int *size) } mp_clear (&t); - /* return digs + 1, the 1 is for the NULL byte that would be required. */ - *size = digs + 1; + /* + * return digs + 1, the 1 is for the NULL byte that would be required. + * mp_toradix_n requires a minimum of 3 bytes, so never report less than + * that. + */ + + if ( digs >= 2 ) { + *size = digs + 1; + } else { + *size = 3; + } return MP_OKAY; } |