]> pd.if.org Git - zpackage/blob - crypto/libeddsa/lib/ed.h
add package signing code
[zpackage] / crypto / libeddsa / lib / ed.h
1 #ifndef ED_H
2 #define ED_H
3
4 #include <stdint.h>
5
6 #include "fld.h"
7 #include "sc.h"
8
9
10 /* (x,y,z) are the projective points on our curve E and t = x*y is an
11  * auxiliary coordinate (see [2], ch. 3).
12  */
13 struct ed {
14         fld_t           x;
15         fld_t           y;
16         fld_t           t;
17         fld_t           z;
18 };
19
20
21 void    ed_export(uint8_t out[32], const struct ed *P);
22 void    ed_import(struct ed *P, const uint8_t in[32]);
23
24 void    ed_scale_base(struct ed *res, const sc_t x);
25
26 void    ed_dual_scale(struct ed *R, const sc_t x,
27                       const sc_t y, const struct ed *Q);
28
29 #endif