1 /*
2    This file is adapted from amd64-51/fe25519.h:
3    'fe25519' is renamed as 'fe51';
4    All the redundant functions are removed;
5    New function fe51_nsquare is introduced.
6 */
7 
8 #ifndef fe51_H
9 #define fe51_H
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 #include <stdint.h>
16 #include <stdlib.h>
17 
18 #include "fe51_namespace.h"
19 
20 typedef struct
21 {
22     uint64_t v[5];
23 }
24 fe51;
25 
26 extern void fe51_pack(unsigned char *, const fe51 *);
27 extern void fe51_mul(fe51 *, const fe51 *, const fe51 *);
28 extern void fe51_nsquare(fe51 *, const fe51 *, int);
29 extern void fe51_invert(fe51 *, const fe51 *);
30 
31 #ifdef __cplusplus
32 }
33 #endif
34 
35 #endif
36