Commit Graph

46 Commits

Author SHA1 Message Date
Malte 90a01a03ec rand: getting small and big polynoms is working
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
2014-05-12 20:28:22 +02:00
hasufell 99ebda181a POLY: fix pb_inverse_poly_q()
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.
2014-05-12 20:17:42 +02:00
hasufell f98be67dd3 BUILD: fix possible linker errors 2014-05-12 20:17:42 +02:00
hasufell 85c48647f5 POLY: cleanup pb_inverse_poly_q()
Also avoid side effects.
2014-05-12 20:17:42 +02:00
hasufell 6990193dcd POLY: cleanup pb_starmultiply()
* avoid side effects
* use MP_DIV instead of MP_MOD
* move mp_modulus initialization to outer scope
2014-05-12 20:17:42 +02:00
hasufell 01785678f0 DOC: fix doxygen comment in delete_polynom() 2014-05-12 20:17:42 +02:00
hasufell ed1fb0f0a9 POLY: add erase_polynom() function 2014-05-12 20:17:42 +02:00
hasufell f8b1649279 POLY: use mp_neg() instead of directly modifying struct 2014-05-12 20:17:42 +02:00
hasufell 5c85862d12 POLY: improve error handling
Use MP_ADD, MP_MUL, PB_ADD, PB_MUL etc instead of the mp_add,...
functions to make use of error handling.
2014-05-12 20:17:42 +02:00
hasufell 85ba70a9c5 POLY: first try of inverting polynomials 2014-05-12 20:17:42 +02:00
hasufell 3184e9093f POLY: rm unnecessary cast 2014-05-12 20:17:42 +02:00
hasufell 3e6345cd47 POLY: fix typo 2014-05-12 20:17:42 +02:00
hasufell 739feea0fe BUILD: fix linker errors when playing in main.c 2014-05-12 20:17:42 +02:00
hasufell c4f6ad4504 POLY: fix error messages 2014-05-12 20:17:42 +02:00
hasufell 2d2ccfbf3f POLY: first try of pb_starmultiply() 2014-05-12 20:17:42 +02:00
hasufell 0d179a0e7d POLY: don't clamp polyonmial in build_polynom()
Otherwise we might hit problems when using this as an
out-polynom in a arithmetic functions. The caller can clamp
it himself, if he needs so.
2014-05-12 20:17:42 +02:00
hasufell f8cac1553f ALL: set context members to unsigned int 2014-05-12 20:17:42 +02:00
hasufell fc4ee3b70b POLY: add build_polynom() method
We can build a polynom via an array of integers or just an empty
one, so that it is initialized and properly allocated.
2014-05-12 20:17:42 +02:00
hasufell be28e18cfb DOC: fix typo 2014-05-12 20:17:42 +02:00
hasufell 66da54b3a3 BUILD: ignore -Wunused-parameter
Can happen in callback functions and so forth.
2014-05-12 20:17:42 +02:00
hasufell 417ce9c0f2 RAND: use unsigned long instead of mp_digit
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
2014-05-12 20:16:25 +02:00
hasufell 0470a5fa6e POLY: use size_t 2014-05-12 20:13:22 +02:00
hasufell 22f713fa98 DOC: improve memory handling instructions 2014-05-12 20:13:22 +02:00
Malte 04d5d6d38f rand:ntru_get_rnd_poly_small: written a function to generate a random polynom
like get_urnd_int_small but with the random source from /dev/random
instead of /dev/urandom
2014-05-12 20:13:22 +02:00
Malte 71b8f4cbeb Added static mp_digit get_rnd_int_small(int *sign)
but it takes about ~40minutes to generate a x^500
polynom with /dev/random.
2014-05-12 20:13:22 +02:00
hasufell 3902209626
update .gitignore 2014-04-15 14:27:06 +02:00
hasufell cafc977c64
DOC: improve memory management documentation 2014-04-15 14:23:27 +02:00
hasufell 4a7e50a194
POLY: add delete_polynom() function
This deletes both the internal structure and the pointer.
2014-04-15 14:22:46 +02:00
hasufell b33b0c6b1a
DOC: caller has to handle the memory of returned pointers 2014-04-15 14:16:30 +02:00
hasufell 617e32b9cf
RAND: fix memory leak
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.
2014-04-15 14:15:41 +02:00
hasufell bbe2d89a5b
BUILD: update top-level Makefile 2014-04-15 14:13:03 +02:00
hasufell 255bc5b769
RAND: close the correct file descriptor 2014-04-15 13:43:03 +02:00
hasufell f6e879cba8
LICENSE: fix header 2014-04-15 13:35:04 +02:00
hasufell e84974cb65
LICENSE: add LGPL-2.1 license file 2014-04-14 23:58:19 +02:00
hasufell a547d7d49b
BUILD: add target "main" for testing
main.c does not belong in this repository, but
might be used for testing locally.
2014-04-14 23:51:33 +02:00
hasufell 5df1ebbb45
ALL: prefix external API structs/functions with ntru_ 2014-04-14 23:47:01 +02:00
hasufell e8ec6103aa
RAND: make mp_digit get_urnd_int_small() static
Does not seem to qualify for external API function.
2014-04-14 23:45:38 +02:00
hasufell 2def2061db
DOC: add Doxyfile 2014-04-14 22:50:16 +02:00
hasufell 565abd95d7
BUILD: add initial Makefiles 2014-04-14 22:29:55 +02:00
hasufell ff40048d55
RAND: basic randomization
No sanity checks like minimum number of non-NULL coefficients
for the polynomial.
2014-04-14 22:29:36 +02:00
hasufell 2029e91c47
POLY: add basic polynomial wrappers
Also provide a draw_polynomial function for human readable
output of the polynomial.
2014-04-14 22:28:35 +02:00
hasufell f2d18e788f
ALL: add basic pqc_context struct 2014-04-14 22:26:38 +02:00
hasufell 4a0c25f9fc
ERR: add basic error macro 2014-04-14 22:25:57 +02:00
hasufell 166effad36
BUILD: add external libtompoly library 2014-04-14 22:22:07 +02:00
hasufell 5222ae9c33
BUILD: add external libtommath library 2014-04-14 22:21:46 +02:00
hasufell 77da4e3bc7
initial commit: add .gitignore 2014-03-31 21:33:24 +02:00