Lines Matching defs:EC_GROUP

127     EC_GROUP;
181 /* EC_GROUP functions */
184 /** Creates a new EC_GROUP object
186 * \return newly created EC_GROUP object or NULL in case of an error.
188 EC_GROUP *EC_GROUP_new(const EC_METHOD *meth);
190 /** Frees a EC_GROUP object
191 * \param group EC_GROUP object to be freed.
193 void EC_GROUP_free(EC_GROUP *group);
195 /** Clears and frees a EC_GROUP object
196 * \param group EC_GROUP object to be cleared and freed.
198 void EC_GROUP_clear_free(EC_GROUP *group);
200 /** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD.
201 * \param dst destination EC_GROUP object
202 * \param src source EC_GROUP object
205 int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src);
207 /** Creates a new EC_GROUP object and copies the copies the content
209 * \param src source EC_GROUP object
210 * \return newly created EC_GROUP object or NULL in case of an error.
212 EC_GROUP *EC_GROUP_dup(const EC_GROUP *src);
214 /** Returns the EC_METHOD of the EC_GROUP object.
215 * \param group EC_GROUP object
216 * \return EC_METHOD used in this EC_GROUP object.
218 const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group);
226 /** Sets the generator and it's order/cofactor of a EC_GROUP object.
227 * \param group EC_GROUP object
234 int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator,
237 /** Returns the generator of a EC_GROUP object.
238 * \param group EC_GROUP object
241 const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group);
243 /** Gets the order of a EC_GROUP
244 * \param group EC_GROUP object
249 int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx);
251 /** Gets the cofactor of a EC_GROUP
252 * \param group EC_GROUP object
257 int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor,
260 /** Sets the name of a EC_GROUP object
261 * \param group EC_GROUP object
264 void EC_GROUP_set_curve_name(EC_GROUP *group, int nid);
266 /** Returns the curve name of a EC_GROUP object
267 * \param group EC_GROUP object
270 int EC_GROUP_get_curve_name(const EC_GROUP *group);
272 void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag);
273 int EC_GROUP_get_asn1_flag(const EC_GROUP *group);
275 void EC_GROUP_set_point_conversion_form(EC_GROUP *group,
277 point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *);
279 unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x);
280 size_t EC_GROUP_get_seed_len(const EC_GROUP *);
281 size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len);
284 * \param group EC_GROUP object
291 int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a,
295 * \param group EC_GROUP object
302 int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a,
307 * \param group EC_GROUP object
314 int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a,
318 * \param group EC_GROUP object
325 int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a,
329 * \param group EC_GROUP object
332 int EC_GROUP_get_degree(const EC_GROUP *group);
334 /** Checks whether the parameter in the EC_GROUP define a valid ec group
335 * \param group EC_GROUP object
339 int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx);
342 * \param group EC_GROUP object
346 int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx);
348 /** Compares two EC_GROUP objects
349 * \param a first EC_GROUP object
350 * \param b second EC_GROUP object
354 int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx);
361 /** Creates a new EC_GROUP object with the specified parameters defined
367 * \return newly created EC_GROUP object with the specified parameters
369 EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a,
372 /** Creates a new EC_GROUP object with the specified parameters defined
378 * \return newly created EC_GROUP object with the specified parameters
380 EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a,
383 /** Creates a EC_GROUP object with a curve specified by a NID
385 * \return newly created EC_GROUP object with specified curve or NULL
388 EC_GROUP *EC_GROUP_new_by_curve_name(int nid);
411 /** Creates a new EC_POINT object for the specified EC_GROUP
412 * \param group EC_GROUP the underlying EC_GROUP object
415 EC_POINT *EC_POINT_new(const EC_GROUP *group);
437 * \param group underlying the EC_GROUP object
440 EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group);
449 * \param group underlying EC_GROUP object
453 int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point);
456 * \param group underlying EC_GROUP object
464 int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group,
470 * \param group underlying EC_GROUP object
478 int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group,
484 * \param group underlying EC_GROUP object
491 int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p,
496 * \param group underlying EC_GROUP object
503 int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group,
508 * \param group underlying EC_GROUP object
515 int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group,
520 * \param group underlying EC_GROUP object
527 int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p,
532 * \param group underlying EC_GROUP object
539 int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group,
544 * \param group underlying EC_GROUP object
551 int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group,
556 * \param group underlying EC_GROUP object
565 size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p,
570 * \param group underlying EC_GROUP object
577 int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p,
581 BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *,
583 EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *,
585 char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *,
587 EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *,
595 * \param group underlying EC_GROUP object
602 int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,
606 * \param group underlying EC_GROUP object
612 int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,
616 * \param group underlying EC_GROUP object
621 int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx);
624 * \param group the underlying EC_GROUP object
628 int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p);
631 * \param group underlying EC_GROUP object
636 int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point,
640 * \param group underlying EC_GROUP object
646 int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b,
649 int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx);
650 int EC_POINTs_make_affine(const EC_GROUP *group, size_t num,
654 * \param group underlying EC_GROUP object
663 int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n,
668 * \param group underlying EC_GROUP object
676 int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n,
680 * \param group EC_GROUP object
684 int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx);
687 * \param group EC_GROUP object
690 int EC_GROUP_have_precompute_mult(const EC_GROUP *group);
700 int EC_GROUP_get_basis_type(const EC_GROUP *);
702 int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k);
703 int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1,
711 EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len);
712 int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out);
714 # define d2i_ECPKParameters_bio(bp,x) ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x)
715 # define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x)
716 # define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, \
722 int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off);
725 int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off);
754 * EC_GROUP object.
784 /** Returns the EC_GROUP object of a EC_KEY object
786 * \return the EC_GROUP object (possibly NULL).
788 const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key);
790 /** Sets the EC_GROUP of a EC_KEY object.
792 * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY
793 * object will use an own copy of the EC_GROUP).
796 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group);
847 /* wrapper functions for the underlying EC_GROUP object */