CURLOPT_SSL_CTX_FUNCTION(3)
CURLOPT_SSL_CTX_FUNCTION(3curl_easy_setopt optionCURLOPT_SSL_CTX_FUNCTION(3)
NAME
CURLOPT_SSL_CTX_FUNCTION - SSL context callback for OpenSSL,
wolfSSL/CyaSSL or mbedTLS
SYNOPSIS
#include <curl/curl.h>
CURLcode ssl_ctx_callback(CURL *curl, void *ssl_ctx, void *userptr);
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SSL_CTX_FUNCTION,
ssl_ctx_callback);
DESCRIPTION
This option only works for libcurl powered by OpenSSL,
wolfSSL/CyaSSL or mbedTLS. If libcurl was built against
another SSL library this functionality is absent.
Pass a pointer to your callback function, which should match
the prototype shown above.
This callback function gets called by libcurl just before
the initialization of an SSL connection after having pro-
cessed all other SSL related options to give a last chance
to an application to modify the behaviour of the SSL ini-
tialization. The ssl_ctx parameter is actually a pointer to
the SSL library's SSL_CTX for OpenSSL or wolfSSL/CyaSSL, and
a pointer to mbedtls_ssl_config for mbedTLS. If an error is
returned from the callback no attempt to establish a connec-
tion is made and the perform operation will return the
callback's error code. Set the userptr argument with the
CURLOPT_SSL_CTX_DATA(3) option.
This function will get called on all new connections made to
a server, during the SSL negotiation. The ssl_ctx will point
to a newly initialized object each time, but note the
pointer may be the same as from a prior call.
To use this properly, a non-trivial amount of knowledge of
your SSL library is necessary. For example, you can use this
function to call library-specific callbacks to add addi-
tional validation code for certificates, and even to change
the actual URI of a HTTPS request.
DEFAULT
NULL
PROTOCOLS
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS
etc.
EXAMPLE
See cacertinmem.c in docs/examples directory for usage
libcurl 7.58.0 Last change: December 19, 2017 1
CURLOPT_SSL_CTX_FUNCTION(3curl_easy_setopt optionCURLOPT_SSL_CTX_FUNCTION(3)
example.
https://curl.haxx.se/libcurl/c/cacertinmem.html
AVAILABILITY
Added in 7.11.0 for OpenSSL. Added in 7.42.0 for
wolfSSL/CyaSSL. Added in 7.54.0 for mbedTLS. Other SSL back-
ends not supported.
RETURN VALUE
CURLE_OK if supported; or an error such as:
CURLE_NOT_BUILT_IN - Not supported by the SSL backend
CURLE_UNKNOWN_OPTION
SEE ALSO
CURLOPT_SSL_CTX_DATA(3), CURLOPT_SSL_VERIFYPEER(3),
libcurl 7.58.0 Last change: December 19, 2017 2
Man(1) output converted with
man2html