From 559592cd8286c893a54a1f829009cc53325dd6c7 Mon Sep 17 00:00:00 2001 From: schwarze <> Date: Sun, 6 Nov 2016 15:57:38 +0000 Subject: delete prototypes available in other pages and add two missing .Xr links --- src/lib/libcrypto/man/EC_KEY_new.3 | 39 +- src/lib/libcrypto/man/d2i_ECPKParameters.3 | 192 ++++++++- src/lib/libcrypto/man/dh.3 | 100 +---- src/lib/libcrypto/man/ec.3 | 641 +---------------------------- 4 files changed, 216 insertions(+), 756 deletions(-) diff --git a/src/lib/libcrypto/man/EC_KEY_new.3 b/src/lib/libcrypto/man/EC_KEY_new.3 index b977323e29..283cc82f87 100644 --- a/src/lib/libcrypto/man/EC_KEY_new.3 +++ b/src/lib/libcrypto/man/EC_KEY_new.3 @@ -1,4 +1,4 @@ -.\" $OpenBSD: EC_KEY_new.3,v 1.2 2016/11/06 15:52:50 jmc Exp $ +.\" $OpenBSD: EC_KEY_new.3,v 1.3 2016/11/06 15:57:38 schwarze Exp $ .\" .Dd $Mdocdate: November 6 2016 $ .Dt EC_KEY_NEW 3 @@ -29,7 +29,9 @@ .Nm EC_KEY_precompute_mult , .Nm EC_KEY_generate_key , .Nm EC_KEY_check_key , -.Nm EC_KEY_set_public_key_affine_coordinates +.Nm EC_KEY_set_public_key_affine_coordinates , +.Nm EC_KEY_print , +.Nm EC_KEY_print_fp .Nd create, destroy and manipulate EC_KEY objects .Sh SYNOPSIS .In openssl/ec.h @@ -155,6 +157,18 @@ .Fa "BIGNUM *x" .Fa "BIGNUM *y" .Fc +.Ft int +.Fo EC_KEY_print +.Fa "BIO *bp" +.Fa "const EC_KEY *key" +.Fa "int off" +.Fc +.Ft int +.Fo EC_KEY_print_fp +.Fa "FILE *fp" +.Fa "const EC_KEY *key" +.Fa "int off" +.Fc .Sh DESCRIPTION An .Vt EC_KEY @@ -355,6 +369,23 @@ stores multiples of the underlying generator for faster point multiplication. See also .Xr EC_POINT_add 3 . +.Pp +.Fn EC_KEY_print +and +.Fn EC_KEY_print_fp +print out the content of +.Fa key +to the +.Vt BIO +.Fa bp +or to the +.Vt FILE +pointer +.Fa fp , +respectively. +Each line is indented by +.Fa indent +spaces. .Sh RETURN VALUES .Fn EC_KEY_new , .Fn EC_KEY_new_by_curve_name , @@ -381,8 +412,10 @@ on error. .Fn EC_KEY_precompute_mult , .Fn EC_KEY_generate_key , .Fn EC_KEY_check_key , +.Fn EC_KEY_set_public_key_affine_coordinates , +.Fn EC_KEY_print , and -.Fn EC_KEY_set_public_key_affine_coordinates +.Fn EC_KEY_print_fp return 1 on success or 0 on error. .Pp .Fn EC_KEY_get0_group diff --git a/src/lib/libcrypto/man/d2i_ECPKParameters.3 b/src/lib/libcrypto/man/d2i_ECPKParameters.3 index 29aaa184a3..640546c763 100644 --- a/src/lib/libcrypto/man/d2i_ECPKParameters.3 +++ b/src/lib/libcrypto/man/d2i_ECPKParameters.3 @@ -1,4 +1,4 @@ -.\" $OpenBSD: d2i_ECPKParameters.3,v 1.2 2016/11/06 15:52:50 jmc Exp $ +.\" $OpenBSD: d2i_ECPKParameters.3,v 1.3 2016/11/06 15:57:38 schwarze Exp $ .\" .Dd $Mdocdate: November 6 2016 $ .Dt D2I_ECPKPARAMETERS 3 @@ -10,8 +10,17 @@ .Nm i2d_ECPKParameters_bio , .Nm d2i_ECPKParameters_fp , .Nm i2d_ECPKParameters_fp , +.Nm d2i_ECParameters , +.Nm i2d_ECParameters , +.Nm ECParameters_dup , +.Nm d2i_ECPrivateKey , +.Nm i2d_ECPrivateKey , +.Nm o2i_ECPublicKey , +.Nm i2o_ECPublicKey , .Nm ECPKParameters_print , -.Nm ECPKParameters_print_fp +.Nm ECPKParameters_print_fp , +.Nm ECParameters_print , +.Nm ECParameters_print_fp .Nd decode and encode ASN.1 representations of elliptic curve entities .Sh SYNOPSIS .In openssl/ec.h @@ -26,14 +35,63 @@ .Fa "const EC_GROUP *x" .Fa "unsigned char **out" .Fc -.Fd #define d2i_ECPKParameters_bio(bp,x)\ - ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x) -.Fd #define i2d_ECPKParameters_bio(bp,x)\ - ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x) -.Fd #define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL,\ - (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) -.Fd #define i2d_ECPKParameters_fp(fp,x)\ - ASN1_i2d_fp(i2d_ECPKParameters,(fp), (unsigned char *)(x)) +.Ft EC_GROUP * +.Fo d2i_ECPKParameters_bio +.Fa "BIO *bp" +.Fa "EC_GROUP **px" +.Fc +.Ft int +.Fo i2d_ECPKParameters_bio +.Fa "BIO *bp" +.Fa "EC_GROUP **px" +.Fc +.Ft EC_GROUP * +.Fo d2i_ECPKParameters_fp +.Fa "FILE *fp" +.Fa "EC_GROUP **px" +.Fc +.Ft int +.Fo i2d_ECPKParameters_fp +.Fa "FILE *fp" +.Fa "EC_GROUP **px" +.Fc +.Ft EC_KEY * +.Fo d2i_ECParameters +.Fa "EC_KEY **key" +.Fa "const unsigned char **in" +.Fa "long len" +.Fc +.Ft int +.Fo i2d_ECParameters +.Fa "EC_KEY *key" +.Fa "unsigned char **out" +.Fc +.Ft EC_KEY * +.Fo ECParameters_dup +.Fa "EC_KEY *key" +.Fc +.Ft EC_KEY * +.Fo d2i_ECPrivateKey +.Fa "EC_KEY **key" +.Fa "const unsigned char **in" +.Fa "long len" +.Fc +.Ft int +.Fo i2d_ECPrivateKey +.Fa "EC_KEY *key" +.Fa "unsigned char **out" +.Fc +.Ft EC_KEY * +.Fo o2i_ECPublicKey +.Fa "EC_KEY **key" +.Fa "const unsigned char **in" +.Fa "long len" +.Fc +.Ft int +.Fo i2o_ECPublicKey +.Fa "EC_KEY *key" +.Fa "unsigned char **out" +.Fc .Ft int .Fo ECPKParameters_print .Fa "BIO *bp" @@ -46,12 +104,17 @@ .Fa "const EC_GROUP *x" .Fa "int off" .Fc +.Ft int +.Fo ECParameters_print +.Fa "BIO *bp" +.Fa "const EC_KEY *key" +.Fc +.Ft int +.Fo ECParameters_print_fp +.Fa "FILE *fp" +.Fa "const EC_KEY *key" +.Fc .Sh DESCRIPTION -The ECPKParameters encode and decode routines encode and parse the -public parameters for an -.Vt EC_GROUP -structure, which represents a curve. -.Pp .Fn d2i_ECPKParameters attempts to decode .Fa len @@ -111,7 +174,6 @@ is similar to except it attempts to parse data from .Vt BIO .Fa bp . -.Pp .Fn d2i_ECPKParameters_fp is similar to .Fn d2i_ECPKParameters @@ -119,7 +181,6 @@ except it attempts to parse data from the .Vt FILE pointer .Fa fp . -.Pp .Fn i2d_ECPKParameters_bio is similar to .Fn i2d_ECPKParameters @@ -129,7 +190,6 @@ to .Vt BIO .Fa bp and it returns 1 for success or 0 for failure. -.Pp .Fn i2d_ECPKParameters_fp is similar to .Fn i2d_ECPKParameters @@ -139,6 +199,69 @@ to .Vt BIO .Sy bp and it returns 1 for success or 0 for failure. +These four functions are currently implemented as macros. +.Pp +.Fn d2i_ECParameters +does the same parsing as +.Fn d2i_ECPKParameters +but saves the result in the +.Fa group +field of an +.Vt EC_KEY +structure. +.Pp +.Fn i2d_ECParameters +produces the same output as +.Fn i2d_ECPKParameters +but uses +.Fa key->group +for input instead of +.Fa px . +.Pp +.Fn ECParameters_dup +copies +.Fa key +by calling +.Fn i2d_ECParameters +and +.Fn d2i_ECParameters . +.Pp +.Fn d2i_ECPrivateKey +interprets +.Fa len +bytes at +.Fa in +as a DER-encoded private key, decodes it, stores the result in +.Fa key +as described above, and returns a pointer to it. +.Pp +.Fn i2d_ECPrivateKey +encodes the private key +.Fa a +into DER format and writes it to +.Fa out +as described above. +.Pp +.Fn o2i_ECPublicKey +takes a string of +.Fa len +octets from +.Fa in , +decodes them, and stores the resulting EC public key in the existing +.Pf * Fa key. +.Pp +.Fn i2o_ECPublicKey +encodes the public +.Fa key +into the octet string buffer +.Pf * Fa out . +If +.Pf * Fa out +is +.Dv NULL , +a new buffer of the required size is allocated; +otherwise, the pointer is advanced to point to the octet +after the last one written. .Pp These functions are very similar to the X.509 functions described in .Xr d2i_X509 3 , @@ -157,6 +280,16 @@ or The output lines are indented by .Fa off spaces. +.Pp +.Fn ECParameters_print +and +.Fn ECParameters_print_fp +print the parameter components of +.Fa key +to +.Fa bp +or +.Fa fp . .Sh RETURN VALUES .Fn d2i_ECPKParameters , .Fn d2i_ECPKParameters_bio , @@ -168,15 +301,32 @@ structure or .Dv NULL if an error occurs. .Pp -.Fn i2d_ECPKParameters -returns the number of bytes successfully encoded or a negative value if +.Fn d2i_ECParameters , +.Fn ECParameters_dup , +.Fn d2i_ECPrivateKey , +and +.Fn o2i_ECPublicKey +return a valid +.Vt EC_KEY +structure or +.Dv NULL +if an error occurs. +.Pp +.Fn i2d_ECPKParameters , +.Fn i2d_ECParameters , +.Fn i2d_ECPrivateKey , +and +.Fn i2o_ECPublicKey +return the number of bytes successfully encoded or a negative value if an error occurs. .Pp .Fn i2d_ECPKParameters_bio , .Fn i2d_ECPKParameters_fp , .Fn ECPKParameters_print , +.Fn ECPKParameters_print_fp , +.Fn ECParameters_print , and -.Fn ECPKParameters_print_fp +.Fn ECParameters_print_fp return 1 for success or 0 if an error occurs. .Sh SEE ALSO .Xr crypto 3 , diff --git a/src/lib/libcrypto/man/dh.3 b/src/lib/libcrypto/man/dh.3 index 6a790d3e6b..d599fa0783 100644 --- a/src/lib/libcrypto/man/dh.3 +++ b/src/lib/libcrypto/man/dh.3 @@ -1,4 +1,4 @@ -.\" $OpenBSD: dh.3,v 1.2 2016/11/06 15:52:50 jmc Exp $ +.\" $OpenBSD: dh.3,v 1.3 2016/11/06 15:57:38 schwarze Exp $ .\" .Dd $Mdocdate: November 6 2016 $ .Dt DH 3 @@ -8,96 +8,6 @@ .Nd Diffie-Hellman key agreement .Sh SYNOPSIS .In openssl/dh.h -.In openssl/engine.h -.Ft DH * -.Fn DH_new void -.Ft void -.Fo DH_free -.Fa "DH *dh" -.Fc -.Ft int -.Fo DH_size -.Fa "const DH *dh" -.Fc -.Ft DH * -.Fo DH_generate_parameters -.Fa "int prime_len" -.Fa "int generator" -.Fa "void (*callback)(int, int, void *)" -.Fa "void *cb_arg" -.Fc -.Ft int -.Fo DH_check -.Fa "const DH *dh" -.Fa "int *codes" -.Fc -.Ft int -.Fo DH_generate_key -.Fa "DH *dh" -.Fc -.Ft int -.Fo DH_compute_key -.Fa "unsigned char *key" -.Fa "BIGNUM *pub_key" -.Fa "DH *dh" -.Fc -.Ft void -.Fo DH_set_default_method -.Fa "const DH_METHOD *meth" -.Fc -.Ft const DH_METHOD * -.Fn DH_get_default_method void -.Ft int -.Fo DH_set_method -.Fa "DH *dh" -.Fa "const DH_METHOD *meth" -.Fc -.Ft DH * -.Fo DH_new_method -.Fa "ENGINE *engine" -.Fc -.Ft const DH_METHOD * -.Fn DH_OpenSSL void -.Ft int -.Fo DH_get_ex_new_index -.Fa "long argl" -.Fa "char *argp" -.Fa "int (*new_func)()" -.Fa "int (*dup_func)()" -.Fa "void (*free_func)()" -.Fc -.Ft int -.Fo DH_set_ex_data -.Fa "DH *d" -.Fa "int idx" -.Fa "char *arg" -.Fc -.Ft char * -.Fo DH_get_ex_data -.Fa "DH *d" -.Fa "int idx" -.Fc -.Ft DH * -.Fo d2i_DHparams -.Fa "DH **a" -.Fa "unsigned char **pp" -.Fa "long length" -.Fc -.Ft int -.Fo i2d_DHparams -.Fa "const DH *a" -.Fa "unsigned char **pp" -.Fc -.Ft int -.Fo DHparams_print_fp -.Fa "FILE *fp" -.Fa "const DH *x" -.Fc -.Ft int -.Fo DHparams_print -.Fa "BIO *bp" -.Fa "const DH *x" -.Fc .Sh DESCRIPTION These functions implement the Diffie-Hellman key agreement protocol. The generation of shared DH parameters is described in @@ -138,13 +48,15 @@ or modify keys. .Sh SEE ALSO .Xr bn 3 , .Xr d2i_DHparams 3 , -.Xr DH_compute_key 3 , +.Xr DH_generate_key 3 , .Xr DH_generate_parameters 3 , .Xr DH_get_ex_new_index 3 , .Xr DH_new 3 , .Xr DH_set_method 3 , +.Xr DH_size 3 , +.Xr DHparams_print 3 , .Xr dsa 3 , +.Xr DSA_dup_DH 3 , .Xr engine 3 , .Xr ERR 3 , -.Xr rsa 3 , -.Xr RSA_print 3 +.Xr rsa 3 diff --git a/src/lib/libcrypto/man/ec.3 b/src/lib/libcrypto/man/ec.3 index c48cc62410..efc6f9ab9e 100644 --- a/src/lib/libcrypto/man/ec.3 +++ b/src/lib/libcrypto/man/ec.3 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ec.3,v 1.2 2016/11/06 15:52:50 jmc Exp $ +.\" $OpenBSD: ec.3,v 1.3 2016/11/06 15:57:38 schwarze Exp $ .\" .Dd $Mdocdate: November 6 2016 $ .Dt EC 3 @@ -8,642 +8,6 @@ .Nd Elliptic Curve functions .Sh SYNOPSIS .In openssl/ec.h -.In openssl/bn.h -.Ft const EC_METHOD * -.Fn EC_GFp_simple_method void -.Ft const EC_METHOD * -.Fn EC_GFp_mont_method void -.Ft const EC_METHOD * -.Fn EC_GFp_nist_method void -.Ft const EC_METHOD * -.Fn EC_GFp_nistp224_method void -.Ft const EC_METHOD * -.Fn EC_GFp_nistp256_method void -.Ft const EC_METHOD * -.Fn EC_GFp_nistp521_method void -.Ft const EC_METHOD * -.Fn EC_GF2m_simple_method void -.Ft EC_GROUP * -.Fo EC_GROUP_new -.Fa "const EC_METHOD *meth" -.Fc -.Ft void -.Fo EC_GROUP_free -.Fa "EC_GROUP *group" -.Fc -.Ft void -.Fo EC_GROUP_clear_free -.Fa "EC_GROUP *group" -.Fc -.Ft int -.Fo EC_GROUP_copy -.Fa "EC_GROUP *dst" -.Fa "const EC_GROUP *src" -.Fc -.Ft EC_GROUP * -.Fo EC_GROUP_dup -.Fa "const EC_GROUP *src" -.Fc -.Ft const EC_METHOD * -.Fo EC_GROUP_method_of -.Fa "const EC_GROUP *group" -.Fc -.Ft int -.Fo EC_METHOD_get_field_type -.Fa "const EC_METHOD *meth" -.Fc -.Ft int -.Fo EC_GROUP_set_generator -.Fa "EC_GROUP *group" -.Fa "const EC_POINT *generator" -.Fa "const BIGNUM *order" -.Fa "const BIGNUM *cofactor" -.Fc -.Ft const EC_POINT * -.Fo EC_GROUP_get0_generator -.Fa "const EC_GROUP *group" -.Fc -.Ft int -.Fo EC_GROUP_get_order -.Fa "const EC_GROUP *group" -.Fa "BIGNUM *order" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_GROUP_get_cofactor -.Fa "const EC_GROUP *group" -.Fa "BIGNUM *cofactor" -.Fa "BN_CTX *ctx" -.Fc -.Ft void -.Fo EC_GROUP_set_curve_name -.Fa "EC_GROUP *group" -.Fa "int nid" -.Fc -.Ft int -.Fo EC_GROUP_get_curve_name -.Fa "const EC_GROUP *group" -.Fc -.Ft void -.Fo EC_GROUP_set_asn1_flag -.Fa "EC_GROUP *group" -.Fa "int flag" -.Fc -.Ft int -.Fo EC_GROUP_get_asn1_flag -.Fa "const EC_GROUP *group" -.Fc -.Ft void -.Fo EC_GROUP_set_point_conversion_form -.Fa "EC_GROUP *group" -.Fa "point_conversion_form_t form" -.Fc -.Ft point_conversion_form_t -.Fo EC_GROUP_get_point_conversion_form -.Fa "const EC_GROUP *" -.Fc -.Ft unsigned char * -.Fo EC_GROUP_get0_seed -.Fa "const EC_GROUP *x" -.Fc -.Ft size_t -.Fo EC_GROUP_get_seed_len -.Fa "const EC_GROUP *" -.Fc -.Ft size_t -.Fo EC_GROUP_set_seed -.Fa "EC_GROUP *" -.Fa "const unsigned char *" -.Fa "size_t len" -.Fc -.Ft int -.Fo EC_GROUP_set_curve_GFp -.Fa "EC_GROUP *group" -.Fa "const BIGNUM *p" -.Fa "const BIGNUM *a" -.Fa "const BIGNUM *b" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_GROUP_get_curve_GFp -.Fa "const EC_GROUP *group" -.Fa "BIGNUM *p" -.Fa "BIGNUM *a" -.Fa "BIGNUM *b" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_GROUP_set_curve_GF2m -.Fa "EC_GROUP *group" -.Fa "const BIGNUM *p" -.Fa "const BIGNUM *a" -.Fa "const BIGNUM *b" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_GROUP_get_curve_GF2m -.Fa "const EC_GROUP *group" -.Fa "BIGNUM *p" -.Fa "BIGNUM *a" -.Fa "BIGNUM *b" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_GROUP_get_degree -.Fa "const EC_GROUP *group" -.Fc -.Ft int -.Fo EC_GROUP_check -.Fa "const EC_GROUP *group" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_GROUP_check_discriminant -.Fa "const EC_GROUP *group" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_GROUP_cmp -.Fa "const EC_GROUP *a" -.Fa "const EC_GROUP *b" -.Fa "BN_CTX *ctx" -.Fc -.Ft EC_GROUP * -.Fo EC_GROUP_new_curve_GFp -.Fa "const BIGNUM *p" -.Fa "const BIGNUM *a" -.Fa "const BIGNUM *b" -.Fa "BN_CTX *ctx" -.Fc -.Ft EC_GROUP * -.Fo EC_GROUP_new_curve_GF2m -.Fa "const BIGNUM *p" -.Fa "const BIGNUM *a" -.Fa "const BIGNUM *b" -.Fa "BN_CTX *ctx" -.Fc -.Ft EC_GROUP * -.Fo EC_GROUP_new_by_curve_name -.Fa "int nid" -.Fc -.Ft size_t -.Fo EC_get_builtin_curves -.Fa "EC_builtin_curve *r" -.Fa "size_t nitems" -.Fc -.Ft EC_POINT * -.Fo EC_POINT_new -.Fa "const EC_GROUP *group" -.Fc -.Ft void -.Fo EC_POINT_free -.Fa "EC_POINT *point" -.Fc -.Ft void -.Fo EC_POINT_clear_free -.Fa "EC_POINT *point" -.Fc -.Ft int -.Fo EC_POINT_copy -.Fa "EC_POINT *dst" -.Fa "const EC_POINT *src" -.Fc -.Ft EC_POINT * -.Fo EC_POINT_dup -.Fa "const EC_POINT *src" -.Fa "const EC_GROUP *group" -.Fc -.Ft const EC_METHOD * -.Fo EC_POINT_method_of -.Fa "const EC_POINT *point" -.Fc -.Ft int -.Fo EC_POINT_set_to_infinity -.Fa "const EC_GROUP *group" -.Fa "EC_POINT *point" -.Fc -.Ft int -.Fo EC_POINT_set_Jprojective_coordinates_GFp -.Fa "const EC_GROUP *group" -.Fa "EC_POINT *p" -.Fa "const BIGNUM *x" -.Fa "const BIGNUM *y" -.Fa "const BIGNUM *z" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_get_Jprojective_coordinates_GFp -.Fa "const EC_GROUP *group" -.Fa "const EC_POINT *p" -.Fa "BIGNUM *x" -.Fa "BIGNUM *y" -.Fa "BIGNUM *z" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_set_affine_coordinates_GFp -.Fa "const EC_GROUP *group" -.Fa "EC_POINT *p" -.Fa "const BIGNUM *x" -.Fa "const BIGNUM *y" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_get_affine_coordinates_GFp -.Fa "const EC_GROUP *group" -.Fa "const EC_POINT *p" -.Fa "BIGNUM *x" -.Fa "BIGNUM *y" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_set_compressed_coordinates_GFp -.Fa "const EC_GROUP *group" -.Fa "EC_POINT *p" -.Fa "const BIGNUM *x" -.Fa "int y_bit" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_set_affine_coordinates_GF2m -.Fa "const EC_GROUP *group" -.Fa "EC_POINT *p" -.Fa "const BIGNUM *x" -.Fa "const BIGNUM *y" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_get_affine_coordinates_GF2m -.Fa "const EC_GROUP *group" -.Fa "const EC_POINT *p" -.Fa "BIGNUM *x" -.Fa "BIGNUM *y" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_set_compressed_coordinates_GF2m -.Fa "const EC_GROUP *group" -.Fa "EC_POINT *p" -.Fa "const BIGNUM *x" -.Fa "int y_bit" -.Fa "BN_CTX *ctx" -.Fc -.Ft size_t -.Fo EC_POINT_point2oct -.Fa "const EC_GROUP *group" -.Fa "const EC_POINT *p" -.Fa "point_conversion_form_t form" -.Fa "unsigned char *buf" -.Fa "size_t len" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_oct2point -.Fa "const EC_GROUP *group" -.Fa "EC_POINT *p" -.Fa "const unsigned char *buf" -.Fa "size_t len" -.Fa "BN_CTX *ctx" -.Fc -.Ft BIGNUM * -.Fo EC_POINT_point2bn -.Fa "const EC_GROUP *" -.Fa "const EC_POINT *" -.Fa "point_conversion_form_t form" -.Fa "BIGNUM *" -.Fa "BN_CTX *" -.Fc -.Ft EC_POINT * -.Fo EC_POINT_bn2point -.Fa "const EC_GROUP *" -.Fa "const BIGNUM *" -.Fa "EC_POINT *" -.Fa "BN_CTX *" -.Fc -.Ft char * -.Fo EC_POINT_point2hex -.Fa "const EC_GROUP *" -.Fa "const EC_POINT *" -.Fa "point_conversion_form_t form" -.Fa "BN_CTX *" -.Fc -.Ft EC_POINT * -.Fo EC_POINT_hex2point -.Fa "const EC_GROUP *" -.Fa "const char *" -.Fa "EC_POINT *" -.Fa "BN_CTX *" -.Fc -.Ft int -.Fo EC_POINT_add -.Fa "const EC_GROUP *group" -.Fa "EC_POINT *r" -.Fa "const EC_POINT *a" -.Fa "const EC_POINT *b" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_dbl -.Fa "const EC_GROUP *group" -.Fa "EC_POINT *r" -.Fa "const EC_POINT *a" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_invert -.Fa "const EC_GROUP *group" -.Fa "EC_POINT *a" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_is_at_infinity -.Fa "const EC_GROUP *group" -.Fa "const EC_POINT *p" -.Fc -.Ft int -.Fo EC_POINT_is_on_curve -.Fa "const EC_GROUP *group" -.Fa "const EC_POINT *point" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_cmp -.Fa "const EC_GROUP *group" -.Fa "const EC_POINT *a" -.Fa "const EC_POINT *b" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_make_affine -.Fa "const EC_GROUP *group" -.Fa "EC_POINT *point" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINTs_make_affine -.Fa "const EC_GROUP *group" -.Fa "size_t num" -.Fa "EC_POINT *points[]" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINTs_mul -.Fa "const EC_GROUP *group" -.Fa "EC_POINT *r" -.Fa "const BIGNUM *n" -.Fa "size_t num" -.Fa "const EC_POINT *p[]" -.Fa "const BIGNUM *m[]" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_POINT_mul -.Fa "const EC_GROUP *group" -.Fa "EC_POINT *r" -.Fa "const BIGNUM *n" -.Fa "const EC_POINT *q" -.Fa "const BIGNUM *m" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_GROUP_precompute_mult -.Fa "EC_GROUP *group" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_GROUP_have_precompute_mult -.Fa "const EC_GROUP *group" -.Fc -.Ft int -.Fo EC_GROUP_get_basis_type -.Fa "const EC_GROUP *" -.Fc -.Ft int -.Fo EC_GROUP_get_trinomial_basis -.Fa "const EC_GROUP *" -.Fa "unsigned int *k" -.Fc -.Ft int -.Fo EC_GROUP_get_pentanomial_basis -.Fa "const EC_GROUP *" -.Fa "unsigned int *k1" -.Fa "unsigned int *k2" -.Fa "unsigned int *k3" -.Fc -.Ft EC_GROUP * -.Fo d2i_ECPKParameters -.Fa "EC_GROUP **" -.Fa "const unsigned char **in" -.Fa "long len" -.Fc -.Ft int -.Fo i2d_ECPKParameters -.Fa "const EC_GROUP *" -.Fa "unsigned char **out" -.Fc -.Fd #define d2i_ECPKParameters_bio(bp,x)\ - ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x) -.Fd #define i2d_ECPKParameters_bio(bp,x)\ - ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x) -.Fd #define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL,\ - (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) -.Fd #define i2d_ECPKParameters_fp(fp,x)\ - ASN1_i2d_fp(i2d_ECPKParameters,(fp), (unsigned char *)(x)) -.Ft int -.Fo ECPKParameters_print -.Fa "BIO *bp" -.Fa "const EC_GROUP *x" -.Fa "int off" -.Fc -.Ft int -.Fo ECPKParameters_print_fp -.Fa "FILE *fp" -.Fa "const EC_GROUP *x" -.Fa "int off" -.Fc -.Ft EC_KEY * -.Fn EC_KEY_new void -.Ft int -.Fo EC_KEY_get_flags -.Fa "const EC_KEY *key" -.Fc -.Ft void -.Fo EC_KEY_set_flags -.Fa "EC_KEY *key" -.Fa "int flags" -.Fc -.Ft void -.Fo EC_KEY_clear_flags -.Fa "EC_KEY *key" -.Fa "int flags" -.Fc -.Ft EC_KEY * -.Fo EC_KEY_new_by_curve_name -.Fa "int nid" -.Fc -.Ft void -.Fo EC_KEY_free -.Fa "EC_KEY *key" -.Fc -.Ft EC_KEY * -.Fo EC_KEY_copy -.Fa "EC_KEY *dst" -.Fa "const EC_KEY *src" -.Fc -.Ft EC_KEY * -.Fo EC_KEY_dup -.Fa "const EC_KEY *src" -.Fc -.Ft int -.Fo EC_KEY_up_ref -.Fa "EC_KEY *key" -.Fc -.Ft const EC_GROUP * -.Fo EC_KEY_get0_group -.Fa "const EC_KEY *key" -.Fc -.Ft int -.Fo EC_KEY_set_group -.Fa "EC_KEY *key" -.Fa "const EC_GROUP *group" -.Fc -.Ft const BIGNUM * -.Fo EC_KEY_get0_private_key -.Fa "const EC_KEY *key" -.Fc -.Ft int -.Fo EC_KEY_set_private_key -.Fa "EC_KEY *key" -.Fa "const BIGNUM *prv" -.Fc -.Ft const EC_POINT * -.Fo EC_KEY_get0_public_key -.Fa "const EC_KEY *key" -.Fc -.Ft int -.Fo EC_KEY_set_public_key -.Fa "EC_KEY *key" -.Fa "const EC_POINT *pub" -.Fc -.Ft unsigned -.Fo EC_KEY_get_enc_flags -.Fa "const EC_KEY *key" -.Fc -.Ft void -.Fo EC_KEY_set_enc_flags -.Fa "EC_KEY *eckey" -.Fa "unsigned int flags" -.Fc -.Ft point_conversion_form_t -.Fo EC_KEY_get_conv_form -.Fa "const EC_KEY *key" -.Fc -.Ft void -.Fo EC_KEY_set_conv_form -.Fa "EC_KEY *eckey" -.Fa "point_conversion_form_t cform" -.Fc -.Ft void * -.Fo EC_KEY_get_key_method_data -.Fa "EC_KEY *key" -.Fa "void *(*dup_func)(void *)" -.Fa "void (*free_func)(void *)" -.Fa "void (*clear_free_func)(void *)" -.Fc -.Ft void -.Fo EC_KEY_insert_key_method_data -.Fa "EC_KEY *key" -.Fa "void *data" -.Fa "void *(*dup_func)(void *)" -.Fa "void (*free_func)(void *)" -.Fa "void (*clear_free_func)(void *)" -.Fc -.Ft void -.Fo EC_KEY_set_asn1_flag -.Fa "EC_KEY *eckey" -.Fa "int asn1_flag" -.Fc -.Ft int -.Fo EC_KEY_precompute_mult -.Fa "EC_KEY *key" -.Fa "BN_CTX *ctx" -.Fc -.Ft int -.Fo EC_KEY_generate_key -.Fa "EC_KEY *key" -.Fc -.Ft int -.Fo EC_KEY_check_key -.Fa "const EC_KEY *key" -.Fc -.Ft int -.Fo EC_KEY_set_public_key_affine_coordinates -.Fa "EC_KEY *key" -.Fa "BIGNUM *x" -.Fa "BIGNUM *y" -.Fc -.Ft EC_KEY * -.Fo d2i_ECPrivateKey -.Fa "EC_KEY **key" -.Fa "const unsigned char **in" -.Fa "long len" -.Fc -.Ft int -.Fo i2d_ECPrivateKey -.Fa "EC_KEY *key" -.Fa "unsigned char **out" -.Fc -.Ft EC_KEY * -.Fo d2i_ECParameters -.Fa "EC_KEY **key" -.Fa "const unsigned char **in" -.Fa "long len" -.Fc -.Ft int -.Fo i2d_ECParameters -.Fa "EC_KEY *key" -.Fa "unsigned char **out" -.Fc -.Ft EC_KEY * -.Fo o2i_ECPublicKey -.Fa "EC_KEY **key" -.Fa "const unsigned char **in" -.Fa "long len" -.Fc -.Ft int -.Fo i2o_ECPublicKey -.Fa "EC_KEY *key" -.Fa "unsigned char **out" -.Fc -.Ft int -.Fo ECParameters_print -.Fa "BIO *bp" -.Fa "const EC_KEY *key" -.Fc -.Ft int -.Fo EC_KEY_print -.Fa "BIO *bp" -.Fa "const EC_KEY *key" -.Fa "int off" -.Fc -.Ft int -.Fo ECParameters_print_fp -.Fa "FILE *fp" -.Fa "const EC_KEY *key" -.Fc -.Ft int -.Fo EC_KEY_print_fp -.Fa "FILE *fp" -.Fa "const EC_KEY *key" -.Fa "int off" -.Fc -.Ft EC_KEY * -.Fo ECParameters_dup -.Fa "EC_KEY *key" -.Fc -.Fd #define EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid)\ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_PARAMGEN,\ - EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, NULL) .Sh DESCRIPTION This library provides an extensive set of functions for performing operations on elliptic curves over finite fields. @@ -709,4 +73,5 @@ from ASN.1 see .Xr EC_GROUP_new 3 , .Xr EC_KEY_new 3 , .Xr EC_POINT_add 3 , -.Xr EC_POINT_new 3 +.Xr EC_POINT_new 3 , +.Xr EVP_PKEY_CTX_set_ec_paramgen_curve_nid 3 -- cgit v1.2.3-55-g6feb