summaryrefslogtreecommitdiff
path: root/ge448.h
blob: dbdfccf0b9aec41a0be258cf01dcfe9fc51ec0e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef GE448_H
#define GE448_H

#include "fe448.h"
#include "sc448.h"

#define ge448                           crypto_sign_ed448_ref_ge448
#define ge448_base                      crypto_sign_ed448_ref_ge448_base
#define ge448_unpackneg_vartime         crypto_sign_ed448_ref_unpackneg_vartime
#define ge448_pack                      crypto_sign_ed448_ref_pack
#define ge448_isneutral_vartime         crypto_sign_ed448_ref_isneutral_vartime
#define ge448_double_scalarmult_vartime crypto_sign_ed448_ref_double_scalarmult_vartime
#define ge448_scalarmult_base           crypto_sign_ed448_ref_scalarmult_base

typedef struct
{
  fe448 x;
  fe448 y;
  fe448 z;
} ge448;

extern const ge448 ge448_base;

int ge448_unpackneg_vartime(ge448 *r, const unsigned char p[57]);

void ge448_pack(unsigned char r[57], const ge448 *p);

int ge448_isneutral_vartime(const ge448 *p);

void ge448_double_scalarmult_vartime(ge448 *r, const ge448 *p1, const sc448 *s1, const ge448 *p2, const sc448 *s2);

void ge448_scalarmult_base(ge448 *r, const sc448 *s);

#endif