1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-25 01:28:51 -05:00
curl/lib/vtls
Michael Kaufmann 549310e907 openssl: support session resume with TLS 1.3
Session resumption information is not available immediately after a TLS 1.3
handshake. The client must wait until the server has sent a session ticket.

Use OpenSSL's "new session" callback to get the session information and put it
into curl's session cache. For TLS 1.3 sessions, this callback will be invoked
after the server has sent a session ticket.

The "new session" callback is invoked only if OpenSSL's session cache is
enabled, so enable it and use the "external storage" mode which lets curl manage
the contents of the session cache.

A pointer to the connection data and the sockindex are now saved as "SSL extra
data" to make them available to the callback.

This approach also works for old SSL/TLS versions and old OpenSSL versions.

Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Fixes #3202
Closes #3271
2018-11-21 11:18:25 +01:00
..
cyassl.c wolfSSL/CyaSSL: Fix memory leak in Curl_cyassl_random 2018-07-26 16:21:59 +02:00
cyassl.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
darwinssl.c ssl: replace all internal uses of CURLE_SSL_CACERT 2018-11-20 14:57:00 +01:00
darwinssl.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
gskit.c gskit: make sure to terminate version string 2018-10-07 22:36:25 +02:00
gskit.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
gtls.c ssl: replace all internal uses of CURLE_SSL_CACERT 2018-11-20 14:57:00 +01:00
gtls.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
mbedtls.c ssl: replace all internal uses of CURLE_SSL_CACERT 2018-11-20 14:57:00 +01:00
mbedtls.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
mesalink.c vtls: add MesaLink to curl_sslbackend enum 2018-10-30 16:56:51 +01:00
mesalink.h vtls: add a MesaLink vtls backend 2018-09-13 08:26:37 +02:00
nss.c ssl: replace all internal uses of CURLE_SSL_CACERT 2018-11-20 14:57:00 +01:00
nssg.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
openssl.c openssl: support session resume with TLS 1.3 2018-11-21 11:18:25 +01:00
openssl.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
polarssl_threadlock.c code style: use spaces around equals signs 2017-09-11 09:29:50 +02:00
polarssl_threadlock.h URLs: change all http:// URLs to https:// 2016-02-03 00:19:02 +01:00
polarssl.c ssl: replace all internal uses of CURLE_SSL_CACERT 2018-11-20 14:57:00 +01:00
polarssl.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
schannel_verify.c winssl: be consistent in Schannel capitalization 2018-11-07 10:11:13 +01:00
schannel.c winssl: be consistent in Schannel capitalization 2018-11-07 10:11:13 +01:00
schannel.h schannel: use Curl_ prefix for global private symbols 2018-11-01 09:39:45 +01:00
vtls.c axtls: removed 2018-11-01 10:29:53 +01:00
vtls.h axtls: removed 2018-11-01 10:29:53 +01:00