bignum 256-bit and 512-bit

This commit is contained in:
NIIBE Yutaka
2011-10-10 22:32:49 +09:00
parent 2181c1a428
commit f936269eee
2 changed files with 264 additions and 0 deletions

18
src/bn.h Normal file
View File

@@ -0,0 +1,18 @@
#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;
int bn256_add (bn256 *X, const bn256 *A, const bn256 *B);
int bn256_sub (bn256 *X, const bn256 *A, const bn256 *B);
void bn256_mul (bn512 *X, const bn256 *A, const bn256 *B);
void bn256_sqr (bn512 *X, const bn256 *A);
int bn256_shift (bn256 *X, const bn256 *A, int shift);
int bn256_is_zero (const bn256 *X);
int bn256_is_even (const bn256 *X);
int bn256_is_ge (const bn256 *A, const bn256 *B);