1 | #ifndef FE25519_H |
---|
2 | #define FE25519_H |
---|
3 | |
---|
4 | #include "crypto_int32.h" |
---|
5 | #include "crypto_uint32.h" |
---|
6 | |
---|
7 | #define fe25519 crypto_sign_ed25519_ref_fe25519 |
---|
8 | #define fe25519_freeze crypto_sign_ed25519_ref_fe25519_freeze |
---|
9 | #define fe25519_unpack crypto_sign_ed25519_ref_fe25519_unpack |
---|
10 | #define fe25519_pack crypto_sign_ed25519_ref_fe25519_pack |
---|
11 | #define fe25519_iszero crypto_sign_ed25519_ref_fe25519_iszero |
---|
12 | #define fe25519_iseq_vartime crypto_sign_ed25519_ref_fe25519_iseq_vartime |
---|
13 | #define fe25519_cmov crypto_sign_ed25519_ref_fe25519_cmov |
---|
14 | #define fe25519_setone crypto_sign_ed25519_ref_fe25519_setone |
---|
15 | #define fe25519_setzero crypto_sign_ed25519_ref_fe25519_setzero |
---|
16 | #define fe25519_neg crypto_sign_ed25519_ref_fe25519_neg |
---|
17 | #define fe25519_getparity crypto_sign_ed25519_ref_fe25519_getparity |
---|
18 | #define fe25519_add crypto_sign_ed25519_ref_fe25519_add |
---|
19 | #define fe25519_sub crypto_sign_ed25519_ref_fe25519_sub |
---|
20 | #define fe25519_mul crypto_sign_ed25519_ref_fe25519_mul |
---|
21 | #define fe25519_square crypto_sign_ed25519_ref_fe25519_square |
---|
22 | #define fe25519_invert crypto_sign_ed25519_ref_fe25519_invert |
---|
23 | #define fe25519_pow2523 crypto_sign_ed25519_ref_fe25519_pow2523 |
---|
24 | |
---|
25 | typedef struct |
---|
26 | { |
---|
27 | crypto_uint32 v[32]; |
---|
28 | } |
---|
29 | fe25519; |
---|
30 | |
---|
31 | void fe25519_freeze(fe25519 *r); |
---|
32 | |
---|
33 | void fe25519_unpack(fe25519 *r, const unsigned char x[32]); |
---|
34 | |
---|
35 | void fe25519_pack(unsigned char r[32], const fe25519 *x); |
---|
36 | |
---|
37 | int fe25519_iszero(const fe25519 *x); |
---|
38 | |
---|
39 | int fe25519_iseq_vartime(const fe25519 *x, const fe25519 *y); |
---|
40 | |
---|
41 | void fe25519_cmov(fe25519 *r, const fe25519 *x, unsigned char b); |
---|
42 | |
---|
43 | void fe25519_setone(fe25519 *r); |
---|
44 | |
---|
45 | void fe25519_setzero(fe25519 *r); |
---|
46 | |
---|
47 | void fe25519_neg(fe25519 *r, const fe25519 *x); |
---|
48 | |
---|
49 | unsigned char fe25519_getparity(const fe25519 *x); |
---|
50 | |
---|
51 | void fe25519_add(fe25519 *r, const fe25519 *x, const fe25519 *y); |
---|
52 | |
---|
53 | void fe25519_sub(fe25519 *r, const fe25519 *x, const fe25519 *y); |
---|
54 | |
---|
55 | void fe25519_mul(fe25519 *r, const fe25519 *x, const fe25519 *y); |
---|
56 | |
---|
57 | void fe25519_square(fe25519 *r, const fe25519 *x); |
---|
58 | |
---|
59 | void fe25519_invert(fe25519 *r, const fe25519 *x); |
---|
60 | |
---|
61 | void fe25519_pow2523(fe25519 *r, const fe25519 *x); |
---|
62 | |
---|
63 | #endif |
---|