32Q_NETWORK_EXPORT size_t qHash(
const QSslCertificate &key, size_t seed = 0)
noexcept;
44 OrganizationalUnitName,
47 DistinguishedNameQualifier,
52 enum class PatternSyntax {
59 explicit QSslCertificate(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem);
60 explicit QSslCertificate(
const QByteArray &data = QByteArray(), QSsl::EncodingFormat format = QSsl::Pem);
61 QSslCertificate(
const QSslCertificate &other);
62 QSslCertificate(QSslCertificate &&other)
noexcept =
default;
64 QSslCertificate &operator=(QSslCertificate &&other)
noexcept { swap(other);
return *
this; }
65 QSslCertificate &operator=(
const QSslCertificate &other);
67 void swap(QSslCertificate &other)
noexcept
70 bool operator==(
const QSslCertificate &other)
const;
71 inline bool operator!=(
const QSslCertificate &other)
const {
return !operator==(other); }
74 bool isBlacklisted()
const;
75 bool isSelfSigned()
const;
79 QByteArray version()
const;
80 QByteArray serialNumber()
const;
81 QByteArray digest(QCryptographicHash::Algorithm algorithm = QCryptographicHash::Md5)
const;
82 QStringList issuerInfo(SubjectInfo info)
const;
83 QStringList issuerInfo(
const QByteArray &attribute)
const;
84 QStringList subjectInfo(SubjectInfo info)
const;
85 QStringList subjectInfo(
const QByteArray &attribute)
const;
86 QString issuerDisplayName()
const;
87 QString subjectDisplayName()
const;
89 QList<QByteArray> subjectInfoAttributes()
const;
90 QList<QByteArray> issuerInfoAttributes()
const;
91 QMultiMap<QSsl::AlternativeNameEntryType, QString> subjectAlternativeNames()
const;
92 QDateTime effectiveDate()
const;
93 QDateTime expiryDate()
const;
95 QSslKey publicKey()
const;
97 QList<QSslCertificateExtension> extensions()
const;
99 QByteArray toPem()
const;
100 QByteArray toDer()
const;
101 QString toText()
const;
103 static QList<QSslCertificate> fromPath(
const QString &path,
104 QSsl::EncodingFormat format = QSsl::Pem,
105 PatternSyntax syntax = PatternSyntax::FixedString);
107 static QList<QSslCertificate> fromDevice(
108 QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem);
109 static QList<QSslCertificate> fromData(
110 const QByteArray &data, QSsl::EncodingFormat format = QSsl::Pem);
111 static QList<QSslCertificate> fromFile(
112 const QString &filePath, QSsl::EncodingFormat format = QSsl::Pem);
115 static QList<QSslError> verify(
const QList<QSslCertificate> &certificateChain,
const QString &hostName = QString());
116 static bool importPkcs12(QIODevice *device,
117 QSslKey *key, QSslCertificate *cert,
118 QList<QSslCertificate> *caCertificates =
nullptr,
119 const QByteArray &passPhrase=QByteArray());
122 Qt::HANDLE handle()
const;
125 QExplicitlySharedDataPointer<QSslCertificatePrivate> d;
126 friend class QTlsBackend;
128 friend Q_NETWORK_EXPORT size_t qHash(
const QSslCertificate &key, size_t seed)
noexcept;