Let us walk on the 3-isogeny graph
|
#include <stdio.h>
#include <stdint.h>
Go to the source code of this file.
Macros | |
#define | NUMBER_OF_BENCHMARK_EXPERIMENTS 500 |
#define | NUMBER_OF_TEST_EXPERIMENTS 500 |
#define | addition_with_carry_u64(output, output_carry, input_carry, input_a, input_b) |
#define | subtraction_with_borrow_u64(output, output_borrow, input_borrow, input_a, input_b) |
#define | constant_time_shift_to_right_u64(shiftOut, highIn, lowIn, shift, DigitSize) (shiftOut) = ((lowIn) >> (shift)) ^ ((highIn) << ((DigitSize) - (shift))); |
#define | constant_time_shift_to_left_u64(shiftOut, highIn, lowIn, shift, DigitSize) (shiftOut) = ((highIn) << (shift)) ^ ((lowIn) >> ((DigitSize) - (shift))); |
#define addition_with_carry_u64 | ( | output, | |
output_carry, | |||
input_carry, | |||
input_a, | |||
input_b | |||
) |
Definition at line 34 of file utilities.h.
#define constant_time_shift_to_left_u64 | ( | shiftOut, | |
highIn, | |||
lowIn, | |||
shift, | |||
DigitSize | |||
) | (shiftOut) = ((highIn) << (shift)) ^ ((lowIn) >> ((DigitSize) - (shift))); |
Definition at line 48 of file utilities.h.
#define constant_time_shift_to_right_u64 | ( | shiftOut, | |
highIn, | |||
lowIn, | |||
shift, | |||
DigitSize | |||
) | (shiftOut) = ((lowIn) >> (shift)) ^ ((highIn) << ((DigitSize) - (shift))); |
Definition at line 45 of file utilities.h.
#define NUMBER_OF_BENCHMARK_EXPERIMENTS 500 |
Definition at line 15 of file utilities.h.
#define NUMBER_OF_TEST_EXPERIMENTS 500 |
Definition at line 16 of file utilities.h.
#define subtraction_with_borrow_u64 | ( | output, | |
output_borrow, | |||
input_borrow, | |||
input_a, | |||
input_b | |||
) |
Definition at line 39 of file utilities.h.
uint8_t constant_time_compare | ( | const uint8_t * | input_a, |
const uint8_t * | input_b, | ||
uint64_t | input_length | ||
) |
Definition at line 62 of file utilities.c.
References i.
Referenced by multiprecision_is_smaller().
void constant_time_conditional_mov | ( | uint8_t * | output, |
const uint8_t * | input, | ||
uint64_t | input_length, | ||
uint8_t | input_selector | ||
) |
Definition at line 74 of file utilities.c.
References i.
Referenced by fp2_sqrt_fast().
Definition at line 58 of file utilities.c.
Referenced by isogeny_walks_3_fp(), isogeny_walks_3_fp(), and multiprecision_is_smaller().
Definition at line 50 of file utilities.c.
Referenced by constant_time_is_zero_u64().
Definition at line 54 of file utilities.c.
References constant_time_is_nonzero_u64().
void multiplication_u64 | ( | uint64_t * | output_low, |
uint64_t * | output_high, | ||
uint64_t | input_a, | ||
uint64_t | input_b | ||
) |
Definition at line 7 of file utilities.c.
void multiprecision_addition | ( | uint64_t * | output, |
const uint64_t * | input_a, | ||
const uint64_t * | input_b, | ||
uint64_t | input_length | ||
) |
Definition at line 98 of file utilities.c.
References addition_with_carry_u64, and i.
uint8_t multiprecision_is_smaller | ( | const uint64_t * | input1, |
const uint64_t * | input2, | ||
uint64_t | input_length | ||
) |
Definition at line 111 of file utilities.c.
References constant_time_compare(), constant_time_is_lessthan_u64(), i, and j.
Referenced by fp_is_smaller(), and fp_sample().
void multiprecision_shift_to_left | ( | uint64_t * | input_a_output_shifted_a, |
uint64_t | input_words_length | ||
) |
Definition at line 89 of file utilities.c.
References constant_time_shift_to_left_u64, and i.
void multiprecision_shift_to_right | ( | uint64_t * | input_a_output_shifted_a, |
uint64_t | input_words_length | ||
) |
Definition at line 80 of file utilities.c.
References constant_time_shift_to_right_u64, and i.
Referenced by fp_half().
void multiprecision_subtraction | ( | uint64_t * | output, |
const uint64_t * | input_a, | ||
const uint64_t * | input_b, | ||
uint64_t | input_length | ||
) |
Definition at line 103 of file utilities.c.
References i, and subtraction_with_borrow_u64.