Provided by: libcurl4-doc_7.58.0-2ubuntu3_all bug

NAME

       curl_global_sslset - Select SSL backend to use with libcurl

SYNOPSIS

       #include <curl/curl.h>

       typedef struct {
         curl_sslbackend id;
         const char *name;
       } curl_ssl_backend;

       typedef enum {
         CURLSSLBACKEND_NONE = 0,
         CURLSSLBACKEND_OPENSSL = 1,
         CURLSSLBACKEND_GNUTLS = 2,
         CURLSSLBACKEND_NSS = 3,
         CURLSSLBACKEND_GSKIT = 5,
         CURLSSLBACKEND_POLARSSL = 6,
         CURLSSLBACKEND_WOLFSSL = 7,
         CURLSSLBACKEND_SCHANNEL = 8,
         CURLSSLBACKEND_DARWINSSL = 9,
         CURLSSLBACKEND_AXTLS = 10,
         CURLSSLBACKEND_MBEDTLS = 11
       } curl_sslbackend;

       CURLsslset curl_global_sslset(curl_sslbackend  id,
                                     const char * name,
                                     curl_ssl_backend *** avail );

DESCRIPTION

       This  function  configures at runtime which SSL backend to use with libcurl. This function
       can only  be  used  to  select  an  SSL  backend  once,  and  it  must  be  called  before
       curl_global_init(3).

       The  backend  can  be  identified by the id (e.g. CURLSSLBACKEND_OPENSSL). The backend can
       also be specified via the name parameter for a case insensitive match (passing -1 as  id).
       If both id and name are specified, the name will be ignored.

       If    neither    id    nor   name   are   specified,   the   function   will   fail   with
       CURLSSLSET_UNKNOWN_BACKEND and set the  avail  pointer  to  the  NULL-terminated  list  of
       available backends. The available backends are those that this particular build of libcurl
       supports.

       Upon success, the function returns CURLSSLSET_OK.

       If   the   specified   SSL   backend   is   not   available,    the    function    returns
       CURLSSLSET_UNKNOWN_BACKEND  and  sets  the  avail  pointer  to  a  NULL-terminated list of
       available SSL backends. In this case, you may call the function again to try to  select  a
       different backend.

       The  SSL backend can be set only once. If it has already been set, a subsequent attempt to
       change it will result in a CURLSSLSET_TOO_LATE.

       This function is not thread safe. You must not call  it  when  any  other  thread  in  the
       program  (i.e.  a  thread  sharing the same memory) is running.  This doesn't just mean no
       other thread that is using libcurl.

AVAILABILITY

       This function was added in libcurl 7.56.0. Before this version, there was no  support  for
       choosing SSL backends at runtime.

RETURN VALUE

       If this function returns CURLSSLSET_OK, the backend was successfully selected.

       If  the chosen backend is unknown (or support for the chosed backend has not been compiled
       into libcurl), the function returns CURLSSLSET_UNKNOWN_BACKEND.

       If the backend had been configured previously, or if curl_global_init(3) has already  been
       called, the function returns CURLSSLSET_TOO_LATE.

       If  this  libcurl  was built completely without SSL support, with no backends at all, this
       function returns CURLSSLSET_NO_BACKENDS.

SEE ALSO

       curl_global_init(3), libcurl(3)