X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilcmath%2Fmp_mpi.c;h=8ef0a40b5100e11ea8cfcecb3dfa6d0b974b1523;hp=3a893d7bdb2b6e82d1f5591f967cdf2be6f82afe;hb=c5032a2269df2ef9daf57f27f36e42d0df313f69;hpb=6f3e830b8c25a42ad714a32e60e398bcfc3796f5 diff --git a/lib/silcmath/mp_mpi.c b/lib/silcmath/mp_mpi.c index 3a893d7b..8ef0a40b 100644 --- a/lib/silcmath/mp_mpi.c +++ b/lib/silcmath/mp_mpi.c @@ -39,13 +39,11 @@ size_t silc_mp_size(SilcMPInt *mp) size_t silc_mp_sizeinbase(SilcMPInt *mp, int base) { - size_t sib = mp_radix_size(mp, base); + size_t sib = mp_unsigned_octet_size(mp); + sib = s_mp_outlen(sib * CHAR_BIT, base); if (sib > 2) - sib -= 2; /* XXX This is actually wrong since - this might produce wrong balue. - But, it looks like MPI always returns - correct value plus one, whereas - GMP returns always the right value. */ + sib -= 2; /* Looks like MPI returns extra zero + bytes for C-strings. */ return sib; }