gnutls_anon_set_params_function - Linux


gnutls_anon_set_params_function is a GnuTLS function that allows customization of the parameters used for anonymous Diffie-Hellman key exchange. It is typically used in situations where the default parameters provided by GnuTLS are not suitable or require modification.


int gnutls_anon_set_params_function(gnutls_anon_verify_function_t params_function);


  • params_function: A callback function that takes a gnutls_anon_verify_params_t structure as an argument and modifies its parameters as needed. This function is responsible for configuring the Diffie-Hellman group and the hash function used for key generation.


#include <gnutls/gnutls.h>

static int custom_anon_params(gnutls_anon_verify_params_t params)
    // Customize Diffie-Hellman group and hash function
    gnutls_anon_verify_set_dh_params(params, "dh_params.pem");
    gnutls_anon_verify_set_hash_function(params, GNUTLS_DIG_SHA256);

    return 0;

int main()
    gnutls_anon_session_t session;
    gnutls_init(&session, GNUTLS_NONBLOCK);

    // Set the custom parameters function

    // Perform anonymous Diffie-Hellman key exchange
    int ret = gnutls_anon_establish(session);
    if (ret < 0) {
        // Handle error

    // Use the established connection

    return 0;

Common Issues

  • Incorrect callback function: Ensure that the provided callback function correctly configures the parameters in the gnutls_anon_verify_params_t structure.
  • Invalid Diffie-Hellman group: The Diffie-Hellman group specified in the callback function must be supported by GnuTLS.
  • Invalid hash function: The hash function specified in the callback function must be supported by GnuTLS and should match the security level required for the application.


gnutls_anon_set_params_function can be used in conjunction with other GnuTLS API functions to create custom and tailored TLS/SSL connections. It can be integrated into scripts or applications that require fine-tuning of anonymous Diffie-Hellman key exchange parameters.

Related Commands

  • gnutls_anon_init: Initializes an anonymous Diffie-Hellman session.
  • gnutls_anon_establish: Performs anonymous Diffie-Hellman key exchange in an existing session.
  • gnutls_anon_deinit: Deinitializes an anonymous Diffie-Hellman session.
  • gnutls_dh_params_init: Initializes Diffie-Hellman parameters.
  • gnutls_dh_params_deinit: Deinitializes Diffie-Hellman parameters.