diff options
Diffstat (limited to 'deps/openssl/openssl/doc/crypto/EC_GROUP_new.pod')
-rw-r--r-- | deps/openssl/openssl/doc/crypto/EC_GROUP_new.pod | 51 |
1 files changed, 38 insertions, 13 deletions
diff --git a/deps/openssl/openssl/doc/crypto/EC_GROUP_new.pod b/deps/openssl/openssl/doc/crypto/EC_GROUP_new.pod index ff55bf33a3..2f658dc2c3 100644 --- a/deps/openssl/openssl/doc/crypto/EC_GROUP_new.pod +++ b/deps/openssl/openssl/doc/crypto/EC_GROUP_new.pod @@ -2,14 +2,22 @@ =head1 NAME -EC_GROUP_new, EC_GROUP_free, EC_GROUP_clear_free, EC_GROUP_new_curve_GFp, EC_GROUP_new_curve_GF2m, EC_GROUP_new_by_curve_name, EC_GROUP_set_curve_GFp, EC_GROUP_get_curve_GFp, EC_GROUP_set_curve_GF2m, EC_GROUP_get_curve_GF2m, EC_get_builtin_curves - Functions for creating and destroying B<EC_GROUP> objects. +EC_GROUP_get_ecparameters, EC_GROUP_get_ecpkparameters, +EC_GROUP_new, EC_GROUP_new_from_ecparameters, +EC_GROUP_new_from_ecpkparameters, +EC_GROUP_free, EC_GROUP_clear_free, EC_GROUP_new_curve_GFp, +EC_GROUP_new_curve_GF2m, EC_GROUP_new_by_curve_name, EC_GROUP_set_curve_GFp, +EC_GROUP_get_curve_GFp, EC_GROUP_set_curve_GF2m, EC_GROUP_get_curve_GF2m, +EC_get_builtin_curves - Functions for creating and destroying EC_GROUP +objects =head1 SYNOPSIS #include <openssl/ec.h> - #include <openssl/bn.h> EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); + EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params) + EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params) void EC_GROUP_free(EC_GROUP *group); void EC_GROUP_clear_free(EC_GROUP *group); @@ -22,6 +30,9 @@ EC_GROUP_new, EC_GROUP_free, EC_GROUP_clear_free, EC_GROUP_new_curve_GFp, EC_GRO int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); + ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group, ECPARAMETERS *params) + ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group, ECPKPARAMETERS *params) + size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); =head1 DESCRIPTION @@ -41,15 +52,18 @@ Operations in a binary field are performed relative to an B<irreducible polynomi use a trinomial or a pentanomial for this parameter. A new curve can be constructed by calling EC_GROUP_new, using the implementation provided by B<meth> (see -L<EC_GFp_simple_method(3)|EC_GFp_simple_method(3)>). It is then necessary to call either EC_GROUP_set_curve_GFp or -EC_GROUP_set_curve_GF2m as appropriate to create a curve defined over Fp or over F2^m respectively. +L<EC_GFp_simple_method(3)>). It is then necessary to call either EC_GROUP_set_curve_GFp or +EC_GROUP_set_curve_GF2m as appropriate to create a curve defined over Fp or over F2^m respectively. +EC_GROUP_new_from_ecparameters() will create a group from the +specified B<params> and +EC_GROUP_new_from_ecpkparameters() will create a group from the specific PK B<params>. EC_GROUP_set_curve_GFp sets the curve parameters B<p>, B<a> and B<b> for a curve over Fp stored in B<group>. EC_group_get_curve_GFp obtains the previously set curve parameters. EC_GROUP_set_curve_GF2m sets the equivalent curve parameters for a curve over F2^m. In this case B<p> represents -the irreducible polybnomial - each bit represents a term in the polynomial. Therefore there will either be three -or five bits set dependant on whether the polynomial is a trinomial or a pentanomial. +the irreducible polynomial - each bit represents a term in the polynomial. Therefore there will either be three +or five bits set dependent on whether the polynomial is a trinomial or a pentanomial. EC_group_get_curve_GF2m obtains the previously set curve parameters. The functions EC_GROUP_new_curve_GFp and EC_GROUP_new_curve_GF2m are shortcuts for calling EC_GROUP_new and the @@ -64,10 +78,10 @@ provided. The return value is the total number of curves available (whether that not). Passing a NULL B<r>, or setting B<nitems> to 0 will do nothing other than return the total number of curves available. The EC_builtin_curve structure is defined as follows: - typedef struct { - int nid; - const char *comment; - } EC_builtin_curve; + typedef struct { + int nid; + const char *comment; + } EC_builtin_curve; Each EC_builtin_curve item has a unique integer id (B<nid>), and a human readable comment string describing the curve. @@ -75,8 +89,10 @@ In order to construct a builtin curve use the function EC_GROUP_new_by_curve_nam be constructed. EC_GROUP_free frees the memory associated with the EC_GROUP. +If B<group> is NULL nothing is done. EC_GROUP_clear_free destroys any sensitive data held within the EC_GROUP and then frees its memory. +If B<group> is NULL nothing is done. =head1 RETURN VALUES @@ -88,8 +104,17 @@ EC_GROUP_set_curve_GFp, EC_GROUP_get_curve_GFp, EC_GROUP_set_curve_GF2m, EC_GROU =head1 SEE ALSO -L<crypto(3)|crypto(3)>, L<ec(3)|ec(3)>, L<EC_GROUP_copy(3)|EC_GROUP_copy(3)>, -L<EC_POINT_new(3)|EC_POINT_new(3)>, L<EC_POINT_add(3)|EC_POINT_add(3)>, L<EC_KEY_new(3)|EC_KEY_new(3)>, -L<EC_GFp_simple_method(3)|EC_GFp_simple_method(3)>, L<d2i_ECPKParameters(3)|d2i_ECPKParameters(3)> +L<crypto(7)>, L<EC_GROUP_copy(3)>, +L<EC_POINT_new(3)>, L<EC_POINT_add(3)>, L<EC_KEY_new(3)>, +L<EC_GFp_simple_method(3)>, L<d2i_ECPKParameters(3)> + +=head1 COPYRIGHT + +Copyright 2013-2017 The OpenSSL Project Authors. All Rights Reserved. + +Licensed under the OpenSSL license (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +L<https://www.openssl.org/source/license.html>. =cut |