Go to the source code of this file.
◆ elligator()
Definition at line 6 of file elligator.c.
7{
8 for (;;) {
11
12
13
14 long long reject = fp_iszero(u);
15
17
20
21
22
24
26
28 fp T; fp_mul3(&T,&
A->x,(
const fp*) &
M);
29
30
31 long long control = fp_iszero(
A->x);
34 fp_cmov_ctidh(&
P,&
fp_1,control);
35 fp_cmov_ctidh(&
M,&
fp_1,control);
36 fp_cmov_ctidh(&T,&
fp_1,control);
37
39
41
42 fp_add2(&T,(
const fp*) &
D2);
43 fp_mul2(&T,(
const fp*) &D);
44 fp_mul2(&T,(
const fp*) &
P);
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
64
65
66
67
68
69
70
71
72
73
74
76
77
80
81 return;
82 }
83}
uint64_t fp[NUMBER_OF_WORDS]
void fp_sqrt(fp_t output, const fp_t input)
References fp_1, fp_copy, fp_cswap, fp_random, fp_sqrt(), proj::x, and proj::z.
◆ elligator_seeded()
Definition at line 86 of file elligator.c.
87{
91
95
97
100
103
109
115
120
123
126}
References fp_0, fp_1, fp_add, fp_copy, fp_cswap, fp_issquare, fp_mul, fp_sqr, fp_sub, proj::x, and proj::z.