Lines Matching refs:pk
1514 struct ecc_point *pk;
1525 pk = ecc_alloc_point(ndigits);
1526 if (!pk) {
1531 ecc_point_mult(pk, &curve->g, priv, NULL, curve, ndigits);
1534 if (ecc_is_pubkey_valid_full(curve, pk)) {
1539 ecc_swap_digits(pk->x, public_key, ndigits);
1540 ecc_swap_digits(pk->y, &public_key[ndigits], ndigits);
1543 ecc_free_point(pk);
1551 struct ecc_point *pk)
1555 if (WARN_ON(pk->ndigits != curve->g.ndigits))
1559 if (ecc_point_is_zero(pk))
1563 if (vli_cmp(curve->p, pk->x, pk->ndigits) != 1)
1565 if (vli_cmp(curve->p, pk->y, pk->ndigits) != 1)
1569 vli_mod_square_fast(yy, pk->y, curve); /* y^2 */
1570 vli_mod_square_fast(xxx, pk->x, curve); /* x^2 */
1571 vli_mod_mult_fast(xxx, xxx, pk->x, curve); /* x^3 */
1572 vli_mod_mult_fast(w, curve->a, pk->x, curve); /* a·x */
1573 vli_mod_add(w, w, curve->b, curve->p, pk->ndigits); /* a·x + b */
1574 vli_mod_add(w, w, xxx, curve->p, pk->ndigits); /* x^3 + a·x + b */
1575 if (vli_cmp(yy, w, pk->ndigits) != 0) /* Equation */
1584 struct ecc_point *pk)
1589 int ret = ecc_is_pubkey_valid_partial(curve, pk);
1595 nQ = ecc_alloc_point(pk->ndigits);
1599 ecc_point_mult(nQ, pk, curve->n, NULL, curve, pk->ndigits);
1614 struct ecc_point *product, *pk;
1630 pk = ecc_alloc_point(ndigits);
1631 if (!pk) {
1636 ecc_swap_digits(public_key, pk->x, ndigits);
1637 ecc_swap_digits(&public_key[ndigits], pk->y, ndigits);
1638 ret = ecc_is_pubkey_valid_partial(curve, pk);
1650 ecc_point_mult(product, pk, priv, rand_z, curve, ndigits);
1664 ecc_free_point(pk);