Add displayName getters to QSslCertificate

Provides two convenient getter for a display name of the subject and
issuer. This simplifies cases where you just want a simple string
describing either of the two.

Change-Id: Ia5d0e058f14dae067b13ac7360e7fec4edd9ec53
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
This commit is contained in:
Allan Sandfeld Jensen 2018-07-10 14:10:26 +02:00 committed by Timur Pocheptsov
parent 23d73ae46d
commit d7fbc9ea88
2 changed files with 55 additions and 2 deletions

View File

@ -691,6 +691,56 @@ QByteArray QSslCertificatePrivate::subjectInfoToString(QSslCertificate::SubjectI
return str;
}
/*!
\since 5.12
Returns a name that describes the issuer. It returns the QSslCertificate::CommonName
if available, otherwise falls back to the first QSslCertificate::Organization or the
first QSslCertificate::OrganizationalUnitName.
\sa issuerInfo()
*/
QString QSslCertificate::issuerDisplayName() const
{
QStringList names;
names = issuerInfo(QSslCertificate::CommonName);
if (!names.isEmpty())
return names.first();
names = issuerInfo(QSslCertificate::Organization);
if (!names.isEmpty())
return names.first();
names = issuerInfo(QSslCertificate::OrganizationalUnitName);
if (!names.isEmpty())
return names.first();
return QString();
}
/*!
\since 5.12
Returns a name that describes the subject. It returns the QSslCertificate::CommonName
if available, otherwise falls back to the first QSslCertificate::Organization or the
first QSslCertificate::OrganizationalUnitName.
\sa subjectInfo()
*/
QString QSslCertificate::subjectDisplayName() const
{
QStringList names;
names = subjectInfo(QSslCertificate::CommonName);
if (!names.isEmpty())
return names.first();
names = subjectInfo(QSslCertificate::Organization);
if (!names.isEmpty())
return names.first();
names = subjectInfo(QSslCertificate::OrganizationalUnitName);
if (!names.isEmpty())
return names.first();
return QString();
}
/*!
\fn uint qHash(const QSslCertificate &key, uint seed)
@ -708,8 +758,8 @@ QDebug operator<<(QDebug debug, const QSslCertificate &certificate)
<< certificate.version()
<< ", " << certificate.serialNumber()
<< ", " << certificate.digest().toBase64()
<< ", " << certificate.issuerInfo(QSslCertificate::Organization)
<< ", " << certificate.subjectInfo(QSslCertificate::Organization)
<< ", " << certificate.issuerDisplayName()
<< ", " << certificate.subjectDisplayName()
<< ", " << certificate.subjectAlternativeNames()
#ifndef QT_NO_DATESTRING
<< ", " << certificate.effectiveDate()

View File

@ -120,6 +120,9 @@ public:
QStringList issuerInfo(const QByteArray &attribute) const;
QStringList subjectInfo(SubjectInfo info) const;
QStringList subjectInfo(const QByteArray &attribute) const;
QString issuerDisplayName() const;
QString subjectDisplayName() const;
QList<QByteArray> subjectInfoAttributes() const;
QList<QByteArray> issuerInfoAttributes() const;
#if QT_DEPRECATED_SINCE(5,0)