Commit df4e07bd authored by Niels Möller's avatar Niels Möller

(nettle_mpz_sizeinbase_256): New function.

Rev: src/nettle/bignum.c:1.4
Rev: src/nettle/bignum.h:1.3
parent 0c6beb1f
...@@ -34,6 +34,12 @@ ...@@ -34,6 +34,12 @@
#include <assert.h> #include <assert.h>
#include <string.h> #include <string.h>
unsigned
nettle_mpz_sizeinbase_256(const mpz_t x)
{
return (mpz_sizeinbase(x, 2) + 7) / 8;
}
void void
nettle_mpz_get_str_256(unsigned length, uint8_t *s, const mpz_t x) nettle_mpz_get_str_256(unsigned length, uint8_t *s, const mpz_t x)
{ {
...@@ -49,7 +55,7 @@ nettle_mpz_get_str_256(unsigned length, uint8_t *s, const mpz_t x) ...@@ -49,7 +55,7 @@ nettle_mpz_get_str_256(unsigned length, uint8_t *s, const mpz_t x)
} }
assert(mpz_sgn(x) >= 0); assert(mpz_sgn(x) >= 0);
assert( (mpz_sizeinbase(x, 2) + 7) / 8 <= length); assert(nettle_mpz_sizeinbase_256(x) <= length);
for (i = 0; i<size; i++) for (i = 0; i<size; i++)
{ {
......
...@@ -29,6 +29,9 @@ ...@@ -29,6 +29,9 @@
#include <gmp.h> #include <gmp.h>
#include <inttypes.h> #include <inttypes.h>
unsigned
nettle_mpz_sizeinbase_256(const mpz_t x);
/* Writes an unsigned integer as length octets, using big endian byte /* Writes an unsigned integer as length octets, using big endian byte
* order. */ * order. */
void void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment