now there are only 4 static functions left:
static mp_digit read_int_dev_random();
static mp_digit read_int_dev_urandom();
static mp_digit make_small_int(mp_digit random_int, int* sign);
static mp_digit make_big_int(mp_digit random_int, int* sign);
Every function is used twice.
the next goal to copy free code is to make a single function
with function pointer out of these 4:
pb_poly *ntru_get_urnd_poly_small(ntru_context *ctx);
pb_poly *ntru_get_rnd_poly_small(ntru_context *ctx);
pb_poly *ntru_get_urnd_poly_big(ntru_context *ctx);
pb_poly *ntru_get_rnd_poly_big(ntru_context *ctx);
But this need to be checkt by a other group member
this is the first step, in the next one i a going to remove
static mp_digit get_urnd_int_small(int *sign);
static mp_digit get_rnd_int_small(int *sign);
static mp_digit get_urnd_int_big(int *sign);
static mp_digit get_rnd_int_big(int *sign);
RAND: merged a conflict
pb_poly *ntru_get_urnd_poly_big(ntru_context *ctx)
pb_poly *ntru_get_rnd_poly_big(ntru_context *ctx)
are written but the testing isen working and
i think it is a bad idea to not use function poniters
at the moment we have about 4 functions that do all the same thing
and differ only in the subfunction call.
But at the moment i cat decide of we shold use
function pinter
RAND: merged conflict
Should be correct now. Had to add get_degree(), because
pb_clamp() in conjunction with pb_cmp() does not give
expected results, see https://github.com/libtom/libtompoly/issues/3
...so don't use it.
if we use mp_set_int() instead of mp_set(), then we can use
full unsigned long integers instead of single digits. This
seems a lot safer, especially for future versions of the
random algorithm.
RAND: merged a conflict
pb_init() which is called by init_polynom_size() will call
mp_init_copy() on chara which means that chara being a pointer
itself is useless. We can clear it directly after it has been
copied.