summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/doc/EC_POINT_add.pod
diff options
context:
space:
mode:
authormiod <>2014-07-11 16:18:14 +0000
committermiod <>2014-07-11 16:18:14 +0000
commit42ef36c6813822962aff009ee1ca5eaf04d6c5c7 (patch)
treed06ffa1565a72fd493dbed6024d44e5daa26be91 /src/lib/libcrypto/doc/EC_POINT_add.pod
parent687488572f223f89cf98909e87b4d1a3fbb14bfd (diff)
downloadopenbsd-42ef36c6813822962aff009ee1ca5eaf04d6c5c7.tar.gz
openbsd-42ef36c6813822962aff009ee1ca5eaf04d6c5c7.tar.bz2
openbsd-42ef36c6813822962aff009ee1ca5eaf04d6c5c7.zip
Huge documentation update for libcrypto and libssl, mostly from Matt Caswell,
Jeff Trawick, Jean-Paul Calderone, Michal Bozon, Jeffrey Walton and Rich Salz, via OpenSSL trunk (with some parts not applying to us, such as SSLv2 support, at least partially removed).
Diffstat (limited to 'src/lib/libcrypto/doc/EC_POINT_add.pod')
-rw-r--r--src/lib/libcrypto/doc/EC_POINT_add.pod72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/lib/libcrypto/doc/EC_POINT_add.pod b/src/lib/libcrypto/doc/EC_POINT_add.pod
new file mode 100644
index 0000000000..ae92640843
--- /dev/null
+++ b/src/lib/libcrypto/doc/EC_POINT_add.pod
@@ -0,0 +1,72 @@
1=pod
2
3=head1 NAME
4
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 B<EC_POINT> objects.
6
7=head1 SYNOPSIS
8
9 #include <openssl/ec.h>
10 #include <openssl/bn.h>
11
12 int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx);
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);
19 int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, EC_POINT *points[], BN_CTX *ctx);
20 int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, size_t num, const EC_POINT *p[], const BIGNUM *m[], BN_CTX *ctx);
21 int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx);
22 int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx);
23 int EC_GROUP_have_precompute_mult(const EC_GROUP *group);
24
25
26=head1 DESCRIPTION
27
28EC_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
29result in B<r>. In both cases it is valid for B<r> to be one of B<a> or B<b>.
30
31EC_POINT_invert calculates the inverse of the supplied point B<a>. The result is placed back in B<a>.
32
33The function EC_POINT_is_at_infinity tests whether the supplied point is at infinity or not.
34
35EC_POINT_is_on_curve tests whether the supplied point is on the curve or not.
36
37EC_POINT_cmp compares the two supplied points and tests whether or not they are equal.
38
39The functions EC_POINT_make_affine and EC_POINTs_make_affine force the internal representation of the EC_POINT(s) into the affine
40co-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
41forced.
42
43EC_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>.
44
45EC_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
46B<n> may be NULL.
47
48The function EC_GROUP_precompute_mult stores multiples of the generator for faster point multiplication, whilst
49EC_GROUP_have_precompute_mult tests whether precomputation has already been done. See L<EC_GROUP_copy(3)|EC_GROUP_copy(3)> for information
50about the generator.
51
52
53=head1 RETURN VALUES
54
55The following functions return 1 on success or 0 on error: EC_POINT_add, EC_POINT_dbl, EC_POINT_invert, EC_POINT_make_affine,
56EC_POINTs_make_affine, EC_POINTs_make_affine, EC_POINT_mul, EC_POINTs_mul and EC_GROUP_precompute_mult.
57
58EC_POINT_is_at_infinity returns 1 if the point is at infinity, or 0 otherwise.
59
60EC_POINT_is_on_curve returns 1 if the point is on the curve, 0 if not, or -1 on error.
61
62EC_POINT_cmp returns 1 if the points are not equal, 0 if they are, or -1 on error.
63
64EC_GROUP_have_precompute_mult return 1 if a precomputation has been done, or 0 if not.
65
66=head1 SEE ALSO
67
68L<crypto(3)|crypto(3)>, L<ec(3)|ec(3)>, L<EC_GROUP_new(3)|EC_GROUP_new(3)>, L<EC_GROUP_copy(3)|EC_GROUP_copy(3)>,
69L<EC_POINT_new(3)|EC_POINT_new(3)>, L<EC_KEY_new(3)|EC_KEY_new(3)>,
70L<EC_GFp_simple_method(3)|EC_GFp_simple_method(3)>, L<d2i_ECPKParameters(3)|d2i_ECPKParameters(3)>
71
72=cut