210 fp2_t t4, t3, t2, t1, t0, jk_next, jk, jk_prev, Dk, Dk_sqrt[2];
211 fp2_t constant_162000, constant_2532192, constant_645205500, constant_8748000000;
212 fp2_t jk_times_2976, jk_prev_times_2976, jk_prev_times_324000, jk_squared, jk_prev_squared;
227 for (
i = 0;
i < input_length;
i++) {
229 for (
j = 0;
j < 8;
j++) {
235 fp2_mul(&t3, jk_times_2976, jk_squared);
237 fp2_add(&t2, jk_prev, jk_prev);
238 fp2_add(&t2, t2, constant_2532192);
242 fp2_add(&t1, jk_prev_times_2976, constant_645205500);
246 fp2_sqr(&jk_prev_squared, jk_prev);
247 fp2_add(&t0, jk_prev_squared, jk_prev_squared);
248 fp2_add(&t0, t0, jk_prev_squared);
249 fp2_sub(&t0, jk_prev_times_324000, t0);
257 fp2_sub(&Dk, Dk, constant_8748000000);
260 fp2_neg(&Dk_sqrt[1], Dk_sqrt[0]);
267 fp2_add(&t1, t1, constant_162000);
335 fp2_t t4, t3, t2, t1, t0, jk_next, jk, jk_prev, Dk, Dk_sqrt[2];
336 fp2_t constant_162000, constant_2532192, constant_645205500, constant_8748000000;
337 fp2_t jk_times_2976, jk_prev_times_2976, jk_prev_times_324000, jk_squared, jk_prev_squared;
352 for (
i = 0;
i < input_length;
i++) {
354 for (
j = 0;
j < 8;
j++) {
360 fp2_mul(&t3, jk_times_2976, jk_squared);
362 fp2_add(&t2, jk_prev, jk_prev);
363 fp2_add(&t2, t2, constant_2532192);
367 fp2_add(&t1, jk_prev_times_2976, constant_645205500);
371 fp2_sqr(&jk_prev_squared, jk_prev);
372 fp2_add(&t0, jk_prev_squared, jk_prev_squared);
373 fp2_add(&t0, t0, jk_prev_squared);
374 fp2_sub(&t0, jk_prev_times_324000, t0);
382 fp2_sub(&Dk, Dk, constant_8748000000);
385 fp2_neg(&Dk_sqrt[1], Dk_sqrt[0]);
392 fp2_add(&t1, t1, constant_162000);
void isogeny_walks_2_slow(fp2_t *j0, fp2_t *j1, fp2_t input_prev, fp2_t input, const uint8_t *input_path, size_t input_length)