summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/man/ec.3
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/man/ec.3')
-rw-r--r--src/lib/libcrypto/man/ec.3641
1 files changed, 3 insertions, 638 deletions
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