Lines Matching refs:EC_GROUP
52 int (*group_init) (EC_GROUP *);
53 void (*group_finish) (EC_GROUP *);
54 void (*group_clear_finish) (EC_GROUP *);
55 int (*group_copy) (EC_GROUP *, const EC_GROUP *);
57 int (*group_set_curve) (EC_GROUP *, const BIGNUM *p, const BIGNUM *a,
59 int (*group_get_curve) (const EC_GROUP *, BIGNUM *p, BIGNUM *a, BIGNUM *b,
62 int (*group_get_degree) (const EC_GROUP *);
63 int (*group_order_bits) (const EC_GROUP *);
65 int (*group_check_discriminant) (const EC_GROUP *, BN_CTX *);
82 int (*point_set_to_infinity) (const EC_GROUP *, EC_POINT *);
83 int (*point_set_affine_coordinates) (const EC_GROUP *, EC_POINT *,
86 int (*point_get_affine_coordinates) (const EC_GROUP *, const EC_POINT *,
88 int (*point_set_compressed_coordinates) (const EC_GROUP *, EC_POINT *,
92 size_t (*point2oct) (const EC_GROUP *, const EC_POINT *,
95 int (*oct2point) (const EC_GROUP *, EC_POINT *, const unsigned char *buf,
98 int (*add) (const EC_GROUP *, EC_POINT *r, const EC_POINT *a,
100 int (*dbl) (const EC_GROUP *, EC_POINT *r, const EC_POINT *a, BN_CTX *);
101 int (*invert) (const EC_GROUP *, EC_POINT *, BN_CTX *);
105 int (*is_at_infinity) (const EC_GROUP *, const EC_POINT *);
106 int (*is_on_curve) (const EC_GROUP *, const EC_POINT *, BN_CTX *);
107 int (*point_cmp) (const EC_GROUP *, const EC_POINT *a, const EC_POINT *b,
110 int (*make_affine) (const EC_GROUP *, EC_POINT *, BN_CTX *);
111 int (*points_make_affine) (const EC_GROUP *, size_t num, EC_POINT *[],
135 int (*mul) (const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,
138 int (*precompute_mult) (EC_GROUP *group, BN_CTX *);
139 int (*have_precompute_mult) (const EC_GROUP *group);
147 int (*field_mul) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
149 int (*field_sqr) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a, BN_CTX *);
150 int (*field_div) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
158 int (*field_inv) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a, BN_CTX *);
160 int (*field_encode) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
163 int (*field_decode) (const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
165 int (*field_set_to_one) (const EC_GROUP *, BIGNUM *r, BN_CTX *);
187 int (*field_inverse_mod_ord)(const EC_GROUP *, BIGNUM *r,
189 int (*blind_coordinates)(const EC_GROUP *group, EC_POINT *p, BN_CTX *ctx);
190 int (*ladder_pre)(const EC_GROUP *group,
193 int (*ladder_step)(const EC_GROUP *group,
196 int (*ladder_post)(const EC_GROUP *group,
291 EC_GROUP *group;
326 const EC_GROUP *group) in ec_point_is_compat()
341 void EC_pre_comp_free(EC_GROUP *group);
352 int ossl_ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,
355 int ossl_ec_wNAF_precompute_mult(EC_GROUP *group, BN_CTX *);
356 int ossl_ec_wNAF_have_precompute_mult(const EC_GROUP *group);
359 int ossl_ec_GFp_simple_group_init(EC_GROUP *);
360 void ossl_ec_GFp_simple_group_finish(EC_GROUP *);
361 void ossl_ec_GFp_simple_group_clear_finish(EC_GROUP *);
362 int ossl_ec_GFp_simple_group_copy(EC_GROUP *, const EC_GROUP *);
363 int ossl_ec_GFp_simple_group_set_curve(EC_GROUP *, const BIGNUM *p,
366 int ossl_ec_GFp_simple_group_get_curve(const EC_GROUP *, BIGNUM *p, BIGNUM *a,
368 int ossl_ec_GFp_simple_group_get_degree(const EC_GROUP *);
369 int ossl_ec_GFp_simple_group_check_discriminant(const EC_GROUP *, BN_CTX *);
374 int ossl_ec_GFp_simple_point_set_to_infinity(const EC_GROUP *, EC_POINT *);
375 int ossl_ec_GFp_simple_set_Jprojective_coordinates_GFp(const EC_GROUP *,
381 int ossl_ec_GFp_simple_get_Jprojective_coordinates_GFp(const EC_GROUP *,
386 int ossl_ec_GFp_simple_point_set_affine_coordinates(const EC_GROUP *, EC_POINT *,
389 int ossl_ec_GFp_simple_point_get_affine_coordinates(const EC_GROUP *,
392 int ossl_ec_GFp_simple_set_compressed_coordinates(const EC_GROUP *, EC_POINT *,
395 size_t ossl_ec_GFp_simple_point2oct(const EC_GROUP *, const EC_POINT *,
398 int ossl_ec_GFp_simple_oct2point(const EC_GROUP *, EC_POINT *,
400 int ossl_ec_GFp_simple_add(const EC_GROUP *, EC_POINT *r, const EC_POINT *a,
402 int ossl_ec_GFp_simple_dbl(const EC_GROUP *, EC_POINT *r, const EC_POINT *a,
404 int ossl_ec_GFp_simple_invert(const EC_GROUP *, EC_POINT *, BN_CTX *);
405 int ossl_ec_GFp_simple_is_at_infinity(const EC_GROUP *, const EC_POINT *);
406 int ossl_ec_GFp_simple_is_on_curve(const EC_GROUP *, const EC_POINT *, BN_CTX *);
407 int ossl_ec_GFp_simple_cmp(const EC_GROUP *, const EC_POINT *a,
409 int ossl_ec_GFp_simple_make_affine(const EC_GROUP *, EC_POINT *, BN_CTX *);
410 int ossl_ec_GFp_simple_points_make_affine(const EC_GROUP *, size_t num,
412 int ossl_ec_GFp_simple_field_mul(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
414 int ossl_ec_GFp_simple_field_sqr(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
416 int ossl_ec_GFp_simple_field_inv(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
418 int ossl_ec_GFp_simple_blind_coordinates(const EC_GROUP *group, EC_POINT *p,
420 int ossl_ec_GFp_simple_ladder_pre(const EC_GROUP *group,
423 int ossl_ec_GFp_simple_ladder_step(const EC_GROUP *group,
426 int ossl_ec_GFp_simple_ladder_post(const EC_GROUP *group,
431 int ossl_ec_GFp_mont_group_init(EC_GROUP *);
432 int ossl_ec_GFp_mont_group_set_curve(EC_GROUP *, const BIGNUM *p,
435 void ossl_ec_GFp_mont_group_finish(EC_GROUP *);
436 void ossl_ec_GFp_mont_group_clear_finish(EC_GROUP *);
437 int ossl_ec_GFp_mont_group_copy(EC_GROUP *, const EC_GROUP *);
438 int ossl_ec_GFp_mont_field_mul(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
440 int ossl_ec_GFp_mont_field_sqr(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
442 int ossl_ec_GFp_mont_field_inv(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
444 int ossl_ec_GFp_mont_field_encode(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
446 int ossl_ec_GFp_mont_field_decode(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
448 int ossl_ec_GFp_mont_field_set_to_one(const EC_GROUP *, BIGNUM *r, BN_CTX *);
451 int ossl_ec_GFp_nist_group_copy(EC_GROUP *dest, const EC_GROUP *src);
452 int ossl_ec_GFp_nist_group_set_curve(EC_GROUP *, const BIGNUM *p,
454 int ossl_ec_GFp_nist_field_mul(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
456 int ossl_ec_GFp_nist_field_sqr(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
460 int ossl_ec_GF2m_simple_group_init(EC_GROUP *);
461 void ossl_ec_GF2m_simple_group_finish(EC_GROUP *);
462 void ossl_ec_GF2m_simple_group_clear_finish(EC_GROUP *);
463 int ossl_ec_GF2m_simple_group_copy(EC_GROUP *, const EC_GROUP *);
464 int ossl_ec_GF2m_simple_group_set_curve(EC_GROUP *, const BIGNUM *p,
467 int ossl_ec_GF2m_simple_group_get_curve(const EC_GROUP *, BIGNUM *p, BIGNUM *a,
469 int ossl_ec_GF2m_simple_group_get_degree(const EC_GROUP *);
470 int ossl_ec_GF2m_simple_group_check_discriminant(const EC_GROUP *, BN_CTX *);
475 int ossl_ec_GF2m_simple_point_set_to_infinity(const EC_GROUP *, EC_POINT *);
476 int ossl_ec_GF2m_simple_point_set_affine_coordinates(const EC_GROUP *,
480 int ossl_ec_GF2m_simple_point_get_affine_coordinates(const EC_GROUP *,
483 int ossl_ec_GF2m_simple_set_compressed_coordinates(const EC_GROUP *, EC_POINT *,
486 size_t ossl_ec_GF2m_simple_point2oct(const EC_GROUP *, const EC_POINT *,
489 int ossl_ec_GF2m_simple_oct2point(const EC_GROUP *, EC_POINT *,
491 int ossl_ec_GF2m_simple_add(const EC_GROUP *, EC_POINT *r, const EC_POINT *a,
493 int ossl_ec_GF2m_simple_dbl(const EC_GROUP *, EC_POINT *r, const EC_POINT *a,
495 int ossl_ec_GF2m_simple_invert(const EC_GROUP *, EC_POINT *, BN_CTX *);
496 int ossl_ec_GF2m_simple_is_at_infinity(const EC_GROUP *, const EC_POINT *);
497 int ossl_ec_GF2m_simple_is_on_curve(const EC_GROUP *, const EC_POINT *, BN_CTX *);
498 int ossl_ec_GF2m_simple_cmp(const EC_GROUP *, const EC_POINT *a,
500 int ossl_ec_GF2m_simple_make_affine(const EC_GROUP *, EC_POINT *, BN_CTX *);
501 int ossl_ec_GF2m_simple_points_make_affine(const EC_GROUP *, size_t num,
503 int ossl_ec_GF2m_simple_field_mul(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
505 int ossl_ec_GF2m_simple_field_sqr(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
507 int ossl_ec_GF2m_simple_field_div(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
516 int ossl_ec_GFp_nistp224_group_init(EC_GROUP *group);
517 int ossl_ec_GFp_nistp224_group_set_curve(EC_GROUP *group, const BIGNUM *p,
520 int ossl_ec_GFp_nistp224_point_get_affine_coordinates(const EC_GROUP *group,
524 int ossl_ec_GFp_nistp224_mul(const EC_GROUP *group, EC_POINT *r,
528 int ossl_ec_GFp_nistp224_points_mul(const EC_GROUP *group, EC_POINT *r,
532 int ossl_ec_GFp_nistp224_precompute_mult(EC_GROUP *group, BN_CTX *ctx);
533 int ossl_ec_GFp_nistp224_have_precompute_mult(const EC_GROUP *group);
536 int ossl_ec_GFp_nistp256_group_init(EC_GROUP *group);
537 int ossl_ec_GFp_nistp256_group_set_curve(EC_GROUP *group, const BIGNUM *p,
540 int ossl_ec_GFp_nistp256_point_get_affine_coordinates(const EC_GROUP *group,
544 int ossl_ec_GFp_nistp256_mul(const EC_GROUP *group, EC_POINT *r,
548 int ossl_ec_GFp_nistp256_points_mul(const EC_GROUP *group, EC_POINT *r,
552 int ossl_ec_GFp_nistp256_precompute_mult(EC_GROUP *group, BN_CTX *ctx);
553 int ossl_ec_GFp_nistp256_have_precompute_mult(const EC_GROUP *group);
556 int ossl_ec_GFp_nistp521_group_init(EC_GROUP *group);
557 int ossl_ec_GFp_nistp521_group_set_curve(EC_GROUP *group, const BIGNUM *p,
560 int ossl_ec_GFp_nistp521_point_get_affine_coordinates(const EC_GROUP *group,
564 int ossl_ec_GFp_nistp521_mul(const EC_GROUP *group, EC_POINT *r,
568 int ossl_ec_GFp_nistp521_points_mul(const EC_GROUP *group, EC_POINT *r,
572 int ossl_ec_GFp_nistp521_precompute_mult(EC_GROUP *group, BN_CTX *ctx);
573 int ossl_ec_GFp_nistp521_have_precompute_mult(const EC_GROUP *group);
598 int ossl_ec_group_simple_order_bits(const EC_GROUP *group);
608 EC_GROUP *ossl_ec_group_new_ex(OSSL_LIB_CTX *libctx, const char *propq,
632 int ossl_ec_curve_nid_from_params(const EC_GROUP *group, BN_CTX *ctx);
642 int (*set_group)(EC_KEY *key, const EC_GROUP *grp);
729 int ossl_ec_scalar_mul_ladder(const EC_GROUP *group, EC_POINT *r,
733 int ossl_ec_point_blind_coordinates(const EC_GROUP *group, EC_POINT *p,
736 static ossl_inline int ec_point_ladder_pre(const EC_GROUP *group, in ec_point_ladder_pre()
750 static ossl_inline int ec_point_ladder_step(const EC_GROUP *group, in ec_point_ladder_step()
765 static ossl_inline int ec_point_ladder_post(const EC_GROUP *group, in ec_point_ladder_post()