2 * Copyright (C) 2013-2016 Andreas Steffen
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 * @defgroup ntru_trits ntru_trits
23 typedef struct ntru_trits_t ntru_trits_t
;
26 #include <crypto/xofs/xof.h>
29 * Implements an array of trinary elements (trits)
34 * Get the size of the trits array
36 * @return number of trinary elements
38 size_t (*get_size
)(ntru_trits_t
*this);
41 * @return octet array containing a trit per octet
43 uint8_t* (*get_trits
)(ntru_trits_t
*this);
46 * Destroy ntru_trits_t object
48 void (*destroy
)(ntru_trits_t
*this);
52 * Create a trits array from a seed using MGF1 with a base hash function
54 * @param size size of the trits array
55 * @param alg MGF1 algorithm used (XOF_MGF1_SHA1 or XOF_MGF_SHA256)
56 * @param seed seed used by MGF1 to generate trits from
58 ntru_trits_t
*ntru_trits_create(size_t size
, ext_out_function_t alg
,
61 #endif /** NTRU_TRITS_H_ @}*/