gnuk/src/bn.h

23 lines
786 B
C
Raw Normal View History

2011-10-10 13:32:49 +00:00
#define BN256_WORDS 8
typedef struct bn256 {
uint32_t words[ BN256_WORDS ]; /* Little endian */
} bn256;
#define BN512_WORDS 16
typedef struct bn512 {
uint32_t words[ BN512_WORDS ]; /* Little endian */
} bn512;
2011-10-11 13:44:16 +00:00
uint32_t bn256_add (bn256 *X, const bn256 *A, const bn256 *B);
uint32_t bn256_sub (bn256 *X, const bn256 *A, const bn256 *B);
2011-10-13 06:43:58 +00:00
uint32_t bn256_add_uint (bn256 *X, const bn256 *A, uint32_t w);
uint32_t bn256_sub_uint (bn256 *X, const bn256 *A, uint32_t w);
2011-10-10 13:32:49 +00:00
void bn256_mul (bn512 *X, const bn256 *A, const bn256 *B);
void bn256_sqr (bn512 *X, const bn256 *A);
2011-10-11 13:44:16 +00:00
uint32_t bn256_shift (bn256 *X, const bn256 *A, int shift);
2011-10-10 13:32:49 +00:00
int bn256_is_zero (const bn256 *X);
int bn256_is_even (const bn256 *X);
int bn256_is_ge (const bn256 *A, const bn256 *B);
2011-10-12 09:07:52 +00:00
void bn256_random (bn256 *X);