fe u, v, v3, vxx, check;
fe_frombytes(h->Y, s);
fe_1(h->Z);
- fe_sq(u, h->Y); // y^2
+ fe_sq(u, h->Y); // y^2
fe_mul(v, u, d);
- fe_sub(u, u, h->Z); // u = y^2-1
- fe_add(v, v, h->Z); // v = dy^2+1
+ fe_sub(u, u, h->Z); // u = y^2-1
+ fe_add(v, v, h->Z); // v = dy^2+1
fe_sq(v3, v);
- fe_mul(v3, v3, v); // v3 = v^3
+ fe_mul(v3, v3, v); // v3 = v^3
fe_sq(h->X, v3);
fe_mul(h->X, h->X, v);
- fe_mul(h->X, h->X, u); // x = uv^7
+ fe_mul(h->X, h->X, u); // x = uv^7
- fe_pow22523(h->X, h->X); // x = (uv^7)^((q-5)/8)
+ fe_pow22523(h->X, h->X); // x = (uv^7)^((q-5)/8)
fe_mul(h->X, h->X, v3);
- fe_mul(h->X, h->X, u); // x = uv^3(uv^7)^((q-5)/8)
+ fe_mul(h->X, h->X, u); // x = uv^3(uv^7)^((q-5)/8)
fe_sq(vxx, h->X);
fe_mul(vxx, vxx, v);
- fe_sub(check, vxx, u); // vx^2-u
+ fe_sub(check, vxx, u); // vx^2-u
if (fe_isnonzero(check)) {
- fe_add(check, vxx, u); // vx^2+u
+ fe_add(check, vxx, u); // vx^2+u
if (fe_isnonzero(check)) return -1;
fe_mul(h->X, h->X, sqrtm1);
}