Let us walk on the 3-isogeny graph
|
#include "fp.h"
Go to the source code of this file.
Data Structures | |
struct | fp2_t |
Functions | |
void | fp2_add (fp2_t *output, fp2_t input_a, fp2_t input_b) |
void | fp2_sub (fp2_t *output, fp2_t input_a, fp2_t input_b) |
void | fp2_mul (fp2_t *output, fp2_t input_a, fp2_t input_b) |
void | fp2_sqr (fp2_t *output, fp2_t input) |
void | fp2_neg (fp2_t *output, fp2_t input) |
void | fp2_set_to_one (fp2_t *output) |
void | fp2_set_to_zero (fp2_t *output) |
void | fp2_copy (fp2_t *output, fp2_t input) |
void | fp2_cswap (fp2_t *input_a, fp2_t *input_b, uint64_t input) |
void | fp2_cset (fp2_t *output, fp2_t input, uint64_t input_mask) |
void | fp2_inv (fp2_t *output, fp2_t input) |
void | fp2_half (fp2_t *output, fp2_t input) |
void | fp2_to_mont (fp2_t *output, fp2_t input) |
void | fp2_from_mont (fp2_t *output, fp2_t input) |
void | fp2_conj (fp2_t *output, fp2_t input) |
void | fp2_to_bytes (uint8_t *output, fp2_t input) |
void | fp2_from_bytes (fp2_t *output, const uint8_t *input) |
int64_t | fp2_is_zero (fp2_t input) |
uint8_t | fp2_is_equal (fp2_t input_a, fp2_t input_b) |
void | fp2_linear_pass_in (fp2_t *output, const fp2_t *input, uint8_t input_length, uint8_t input_index) |
void | fp2_linear_pass_out (fp2_t *output, fp2_t input, uint8_t input_length, uint8_t input_index) |
uint8_t | fp2_locate_zero (const fp2_t *input, uint8_t input_length) |
uint8_t | fp2_is_square (fp2_t input) |
void | fp2_batchinv (fp2_t *output_list, const fp2_t *input_list, uint8_t input_length) |
void | fp2_sqrt_slow (fp2_t *output, fp2_t input) |
void | fp2_sqrt_fast (fp2_t *output, fp2_t input) |
void | fp2_curt (fp2_t *output, fp2_t input) |
Definition at line 81 of file fp2.c.
References FIELD_64BITS_WORDS, i, fp2_t::im, and fp2_t::re.
Referenced by fp2_linear_pass_in(), and fp2_linear_pass_out().
Definition at line 399 of file fp2.c.
References CUBE_ROOT_EXPONENT_BITS, FIELD_64BITS_WORDS, fp2_copy, fp2_mul, fp2_set_to_one(), fp2_sqr, i, and j.
Referenced by isogeny_walks_3(), and isogeny_walks_get_points_3().
void fp2_from_bytes | ( | fp2_t * | output, |
const uint8_t * | input ) |
Definition at line 119 of file fp2.c.
References fp_from_mont(), fp2_t::im, and fp2_t::re.
Referenced by fp2_to_bytes().
Definition at line 107 of file fp2.c.
References fp_half(), fp2_t::im, and fp2_t::re.
Referenced by isogeny_walks_2(), isogeny_walks_2_slow(), and isogeny_walks_get_points_3().
Definition at line 154 of file fp2.c.
References fp_is_equal(), fp2_t::im, and fp2_t::re.
uint8_t fp2_is_square | ( | fp2_t | input | ) |
int64_t fp2_is_zero | ( | fp2_t | input | ) |
Definition at line 149 of file fp2.c.
References fp_is_zero(), fp2_t::im, and fp2_t::re.
Referenced by fp2_locate_zero().
void fp2_linear_pass_in | ( | fp2_t * | output, |
const fp2_t * | input, | ||
uint8_t | input_length, | ||
uint8_t | input_index ) |
Definition at line 159 of file fp2.c.
References fp2_cset(), and i.
Referenced by fp2_sqrt_slow(), isogeny_walks_2(), isogeny_walks_2_slow(), and isogeny_walks_3().
uint8_t fp2_locate_zero | ( | const fp2_t * | input, |
uint8_t | input_length ) |
Definition at line 181 of file fp2.c.
References fp2_is_zero(), and i.
void fp2_set_to_one | ( | fp2_t * | output | ) |
Definition at line 49 of file fp2.c.
References fp_set_to_one(), and fp_set_to_zero().
Referenced by fp2_curt(), fp2_sqrt_slow(), isogeny_walks_2(), isogeny_walks_2_slow(), isogeny_walks_3(), isogeny_walks_from_montgomery_model_2(), isogeny_walks_from_montgomery_model_3(), isogeny_walks_get_previous_step_2(), and main().
void fp2_set_to_zero | ( | fp2_t * | output | ) |
Definition at line 54 of file fp2.c.
References fp_set_to_zero().
Referenced by cgl_hash_digest_2(), cgl_hash_digest_3(), fp2_sqrt_slow(), and main().
Definition at line 333 of file fp2.c.
References constant_time_conditional_mov(), FIELD_64BITS_WORDS, fp_add, fp_copy, fp_is_equal(), fp_mul, fp_neg(), fp_set_to_one(), fp_set_to_zero(), fp_sqr, i, fp2_t::im, j, and fp2_t::re.
Referenced by isogeny_walks_2().
Definition at line 283 of file fp2.c.
References FIELD_64BITS_WORDS, fp2_add, fp2_copy, fp2_linear_pass_in(), fp2_mul, fp2_set_to_one(), fp2_set_to_zero(), fp2_sqr, fp_is_equal(), fp_is_zero(), fp_set_to_one(), fp_sub, i, fp2_t::im, j, fp2_t::re, and SQUARE_ROOT_EXPONENT_BITS.
Referenced by isogeny_walks_2_slow(), and isogeny_walks_get_points_3().
void fp2_to_bytes | ( | uint8_t * | output, |
fp2_t | input ) |
Definition at line 131 of file fp2.c.
References FIELD_BYTES, fp2_from_mont(), fp2_t::im, and fp2_t::re.
Definition at line 113 of file fp2.c.
References fp_to_mont(), fp2_t::im, and fp2_t::re.
Referenced by fp2_element_from_bytes().