00001 #include "params.h"
00002 #include "gf.h"
00003
00004 #define NB_ERRORS ERROR_WEIGHT
00005 #define EXT_DEGREE LOG_LENGTH
00006
00007 #define LENGTH (1 << EXT_DEGREE)
00008 #define CODIMENSION (NB_ERRORS * EXT_DEGREE)
00009 #define DIMENSION (LENGTH - CODIMENSION)
00010
00011
00012 #define BITS_TO_BYTES(nb_bits) (((nb_bits) - 1) / 8 + 1)
00013
00014 #define BIT_SIZE_OF_LONG (8 * sizeof(long))
00015
00016 #define BITS_TO_LONG(nb_bits) (((nb_bits) - 1) / BIT_SIZE_OF_LONG + 1)
00017
00018 #define SECRETKEY_BYTES (LENGTH * sizeof (long) * BITS_TO_LONG(CODIMENSION) + (LENGTH + 1 + (NB_ERRORS + 1) * NB_ERRORS) * sizeof (gf_t))
00019 #define PUBLICKEY_BYTES (BITS_TO_LONG(CODIMENSION) * sizeof(long) * DIMENSION)
00020
00021 #define CLEARTEXT_LENGTH (DIMENSION + ERROR_SIZE)
00022
00023 #define CLEARTEXT_BYTES BITS_TO_BYTES(CLEARTEXT_LENGTH)
00024
00025 #define CIPHERTEXT_BYTES BITS_TO_BYTES(LENGTH)
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #define MESSAGE_BYTES (CLEARTEXT_LENGTH / 8)