Lines Matching refs:EC_GROUP
45 typedef struct ec_group_st EC_GROUP;
100 /* EC_GROUP functions */
103 /** Creates a new EC_GROUP object
105 * \return newly created EC_GROUP object or NULL in case of an error.
107 EC_GROUP *EC_GROUP_new(const EC_METHOD *meth);
109 /** Frees a EC_GROUP object
110 * \param group EC_GROUP object to be freed.
112 void EC_GROUP_free(EC_GROUP *group);
114 /** Clears and frees a EC_GROUP object
115 * \param group EC_GROUP object to be cleared and freed.
117 void EC_GROUP_clear_free(EC_GROUP *group);
119 /** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD.
120 * \param dst destination EC_GROUP object
121 * \param src source EC_GROUP object
124 int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src);
126 /** Creates a new EC_GROUP object and copies the copies the content
128 * \param src source EC_GROUP object
129 * \return newly created EC_GROUP object or NULL in case of an error.
131 EC_GROUP *EC_GROUP_dup(const EC_GROUP *src);
133 /** Returns the EC_METHOD of the EC_GROUP object.
134 * \param group EC_GROUP object
135 * \return EC_METHOD used in this EC_GROUP object.
137 const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group);
145 /** Sets the generator and its order/cofactor of a EC_GROUP object.
146 * \param group EC_GROUP object
153 int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,
156 /** Returns the generator of a EC_GROUP object.
157 * \param group EC_GROUP object
160 const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group);
163 * \param group EC_GROUP object
166 BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group);
168 /** Gets the order of a EC_GROUP
169 * \param group EC_GROUP object
174 int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx);
176 /** Gets the order of an EC_GROUP
177 * \param group EC_GROUP object
180 const BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group);
182 /** Gets the number of bits of the order of an EC_GROUP
183 * \param group EC_GROUP object
186 int EC_GROUP_order_bits(const EC_GROUP *group);
188 /** Gets the cofactor of a EC_GROUP
189 * \param group EC_GROUP object
194 int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor,
197 /** Gets the cofactor of an EC_GROUP
198 * \param group EC_GROUP object
201 const BIGNUM *EC_GROUP_get0_cofactor(const EC_GROUP *group);
203 /** Sets the name of a EC_GROUP object
204 * \param group EC_GROUP object
207 void EC_GROUP_set_curve_name(EC_GROUP *group, int nid);
209 /** Returns the curve name of a EC_GROUP object
210 * \param group EC_GROUP object
213 int EC_GROUP_get_curve_name(const EC_GROUP *group);
215 void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag);
216 int EC_GROUP_get_asn1_flag(const EC_GROUP *group);
218 void EC_GROUP_set_point_conversion_form(EC_GROUP *group,
220 point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *);
222 unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x);
223 size_t EC_GROUP_get_seed_len(const EC_GROUP *);
224 size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len);
228 * \param group EC_GROUP object
236 int EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a,
241 * \param group EC_GROUP object
249 int EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b,
253 * \param group EC_GROUP object
261 DEPRECATEDIN_1_2_0(int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p,
266 * \param group EC_GROUP object
274 DEPRECATEDIN_1_2_0(int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p,
280 * \param group EC_GROUP object
288 DEPRECATEDIN_1_2_0(int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p,
293 * \param group EC_GROUP object
301 DEPRECATEDIN_1_2_0(int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p,
306 * \param group EC_GROUP object
309 int EC_GROUP_get_degree(const EC_GROUP *group);
311 /** Checks whether the parameter in the EC_GROUP define a valid ec group
312 * \param group EC_GROUP object
316 int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx);
319 * \param group EC_GROUP object
323 int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx);
325 /** Compares two EC_GROUP objects
326 * \param a first EC_GROUP object
327 * \param b second EC_GROUP object
331 int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx);
338 /** Creates a new EC_GROUP object with the specified parameters defined
344 * \return newly created EC_GROUP object with the specified parameters
346 EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a,
349 /** Creates a new EC_GROUP object with the specified parameters defined
355 * \return newly created EC_GROUP object with the specified parameters
357 EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a,
361 /** Creates a EC_GROUP object with a curve specified by a NID
363 * \return newly created EC_GROUP object with specified curve or NULL
366 EC_GROUP *EC_GROUP_new_by_curve_name(int nid);
368 /** Creates a new EC_GROUP object from an ECPARAMETERS object
370 * \return newly created EC_GROUP object with specified curve or NULL
373 EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params);
375 /** Creates an ECPARAMETERS object for the given EC_GROUP object.
376 * \param group pointer to the EC_GROUP object
381 ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group,
384 /** Creates a new EC_GROUP object from an ECPKPARAMETERS object
386 * \return newly created EC_GROUP object with specified curve, or NULL
389 EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params);
391 /** Creates an ECPKPARAMETERS object for the given EC_GROUP object.
392 * \param group pointer to the EC_GROUP object
397 ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group,
424 /** Creates a new EC_POINT object for the specified EC_GROUP
425 * \param group EC_GROUP the underlying EC_GROUP object
428 EC_POINT *EC_POINT_new(const EC_GROUP *group);
450 * \param group underlying the EC_GROUP object
453 EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group);
462 * \param group underlying EC_GROUP object
466 int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point);
469 * \param group underlying EC_GROUP object
477 int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group,
483 * \param group underlying EC_GROUP object
491 int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group,
497 * \param group underlying EC_GROUP object
504 int EC_POINT_set_affine_coordinates(const EC_GROUP *group, EC_POINT *p,
509 * \param group underlying EC_GROUP object
516 int EC_POINT_get_affine_coordinates(const EC_GROUP *group, const EC_POINT *p,
521 * \param group underlying EC_GROUP object
528 DEPRECATEDIN_1_2_0(int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group,
536 * \param group underlying EC_GROUP object
543 DEPRECATEDIN_1_2_0(int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group,
550 * \param group underlying EC_GROUP object
557 int EC_POINT_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *p,
563 * \param group underlying EC_GROUP object
570 DEPRECATEDIN_1_2_0(int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group,
578 * \param group underlying EC_GROUP object
585 DEPRECATEDIN_1_2_0(int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group,
593 * \param group underlying EC_GROUP object
600 DEPRECATEDIN_1_2_0(int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group,
608 * \param group underlying EC_GROUP object
615 DEPRECATEDIN_1_2_0(int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group,
622 * \param group underlying EC_GROUP object
631 size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p,
636 * \param group underlying EC_GROUP object
643 int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p,
647 * \param group underlying EC_GROUP object
654 size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point,
659 BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *,
661 EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *,
663 char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *,
665 EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *,
673 * \param group underlying EC_GROUP object
680 int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,
684 * \param group underlying EC_GROUP object
690 int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,
694 * \param group underlying EC_GROUP object
699 int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx);
702 * \param group the underlying EC_GROUP object
706 int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p);
709 * \param group underlying EC_GROUP object
714 int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point,
718 * \param group underlying EC_GROUP object
724 int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b,
727 int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx);
728 int EC_POINTs_make_affine(const EC_GROUP *group, size_t num,
732 * \param group underlying EC_GROUP object
741 int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n,
746 * \param group underlying EC_GROUP object
754 int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n,
758 * \param group EC_GROUP object
762 int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx);
765 * \param group EC_GROUP object
768 int EC_GROUP_have_precompute_mult(const EC_GROUP *group);
783 int EC_GROUP_get_basis_type(const EC_GROUP *);
785 int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k);
786 int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1,
793 EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len);
794 int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out);
797 ASN1_d2i_bio_of(EC_GROUP, NULL, d2i_ECPKParameters, bp, x)
799 ASN1_i2d_bio_of_const(EC_GROUP, i2d_ECPKParameters, bp, x)
801 (EC_GROUP *)ASN1_d2i_fp(NULL, (d2i_of_void *)d2i_ECPKParameters, (fp), \
806 int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off);
808 int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off);
838 * EC_GROUP object.
874 /** Returns the EC_GROUP object of a EC_KEY object
876 * \return the EC_GROUP object (possibly NULL).
878 const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key);
880 /** Sets the EC_GROUP of a EC_KEY object.
882 * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY
883 * object will use an own copy of the EC_GROUP).
886 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group);
926 /* wrapper functions for the underlying EC_GROUP object */
1289 int (*set_group)(EC_KEY *key, const EC_GROUP *grp),
1333 const EC_GROUP *grp),