DH_new() allocates and initializes a DH structure.
DH_free() frees the DH structure and its components. The values are
erased before the memory is returned to the system.
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.