]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man3/EC_POINT_add.pod
Various typo
[thirdparty/openssl.git] / doc / man3 / EC_POINT_add.pod
CommitLineData
aafbe1cc
MC
1=pod
2
3=head1 NAME
4
bb9ad09e 5EC_POINT_add, EC_POINT_dbl, EC_POINT_invert, EC_POINT_is_at_infinity, EC_POINT_is_on_curve, EC_POINT_cmp, EC_POINT_make_affine, EC_POINTs_make_affine, EC_POINTs_mul, EC_POINT_mul, EC_GROUP_precompute_mult, EC_GROUP_have_precompute_mult - Functions for performing mathematical operations and tests on EC_POINT objects
aafbe1cc
MC
6
7=head1 SYNOPSIS
8
9 #include <openssl/ec.h>
aafbe1cc 10
e9b77246
BB
11 int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,
12 const EC_POINT *b, BN_CTX *ctx);
aafbe1cc
MC
13 int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, BN_CTX *ctx);
14 int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx);
15 int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p);
16 int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX *ctx);
17 int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx);
18 int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx);
e9b77246
BB
19 int EC_POINTs_make_affine(const EC_GROUP *group, size_t num,
20 EC_POINT *points[], BN_CTX *ctx);
21 int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, size_t num,
22 const EC_POINT *p[], const BIGNUM *m[], BN_CTX *ctx);
23 int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n,
24 const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx);
aafbe1cc
MC
25 int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx);
26 int EC_GROUP_have_precompute_mult(const EC_GROUP *group);
27
28
29=head1 DESCRIPTION
30
31EC_POINT_add adds the two points B<a> and B<b> and places the result in B<r>. Similarly EC_POINT_dbl doubles the point B<a> and places the
32result in B<r>. In both cases it is valid for B<r> to be one of B<a> or B<b>.
33
34EC_POINT_invert calculates the inverse of the supplied point B<a>. The result is placed back in B<a>.
35
36The function EC_POINT_is_at_infinity tests whether the supplied point is at infinity or not.
37
38EC_POINT_is_on_curve tests whether the supplied point is on the curve or not.
39
40EC_POINT_cmp compares the two supplied points and tests whether or not they are equal.
41
42The functions EC_POINT_make_affine and EC_POINTs_make_affine force the internal representation of the EC_POINT(s) into the affine
43co-ordinate system. In the case of EC_POINTs_make_affine the value B<num> provides the number of points in the array B<points> to be
44forced.
45
46EC_POINT_mul calculates the value generator * B<n> + B<q> * B<m> and stores the result in B<r>. The value B<n> may be NULL in which case the result is just B<q> * B<m>.
47
48EC_POINTs_mul calculates the value generator * B<n> + B<q[0]> * B<m[0]> + ... + B<q[num-1]> * B<m[num-1]>. As for EC_POINT_mul the value
49B<n> may be NULL.
50
51The function EC_GROUP_precompute_mult stores multiples of the generator for faster point multiplication, whilst
9b86974e 52EC_GROUP_have_precompute_mult tests whether precomputation has already been done. See L<EC_GROUP_copy(3)> for information
aafbe1cc
MC
53about the generator.
54
55
56=head1 RETURN VALUES
57
58The following functions return 1 on success or 0 on error: EC_POINT_add, EC_POINT_dbl, EC_POINT_invert, EC_POINT_make_affine,
59EC_POINTs_make_affine, EC_POINTs_make_affine, EC_POINT_mul, EC_POINTs_mul and EC_GROUP_precompute_mult.
60
61EC_POINT_is_at_infinity returns 1 if the point is at infinity, or 0 otherwise.
62
63EC_POINT_is_on_curve returns 1 if the point is on the curve, 0 if not, or -1 on error.
64
65EC_POINT_cmp returns 1 if the points are not equal, 0 if they are, or -1 on error.
66
67EC_GROUP_have_precompute_mult return 1 if a precomputation has been done, or 0 if not.
68
69=head1 SEE ALSO
70
9e183d22 71L<crypto(7)>, L<EC_GROUP_new(3)>, L<EC_GROUP_copy(3)>,
9b86974e
RS
72L<EC_POINT_new(3)>, L<EC_KEY_new(3)>,
73L<EC_GFp_simple_method(3)>, L<d2i_ECPKParameters(3)>
aafbe1cc 74
e2f92610
RS
75=head1 COPYRIGHT
76
9e183d22 77Copyright 2013-2017 The OpenSSL Project Authors. All Rights Reserved.
e2f92610
RS
78
79Licensed under the OpenSSL license (the "License"). You may not use
80this file except in compliance with the License. You can obtain a copy
81in the file LICENSE in the source distribution or at
82L<https://www.openssl.org/source/license.html>.
83
84=cut