Commit Graph

238 Commits

Author SHA1 Message Date
malte
d498ddf1a8 ASCII->POLY: written a function to convert a char* string into a polynom.
The function returns a newly allocated poynom of the string size * 7
7 bits per ASCII symbol.
the function need to be warped so the maximal poynom is corresponding to
the NTRU context.
2014-05-18 10:28:25 +02:00
malte
10f6ebc9e6 Merge branch 'master' of ssh://gitlab.hasufell.de:22022/pcq/quantumcrypto
Conflicts:
	src/poly.c
	src/poly.h
	src/rand.c

merged with master repo
2014-05-13 16:54:31 +02:00
Alexander Rolfes
dd68d1a094 Merge branch 'master' of ssh://gitlab.hasufell.de:22022/pcq/quantumcrypto
Conflicts:
	src/poly.h solved
	src/ntru_decrypt.c fixed

ntru_decrypt.c used changed function heading
2014-05-13 09:51:47 +02:00
eaa75e230c Merge branch 'master' into 'master'
Poly.c additions and MP_SET_INT with signed int support
2014-05-13 00:25:39 +02:00
782ccf0524
POLY: improve error handling 2014-05-13 00:20:46 +02:00
30e18177e8
POLY: allow signed int in MP_SET_INT
Now you can pass MP_SET_INT(&foo, -1) without having
to call mp_neg() later etc.
2014-05-13 00:12:03 +02:00
Malte
7c5d899055 RAND: improve some spelling 2014-05-12 20:35:06 +02:00
Malte
8db6a83ae3 RAND: changed read_int_dev_urandom() to get_int_dev_urandom() 2014-05-12 20:35:06 +02:00
Malte
2f9ebd52f8 RAND: changed read_int_dev_urandom() to get_int_dev_urandom() 2014-05-12 20:35:06 +02:00
Malte
979ae61726 RAND: changed ntru_get_poly_big() to ntru_get_random_poly() 2014-05-12 20:35:06 +02:00
Malte
7c58d847e9 RAND changed c to coefficient 2014-05-12 20:35:06 +02:00
Malte
79a908de00 RAND: changed from ntru_get_poly_small(int length... to ntru_get_random_poly_ternary(size_t length... 2014-05-12 20:35:06 +02:00
Malte
e072eb04e9 RAND: chaged from int check_polynom() to unsigned int check_allowed_zeros()
RAND: merged conflict
2014-05-12 20:34:54 +02:00
Malte
a706a23319 RAND: corected spelling 2014-05-12 20:32:34 +02:00
Malte
8f9acfdb9d RAND: changed from make_big_int() to get_random_bigint() 2014-05-12 20:32:34 +02:00
Malte
2e589f4be7 RAND: removed some doxycomment 2014-05-12 20:32:34 +02:00
Malte
f459f09e57 RAND: changed from make_small_int() to get_random_ternary() 2014-05-12 20:32:34 +02:00
Malte
3fc925c396 RAND: removed camelCase
changed from randomDataLen to random_DataLen
2014-05-12 20:32:34 +02:00
hasufell
3109d2aec7 BUILD: remove obsolete object 2014-05-12 20:32:34 +02:00
hasufell
456dff26e0 BUILD: remove non-existing header from build 2014-05-12 20:32:34 +02:00
hasufell
f01210e1f2 BUILD: add missing include 2014-05-12 20:32:34 +02:00
23573d07c8 DOC: fix doxygen comment in pb_mod2_to_modq() 2014-05-12 20:32:34 +02:00
9520003db1 BUILD: ignore -Wunused-function... this is a library 2014-05-12 20:32:34 +02:00
9ddf9709e2 POLY: add pb_mod2_to_modq()
This should make pb_inverse_poly_q() a bit more readable.
TODO: make the algorithm more descriptive in general.
2014-05-12 20:32:34 +02:00
d9584b2e17 POLY: introduce delete_polynom_multi()
Just a wrapper around delete_polynom() to handle multiple args.
Must be called with NULL as last argument!
2014-05-12 20:32:34 +02:00
476379b675 POLY: use our MACROS for error handling
All mp_* and pb_* functions that return an error code
should only be called via a MACRO which handles the error.
2014-05-12 20:32:34 +02:00
a4603877f9 BUILD: update Makefile for mem.o 2014-05-12 20:32:34 +02:00
01c301afdd MEM: introduce our own ntru_malloc() function
Use this instead of malloc().
2014-05-12 20:32:34 +02:00
Malte
cb69ea8689 RAND: changed the function declaration to fit the the given needs better. 2014-05-12 20:32:34 +02:00
Malte
4df4a37f9a RAND: added the missing function declaration and comments.
static mp_int *make_big_int(mp_int *upper_bound, mp_int *lower_bound,
        mp_digit randim_int)
static int check_polynom(pb_poly *polynom)
needs to be filled with code.
2014-05-12 20:32:34 +02:00
Malte
d871a9104f RAND: fixed some unnecessary import 2014-05-12 20:32:34 +02:00
Malte
1e586c178c rand: added some missing void parameter 2014-05-12 20:32:34 +02:00
Malte
626e2fc27a rand: added a nessary but missing comment on the big int min/max 2014-05-12 20:32:34 +02:00
Malte
0bdddc12e7 rand: Refactoring finished
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
2014-05-12 20:32:34 +02:00
Malte
21022c9ff8 rand: extractet some double code into new functions
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
2014-05-12 20:32:14 +02:00
60dbab44f5 POLY: fix syntax error within comment
RAND: merged conflict
2014-05-12 20:29:59 +02:00
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
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
f98be67dd3 BUILD: fix possible linker errors 2014-05-12 20:17:42 +02:00
85c48647f5 POLY: cleanup pb_inverse_poly_q()
Also avoid side effects.
2014-05-12 20:17:42 +02:00
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
01785678f0 DOC: fix doxygen comment in delete_polynom() 2014-05-12 20:17:42 +02:00
ed1fb0f0a9 POLY: add erase_polynom() function 2014-05-12 20:17:42 +02:00
f8b1649279 POLY: use mp_neg() instead of directly modifying struct 2014-05-12 20:17:42 +02:00
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
85ba70a9c5 POLY: first try of inverting polynomials 2014-05-12 20:17:42 +02:00
3184e9093f POLY: rm unnecessary cast 2014-05-12 20:17:42 +02:00
3e6345cd47 POLY: fix typo 2014-05-12 20:17:42 +02:00
739feea0fe BUILD: fix linker errors when playing in main.c 2014-05-12 20:17:42 +02:00
c4f6ad4504 POLY: fix error messages 2014-05-12 20:17:42 +02:00