Sortix volatile manual
This manual documents Sortix volatile, a development build that has not been officially released. You can instead view this document in the latest official manual.
| 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 | Sortix 1.1.0-dev |