Lines Matching refs:ctx

143                                        const BIGNUM *b, BN_CTX *ctx)
155 if (ctx == NULL) {
156 ctx = new_ctx = BN_CTX_new_ex(group->libctx);
157 if (ctx == NULL)
161 BN_CTX_start(ctx);
162 tmp_a = BN_CTX_get(ctx);
172 if (!BN_nnmod(tmp_a, a, p, ctx))
175 if (!group->meth->field_encode(group, group->a, tmp_a, ctx))
181 if (!BN_nnmod(group->b, b, p, ctx))
184 if (!group->meth->field_encode(group, group->b, group->b, ctx))
195 BN_CTX_end(ctx);
201 BIGNUM *a, BIGNUM *b, BN_CTX *ctx)
213 if (ctx == NULL) {
214 ctx = new_ctx = BN_CTX_new_ex(group->libctx);
215 if (ctx == NULL)
219 if (!group->meth->field_decode(group, a, group->a, ctx))
223 if (!group->meth->field_decode(group, b, group->b, ctx))
251 BN_CTX *ctx)
258 if (ctx == NULL) {
259 ctx = new_ctx = BN_CTX_new_ex(group->libctx);
260 if (ctx == NULL) {
265 BN_CTX_start(ctx);
266 a = BN_CTX_get(ctx);
267 b = BN_CTX_get(ctx);
268 tmp_1 = BN_CTX_get(ctx);
269 tmp_2 = BN_CTX_get(ctx);
270 order = BN_CTX_get(ctx);
275 if (!group->meth->field_decode(group, a, group->a, ctx))
277 if (!group->meth->field_decode(group, b, group->b, ctx))
295 if (!BN_mod_sqr(tmp_1, a, p, ctx))
297 if (!BN_mod_mul(tmp_2, tmp_1, a, p, ctx))
303 if (!BN_mod_sqr(tmp_2, b, p, ctx))
309 if (!BN_mod_add(a, tmp_1, tmp_2, p, ctx))
317 BN_CTX_end(ctx);
380 BN_CTX *ctx)
385 if (ctx == NULL) {
386 ctx = new_ctx = BN_CTX_new_ex(group->libctx);
387 if (ctx == NULL)
392 if (!BN_nnmod(point->X, x, group->field, ctx))
395 if (!group->meth->field_encode(group, point->X, point->X, ctx))
401 if (!BN_nnmod(point->Y, y, group->field, ctx))
404 if (!group->meth->field_encode(group, point->Y, point->Y, ctx))
412 if (!BN_nnmod(point->Z, z, group->field, ctx))
417 if (!group->meth->field_set_to_one(group, point->Z, ctx))
421 meth->field_encode(group, point->Z, point->Z, ctx))
438 BIGNUM *z, BN_CTX *ctx)
444 if (ctx == NULL) {
445 ctx = new_ctx = BN_CTX_new_ex(group->libctx);
446 if (ctx == NULL)
451 if (!group->meth->field_decode(group, x, point->X, ctx))
455 if (!group->meth->field_decode(group, y, point->Y, ctx))
459 if (!group->meth->field_decode(group, z, point->Z, ctx))
487 const BIGNUM *y, BN_CTX *ctx)
498 BN_value_one(), ctx);
504 BN_CTX *ctx)
516 if (ctx == NULL) {
517 ctx = new_ctx = BN_CTX_new_ex(group->libctx);
518 if (ctx == NULL)
522 BN_CTX_start(ctx);
523 Z = BN_CTX_get(ctx);
524 Z_1 = BN_CTX_get(ctx);
525 Z_2 = BN_CTX_get(ctx);
526 Z_3 = BN_CTX_get(ctx);
533 if (!group->meth->field_decode(group, Z, point->Z, ctx))
543 if (!group->meth->field_decode(group, x, point->X, ctx))
547 if (!group->meth->field_decode(group, y, point->Y, ctx))
561 if (!group->meth->field_inv(group, Z_1, Z_, ctx)) {
568 if (!group->meth->field_sqr(group, Z_2, Z_1, ctx))
571 if (!BN_mod_sqr(Z_2, Z_1, group->field, ctx))
580 if (!group->meth->field_mul(group, x, point->X, Z_2, ctx))
589 if (!group->meth->field_mul(group, Z_3, Z_2, Z_1, ctx))
592 if (!BN_mod_mul(Z_3, Z_2, Z_1, group->field, ctx))
600 if (!group->meth->field_mul(group, y, point->Y, Z_3, ctx))
608 BN_CTX_end(ctx);
614 const EC_POINT *b, BN_CTX *ctx)
625 return EC_POINT_dbl(group, r, a, ctx);
635 if (ctx == NULL) {
636 ctx = new_ctx = BN_CTX_new_ex(group->libctx);
637 if (ctx == NULL)
641 BN_CTX_start(ctx);
642 n0 = BN_CTX_get(ctx);
643 n1 = BN_CTX_get(ctx);
644 n2 = BN_CTX_get(ctx);
645 n3 = BN_CTX_get(ctx);
646 n4 = BN_CTX_get(ctx);
647 n5 = BN_CTX_get(ctx);
648 n6 = BN_CTX_get(ctx);
667 if (!field_sqr(group, n0, b->Z, ctx))
669 if (!field_mul(group, n1, a->X, n0, ctx))
673 if (!field_mul(group, n0, n0, b->Z, ctx))
675 if (!field_mul(group, n2, a->Y, n0, ctx))
689 if (!field_sqr(group, n0, a->Z, ctx))
691 if (!field_mul(group, n3, b->X, n0, ctx))
695 if (!field_mul(group, n0, n0, a->Z, ctx))
697 if (!field_mul(group, n4, b->Y, n0, ctx))
713 BN_CTX_end(ctx);
714 ret = EC_POINT_dbl(group, r, a, ctx);
715 ctx = NULL;
746 if (!field_mul(group, n0, a->Z, b->Z, ctx))
749 if (!field_mul(group, r->Z, n0, n5, ctx))
756 if (!field_sqr(group, n0, n6, ctx))
758 if (!field_sqr(group, n4, n5, ctx))
760 if (!field_mul(group, n3, n1, n4, ctx))
774 if (!field_mul(group, n0, n0, n6, ctx))
776 if (!field_mul(group, n5, n4, n5, ctx))
778 if (!field_mul(group, n1, n2, n5, ctx))
793 BN_CTX_end(ctx);
799 BN_CTX *ctx)
819 if (ctx == NULL) {
820 ctx = new_ctx = BN_CTX_new_ex(group->libctx);
821 if (ctx == NULL)
825 BN_CTX_start(ctx);
826 n0 = BN_CTX_get(ctx);
827 n1 = BN_CTX_get(ctx);
828 n2 = BN_CTX_get(ctx);
829 n3 = BN_CTX_get(ctx);
841 if (!field_sqr(group, n0, a->X, ctx))
851 if (!field_sqr(group, n1, a->Z, ctx))
857 if (!field_mul(group, n1, n0, n2, ctx))
868 if (!field_sqr(group, n0, a->X, ctx))
874 if (!field_sqr(group, n1, a->Z, ctx))
876 if (!field_sqr(group, n1, n1, ctx))
878 if (!field_mul(group, n1, n1, group->a, ctx))
890 if (!field_mul(group, n0, a->Y, a->Z, ctx))
899 if (!field_sqr(group, n3, a->Y, ctx))
901 if (!field_mul(group, n2, a->X, n3, ctx))
910 if (!field_sqr(group, r->X, n1, ctx))
917 if (!field_sqr(group, n0, n3, ctx))
926 if (!field_mul(group, n0, n1, n0, ctx))
935 BN_CTX_end(ctx);
941 BN_CTX *ctx)
957 BN_CTX *ctx)
974 if (ctx == NULL) {
975 ctx = new_ctx = BN_CTX_new_ex(group->libctx);
976 if (ctx == NULL)
980 BN_CTX_start(ctx);
981 rh = BN_CTX_get(ctx);
982 tmp = BN_CTX_get(ctx);
983 Z4 = BN_CTX_get(ctx);
984 Z6 = BN_CTX_get(ctx);
999 if (!field_sqr(group, rh, point->X, ctx))
1003 if (!field_sqr(group, tmp, point->Z, ctx))
1005 if (!field_sqr(group, Z4, tmp, ctx))
1007 if (!field_mul(group, Z6, Z4, tmp, ctx))
1018 if (!field_mul(group, rh, rh, point->X, ctx))
1021 if (!field_mul(group, tmp, Z4, group->a, ctx))
1025 if (!field_mul(group, rh, rh, point->X, ctx))
1030 if (!field_mul(group, tmp, group->b, Z6, ctx))
1040 if (!field_mul(group, rh, rh, point->X, ctx))
1048 if (!field_sqr(group, tmp, point->Y, ctx))
1054 BN_CTX_end(ctx);
1060 const EC_POINT *b, BN_CTX *ctx)
1091 if (ctx == NULL) {
1092 ctx = new_ctx = BN_CTX_new_ex(group->libctx);
1093 if (ctx == NULL)
1097 BN_CTX_start(ctx);
1098 tmp1 = BN_CTX_get(ctx);
1099 tmp2 = BN_CTX_get(ctx);
1100 Za23 = BN_CTX_get(ctx);
1101 Zb23 = BN_CTX_get(ctx);
1113 if (!field_sqr(group, Zb23, b->Z, ctx))
1115 if (!field_mul(group, tmp1, a->X, Zb23, ctx))
1121 if (!field_sqr(group, Za23, a->Z, ctx))
1123 if (!field_mul(group, tmp2, b->X, Za23, ctx))
1136 if (!field_mul(group, Zb23, Zb23, b->Z, ctx))
1138 if (!field_mul(group, tmp1, a->Y, Zb23, ctx))
1144 if (!field_mul(group, Za23, Za23, a->Z, ctx))
1146 if (!field_mul(group, tmp2, b->Y, Za23, ctx))
1162 BN_CTX_end(ctx);
1168 BN_CTX *ctx)
1177 if (ctx == NULL) {
1178 ctx = new_ctx = BN_CTX_new_ex(group->libctx);
1179 if (ctx == NULL)
1183 BN_CTX_start(ctx);
1184 x = BN_CTX_get(ctx);
1185 y = BN_CTX_get(ctx);
1189 if (!EC_POINT_get_affine_coordinates(group, point, x, y, ctx))
1191 if (!EC_POINT_set_affine_coordinates(group, point, x, y, ctx))
1201 BN_CTX_end(ctx);
1207 EC_POINT *points[], BN_CTX *ctx)
1218 if (ctx == NULL) {
1219 ctx = new_ctx = BN_CTX_new_ex(group->libctx);
1220 if (ctx == NULL)
1224 BN_CTX_start(ctx);
1225 tmp = BN_CTX_get(ctx);
1226 tmp_Z = BN_CTX_get(ctx);
1249 if (!group->meth->field_set_to_one(group, prod_Z[0], ctx))
1261 ctx))
1274 if (!group->meth->field_inv(group, tmp, prod_Z[num - 1], ctx)) {
1284 if (!group->meth->field_encode(group, tmp, tmp, ctx))
1286 if (!group->meth->field_encode(group, tmp, tmp, ctx))
1301 meth->field_mul(group, tmp_Z, prod_Z[i - 1], tmp, ctx))
1306 if (!group->meth->field_mul(group, tmp, tmp, points[i]->Z, ctx))
1328 if (!group->meth->field_sqr(group, tmp, p->Z, ctx))
1330 if (!group->meth->field_mul(group, p->X, p->X, tmp, ctx))
1333 if (!group->meth->field_mul(group, tmp, tmp, p->Z, ctx))
1335 if (!group->meth->field_mul(group, p->Y, p->Y, tmp, ctx))
1339 if (!group->meth->field_set_to_one(group, p->Z, ctx))
1352 BN_CTX_end(ctx);
1366 const BIGNUM *b, BN_CTX *ctx)
1368 return BN_mod_mul(r, a, b, group->field, ctx);
1372 BN_CTX *ctx)
1374 return BN_mod_sqr(r, a, group->field, ctx);
1384 const BIGNUM *a, BN_CTX *ctx)
1390 if (ctx == NULL
1391 && (ctx = new_ctx = BN_CTX_secure_new_ex(group->libctx)) == NULL)
1394 BN_CTX_start(ctx);
1395 if ((e = BN_CTX_get(ctx)) == NULL)
1399 if (!BN_priv_rand_range_ex(e, group->field, 0, ctx))
1404 if (!group->meth->field_mul(group, r, a, e, ctx))
1407 if (!BN_mod_inverse(r, r, group->field, ctx)) {
1412 if (!group->meth->field_mul(group, r, r, e, ctx))
1418 BN_CTX_end(ctx);
1431 BN_CTX *ctx)
1437 BN_CTX_start(ctx);
1438 lambda = BN_CTX_get(ctx);
1439 temp = BN_CTX_get(ctx);
1452 ret = BN_priv_rand_range_ex(lambda, group->field, 0, ctx);
1462 && !group->meth->field_encode(group, lambda, lambda, ctx))
1463 || !group->meth->field_mul(group, p->Z, p->Z, lambda, ctx)
1464 || !group->meth->field_sqr(group, temp, lambda, ctx)
1465 || !group->meth->field_mul(group, p->X, p->X, temp, ctx)
1466 || !group->meth->field_mul(group, temp, temp, lambda, ctx)
1467 || !group->meth->field_mul(group, p->Y, p->Y, temp, ctx))
1474 BN_CTX_end(ctx);
1495 EC_POINT *p, BN_CTX *ctx)
1506 || !group->meth->field_sqr(group, t3, p->X, ctx)
1508 || !group->meth->field_sqr(group, t4, t4, ctx)
1509 || !group->meth->field_mul(group, t5, p->X, group->b, ctx)
1514 || !group->meth->field_mul(group, t2, p->X, t1, ctx)
1522 if (!BN_priv_rand_range_ex(r->Y, group->field, 0, ctx))
1528 if (!BN_priv_rand_range_ex(s->Z, group->field, 0, ctx))
1534 && (!group->meth->field_encode(group, r->Y, r->Y, ctx)
1535 || !group->meth->field_encode(group, s->Z, s->Z, ctx)))
1539 if (!group->meth->field_mul(group, r->Z, r->Z, r->Y, ctx)
1540 || !group->meth->field_mul(group, r->X, r->X, r->Y, ctx)
1541 || !group->meth->field_mul(group, s->X, p->X, s->Z, ctx)) /* s := p */
1565 EC_POINT *p, BN_CTX *ctx)
1570 BN_CTX_start(ctx);
1571 t0 = BN_CTX_get(ctx);
1572 t1 = BN_CTX_get(ctx);
1573 t2 = BN_CTX_get(ctx);
1574 t3 = BN_CTX_get(ctx);
1575 t4 = BN_CTX_get(ctx);
1576 t5 = BN_CTX_get(ctx);
1577 t6 = BN_CTX_get(ctx);
1580 || !group->meth->field_mul(group, t6, r->X, s->X, ctx)
1581 || !group->meth->field_mul(group, t0, r->Z, s->Z, ctx)
1582 || !group->meth->field_mul(group, t4, r->X, s->Z, ctx)
1583 || !group->meth->field_mul(group, t3, r->Z, s->X, ctx)
1584 || !group->meth->field_mul(group, t5, group->a, t0, ctx)
1587 || !group->meth->field_mul(group, t5, t6, t5, ctx)
1588 || !group->meth->field_sqr(group, t0, t0, ctx)
1590 || !group->meth->field_mul(group, t0, t2, t0, ctx)
1594 || !group->meth->field_sqr(group, s->Z, t3, ctx)
1595 || !group->meth->field_mul(group, t4, s->Z, p->X, ctx)
1599 || !group->meth->field_sqr(group, t4, r->X, ctx)
1600 || !group->meth->field_sqr(group, t5, r->Z, ctx)
1601 || !group->meth->field_mul(group, t6, t5, group->a, ctx)
1603 || !group->meth->field_sqr(group, t1, t1, ctx)
1607 || !group->meth->field_sqr(group, t3, t3, ctx)
1608 || !group->meth->field_mul(group, t0, t5, t1, ctx)
1609 || !group->meth->field_mul(group, t0, t2, t0, ctx)
1613 || !group->meth->field_sqr(group, t4, t5, ctx)
1614 || !group->meth->field_mul(group, t4, t4, t2, ctx)
1615 || !group->meth->field_mul(group, t1, t1, t3, ctx)
1624 BN_CTX_end(ctx);
1653 EC_POINT *p, BN_CTX *ctx)
1663 || !EC_POINT_invert(group, r, ctx))
1668 BN_CTX_start(ctx);
1669 t0 = BN_CTX_get(ctx);
1670 t1 = BN_CTX_get(ctx);
1671 t2 = BN_CTX_get(ctx);
1672 t3 = BN_CTX_get(ctx);
1673 t4 = BN_CTX_get(ctx);
1674 t5 = BN_CTX_get(ctx);
1675 t6 = BN_CTX_get(ctx);
1679 || !group->meth->field_mul(group, t6, r->X, t4, ctx)
1680 || !group->meth->field_mul(group, t6, s->Z, t6, ctx)
1681 || !group->meth->field_mul(group, t5, r->Z, t6, ctx)
1683 || !group->meth->field_mul(group, t1, s->Z, t1, ctx)
1684 || !group->meth->field_sqr(group, t3, r->Z, ctx)
1685 || !group->meth->field_mul(group, t2, t3, t1, ctx)
1686 || !group->meth->field_mul(group, t6, r->Z, group->a, ctx)
1687 || !group->meth->field_mul(group, t1, p->X, r->X, ctx)
1689 || !group->meth->field_mul(group, t1, s->Z, t1, ctx)
1690 || !group->meth->field_mul(group, t0, p->X, r->Z, ctx)
1692 || !group->meth->field_mul(group, t6, t6, t1, ctx)
1695 || !group->meth->field_sqr(group, t0, t0, ctx)
1696 || !group->meth->field_mul(group, t0, t0, s->X, ctx)
1698 || !group->meth->field_mul(group, t1, s->Z, t4, ctx)
1699 || !group->meth->field_mul(group, t1, t3, t1, ctx)
1701 && !group->meth->field_decode(group, t1, t1, ctx))
1702 || !group->meth->field_inv(group, t1, t1, ctx)
1704 && !group->meth->field_encode(group, t1, t1, ctx))
1705 || !group->meth->field_mul(group, r->X, t5, t1, ctx)
1706 || !group->meth->field_mul(group, r->Y, t0, t1, ctx))
1710 if (!group->meth->field_set_to_one(group, r->Z, ctx))
1721 BN_CTX_end(ctx);