ge_p3
int x25519_ge_frombytes_vartime(ge_p3 *h, const uint8_t *s) {
static void ge_p3_0(ge_p3 *h) {
static void ge_p3_to_p2(ge_p2 *r, const ge_p3 *p) {
void x25519_ge_p3_to_cached(ge_cached *r, const ge_p3 *p) {
void x25519_ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p) {
ge_p3 t;
static void ge_p3_dbl(ge_p1p1 *r, const ge_p3 *p) {
static void ge_madd(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q) {
static void ge_msub(ge_p1p1 *r, const ge_p3 *p, const ge_precomp *q) {
void x25519_ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q) {
void x25519_ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q) {
ge_p3 *h, const uint8_t a[32], const uint8_t precomp_table[15 * 2 * 32]) {
void x25519_ge_scalarmult_base(ge_p3 *h, const uint8_t a[32]) {
void x25519_ge_scalarmult_base(ge_p3 *h, const uint8_t a[32]) {
void x25519_ge_scalarmult(ge_p2 *r, const uint8_t *scalar, const ge_p3 *A) {
ge_p3 u;
const ge_p3 *A, const uint8_t *b) {
ge_p3 u;
ge_p3 A2;
ge_p3 A;
ge_p3 R;
ge_p3 A;
ge_p3 A;
static void ge_p3_tobytes(uint8_t *s, const ge_p3 *h) {
int x25519_ge_frombytes_vartime(ge_p3 *h, const uint8_t *s);
void x25519_ge_p3_to_cached(ge_cached *r, const ge_p3 *p);
void x25519_ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p);
void x25519_ge_add(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q);
void x25519_ge_sub(ge_p1p1 *r, const ge_p3 *p, const ge_cached *q);
void x25519_ge_scalarmult_small_precomp(ge_p3 *h, const uint8_t a[32],
void x25519_ge_scalarmult_base(ge_p3 *h, const uint8_t a[32]);
void x25519_ge_scalarmult(ge_p2 *r, const uint8_t *scalar, const ge_p3 *A);