summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschwarze <>2016-11-06 15:57:38 +0000
committerschwarze <>2016-11-06 15:57:38 +0000
commit559592cd8286c893a54a1f829009cc53325dd6c7 (patch)
treee150281df72f52c6719db45f4c65b7f845c21fb6
parent9b30976af18b8a407761e020380b9ed595770866 (diff)
downloadopenbsd-559592cd8286c893a54a1f829009cc53325dd6c7.tar.gz
openbsd-559592cd8286c893a54a1f829009cc53325dd6c7.tar.bz2
openbsd-559592cd8286c893a54a1f829009cc53325dd6c7.zip
delete prototypes available in other pages and add two missing .Xr links
-rw-r--r--src/lib/libcrypto/man/EC_KEY_new.339
-rw-r--r--src/lib/libcrypto/man/d2i_ECPKParameters.3192
-rw-r--r--src/lib/libcrypto/man/dh.3100
-rw-r--r--src/lib/libcrypto/man/ec.3641
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 @@
1.\" $OpenBSD: EC_KEY_new.3,v 1.2 2016/11/06 15:52:50 jmc Exp $ 1.\" $OpenBSD: EC_KEY_new.3,v 1.3 2016/11/06 15:57:38 schwarze Exp $
2.\" 2.\"
3.Dd $Mdocdate: November 6 2016 $ 3.Dd $Mdocdate: November 6 2016 $
4.Dt EC_KEY_NEW 3 4.Dt EC_KEY_NEW 3
@@ -29,7 +29,9 @@
29.Nm EC_KEY_precompute_mult , 29.Nm EC_KEY_precompute_mult ,
30.Nm EC_KEY_generate_key , 30.Nm EC_KEY_generate_key ,
31.Nm EC_KEY_check_key , 31.Nm EC_KEY_check_key ,
32.Nm EC_KEY_set_public_key_affine_coordinates 32.Nm EC_KEY_set_public_key_affine_coordinates ,
33.Nm EC_KEY_print ,
34.Nm EC_KEY_print_fp
33.Nd create, destroy and manipulate EC_KEY objects 35.Nd create, destroy and manipulate EC_KEY objects
34.Sh SYNOPSIS 36.Sh SYNOPSIS
35.In openssl/ec.h 37.In openssl/ec.h
@@ -155,6 +157,18 @@
155.Fa "BIGNUM *x" 157.Fa "BIGNUM *x"
156.Fa "BIGNUM *y" 158.Fa "BIGNUM *y"
157.Fc 159.Fc
160.Ft int
161.Fo EC_KEY_print
162.Fa "BIO *bp"
163.Fa "const EC_KEY *key"
164.Fa "int off"
165.Fc
166.Ft int
167.Fo EC_KEY_print_fp
168.Fa "FILE *fp"
169.Fa "const EC_KEY *key"
170.Fa "int off"
171.Fc
158.Sh DESCRIPTION 172.Sh DESCRIPTION
159An 173An
160.Vt EC_KEY 174.Vt EC_KEY
@@ -355,6 +369,23 @@ stores multiples of the underlying
355generator for faster point multiplication. 369generator for faster point multiplication.
356See also 370See also
357.Xr EC_POINT_add 3 . 371.Xr EC_POINT_add 3 .
372.Pp
373.Fn EC_KEY_print
374and
375.Fn EC_KEY_print_fp
376print out the content of
377.Fa key
378to the
379.Vt BIO
380.Fa bp
381or to the
382.Vt FILE
383pointer
384.Fa fp ,
385respectively.
386Each line is indented by
387.Fa indent
388spaces.
358.Sh RETURN VALUES 389.Sh RETURN VALUES
359.Fn EC_KEY_new , 390.Fn EC_KEY_new ,
360.Fn EC_KEY_new_by_curve_name , 391.Fn EC_KEY_new_by_curve_name ,
@@ -381,8 +412,10 @@ on error.
381.Fn EC_KEY_precompute_mult , 412.Fn EC_KEY_precompute_mult ,
382.Fn EC_KEY_generate_key , 413.Fn EC_KEY_generate_key ,
383.Fn EC_KEY_check_key , 414.Fn EC_KEY_check_key ,
415.Fn EC_KEY_set_public_key_affine_coordinates ,
416.Fn EC_KEY_print ,
384and 417and
385.Fn EC_KEY_set_public_key_affine_coordinates 418.Fn EC_KEY_print_fp
386return 1 on success or 0 on error. 419return 1 on success or 0 on error.
387.Pp 420.Pp
388.Fn EC_KEY_get0_group 421.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 @@
1.\" $OpenBSD: d2i_ECPKParameters.3,v 1.2 2016/11/06 15:52:50 jmc Exp $ 1.\" $OpenBSD: d2i_ECPKParameters.3,v 1.3 2016/11/06 15:57:38 schwarze Exp $
2.\" 2.\"
3.Dd $Mdocdate: November 6 2016 $ 3.Dd $Mdocdate: November 6 2016 $
4.Dt D2I_ECPKPARAMETERS 3 4.Dt D2I_ECPKPARAMETERS 3
@@ -10,8 +10,17 @@
10.Nm i2d_ECPKParameters_bio , 10.Nm i2d_ECPKParameters_bio ,
11.Nm d2i_ECPKParameters_fp , 11.Nm d2i_ECPKParameters_fp ,
12.Nm i2d_ECPKParameters_fp , 12.Nm i2d_ECPKParameters_fp ,
13.Nm d2i_ECParameters ,
14.Nm i2d_ECParameters ,
15.Nm ECParameters_dup ,
16.Nm d2i_ECPrivateKey ,
17.Nm i2d_ECPrivateKey ,
18.Nm o2i_ECPublicKey ,
19.Nm i2o_ECPublicKey ,
13.Nm ECPKParameters_print , 20.Nm ECPKParameters_print ,
14.Nm ECPKParameters_print_fp 21.Nm ECPKParameters_print_fp ,
22.Nm ECParameters_print ,
23.Nm ECParameters_print_fp
15.Nd decode and encode ASN.1 representations of elliptic curve entities 24.Nd decode and encode ASN.1 representations of elliptic curve entities
16.Sh SYNOPSIS 25.Sh SYNOPSIS
17.In openssl/ec.h 26.In openssl/ec.h
@@ -26,14 +35,63 @@
26.Fa "const EC_GROUP *x" 35.Fa "const EC_GROUP *x"
27.Fa "unsigned char **out" 36.Fa "unsigned char **out"
28.Fc 37.Fc
29.Fd #define d2i_ECPKParameters_bio(bp,x)\ 38.Ft EC_GROUP *
30 ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x) 39.Fo d2i_ECPKParameters_bio
31.Fd #define i2d_ECPKParameters_bio(bp,x)\ 40.Fa "BIO *bp"
32 ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x) 41.Fa "EC_GROUP **px"
33.Fd #define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL,\ 42.Fc
34 (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) 43.Ft int
35.Fd #define i2d_ECPKParameters_fp(fp,x)\ 44.Fo i2d_ECPKParameters_bio
36 ASN1_i2d_fp(i2d_ECPKParameters,(fp), (unsigned char *)(x)) 45.Fa "BIO *bp"
46.Fa "EC_GROUP **px"
47.Fc
48.Ft EC_GROUP *
49.Fo d2i_ECPKParameters_fp
50.Fa "FILE *fp"
51.Fa "EC_GROUP **px"
52.Fc
53.Ft int
54.Fo i2d_ECPKParameters_fp
55.Fa "FILE *fp"
56.Fa "EC_GROUP **px"
57.Fc
58.Ft EC_KEY *
59.Fo d2i_ECParameters
60.Fa "EC_KEY **key"
61.Fa "const unsigned char **in"
62.Fa "long len"
63.Fc
64.Ft int
65.Fo i2d_ECParameters
66.Fa "EC_KEY *key"
67.Fa "unsigned char **out"
68.Fc
69.Ft EC_KEY *
70.Fo ECParameters_dup
71.Fa "EC_KEY *key"
72.Fc
73.Ft EC_KEY *
74.Fo d2i_ECPrivateKey
75.Fa "EC_KEY **key"
76.Fa "const unsigned char **in"
77.Fa "long len"
78.Fc
79.Ft int
80.Fo i2d_ECPrivateKey
81.Fa "EC_KEY *key"
82.Fa "unsigned char **out"
83.Fc
84.Ft EC_KEY *
85.Fo o2i_ECPublicKey
86.Fa "EC_KEY **key"
87.Fa "const unsigned char **in"
88.Fa "long len"
89.Fc
90.Ft int
91.Fo i2o_ECPublicKey
92.Fa "EC_KEY *key"
93.Fa "unsigned char **out"
94.Fc
37.Ft int 95.Ft int
38.Fo ECPKParameters_print 96.Fo ECPKParameters_print
39.Fa "BIO *bp" 97.Fa "BIO *bp"
@@ -46,12 +104,17 @@
46.Fa "const EC_GROUP *x" 104.Fa "const EC_GROUP *x"
47.Fa "int off" 105.Fa "int off"
48.Fc 106.Fc
107.Ft int
108.Fo ECParameters_print
109.Fa "BIO *bp"
110.Fa "const EC_KEY *key"
111.Fc
112.Ft int
113.Fo ECParameters_print_fp
114.Fa "FILE *fp"
115.Fa "const EC_KEY *key"
116.Fc
49.Sh DESCRIPTION 117.Sh DESCRIPTION
50The ECPKParameters encode and decode routines encode and parse the
51public parameters for an
52.Vt EC_GROUP
53structure, which represents a curve.
54.Pp
55.Fn d2i_ECPKParameters 118.Fn d2i_ECPKParameters
56attempts to decode 119attempts to decode
57.Fa len 120.Fa len
@@ -111,7 +174,6 @@ is similar to
111except it attempts to parse data from 174except it attempts to parse data from
112.Vt BIO 175.Vt BIO
113.Fa bp . 176.Fa bp .
114.Pp
115.Fn d2i_ECPKParameters_fp 177.Fn d2i_ECPKParameters_fp
116is similar to 178is similar to
117.Fn d2i_ECPKParameters 179.Fn d2i_ECPKParameters
@@ -119,7 +181,6 @@ except it attempts to parse data from the
119.Vt FILE 181.Vt FILE
120pointer 182pointer
121.Fa fp . 183.Fa fp .
122.Pp
123.Fn i2d_ECPKParameters_bio 184.Fn i2d_ECPKParameters_bio
124is similar to 185is similar to
125.Fn i2d_ECPKParameters 186.Fn i2d_ECPKParameters
@@ -129,7 +190,6 @@ to
129.Vt BIO 190.Vt BIO
130.Fa bp 191.Fa bp
131and it returns 1 for success or 0 for failure. 192and it returns 1 for success or 0 for failure.
132.Pp
133.Fn i2d_ECPKParameters_fp 193.Fn i2d_ECPKParameters_fp
134is similar to 194is similar to
135.Fn i2d_ECPKParameters 195.Fn i2d_ECPKParameters
@@ -139,6 +199,69 @@ to
139.Vt BIO 199.Vt BIO
140.Sy bp 200.Sy bp
141and it returns 1 for success or 0 for failure. 201and it returns 1 for success or 0 for failure.
202These four functions are currently implemented as macros.
203.Pp
204.Fn d2i_ECParameters
205does the same parsing as
206.Fn d2i_ECPKParameters
207but saves the result in the
208.Fa group
209field of an
210.Vt EC_KEY
211structure.
212.Pp
213.Fn i2d_ECParameters
214produces the same output as
215.Fn i2d_ECPKParameters
216but uses
217.Fa key->group
218for input instead of
219.Fa px .
220.Pp
221.Fn ECParameters_dup
222copies
223.Fa key
224by calling
225.Fn i2d_ECParameters
226and
227.Fn d2i_ECParameters .
228.Pp
229.Fn d2i_ECPrivateKey
230interprets
231.Fa len
232bytes at
233.Fa in
234as a DER-encoded private key, decodes it, stores the result in
235.Fa key
236as described above, and returns a pointer to it.
237.Pp
238.Fn i2d_ECPrivateKey
239encodes the private key
240.Fa a
241into DER format and writes it to
242.Fa out
243as described above.
244.Pp
245.Fn o2i_ECPublicKey
246takes a string of
247.Fa len
248octets from
249.Fa in ,
250decodes them, and stores the resulting EC public key in the existing
251.Pf * Fa key.
252.Pp
253.Fn i2o_ECPublicKey
254encodes the public
255.Fa key
256into the octet string buffer
257.Pf * Fa out .
258If
259.Pf * Fa out
260is
261.Dv NULL ,
262a new buffer of the required size is allocated;
263otherwise, the pointer is advanced to point to the octet
264after the last one written.
142.Pp 265.Pp
143These functions are very similar to the X.509 functions described in 266These functions are very similar to the X.509 functions described in
144.Xr d2i_X509 3 , 267.Xr d2i_X509 3 ,
@@ -157,6 +280,16 @@ or
157The output lines are indented by 280The output lines are indented by
158.Fa off 281.Fa off
159spaces. 282spaces.
283.Pp
284.Fn ECParameters_print
285and
286.Fn ECParameters_print_fp
287print the parameter components of
288.Fa key
289to
290.Fa bp
291or
292.Fa fp .
160.Sh RETURN VALUES 293.Sh RETURN VALUES
161.Fn d2i_ECPKParameters , 294.Fn d2i_ECPKParameters ,
162.Fn d2i_ECPKParameters_bio , 295.Fn d2i_ECPKParameters_bio ,
@@ -168,15 +301,32 @@ structure or
168.Dv NULL 301.Dv NULL
169if an error occurs. 302if an error occurs.
170.Pp 303.Pp
171.Fn i2d_ECPKParameters 304.Fn d2i_ECParameters ,
172returns the number of bytes successfully encoded or a negative value if 305.Fn ECParameters_dup ,
306.Fn d2i_ECPrivateKey ,
307and
308.Fn o2i_ECPublicKey
309return a valid
310.Vt EC_KEY
311structure or
312.Dv NULL
313if an error occurs.
314.Pp
315.Fn i2d_ECPKParameters ,
316.Fn i2d_ECParameters ,
317.Fn i2d_ECPrivateKey ,
318and
319.Fn i2o_ECPublicKey
320return the number of bytes successfully encoded or a negative value if
173an error occurs. 321an error occurs.
174.Pp 322.Pp
175.Fn i2d_ECPKParameters_bio , 323.Fn i2d_ECPKParameters_bio ,
176.Fn i2d_ECPKParameters_fp , 324.Fn i2d_ECPKParameters_fp ,
177.Fn ECPKParameters_print , 325.Fn ECPKParameters_print ,
326.Fn ECPKParameters_print_fp ,
327.Fn ECParameters_print ,
178and 328and
179.Fn ECPKParameters_print_fp 329.Fn ECParameters_print_fp
180return 1 for success or 0 if an error occurs. 330return 1 for success or 0 if an error occurs.
181.Sh SEE ALSO 331.Sh SEE ALSO
182.Xr crypto 3 , 332.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 @@
1.\" $OpenBSD: dh.3,v 1.2 2016/11/06 15:52:50 jmc Exp $ 1.\" $OpenBSD: dh.3,v 1.3 2016/11/06 15:57:38 schwarze Exp $
2.\" 2.\"
3.Dd $Mdocdate: November 6 2016 $ 3.Dd $Mdocdate: November 6 2016 $
4.Dt DH 3 4.Dt DH 3
@@ -8,96 +8,6 @@
8.Nd Diffie-Hellman key agreement 8.Nd Diffie-Hellman key agreement
9.Sh SYNOPSIS 9.Sh SYNOPSIS
10.In openssl/dh.h 10.In openssl/dh.h
11.In openssl/engine.h
12.Ft DH *
13.Fn DH_new void
14.Ft void
15.Fo DH_free
16.Fa "DH *dh"
17.Fc
18.Ft int
19.Fo DH_size
20.Fa "const DH *dh"
21.Fc
22.Ft DH *
23.Fo DH_generate_parameters
24.Fa "int prime_len"
25.Fa "int generator"
26.Fa "void (*callback)(int, int, void *)"
27.Fa "void *cb_arg"
28.Fc
29.Ft int
30.Fo DH_check
31.Fa "const DH *dh"
32.Fa "int *codes"
33.Fc
34.Ft int
35.Fo DH_generate_key
36.Fa "DH *dh"
37.Fc
38.Ft int
39.Fo DH_compute_key
40.Fa "unsigned char *key"
41.Fa "BIGNUM *pub_key"
42.Fa "DH *dh"
43.Fc
44.Ft void
45.Fo DH_set_default_method
46.Fa "const DH_METHOD *meth"
47.Fc
48.Ft const DH_METHOD *
49.Fn DH_get_default_method void
50.Ft int
51.Fo DH_set_method
52.Fa "DH *dh"
53.Fa "const DH_METHOD *meth"
54.Fc
55.Ft DH *
56.Fo DH_new_method
57.Fa "ENGINE *engine"
58.Fc
59.Ft const DH_METHOD *
60.Fn DH_OpenSSL void
61.Ft int
62.Fo DH_get_ex_new_index
63.Fa "long argl"
64.Fa "char *argp"
65.Fa "int (*new_func)()"
66.Fa "int (*dup_func)()"
67.Fa "void (*free_func)()"
68.Fc
69.Ft int
70.Fo DH_set_ex_data
71.Fa "DH *d"
72.Fa "int idx"
73.Fa "char *arg"
74.Fc
75.Ft char *
76.Fo DH_get_ex_data
77.Fa "DH *d"
78.Fa "int idx"
79.Fc
80.Ft DH *
81.Fo d2i_DHparams
82.Fa "DH **a"
83.Fa "unsigned char **pp"
84.Fa "long length"
85.Fc
86.Ft int
87.Fo i2d_DHparams
88.Fa "const DH *a"
89.Fa "unsigned char **pp"
90.Fc
91.Ft int
92.Fo DHparams_print_fp
93.Fa "FILE *fp"
94.Fa "const DH *x"
95.Fc
96.Ft int
97.Fo DHparams_print
98.Fa "BIO *bp"
99.Fa "const DH *x"
100.Fc
101.Sh DESCRIPTION 11.Sh DESCRIPTION
102These functions implement the Diffie-Hellman key agreement protocol. 12These functions implement the Diffie-Hellman key agreement protocol.
103The generation of shared DH parameters is described in 13The generation of shared DH parameters is described in
@@ -138,13 +48,15 @@ or modify keys.
138.Sh SEE ALSO 48.Sh SEE ALSO
139.Xr bn 3 , 49.Xr bn 3 ,
140.Xr d2i_DHparams 3 , 50.Xr d2i_DHparams 3 ,
141.Xr DH_compute_key 3 , 51.Xr DH_generate_key 3 ,
142.Xr DH_generate_parameters 3 , 52.Xr DH_generate_parameters 3 ,
143.Xr DH_get_ex_new_index 3 , 53.Xr DH_get_ex_new_index 3 ,
144.Xr DH_new 3 , 54.Xr DH_new 3 ,
145.Xr DH_set_method 3 , 55.Xr DH_set_method 3 ,
56.Xr DH_size 3 ,
57.Xr DHparams_print 3 ,
146.Xr dsa 3 , 58.Xr dsa 3 ,
59.Xr DSA_dup_DH 3 ,
147.Xr engine 3 , 60.Xr engine 3 ,
148.Xr ERR 3 , 61.Xr ERR 3 ,
149.Xr rsa 3 , 62.Xr rsa 3
150.Xr RSA_print 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 @@
1.\" $OpenBSD: ec.3,v 1.2 2016/11/06 15:52:50 jmc Exp $ 1.\" $OpenBSD: ec.3,v 1.3 2016/11/06 15:57:38 schwarze Exp $
2.\" 2.\"
3.Dd $Mdocdate: November 6 2016 $ 3.Dd $Mdocdate: November 6 2016 $
4.Dt EC 3 4.Dt EC 3
@@ -8,642 +8,6 @@
8.Nd Elliptic Curve functions 8.Nd Elliptic Curve functions
9.Sh SYNOPSIS 9.Sh SYNOPSIS
10.In openssl/ec.h 10.In openssl/ec.h
11.In openssl/bn.h
12.Ft const EC_METHOD *
13.Fn EC_GFp_simple_method void
14.Ft const EC_METHOD *
15.Fn EC_GFp_mont_method void
16.Ft const EC_METHOD *
17.Fn EC_GFp_nist_method void
18.Ft const EC_METHOD *
19.Fn EC_GFp_nistp224_method void
20.Ft const EC_METHOD *
21.Fn EC_GFp_nistp256_method void
22.Ft const EC_METHOD *
23.Fn EC_GFp_nistp521_method void
24.Ft const EC_METHOD *
25.Fn EC_GF2m_simple_method void
26.Ft EC_GROUP *
27.Fo EC_GROUP_new
28.Fa "const EC_METHOD *meth"
29.Fc
30.Ft void
31.Fo EC_GROUP_free
32.Fa "EC_GROUP *group"
33.Fc
34.Ft void
35.Fo EC_GROUP_clear_free
36.Fa "EC_GROUP *group"
37.Fc
38.Ft int
39.Fo EC_GROUP_copy
40.Fa "EC_GROUP *dst"
41.Fa "const EC_GROUP *src"
42.Fc
43.Ft EC_GROUP *
44.Fo EC_GROUP_dup
45.Fa "const EC_GROUP *src"
46.Fc
47.Ft const EC_METHOD *
48.Fo EC_GROUP_method_of
49.Fa "const EC_GROUP *group"
50.Fc
51.Ft int
52.Fo EC_METHOD_get_field_type
53.Fa "const EC_METHOD *meth"
54.Fc
55.Ft int
56.Fo EC_GROUP_set_generator
57.Fa "EC_GROUP *group"
58.Fa "const EC_POINT *generator"
59.Fa "const BIGNUM *order"
60.Fa "const BIGNUM *cofactor"
61.Fc
62.Ft const EC_POINT *
63.Fo EC_GROUP_get0_generator
64.Fa "const EC_GROUP *group"
65.Fc
66.Ft int
67.Fo EC_GROUP_get_order
68.Fa "const EC_GROUP *group"
69.Fa "BIGNUM *order"
70.Fa "BN_CTX *ctx"
71.Fc
72.Ft int
73.Fo EC_GROUP_get_cofactor
74.Fa "const EC_GROUP *group"
75.Fa "BIGNUM *cofactor"
76.Fa "BN_CTX *ctx"
77.Fc
78.Ft void
79.Fo EC_GROUP_set_curve_name
80.Fa "EC_GROUP *group"
81.Fa "int nid"
82.Fc
83.Ft int
84.Fo EC_GROUP_get_curve_name
85.Fa "const EC_GROUP *group"
86.Fc
87.Ft void
88.Fo EC_GROUP_set_asn1_flag
89.Fa "EC_GROUP *group"
90.Fa "int flag"
91.Fc
92.Ft int
93.Fo EC_GROUP_get_asn1_flag
94.Fa "const EC_GROUP *group"
95.Fc
96.Ft void
97.Fo EC_GROUP_set_point_conversion_form
98.Fa "EC_GROUP *group"
99.Fa "point_conversion_form_t form"
100.Fc
101.Ft point_conversion_form_t
102.Fo EC_GROUP_get_point_conversion_form
103.Fa "const EC_GROUP *"
104.Fc
105.Ft unsigned char *
106.Fo EC_GROUP_get0_seed
107.Fa "const EC_GROUP *x"
108.Fc
109.Ft size_t
110.Fo EC_GROUP_get_seed_len
111.Fa "const EC_GROUP *"
112.Fc
113.Ft size_t
114.Fo EC_GROUP_set_seed
115.Fa "EC_GROUP *"
116.Fa "const unsigned char *"
117.Fa "size_t len"
118.Fc
119.Ft int
120.Fo EC_GROUP_set_curve_GFp
121.Fa "EC_GROUP *group"
122.Fa "const BIGNUM *p"
123.Fa "const BIGNUM *a"
124.Fa "const BIGNUM *b"
125.Fa "BN_CTX *ctx"
126.Fc
127.Ft int
128.Fo EC_GROUP_get_curve_GFp
129.Fa "const EC_GROUP *group"
130.Fa "BIGNUM *p"
131.Fa "BIGNUM *a"
132.Fa "BIGNUM *b"
133.Fa "BN_CTX *ctx"
134.Fc
135.Ft int
136.Fo EC_GROUP_set_curve_GF2m
137.Fa "EC_GROUP *group"
138.Fa "const BIGNUM *p"
139.Fa "const BIGNUM *a"
140.Fa "const BIGNUM *b"
141.Fa "BN_CTX *ctx"
142.Fc
143.Ft int
144.Fo EC_GROUP_get_curve_GF2m
145.Fa "const EC_GROUP *group"
146.Fa "BIGNUM *p"
147.Fa "BIGNUM *a"
148.Fa "BIGNUM *b"
149.Fa "BN_CTX *ctx"
150.Fc
151.Ft int
152.Fo EC_GROUP_get_degree
153.Fa "const EC_GROUP *group"
154.Fc
155.Ft int
156.Fo EC_GROUP_check
157.Fa "const EC_GROUP *group"
158.Fa "BN_CTX *ctx"
159.Fc
160.Ft int
161.Fo EC_GROUP_check_discriminant
162.Fa "const EC_GROUP *group"
163.Fa "BN_CTX *ctx"
164.Fc
165.Ft int
166.Fo EC_GROUP_cmp
167.Fa "const EC_GROUP *a"
168.Fa "const EC_GROUP *b"
169.Fa "BN_CTX *ctx"
170.Fc
171.Ft EC_GROUP *
172.Fo EC_GROUP_new_curve_GFp
173.Fa "const BIGNUM *p"
174.Fa "const BIGNUM *a"
175.Fa "const BIGNUM *b"
176.Fa "BN_CTX *ctx"
177.Fc
178.Ft EC_GROUP *
179.Fo EC_GROUP_new_curve_GF2m
180.Fa "const BIGNUM *p"
181.Fa "const BIGNUM *a"
182.Fa "const BIGNUM *b"
183.Fa "BN_CTX *ctx"
184.Fc
185.Ft EC_GROUP *
186.Fo EC_GROUP_new_by_curve_name
187.Fa "int nid"
188.Fc
189.Ft size_t
190.Fo EC_get_builtin_curves
191.Fa "EC_builtin_curve *r"
192.Fa "size_t nitems"
193.Fc
194.Ft EC_POINT *
195.Fo EC_POINT_new
196.Fa "const EC_GROUP *group"
197.Fc
198.Ft void
199.Fo EC_POINT_free
200.Fa "EC_POINT *point"
201.Fc
202.Ft void
203.Fo EC_POINT_clear_free
204.Fa "EC_POINT *point"
205.Fc
206.Ft int
207.Fo EC_POINT_copy
208.Fa "EC_POINT *dst"
209.Fa "const EC_POINT *src"
210.Fc
211.Ft EC_POINT *
212.Fo EC_POINT_dup
213.Fa "const EC_POINT *src"
214.Fa "const EC_GROUP *group"
215.Fc
216.Ft const EC_METHOD *
217.Fo EC_POINT_method_of
218.Fa "const EC_POINT *point"
219.Fc
220.Ft int
221.Fo EC_POINT_set_to_infinity
222.Fa "const EC_GROUP *group"
223.Fa "EC_POINT *point"
224.Fc
225.Ft int
226.Fo EC_POINT_set_Jprojective_coordinates_GFp
227.Fa "const EC_GROUP *group"
228.Fa "EC_POINT *p"
229.Fa "const BIGNUM *x"
230.Fa "const BIGNUM *y"
231.Fa "const BIGNUM *z"
232.Fa "BN_CTX *ctx"
233.Fc
234.Ft int
235.Fo EC_POINT_get_Jprojective_coordinates_GFp
236.Fa "const EC_GROUP *group"
237.Fa "const EC_POINT *p"
238.Fa "BIGNUM *x"
239.Fa "BIGNUM *y"
240.Fa "BIGNUM *z"
241.Fa "BN_CTX *ctx"
242.Fc
243.Ft int
244.Fo EC_POINT_set_affine_coordinates_GFp
245.Fa "const EC_GROUP *group"
246.Fa "EC_POINT *p"
247.Fa "const BIGNUM *x"
248.Fa "const BIGNUM *y"
249.Fa "BN_CTX *ctx"
250.Fc
251.Ft int
252.Fo EC_POINT_get_affine_coordinates_GFp
253.Fa "const EC_GROUP *group"
254.Fa "const EC_POINT *p"
255.Fa "BIGNUM *x"
256.Fa "BIGNUM *y"
257.Fa "BN_CTX *ctx"
258.Fc
259.Ft int
260.Fo EC_POINT_set_compressed_coordinates_GFp
261.Fa "const EC_GROUP *group"
262.Fa "EC_POINT *p"
263.Fa "const BIGNUM *x"
264.Fa "int y_bit"
265.Fa "BN_CTX *ctx"
266.Fc
267.Ft int
268.Fo EC_POINT_set_affine_coordinates_GF2m
269.Fa "const EC_GROUP *group"
270.Fa "EC_POINT *p"
271.Fa "const BIGNUM *x"
272.Fa "const BIGNUM *y"
273.Fa "BN_CTX *ctx"
274.Fc
275.Ft int
276.Fo EC_POINT_get_affine_coordinates_GF2m
277.Fa "const EC_GROUP *group"
278.Fa "const EC_POINT *p"
279.Fa "BIGNUM *x"
280.Fa "BIGNUM *y"
281.Fa "BN_CTX *ctx"
282.Fc
283.Ft int
284.Fo EC_POINT_set_compressed_coordinates_GF2m
285.Fa "const EC_GROUP *group"
286.Fa "EC_POINT *p"
287.Fa "const BIGNUM *x"
288.Fa "int y_bit"
289.Fa "BN_CTX *ctx"
290.Fc
291.Ft size_t
292.Fo EC_POINT_point2oct
293.Fa "const EC_GROUP *group"
294.Fa "const EC_POINT *p"
295.Fa "point_conversion_form_t form"
296.Fa "unsigned char *buf"
297.Fa "size_t len"
298.Fa "BN_CTX *ctx"
299.Fc
300.Ft int
301.Fo EC_POINT_oct2point
302.Fa "const EC_GROUP *group"
303.Fa "EC_POINT *p"
304.Fa "const unsigned char *buf"
305.Fa "size_t len"
306.Fa "BN_CTX *ctx"
307.Fc
308.Ft BIGNUM *
309.Fo EC_POINT_point2bn
310.Fa "const EC_GROUP *"
311.Fa "const EC_POINT *"
312.Fa "point_conversion_form_t form"
313.Fa "BIGNUM *"
314.Fa "BN_CTX *"
315.Fc
316.Ft EC_POINT *
317.Fo EC_POINT_bn2point
318.Fa "const EC_GROUP *"
319.Fa "const BIGNUM *"
320.Fa "EC_POINT *"
321.Fa "BN_CTX *"
322.Fc
323.Ft char *
324.Fo EC_POINT_point2hex
325.Fa "const EC_GROUP *"
326.Fa "const EC_POINT *"
327.Fa "point_conversion_form_t form"
328.Fa "BN_CTX *"
329.Fc
330.Ft EC_POINT *
331.Fo EC_POINT_hex2point
332.Fa "const EC_GROUP *"
333.Fa "const char *"
334.Fa "EC_POINT *"
335.Fa "BN_CTX *"
336.Fc
337.Ft int
338.Fo EC_POINT_add
339.Fa "const EC_GROUP *group"
340.Fa "EC_POINT *r"
341.Fa "const EC_POINT *a"
342.Fa "const EC_POINT *b"
343.Fa "BN_CTX *ctx"
344.Fc
345.Ft int
346.Fo EC_POINT_dbl
347.Fa "const EC_GROUP *group"
348.Fa "EC_POINT *r"
349.Fa "const EC_POINT *a"
350.Fa "BN_CTX *ctx"
351.Fc
352.Ft int
353.Fo EC_POINT_invert
354.Fa "const EC_GROUP *group"
355.Fa "EC_POINT *a"
356.Fa "BN_CTX *ctx"
357.Fc
358.Ft int
359.Fo EC_POINT_is_at_infinity
360.Fa "const EC_GROUP *group"
361.Fa "const EC_POINT *p"
362.Fc
363.Ft int
364.Fo EC_POINT_is_on_curve
365.Fa "const EC_GROUP *group"
366.Fa "const EC_POINT *point"
367.Fa "BN_CTX *ctx"
368.Fc
369.Ft int
370.Fo EC_POINT_cmp
371.Fa "const EC_GROUP *group"
372.Fa "const EC_POINT *a"
373.Fa "const EC_POINT *b"
374.Fa "BN_CTX *ctx"
375.Fc
376.Ft int
377.Fo EC_POINT_make_affine
378.Fa "const EC_GROUP *group"
379.Fa "EC_POINT *point"
380.Fa "BN_CTX *ctx"
381.Fc
382.Ft int
383.Fo EC_POINTs_make_affine
384.Fa "const EC_GROUP *group"
385.Fa "size_t num"
386.Fa "EC_POINT *points[]"
387.Fa "BN_CTX *ctx"
388.Fc
389.Ft int
390.Fo EC_POINTs_mul
391.Fa "const EC_GROUP *group"
392.Fa "EC_POINT *r"
393.Fa "const BIGNUM *n"
394.Fa "size_t num"
395.Fa "const EC_POINT *p[]"
396.Fa "const BIGNUM *m[]"
397.Fa "BN_CTX *ctx"
398.Fc
399.Ft int
400.Fo EC_POINT_mul
401.Fa "const EC_GROUP *group"
402.Fa "EC_POINT *r"
403.Fa "const BIGNUM *n"
404.Fa "const EC_POINT *q"
405.Fa "const BIGNUM *m"
406.Fa "BN_CTX *ctx"
407.Fc
408.Ft int
409.Fo EC_GROUP_precompute_mult
410.Fa "EC_GROUP *group"
411.Fa "BN_CTX *ctx"
412.Fc
413.Ft int
414.Fo EC_GROUP_have_precompute_mult
415.Fa "const EC_GROUP *group"
416.Fc
417.Ft int
418.Fo EC_GROUP_get_basis_type
419.Fa "const EC_GROUP *"
420.Fc
421.Ft int
422.Fo EC_GROUP_get_trinomial_basis
423.Fa "const EC_GROUP *"
424.Fa "unsigned int *k"
425.Fc
426.Ft int
427.Fo EC_GROUP_get_pentanomial_basis
428.Fa "const EC_GROUP *"
429.Fa "unsigned int *k1"
430.Fa "unsigned int *k2"
431.Fa "unsigned int *k3"
432.Fc
433.Ft EC_GROUP *
434.Fo d2i_ECPKParameters
435.Fa "EC_GROUP **"
436.Fa "const unsigned char **in"
437.Fa "long len"
438.Fc
439.Ft int
440.Fo i2d_ECPKParameters
441.Fa "const EC_GROUP *"
442.Fa "unsigned char **out"
443.Fc
444.Fd #define d2i_ECPKParameters_bio(bp,x)\
445 ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x)
446.Fd #define i2d_ECPKParameters_bio(bp,x)\
447 ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x)
448.Fd #define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL,\
449 (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x))
450.Fd #define i2d_ECPKParameters_fp(fp,x)\
451 ASN1_i2d_fp(i2d_ECPKParameters,(fp), (unsigned char *)(x))
452.Ft int
453.Fo ECPKParameters_print
454.Fa "BIO *bp"
455.Fa "const EC_GROUP *x"
456.Fa "int off"
457.Fc
458.Ft int
459.Fo ECPKParameters_print_fp
460.Fa "FILE *fp"
461.Fa "const EC_GROUP *x"
462.Fa "int off"
463.Fc
464.Ft EC_KEY *
465.Fn EC_KEY_new void
466.Ft int
467.Fo EC_KEY_get_flags
468.Fa "const EC_KEY *key"
469.Fc
470.Ft void
471.Fo EC_KEY_set_flags
472.Fa "EC_KEY *key"
473.Fa "int flags"
474.Fc
475.Ft void
476.Fo EC_KEY_clear_flags
477.Fa "EC_KEY *key"
478.Fa "int flags"
479.Fc
480.Ft EC_KEY *
481.Fo EC_KEY_new_by_curve_name
482.Fa "int nid"
483.Fc
484.Ft void
485.Fo EC_KEY_free
486.Fa "EC_KEY *key"
487.Fc
488.Ft EC_KEY *
489.Fo EC_KEY_copy
490.Fa "EC_KEY *dst"
491.Fa "const EC_KEY *src"
492.Fc
493.Ft EC_KEY *
494.Fo EC_KEY_dup
495.Fa "const EC_KEY *src"
496.Fc
497.Ft int
498.Fo EC_KEY_up_ref
499.Fa "EC_KEY *key"
500.Fc
501.Ft const EC_GROUP *
502.Fo EC_KEY_get0_group
503.Fa "const EC_KEY *key"
504.Fc
505.Ft int
506.Fo EC_KEY_set_group
507.Fa "EC_KEY *key"
508.Fa "const EC_GROUP *group"
509.Fc
510.Ft const BIGNUM *
511.Fo EC_KEY_get0_private_key
512.Fa "const EC_KEY *key"
513.Fc
514.Ft int
515.Fo EC_KEY_set_private_key
516.Fa "EC_KEY *key"
517.Fa "const BIGNUM *prv"
518.Fc
519.Ft const EC_POINT *
520.Fo EC_KEY_get0_public_key
521.Fa "const EC_KEY *key"
522.Fc
523.Ft int
524.Fo EC_KEY_set_public_key
525.Fa "EC_KEY *key"
526.Fa "const EC_POINT *pub"
527.Fc
528.Ft unsigned
529.Fo EC_KEY_get_enc_flags
530.Fa "const EC_KEY *key"
531.Fc
532.Ft void
533.Fo EC_KEY_set_enc_flags
534.Fa "EC_KEY *eckey"
535.Fa "unsigned int flags"
536.Fc
537.Ft point_conversion_form_t
538.Fo EC_KEY_get_conv_form
539.Fa "const EC_KEY *key"
540.Fc
541.Ft void
542.Fo EC_KEY_set_conv_form
543.Fa "EC_KEY *eckey"
544.Fa "point_conversion_form_t cform"
545.Fc
546.Ft void *
547.Fo EC_KEY_get_key_method_data
548.Fa "EC_KEY *key"
549.Fa "void *(*dup_func)(void *)"
550.Fa "void (*free_func)(void *)"
551.Fa "void (*clear_free_func)(void *)"
552.Fc
553.Ft void
554.Fo EC_KEY_insert_key_method_data
555.Fa "EC_KEY *key"
556.Fa "void *data"
557.Fa "void *(*dup_func)(void *)"
558.Fa "void (*free_func)(void *)"
559.Fa "void (*clear_free_func)(void *)"
560.Fc
561.Ft void
562.Fo EC_KEY_set_asn1_flag
563.Fa "EC_KEY *eckey"
564.Fa "int asn1_flag"
565.Fc
566.Ft int
567.Fo EC_KEY_precompute_mult
568.Fa "EC_KEY *key"
569.Fa "BN_CTX *ctx"
570.Fc
571.Ft int
572.Fo EC_KEY_generate_key
573.Fa "EC_KEY *key"
574.Fc
575.Ft int
576.Fo EC_KEY_check_key
577.Fa "const EC_KEY *key"
578.Fc
579.Ft int
580.Fo EC_KEY_set_public_key_affine_coordinates
581.Fa "EC_KEY *key"
582.Fa "BIGNUM *x"
583.Fa "BIGNUM *y"
584.Fc
585.Ft EC_KEY *
586.Fo d2i_ECPrivateKey
587.Fa "EC_KEY **key"
588.Fa "const unsigned char **in"
589.Fa "long len"
590.Fc
591.Ft int
592.Fo i2d_ECPrivateKey
593.Fa "EC_KEY *key"
594.Fa "unsigned char **out"
595.Fc
596.Ft EC_KEY *
597.Fo d2i_ECParameters
598.Fa "EC_KEY **key"
599.Fa "const unsigned char **in"
600.Fa "long len"
601.Fc
602.Ft int
603.Fo i2d_ECParameters
604.Fa "EC_KEY *key"
605.Fa "unsigned char **out"
606.Fc
607.Ft EC_KEY *
608.Fo o2i_ECPublicKey
609.Fa "EC_KEY **key"
610.Fa "const unsigned char **in"
611.Fa "long len"
612.Fc
613.Ft int
614.Fo i2o_ECPublicKey
615.Fa "EC_KEY *key"
616.Fa "unsigned char **out"
617.Fc
618.Ft int
619.Fo ECParameters_print
620.Fa "BIO *bp"
621.Fa "const EC_KEY *key"
622.Fc
623.Ft int
624.Fo EC_KEY_print
625.Fa "BIO *bp"
626.Fa "const EC_KEY *key"
627.Fa "int off"
628.Fc
629.Ft int
630.Fo ECParameters_print_fp
631.Fa "FILE *fp"
632.Fa "const EC_KEY *key"
633.Fc
634.Ft int
635.Fo EC_KEY_print_fp
636.Fa "FILE *fp"
637.Fa "const EC_KEY *key"
638.Fa "int off"
639.Fc
640.Ft EC_KEY *
641.Fo ECParameters_dup
642.Fa "EC_KEY *key"
643.Fc
644.Fd #define EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid)\
645 EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_PARAMGEN,\
646 EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, NULL)
647.Sh DESCRIPTION 11.Sh DESCRIPTION
648This library provides an extensive set of functions for performing 12This library provides an extensive set of functions for performing
649operations on elliptic curves over finite fields. 13operations on elliptic curves over finite fields.
@@ -709,4 +73,5 @@ from ASN.1 see
709.Xr EC_GROUP_new 3 , 73.Xr EC_GROUP_new 3 ,
710.Xr EC_KEY_new 3 , 74.Xr EC_KEY_new 3 ,
711.Xr EC_POINT_add 3 , 75.Xr EC_POINT_add 3 ,
712.Xr EC_POINT_new 3 76.Xr EC_POINT_new 3 ,
77.Xr EVP_PKEY_CTX_set_ec_paramgen_curve_nid 3