DH_GENERATE_KEY(3)
π NAME π
DH_generate_key, DH_compute_key β perform Diffie-Hellman key exchange.
hiii bestie!! this is DH_GENERATE_KEY(3) from the Library Functions Manual, and itβs literally the group-chat guide to doing Diffie-Hellman key exchange with libcrypto π
β¨
π¦ SYNOPSIS π¦
okay so the include-and-signatures sitch is exactly this, no edits, periodt:
library βlibcryptoβ #include <openssl/dh.h>
int
DH_generate_key(DH *dh);
int
DH_compute_key(unsigned char *key, BIGNUM *pub_key, DH *dh);
πΈ DESCRIPTION πΈ
okay so picture this: you and your bestie wanna build a shared secret without yelling it across the group chat. DH_generate_key() performs the first step of a Diffie-Hellman key exchange by generating private and public DH values β¨. Then, by calling DH_compute_key(), these are combined with the other partyβs public value to compute the shared key. team effort, no cap π€.
DH_generate_key() expects dh to contain the shared parameters dh->p and dh->g. It generates a random private DH value unless dh->priv_key is already set, and computes the corresponding public value dh->pub_key, which can then be published π£.
DH_compute_key() computes the shared secret from the private DH value in dh and the other partyβs public value in pub_key and stores it in key.
bestie, hear me:keymust point toDH_size(dh)bytes of memory. no tiny-buffer energy, okay? π
π RETURN VALUES π
like, what even comes back? π
DH_generate_key()β returns1on success, or0otherwise.DH_compute_key()β returns the size of the shared secret on success, or-1on error.
The error codes can be obtained by ERR_get_error(3). grab those receipts if something acts up π§Ύ.
π SEE ALSO π
go peek at these besties:
β HISTORY β
DH_generate_key() and DH_compute_key() first appeared in SSLeay 0.5.1 and have been available since OpenBSD 2.4. iconic longevity, honestly π
xoxo, Debian π June 8, 2025 π
π¦ where this page comes from
- alpine 3.24: libressl-doc 4.3.1-r0 Β· custom
- arch rolling: libressl 4.4.0-1 Β· ISC AND custom:OpenSSL
- Copyright (c) 2000 The OpenSSL Project. All rights reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms