diff options
-rw-r--r-- | dist/changes-5.0.0 | 4 | ||||
-rw-r--r-- | src/network/ssl/qssl.cpp | 6 | ||||
-rw-r--r-- | src/network/ssl/qssl.h | 6 | ||||
-rw-r--r-- | src/network/ssl/qsslcertificate.cpp | 8 | ||||
-rw-r--r-- | src/network/ssl/qsslcertificate.h | 8 | ||||
-rw-r--r-- | src/network/ssl/qsslsocket_openssl.cpp | 2 | ||||
-rw-r--r-- | tests/auto/qsslcertificate/tst_qsslcertificate.cpp | 22 |
7 files changed, 34 insertions, 22 deletions
diff --git a/dist/changes-5.0.0 b/dist/changes-5.0.0 index 523d649573..32ca8dbd66 100644 --- a/dist/changes-5.0.0 +++ b/dist/changes-5.0.0 @@ -20,6 +20,10 @@ information about a particular change. - QLibrary::resolve() now returns a function pointer instead of a void pointer. +- QSslCertificate::alternateSubjectNames() is deprecated (but can be enabled + via QT_DISABLE_DEPRECATED_BEFORE), use + QSslCertificate::subjectAlternativeNames() instead. + **************************************************************************** * General * **************************************************************************** diff --git a/src/network/ssl/qssl.cpp b/src/network/ssl/qssl.cpp index 586c8944ca..17f8014e52 100644 --- a/src/network/ssl/qssl.cpp +++ b/src/network/ssl/qssl.cpp @@ -82,9 +82,9 @@ QT_BEGIN_NAMESPACE */ /*! - \enum QSsl::AlternateNameEntryType + \enum QSsl::AlternativeNameEntryType - Describes the key types for alternate name entries in QSslCertificate. + Describes the key types for alternative name entries in QSslCertificate. \value EmailEntry An email entry; the entry contains an email address that the certificate is valid for. @@ -92,7 +92,7 @@ QT_BEGIN_NAMESPACE \value DnsEntry A DNS host name entry; the entry contains a host name entry that the certificate is valid for. The entry may contain wildcards. - \sa QSslCertificate::alternateSubjectNames() + \sa QSslCertificate::subjectAlternativeNames() */ diff --git a/src/network/ssl/qssl.h b/src/network/ssl/qssl.h index 2ecd1c363c..7b76b64b4c 100644 --- a/src/network/ssl/qssl.h +++ b/src/network/ssl/qssl.h @@ -67,11 +67,15 @@ namespace QSsl { Dsa }; - enum AlternateNameEntryType { + enum AlternativeNameEntryType { EmailEntry, DnsEntry }; +#if QT_DEPRECATED_SINCE(5,0) + typedef AlternativeNameEntryType AlternateNameEntryType; +#endif + enum SslProtocol { SslV3, SslV2, diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp index 94273b0754..af265db6e4 100644 --- a/src/network/ssl/qsslcertificate.cpp +++ b/src/network/ssl/qsslcertificate.cpp @@ -426,7 +426,7 @@ QList<QByteArray> QSslCertificate::issuerInfoAttributes() const /*! Returns the list of alternative subject names for this - certificate. The alternate subject names typically contain host + certificate. The alternative names typically contain host names, optionally with wildcards, that are valid for this certificate. @@ -437,9 +437,9 @@ QList<QByteArray> QSslCertificate::issuerInfoAttributes() const \sa subjectInfo() */ -QMultiMap<QSsl::AlternateNameEntryType, QString> QSslCertificate::alternateSubjectNames() const +QMultiMap<QSsl::AlternativeNameEntryType, QString> QSslCertificate::subjectAlternativeNames() const { - QMultiMap<QSsl::AlternateNameEntryType, QString> result; + QMultiMap<QSsl::AlternativeNameEntryType, QString> result; if (!d->x509) return result; @@ -922,7 +922,7 @@ QDebug operator<<(QDebug debug, const QSslCertificate &certificate) << ',' << certificate.digest().toBase64() << ',' << certificate.issuerInfo(QSslCertificate::Organization) << ',' << certificate.subjectInfo(QSslCertificate::Organization) - << ',' << certificate.alternateSubjectNames() + << ',' << certificate.subjectAlternativeNames() #ifndef QT_NO_TEXTSTREAM << ',' << certificate.effectiveDate() << ',' << certificate.expiryDate() diff --git a/src/network/ssl/qsslcertificate.h b/src/network/ssl/qsslcertificate.h index a057d7a17d..0498d162c4 100644 --- a/src/network/ssl/qsslcertificate.h +++ b/src/network/ssl/qsslcertificate.h @@ -48,6 +48,7 @@ #include <QtCore/qcryptographichash.h> #include <QtCore/qregexp.h> #include <QtCore/qsharedpointer.h> +#include <QtCore/qmap.h> #include <QtNetwork/qssl.h> typedef struct x509_st X509; // ### check if this works @@ -65,7 +66,6 @@ class QIODevice; class QSslError; class QSslKey; class QStringList; -template <typename T, typename U> class QMultiMap; class QSslCertificatePrivate; class Q_NETWORK_EXPORT QSslCertificate @@ -106,7 +106,11 @@ public: QStringList subjectInfo(const QByteArray &attribute) const; QList<QByteArray> subjectInfoAttributes() const; QList<QByteArray> issuerInfoAttributes() const; - QMultiMap<QSsl::AlternateNameEntryType, QString> alternateSubjectNames() const; +#if QT_DEPRECATED_SINCE(5,0) + QT_DEPRECATED inline QMultiMap<QSsl::AlternateNameEntryType, QString> + alternateSubjectNames() const { return subjectAlternativeNames(); } +#endif + QMultiMap<QSsl::AlternativeNameEntryType, QString> subjectAlternativeNames() const; QDateTime effectiveDate() const; QDateTime expiryDate() const; QSslKey publicKey() const; diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 11b2ff8bcd..300a5c84d5 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -1435,7 +1435,7 @@ bool QSslSocketBackendPrivate::isMatchingHostname(const QSslCertificate &cert, c } } - foreach (const QString &altName, cert.alternateSubjectNames().values(QSsl::DnsEntry)) { + foreach (const QString &altName, cert.subjectAlternativeNames().values(QSsl::DnsEntry)) { if (isMatchingHostname(altName.toLower(), peerName.toLower())) { return true; } diff --git a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp index 7e67d08cba..bcd21eefe2 100644 --- a/tests/auto/qsslcertificate/tst_qsslcertificate.cpp +++ b/tests/auto/qsslcertificate/tst_qsslcertificate.cpp @@ -95,9 +95,9 @@ private slots: void copyAndAssign(); void digest_data(); void digest(); - void alternateSubjectNames_data(); + void subjectAlternativeNames_data(); void utf8SubjectNames(); - void alternateSubjectNames(); + void subjectAlternativeNames(); void publicKey_data(); void publicKey(); void toPemOrDer_data(); @@ -203,7 +203,7 @@ void tst_QSslCertificate::emptyConstructor() QCOMPARE(certificate.digest(), QCryptographicHash::hash(QByteArray(), QCryptographicHash::Md5)); QCOMPARE(certificate.issuerInfo(QSslCertificate::Organization), QStringList()); QCOMPARE(certificate.subjectInfo(QSslCertificate::Organization), QStringList()); - QCOMPARE(certificate.alternateSubjectNames(),(QMultiMap<QSsl::AlternateNameEntryType, QString>())); + QCOMPARE(certificate.subjectAlternativeNames(),(QMultiMap<QSsl::AlternativeNameEntryType, QString>())); #ifndef QT_NO_TEXTSTREAM QCOMPARE(certificate.effectiveDate(), QDateTime()); QCOMPARE(certificate.expiryDate(), QDateTime()); @@ -272,7 +272,7 @@ void tst_QSslCertificate::compareCertificates( QCOMPARE(cert1.issuerInfo(subjectInfo), cert2.issuerInfo(subjectInfo)); QCOMPARE(cert1.subjectInfo(subjectInfo), cert2.subjectInfo(subjectInfo)); } - QCOMPARE(cert1.alternateSubjectNames(), cert2.alternateSubjectNames()); + QCOMPARE(cert1.subjectAlternativeNames(), cert2.subjectAlternativeNames()); QCOMPARE(cert1.effectiveDate(), cert2.effectiveDate()); QCOMPARE(cert1.expiryDate(), cert2.expiryDate()); QCOMPARE(cert1.version(), cert2.version()); @@ -352,7 +352,7 @@ void tst_QSslCertificate::digest() certificate.digest(QCryptographicHash::Sha1)); } -void tst_QSslCertificate::alternateSubjectNames_data() +void tst_QSslCertificate::subjectAlternativeNames_data() { QTest::addColumn<QString>("certFilePath"); QTest::addColumn<QSsl::EncodingFormat>("format"); @@ -368,7 +368,7 @@ void tst_QSslCertificate::alternateSubjectNames_data() } } -void tst_QSslCertificate::alternateSubjectNames() +void tst_QSslCertificate::subjectAlternativeNames() { if (!QSslSocket::supportsSsl()) return; @@ -383,11 +383,11 @@ void tst_QSslCertificate::alternateSubjectNames() QByteArray fileContents = readFile(subjAltNameFilePath); - const QMultiMap<QSsl::AlternateNameEntryType, QString> altSubjectNames = - certificate.alternateSubjectNames(); + const QMultiMap<QSsl::AlternativeNameEntryType, QString> altSubjectNames = + certificate.subjectAlternativeNames(); // verify that each entry in subjAltNames is present in fileContents - QMapIterator<QSsl::AlternateNameEntryType, QString> it(altSubjectNames); + QMapIterator<QSsl::AlternativeNameEntryType, QString> it(altSubjectNames); while (it.hasNext()) { it.next(); QString type; @@ -404,7 +404,7 @@ void tst_QSslCertificate::alternateSubjectNames() // verify that each entry in fileContents is present in subjAltNames QRegExp rx(QLatin1String("(email|DNS):([^,\\r\\n]+)")); for (int pos = 0; (pos = rx.indexIn(fileContents, pos)) != -1; pos += rx.matchedLength()) { - QSsl::AlternateNameEntryType key; + QSsl::AlternativeNameEntryType key; if (rx.cap(1) == QLatin1String("email")) key = QSsl::EmailEntry; else if (rx.cap(1) == QLatin1String("DNS")) @@ -811,7 +811,7 @@ void tst_QSslCertificate::nulInSan() const QSslCertificate &cert = certList.at(0); QVERIFY(!cert.isNull()); - QMultiMap<QSsl::AlternateNameEntryType, QString> san = cert.alternateSubjectNames(); + QMultiMap<QSsl::AlternativeNameEntryType, QString> san = cert.subjectAlternativeNames(); QVERIFY(!san.isEmpty()); QString dnssan = san.value(QSsl::DnsEntry); |