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.
CURLINFO_TLS_SSL_PTR(3) | Library Functions Manual | CURLINFO_TLS_SSL_PTR(3) |
NAME
CURLINFO_TLS_SESSION, CURLINFO_TLS_SSL_PTR - get TLS session infoSYNOPSIS
#include <curl/curl.h>
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TLS_SSL_PTR,
struct curl_tlssessioninfo **session);
/* if you need compatibility with libcurl < 7.48.0 use
CURLINFO_TLS_SESSION instead: */
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_TLS_SESSION,
struct curl_tlssessioninfo **session);
DESCRIPTION
Pass a pointer to a struct curl_tlssessioninfo *. The pointer is initialized to refer to a struct curl_tlssessioninfo * that contains an enum indicating the SSL library used for the handshake and a pointer to the respective internal TLS session structure of this underlying SSL library.struct curl_tlssessioninfo {
curl_sslbackend backend;
void *internals;
};
- GnuTLS
- gnutls_session_t
- OpenSSL
-
CURLINFO_TLS_SESSION(3): SSL_CTX *
- mbedTLS
- mbedTLS_ssl_context *
- Secure Channel
- CtxtHandle *
- Secure Transport
- SSLContext *
- wolfSSL
- SSL *
LIMITATIONS
This option has some limitations that could make it unsafe when it comes to the manual verification of certificates.PROTOCOLS
This functionality affects all TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.EXAMPLE
#include <curl/curl.h>
#include <openssl/ssl.h>
CURL *curl;
static size_t wf(void *ptr, size_t size, size_t nmemb, void *stream)
{
const struct curl_tlssessioninfo *info = NULL;
CURLcode res = curl_easy_getinfo(curl, CURLINFO_TLS_SSL_PTR, &info);
if(info && !res) {
if(CURLSSLBACKEND_OPENSSL == info->backend) {
printf("OpenSSL ver. %s\n", SSL_get_version((SSL*)info->internals));
}
}
return size * nmemb;
}
int main(int argc, char **argv)
{
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, wf);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return res;
}
HISTORY
This option supersedes CURLINFO_TLS_SESSION(3) which was added in 7.34.0. This option is exactly the same as that option except in the case of OpenSSL.AVAILABILITY
Added in curl 7.48.0RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.SEE ALSO
CURLINFO_TLS_SESSION(3), curl_easy_getinfo(3), curl_easy_setopt(3)2024-12-21 | libcurl |