curl_easy_ssls_import - import SSL sessions
Name
curl_easy_ssls_import - import SSL sessions
Synopsis
#include <curl/curl.h> CURLcode curl_easy_ssls_import(CURL *handle, const char *session_key, const unsigned char *shmac, size_t shmac_len, const unsigned char *sdata, size_t sdata_len);
Description
This function imports a previously exported SSL session ticket. sdata and sdata_len must always be provided. If session_key is NULL, then shmac and shmac_len must be given as received during the export. See curl_easy_ssls_export for a description of those.
Import of session tickets from other curl versions may fail due to changes in the handling of shmac or sdata. A session ticket which has already expired is silently discarded.
Protocols
This functionality affects all TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
This option works only with the following TLS backends: GnuTLS, OpenSSL, mbedTLS and wolfSSL
Example
int main(void)
{
  CURLSHcode sh;
  CURLSH *share = curl_share_init();
  CURLcode rc;
  CURL *curl;
 
  sh = curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_SSL_SESSION);
  if(sh)
    printf("Error: %s\n", curl_share_strerror(sh));
 
  curl = curl_easy_init();
  if(curl) {
    extern unsigned char *shmac, *sdata;
    size_t hlen = 4, slen = 5;
 
    curl_easy_setopt(curl, CURLOPT_SHARE, share);
 
    /* read shmac and sdata from storage */
    rc = curl_easy_ssls_import(curl, NULL, shmac, hlen, sdata, slen);
 
    /* always cleanup */
    curl_easy_cleanup(curl);
  }
  curl_share_cleanup(share);
}
Availability
Added in curl 8.12.0
Return value
This function returns a CURLcode indicating success or error.
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see libcurl-errors. If CURLOPT_ERRORBUFFER was set with curl_easy_setopt there can be an error message stored in the error buffer when non-zero is returned.
See also
CURLOPT_SHARE(3), curl_easy_ssls_export(3), curl_share_setopt(3)
This HTML page was made with roffit.