Lines Matching refs:px

52 /* Converts a point P(px, py) from affine coordinates to Jacobian
57 ec_GFp_pt_aff2jac(const mp_int *px, const mp_int *py, mp_int *rx,
62 if (ec_GFp_pt_is_inf_aff(px, py) == MP_YES) {
65 MP_CHECKOK(mp_copy(px, rx));
76 /* Converts a point P(px, py, pz) from Jacobian projective coordinates to
81 ec_GFp_pt_jac2aff(const mp_int *px, const mp_int *py, const mp_int *pz,
90 MP_CHECKOK(mp_init(&z1, FLAG(px)));
91 MP_CHECKOK(mp_init(&z2, FLAG(px)));
92 MP_CHECKOK(mp_init(&z3, FLAG(px)));
95 if (ec_GFp_pt_is_inf_jac(px, py, pz) == MP_YES) {
100 /* transform (px, py, pz) into (px / pz^2, py / pz^3) */
102 MP_CHECKOK(mp_copy(px, rx));
108 MP_CHECKOK(group->meth->field_mul(px, &z2, rx, group->meth));
119 /* Checks if point P(px, py, pz) is at infinity. Uses Jacobian
122 ec_GFp_pt_is_inf_jac(const mp_int *px, const mp_int *py, const mp_int *pz)
127 /* Sets P(px, py, pz) to be the point at infinity. Uses Jacobian
130 ec_GFp_pt_set_inf_jac(mp_int *px, mp_int *py, mp_int *pz)
136 /* Computes R = P + Q where R is (rx, ry, rz), P is (px, py, pz) and Q is
144 ec_GFp_pt_add_jac_aff(const mp_int *px, const mp_int *py, const mp_int *pz,
157 MP_CHECKOK(mp_init(&A, FLAG(px)));
158 MP_CHECKOK(mp_init(&B, FLAG(px)));
159 MP_CHECKOK(mp_init(&C, FLAG(px)));
160 MP_CHECKOK(mp_init(&D, FLAG(px)));
161 MP_CHECKOK(mp_init(&C2, FLAG(px)));
162 MP_CHECKOK(mp_init(&C3, FLAG(px)));
166 if (ec_GFp_pt_is_inf_jac(px, py, pz) == MP_YES) {
171 MP_CHECKOK(mp_copy(px, rx));
183 /* C = A - px, D = B - py */
184 MP_CHECKOK(group->meth->field_sub(&A, px, &C, group->meth));
194 /* C = px * C^2 */
195 MP_CHECKOK(group->meth->field_mul(px, &C2, &C, group->meth));
199 /* rx = D^2 - (C^3 + 2 * (px * C^2)) */
207 /* ry = D * (px * C^2 - rx) - py * C^3 */
233 ec_GFp_pt_dbl_jac(const mp_int *px, const mp_int *py, const mp_int *pz,
243 MP_CHECKOK(mp_init(&t0, FLAG(px)));
244 MP_CHECKOK(mp_init(&t1, FLAG(px)));
245 MP_CHECKOK(mp_init(&M, FLAG(px)));
246 MP_CHECKOK(mp_init(&S, FLAG(px)));
248 if (ec_GFp_pt_is_inf_jac(px, py, pz) == MP_YES) {
254 /* M = 3 * px^2 + a */
255 MP_CHECKOK(group->meth->field_sqr(px, &t0, group->meth));
260 } else if (mp_cmp_int(&group->curvea, -3, FLAG(px)) == 0) {
261 /* M = 3 * (px + pz^2) * (px - pz^2) */
263 MP_CHECKOK(group->meth->field_add(px, &M, &t0, group->meth));
264 MP_CHECKOK(group->meth->field_sub(px, &M, &t1, group->meth));
269 /* M = 3 * (px^2) + a * (pz^4) */
270 MP_CHECKOK(group->meth->field_sqr(px, &t0, group->meth));
291 /* S = 4 * px * py^2 = px * (2 * py)^2 */
292 MP_CHECKOK(group->meth->field_mul(px, &t0, &S, group->meth));
319 /* Computes R = nP where R is (rx, ry) and P is (px, py). The parameters
326 ec_GFp_pt_mul_jac(const mp_int *n, const mp_int *px, const mp_int *py,
340 ARGCHK((n != NULL) && (px != NULL) && (py != NULL), MP_BADARG);
351 MP_CHECKOK(mp_copy(px, &precomp[1][0]));
407 ec_GFp_pts_mul_jac(const mp_int *k1, const mp_int *k2, const mp_int *px,
428 && ((k2 == NULL) || (px == NULL)
433 return ECPoint_mul(group, k2, px, py, rx, ry);
434 } else if ((k2 == NULL) || (px == NULL) || (py == NULL)) {
453 field_enc(px, &precomp[1][0][0], group->meth));
457 MP_CHECKOK(mp_copy(px, &precomp[1][0][0]));
469 field_enc(px, &precomp[0][1][0], group->meth));
473 MP_CHECKOK(mp_copy(px, &precomp[0][1][0]));