Sortix
Sortix Download Manual Development Source Code News Blog More
current nightly

Sortix nightly manual

This manual documents Sortix nightly, a development build that has not been officially released. You can instead view this document in the latest official manual.

NAME

DH_new, DH_up_ref, DH_free — allocate and free DH objects

SYNOPSIS

#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.
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.
DH_up_ref() increments the reference count by 1.
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. If dh is a NULL pointer, no action occurs.

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.
DH_up_ref() returns 1 for success or 0 for failure.

SEE ALSO

BN_new(3), crypto(3), d2i_DHparams(3), DH_generate_key(3), DH_generate_parameters(3), DH_get0_pqg(3), DH_get_ex_new_index(3), DH_security_bits(3), DH_set_method(3), DH_size(3), DHparams_print(3), DSA_dup_DH(3), EVP_PKEY_CTX_set_dh_paramgen_prime_len(3), EVP_PKEY_set1_DH(3)

HISTORY

DH_new() and DH_free() first appeared in SSLeay 0.5.1 and have been available since OpenBSD 2.4.
DH_up_ref() first appeared in OpenSSL 0.9.7 and has been available since OpenBSD 3.2.
Copyright 2011-2025 Jonas 'Sortie' Termansen and contributors.
Sortix's source code is free software under the ISC license.
#sortix on irc.sortix.org
@sortix_org