summaryrefslogtreecommitdiffstats
path: root/src/network/ssl/qsslellipticcurve_openssl.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QSslSocket: OpenSSL 1.1 backendRichard J. Moore2017-07-041-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch-set implements a new QSslSocket backend based on OpenSSL 1.1. 1. General. The code in this patch was organized to achieve these (somewhat contradicting) objectives: - keep the new code free of #if-ery, as far as possible; - make it easy to clean away dead code when we're eventually able to retire out-dated OpenSSL versions; - reduce the amount of code duplication. If changes in some file/component were insignificant (~5 one-liners per file), we still use pp-checks like: #if QT_CONFIG(opensslv11) ... #else ... #endif - the logic is simple and it's still easy to clean the code if we remove the legacy back-end. Where it saved #if-ery, we also introduced 'forward-compatible' macros implementing equivalents of 1.1 functions using older OpenSSL. In case some class contains a lot of version-specific ifdefs (particularly where nested #if-ery was complex) we choose to split code into: "pre11" h/cpp files, "shared" h/cpp files (they preserve their original names, e.g qsslsocket_openssl.cpp) and "11" h/cpp files. If in future we remove the legacy back-end, "pre11" should be removed; "shared" and "11" parts - merged. 2. Configuration. We introduced a new feature 'opensslv11' which complements the pre-existing 'openssl' and 'openssl-linked' features. The 'opensslv11' feature is enabled by a simple test which either compiles successfully or ends in a compilation error, depending on a value of the OPENSSL_VERSION_NUMBER constant. If the feature was enabled, we also append an additional compilation flag -DOPENSSL_API_COMPAT=0x10100000L to make sure our new code does not contain deprecated structures, function calls, macro-invocations from OpenSSL < 1.1. Change-Id: I2064efbe9685def5d2bb2233a66f7581954fb74a Reviewed-by: André Klitzing <aklitzing@gmail.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Updated license headersJani Heikkinen2016-01-151-13/+19
| | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-111-21/+13
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* QSslEllipticCurve: enable NRVO in *Name() methodsMarc Mutz2015-01-211-8/+4
| | | | | | | | | | Make it easier for the compiler to apply the Named Return Value Optimization (NRVO) in the shortName()/longName() functions by not returning different objects in different return statements. Change-Id: I1b6fa7e6121bc1c843378be33499728c56c97f92 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QSslEllipticCurve: don't call QSslSocketPrivate::ensureInitialized() in ↵Marc Mutz2015-01-211-4/+0
| | | | | | | | | | | | | const functions Rationale: the case of an invalid QSslEllipticCurve is already dealt with before we'd call ensureInitialized(). But in order to have a non-invalid QSslEllipticCurve, we must have called one of the constructor functions first. There, we already call ensureInitialized(), so we don't need to do it here again. Change-Id: I96bdb5db63ec0165e6b8fac9469b5d81c6b2cdae Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QSslEllipticCurve: add missing noexceptMarc Mutz2015-01-211-1/+1
| | | | | Change-Id: I94701ddb78a822adf35aea57f9e171a747745f6b Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QSslEllipticCurve: add fromLongNameGiuseppe D'Angelo2015-01-211-0/+20
| | | | | | | | Since the conversion to a long name was already there, also support creation from a long name. Change-Id: Iad712db7447fb0a0a18f600b7db54da5b5b87154 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* SSL: Add support for selecting which curves should be used by an elliptic cipherGiuseppe D'Angelo2014-11-261-0/+167
[ChangeLog][QtNetwork][QtSSL] It is now possible to choose which elliptic curves should be used by an elliptic curve cipher. Change-Id: If5d0d58922768b6f1375836489180e576f5a015a Done-with: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Richard J. Moore <rich@kde.org>