Manual Page Result
0
Command: ECDH_compute_key | Section: 3 | Source: OpenBSD | File: ECDH_compute_key.3
ECDH_COMPUTE_KEY(3) FreeBSD 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.
FreeBSD 14.1-RELEASE-p8 August 29, 2023 FreeBSD 14.1-RELEASE-p8