Details
-
Task
-
Resolution: Done
-
P2: Important
-
None
-
b5652df775efbd1c52eecee5f08e40e600e5d70b
Description
- Implement a (for now internal) class QSslContext that wraps a OpenSSL SSL_CTX
- The information inside is to be based on the QSslConfiguration set by the user on the QNetworkRequest
- Each QHttpNetworkConnection has QSslContext object as QSharedPointer
- The individual QSslSockets of the QHttpNetworkConnection all use that QSslContext object, stored via QSharedPointer. If no one set the QSharedPointer, they create their own and behave as before.
- The goal is to share SSL sessions (resuming sessions to avoid handshake roundtrips) and to save memory by only using one SSL_CTX instead of up to 6 per host:port (see also
QTBUG-14985).
Problems identified so far:
- QNetworkAccessManager uses one QHttpNetworkConnection per host:port, without paying attention to the QSslConfiguration ( QTBUG-7201 )
- What about the qnetworkreply->setSslConfiguration() calls? (Maybe also related to
QTBUG-8405)
Attachments
Issue Links
- depends on
-
QTBUG-14948 Merge QSslSocketPrivate and QSslSocketBackendPrivate
- Closed
-
QTBUG-7201 QSslConfiguration: Distinguish HTTP connections also by things like local certificate
- Open
- is required for
-
QTBUG-28762 QtNetwork performance improvements
- Closed
- relates to
-
QTBUG-14985 Use SSL_MODE_RELEASE_BUFFERS in QSslSocket / SSL_CTX
- Closed
-
QTBUG-14160 Improve/refactor the SSL & proxy socket engines
- Closed
-
QTBUG-8405 Make QSslSocket emit a signal if the server requests that the client identify itself with a certificate
- Closed
-
QTBUG-19141 SSL session sharing
- Closed
- replaces
-
QTBUG-19141 SSL session sharing
- Closed