Lines Matching refs:idx

623 static int s_add_entry(int idx, ecc_point *g)  in s_add_entry()  argument
628 fp_cache[idx].g = ltc_ecc_new_point(); in s_add_entry()
629 if (fp_cache[idx].g == NULL) { in s_add_entry()
634 if ((mp_copy(g->x, fp_cache[idx].g->x) != CRYPT_OK) || in s_add_entry()
635 (mp_copy(g->y, fp_cache[idx].g->y) != CRYPT_OK) || in s_add_entry()
636 (mp_copy(g->z, fp_cache[idx].g->z) != CRYPT_OK)) { in s_add_entry()
637 ltc_ecc_del_point(fp_cache[idx].g); in s_add_entry()
638 fp_cache[idx].g = NULL; in s_add_entry()
643 fp_cache[idx].LUT[x] = ltc_ecc_new_point(); in s_add_entry()
644 if (fp_cache[idx].LUT[x] == NULL) { in s_add_entry()
646 ltc_ecc_del_point(fp_cache[idx].LUT[y]); in s_add_entry()
647 fp_cache[idx].LUT[y] = NULL; in s_add_entry()
649 ltc_ecc_del_point(fp_cache[idx].g); in s_add_entry()
650 fp_cache[idx].g = NULL; in s_add_entry()
651 fp_cache[idx].lru_count = 0; in s_add_entry()
656 fp_cache[idx].lru_count = 0; in s_add_entry()
665 static int s_build_lut(int idx, void *a, void *modulus, void *mp, void *mu) in s_build_lut() argument
687 if ((err = mp_init_copy(&fp_cache[idx].mu, mu)) != CRYPT_OK) { in s_build_lut()
692 if ((mp_mulmod(fp_cache[idx].g->x, mu, modulus, fp_cache[idx].LUT[1]->x) != CRYPT_OK) || in s_build_lut()
693 (mp_mulmod(fp_cache[idx].g->y, mu, modulus, fp_cache[idx].LUT[1]->y) != CRYPT_OK) || in s_build_lut()
694 …(mp_mulmod(fp_cache[idx].g->z, mu, modulus, fp_cache[idx].LUT[1]->z) != CRYPT_OK)) { goto E… in s_build_lut()
698 if ((mp_copy(fp_cache[idx].LUT[1<<(x-1)]->x, fp_cache[idx].LUT[1<<x]->x) != CRYPT_OK) || in s_build_lut()
699 (mp_copy(fp_cache[idx].LUT[1<<(x-1)]->y, fp_cache[idx].LUT[1<<x]->y) != CRYPT_OK) || in s_build_lut()
700 …(mp_copy(fp_cache[idx].LUT[1<<(x-1)]->z, fp_cache[idx].LUT[1<<x]->z) != CRYPT_OK)) { goto ERR;… in s_build_lut()
704 …if ((err = ltc_mp.ecc_ptdbl(fp_cache[idx].LUT[1<<x], fp_cache[idx].LUT[1<<x], a, modulus, mp)) != … in s_build_lut()
716 …if ((err = ltc_mp.ecc_ptadd(fp_cache[idx].LUT[lut_orders[y].terma], fp_cache[idx].LUT[lut_orders[y… in s_build_lut()
717 fp_cache[idx].LUT[y], a, modulus, mp)) != CRYPT_OK) { in s_build_lut()
727 …if ((err = mp_montgomery_reduce(fp_cache[idx].LUT[x]->z, modulus, mp)) != CRYPT_OK) … in s_build_lut()
730 …if ((err = mp_invmod(fp_cache[idx].LUT[x]->z, modulus, fp_cache[idx].LUT[x]->z)) != CRYPT_OK) … in s_build_lut()
733 …if ((err = mp_sqrmod(fp_cache[idx].LUT[x]->z, modulus, tmp)) != CRYPT_OK) … in s_build_lut()
736 …if ((err = mp_mulmod(fp_cache[idx].LUT[x]->x, tmp, modulus, fp_cache[idx].LUT[x]->x)) != CRYPT_OK)… in s_build_lut()
739 …if ((err = mp_mulmod(tmp, fp_cache[idx].LUT[x]->z, modulus, tmp)) != CRYPT_OK) … in s_build_lut()
742 …if ((err = mp_mulmod(fp_cache[idx].LUT[x]->y, tmp, modulus, fp_cache[idx].LUT[x]->y)) != CRYPT_OK)… in s_build_lut()
745 mp_clear(fp_cache[idx].LUT[x]->z); in s_build_lut()
746 fp_cache[idx].LUT[x]->z = NULL; in s_build_lut()
755 ltc_ecc_del_point(fp_cache[idx].LUT[y]); in s_build_lut()
756 fp_cache[idx].LUT[y] = NULL; in s_build_lut()
758 ltc_ecc_del_point(fp_cache[idx].g); in s_build_lut()
759 fp_cache[idx].g = NULL; in s_build_lut()
760 fp_cache[idx].lru_count = 0; in s_build_lut()
761 if (fp_cache[idx].mu != NULL) { in s_build_lut()
762 mp_clear(fp_cache[idx].mu); in s_build_lut()
763 fp_cache[idx].mu = NULL; in s_build_lut()
772 static int s_accel_fp_mul(int idx, void *k, ecc_point *R, void *a, void *modulus, void *mp, int map) in s_accel_fp_mul() argument
872 if ((err = ltc_mp.ecc_ptadd(R, fp_cache[idx].LUT[z], R, a, modulus, mp)) != CRYPT_OK) { in s_accel_fp_mul()
876 if ((mp_copy(fp_cache[idx].LUT[z]->x, R->x) != CRYPT_OK) || in s_accel_fp_mul()
877 (mp_copy(fp_cache[idx].LUT[z]->y, R->y) != CRYPT_OK) || in s_accel_fp_mul()
878 (mp_copy(fp_cache[idx].mu, R->z) != CRYPT_OK)) { return CRYPT_MEM; } in s_accel_fp_mul()
1224 int idx, err; in ltc_ecc_fp_mulmod() local
1231 idx = s_find_base(G); in ltc_ecc_fp_mulmod()
1234 if (idx == -1) { in ltc_ecc_fp_mulmod()
1236 idx = s_find_hole(); in ltc_ecc_fp_mulmod()
1238 if (idx >= 0) { in ltc_ecc_fp_mulmod()
1239 if ((err = s_add_entry(idx, G)) != CRYPT_OK) { in ltc_ecc_fp_mulmod()
1244 if (idx != -1) { in ltc_ecc_fp_mulmod()
1246 ++(fp_cache[idx].lru_count); in ltc_ecc_fp_mulmod()
1251 if (idx >= 0 && fp_cache[idx].lru_count == 2) { in ltc_ecc_fp_mulmod()
1264 if ((err = s_build_lut(idx, a, modulus, mp, mu)) != CRYPT_OK) { in ltc_ecc_fp_mulmod()
1269 if (idx >= 0 && fp_cache[idx].lru_count >= 2) { in ltc_ecc_fp_mulmod()
1274 err = s_accel_fp_mul(idx, k, R, a, modulus, mp, map); in ltc_ecc_fp_mulmod()
1328 int idx; in ltc_ecc_fp_add_point() local
1334 if ((idx = s_find_base(g)) >= 0) { in ltc_ecc_fp_add_point()
1336 if(fp_cache[idx].lru_count >= 2) { in ltc_ecc_fp_add_point()
1342 if(idx == -1 && (idx = s_find_hole()) == -1) { in ltc_ecc_fp_add_point()
1346 if ((err = s_add_entry(idx, g)) != CRYPT_OK) { in ltc_ecc_fp_add_point()
1363 if ((err = s_build_lut(idx, a, modulus, mp, mu)) != CRYPT_OK) { in ltc_ecc_fp_add_point()
1366 fp_cache[idx].lru_count = 2; in ltc_ecc_fp_add_point()
1367 fp_cache[idx].lock = lock; in ltc_ecc_fp_add_point()