DH_NEW(3)

πŸ“¦ version 4.4.0, in alpine 3.24, arch rolling

πŸ’– DH_NEW(3) β€” allocate and free DH objects πŸ’–

okay so welcome to the DH_NEW(3) page from the Library Functions Manual, bestie 🫢 this is the little corner of libcrypto where DH objects get born, get their ref count bumped, and get freed. iconic behavior, honestly.


πŸŽ€ NAME πŸŽ€

DH_new, DH_up_ref, DH_free β€” allocate and free DH objects. periodt πŸ’…


✨ SYNOPSIS ✨

library β€œlibcrypto” #include <openssl/dh.h>

DH*
DH_new(void);

int
DH_up_ref(DH *dh);

void
DH_free(DH *dh);

🌸 DESCRIPTION 🌸

The DH functions implement the Diffie-Hellman key agreement protocol. yes, that Diffie-Hellman. main character crypto energy πŸ”₯

DH_new() allocates and initializes a DH structure, setting the reference count to 1. It is equivalent to DH_new_method(3) with a NULL argument. no cap, that's the whole vibe.

DH_up_ref() increments the reference count by 1. little bump, bestie ⭐

DH_free() decrements the reference count by 1. If it reaches 0, it frees the DH structure and its components. The values are erased before the memory is returned to the system. 🧚 and if dh is a NULL pointer, no action occurs β€” literally nothing happens, and that's valid πŸ’œ


πŸ¦‹ RETURN VALUES πŸ¦‹

If the allocation fails, DH_new() returns NULL and sets an error code that can be obtained by ERR_get_error(3). Otherwise it returns a pointer to the newly allocated structure. so if it's cooked, check ERR_get_error(3) πŸ‘€

DH_up_ref() returns 1 for success or 0 for failure. simple as that, fr fr.


πŸ”₯ SEE ALSO πŸ”₯


πŸ‘‘ HISTORY πŸ‘‘

DH_new() and DH_free() first appeared in SSLeay 0.5.1 and have been available since OpenBSD 2.4. vintage but still slaying πŸ’–

DH_up_ref() first appeared in OpenSSL 0.9.7 and has been available since OpenBSD 3.2. glow-up era ✨


πŸ’– Debian β€’ June 8, 2025 β€’ DH_NEW(3) β€” byeee bestie, go forth and manage those ref counts πŸ’…

πŸ“¦ where this page comes from