table of contents
ECDH_COMPUTE_KEY(3) | Library Functions Manual | ECDH_COMPUTE_KEY(3) |
NAME¶
ECDH_compute_key
,
ECDH_size
— Elliptic Curve
Diffie-Hellman key exchange
SYNOPSIS¶
#include
<openssl/ec.h>
int
ECDH_compute_key
(void *out,
size_t outlen, const EC_POINT
*public_key, EC_KEY *ecdh, void
*(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen));
int
ECDH_size
(const EC_KEY
*ecdh);
DESCRIPTION¶
ECDH_compute_key
()
performs Elliptic Curve Diffie-Hellman key agreement. It combines the
private key contained in ecdh with the other party's
public_key, takes the x
component of the affine coordinates, and optionally applies the key
derivation function KDF. It stores the resulting
symmetric key in the buffer out, which is
outlen bytes long. If KDF is
NULL
, outlen must be at least
ECDH_size
(ecdh).
ECDH_size
()
returns the number of bytes needed to store an affine coordinate of a point
on the elliptic curve used by ecdh, which is one
eighth of the degree of the finite field underlying that elliptic curve,
rounded up to the next integer number.
RETURN VALUES¶
ECDH_compute_key
() returns the length of
the computed key in bytes or -1 if an error occurs.
ECDH_size
() returns the number of bytes
needed to store an affine coordinate.
SEE ALSO¶
DH_generate_key(3), DH_size(3), EC_GROUP_new(3), EC_KEY_new(3), EC_POINT_new(3), X25519(3)
HISTORY¶
ECDH_compute_key
() first appeared in
OpenSSL 0.9.8 and has been available since OpenBSD
4.5.
ECDH_size
() first appeared in
OpenBSD 6.1.
August 29, 2023 | Linux 6.4.0-150600.23.25-default |