Spec-Zone.ru › Qt 5.14

Класс QSslCertificate

Класс QSslCertificate предоставляет удобный API для сертификата X509. Подробнее...

Заголовок: #include <QSslCertificate>
qmake: QT += network
С момента: Qt 4.3

Этот класс был представлен в Qt 4.3.

  • Список всех членов, включая наследуемые
  • Устаревшие члены

Примечание: Все функции в этом классе являются повторно входящими.

Типы публичного доступа

Перечисление SubjectInfo { Организация, Общее имя, Название места, Название организационной единицы, Страна, …, Адрес электронной почты }

Функции публичного доступа

QSslCertificate(const QSslCertificate &other)
QSslCertificate(const QByteArray &data = QByteArray(), QSsl::EncodingFormat format = QSsl::Pem)
QSslCertificate(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)
QSslCertificate & operator=(const QSslCertificate &other)
~QSslCertificate()
void clear()
QByteArray digest(QCryptographicHash::Algorithm algorithm = QCryptographicHash::Md5) const
QDateTime effectiveDate() const
QDateTime expiryDate() const
QList<QSslCertificateExtension> extensions() const
Qt::HANDLE handle() const
bool isBlacklisted() const
bool isNull() const
bool isSelfSigned() const
QString issuerDisplayName() const
QStringList issuerInfo(QSslCertificate::SubjectInfo subject) const
QStringList issuerInfo(const QByteArray &attribute) const
QList<QByteArray> issuerInfoAttributes() const
QSslKey publicKey() const
QByteArray serialNumber() const
QMultiMap<QSsl::AlternativeNameEntryType, QString> subjectAlternativeNames() const
QString subjectDisplayName() const
QStringList subjectInfo(QSslCertificate::SubjectInfo subject) const
QStringList subjectInfo(const QByteArray &attribute) const
QList<QByteArray> subjectInfoAttributes() const
void swap(QSslCertificate &other)
QByteArray toDer() const
QByteArray toPem() const
QString toText() const
QByteArray version() const
bool operator!=(const QSslCertificate &other) const
bool operator==(const QSslCertificate &other) const

Статические публичные члены

QList<QSslCertificate> fromData(const QByteArray &data, QSsl::EncodingFormat format = QSsl::Pem)
QList<QSslCertificate> fromDevice(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)
QList<QSslCertificate> fromPath(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QRegExp::PatternSyntax syntax = QRegExp::FixedString)
bool importPkcs12(QIODevice *device, QSslKey *key, QSslCertificate *certificate, QList<QSslCertificate> *caCertificates = nullptr, const QByteArray &passPhrase = QByteArray())
QList<QSslError> verify(QList<QSslCertificate> certificateChain, const QString &hostName = QString())

Подробное описание

QSslCertificate хранит сертификат X509 и обычно используется для проверки подлинности и хранения информации о локальном хосте, удалённом подключённом узле или доверенном третьем лице Сертификационном центре.

Существует множество способов создания объекта QSslCertificate. Наиболее распространённым является вызов QSslSocket::peerCertificate(), который возвращает объект QSslCertificate, или QSslSocket::peerCertificateChain(), который возвращает список таких объектов. Также можно загрузить сертификаты из DER (бинарного) или PEM (Base64) кодированного набора, как правило, хранящегося в одном или нескольких локальных файлах или в ресурсе Qt.

Можно вызвать isNull(), чтобы проверить, является ли ваш сертификат нулевым. По умолчанию QSslCertificate создаёт нулевой сертификат. Нулевой сертификат недействителен, но недействительный сертификат не обязательно является нулевым. Если вы хотите сбросить всё содержимое сертификата, вызовите clear().

После загрузки сертификата можно получить информацию о сертификате, его владельце и его издателе, вызвав одну из многочисленных функций-аксессоров, включая version(), serialNumber(), issuerInfo() и subjectInfo(). Можно вызвать effectiveDate() и expiryDate(), чтобы проверить, когда сертификат начинает действовать и когда он истекает. Функция publicKey() возвращает открытый ключ владельца сертификата в виде QSslKey. Можно вызвать issuerInfo() или subjectInfo(), чтобы получить подробную информацию об издателе сертификата и его владельце.

Внутри QSslCertificate хранится как структура X509. Доступ к этому дескриптору можно получить, вызвав handle(), но результаты, скорее всего, не будут переносимыми.

См. также QSslSocket, QSslKey, QSslCipher и QSslError.

Документация по типам членов

enum QSslCertificate::SubjectInfo

Описывает ключи, которые можно передать в QSslCertificate::issuerInfo() или QSslCertificate::subjectInfo() для получения информации о выпустившем сертификат или субъекте.

Константа Значение Описание
QSslCertificate::Organization 0 "O" Название организации.
QSslCertificate::CommonName 1 "CN" Общее имя; чаще всего используется для хранения имени хоста.
QSslCertificate::LocalityName 2 "L" Местоположение.
QSslCertificate::OrganizationalUnitName 3 "OU" Имя организационной единицы.
QSslCertificate::CountryName 4 "C" Страна.
QSslCertificate::StateOrProvinceName 5 "ST" Штат или провинция.
QSslCertificate::DistinguishedNameQualifier 6 Квалификатор имени.
QSslCertificate::SerialNumber 7 Серийный номер сертификата.
QSslCertificate::EmailAddress 8 Электронный адрес, связанный с сертификатом.

Документация по функциям-членам

QSslCertificate::QSslCertificate(const QSslCertificate &other)

Создаёт идентичную копию other.

QSslCertificate::QSslCertificate(const QByteArray &data = QByteArray(), QSsl::EncodingFormat format = QSsl::Pem)

Создаёт QSslCertificate, анализируя закодированные в формате format данные data и используя первый найденный сертификат. Позже можно вызвать isNull(), чтобы проверить, содержались ли в data данные сертификата, и загрузился ли он успешно.

QSslCertificate::QSslCertificate(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)

Создаёт QSslCertificate, считывая данные, закодированные в формате format, из device и используя первый найденный сертификат. Позже можно вызвать isNull(), чтобы проверить, содержались ли в device данные сертификата, и загрузился ли он успешно.

QSslCertificate &QSslCertificate::operator=(const QSslCertificate &other)

Копирует содержимое other в этот сертификат, делая оба сертификата идентичными.

QSslCertificate::~QSslCertificate()

Уничтожает QSslCertificate.

void QSslCertificate::clear()

Очищает содержимое этого сертификата, делая его пустым.

См. также isNull().

QByteArray QSslCertificate::digest(QCryptographicHash::Algorithm algorithm = QCryptographicHash::Md5) const

Возвращает криптографический дайджест этого сертификата. По умолчанию генерируется дайджест MD5, но можно указать и другой алгоритм algorithm.

QDateTime QSslCertificate::effectiveDate() const

Возвращает дату и время, когда сертификат становится действительным, или пустой QDateTime, если это пустой сертификат.

См. также expiryDate().

QDateTime QSslCertificate::expiryDate() const

Возвращает дату и время, когда сертификат истекает, или пустой QDateTime, если это пустой сертификат.

См. также effectiveDate().

QList<QSslCertificateExtension> QSslCertificate::extensions() const

Возвращает список, содержащий расширения X509 этого сертификата.

Функция была добавлена в Qt 5.0.

[static] QList<QSslCertificate> QSslCertificate::fromData(const QByteArray &data, QSsl::EncodingFormat format = QSsl::Pem)

Ищет и анализирует все сертификаты в data, закодированные в указанном формате format, и возвращает их в списке сертификатов.

См. также fromDevice().

[static] QList<QSslCertificate> QSslCertificate::fromDevice(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)

Ищет и анализирует все сертификаты в device, закодированные в указанном формате format, и возвращает их в списке сертификатов.

См. также fromData().

[static] QList<QSslCertificate> QSslCertificate::fromPath(const QString &path, QSsl::EncodingFormat format = QSsl::Pem, QRegExp::PatternSyntax syntax = QRegExp::FixedString)

Ищет все файлы в path с сертификатами, закодированными в указанном формате format, и возвращает их в списке. path должен быть именем файла или шаблоном, совпадающим с одним или несколькими файлами, как указано в syntax.

Пример:

const auto certs = QSslCertificate::fromPath("C:/ssl/certificate.*.pem",
                                             QSsl::Pem, QRegExp::Wildcard);
for (const QSslCertificate &cert : certs) {
    qDebug() << cert.issuerInfo(QSslCertificate::Organization);
}

См. также fromData().

Qt::HANDLE QSslCertificate::handle() const

Возвращает указатель на системную ручку сертификата, если она есть, иначе nullptr.

Эту ручку можно использовать совместно с системными API для доступа к дополнительной информации о сертификате.

Предупреждение: Использование этой функции имеет высокую вероятность быть непереносимым, и её возвращаемое значение может отличаться в зависимости от платформы или измениться в следующих версиях.

[static] bool QSslCertificate::importPkcs12(QIODevice *device, QSslKey *key, QSslCertificate *certificate, QList<QSslCertificate> *caCertificates = nullptr, const QByteArray &passPhrase = QByteArray())

Импортирует файл PKCS#12 (pfx) из указанного device. Файл PKCS#12 представляет собой набор, который может содержать несколько сертификатов и ключей. Этот метод считывает один key, его certificate и любые связанные caCertificates из набора. Если задана passPhrase, она будет использована для расшифровки набора. Возвращает true если файл PKCS#12 был успешно загружен.

Примечание: device должен быть открыт и готов к чтению.

Функция была добавлена в Qt 5.4.

bool QSslCertificate::isBlacklisted() const

Возвращает true если этот сертификат занесён в чёрный список; в противном случае возвращает false.

См. также isNull().

bool QSslCertificate::isNull() const

Возвращает true если это пустой сертификат (т.е., сертификат без содержимого); в противном случае возвращает false.

По умолчанию QSslCertificate создаёт пустой сертификат.

См. также clear().

bool QSslCertificate::isSelfSigned() const

Возвращает true если этот сертификат самоподписанный; в противном случае возвращает false.

Сертификат считается самоподписанным, если его эмитент и субъект идентичны.

Функция была добавлена в Qt 5.4.

QString QSslCertificate::issuerDisplayName() const

Возвращает имя, описывающее эмитента. Возвращает QSslCertificate::CommonName, если доступно, в противном случае возвращает первое QSslCertificate::Organization или первое QSslCertificate::OrganizationalUnitName.

Функция была добавлена в Qt 5.12.

См. также issuerInfo().

QStringList QSslCertificate::issuerInfo(QSslCertificate::SubjectInfo subject) const

Возвращает информацию об издателе для subject из сертификата или пустой список, если для subject нет информации в сертификате. Может быть несколько записей каждого типа.

См. также subjectInfo().

QStringList QSslCertificate::issuerInfo(const QByteArray &attribute) const

Возвращает информацию об издателе для attribute из сертификата или пустой список, если для attribute нет информации в сертификате. Может быть несколько записей для атрибута.

См. также subjectInfo().

QList<QByteArray> QSslCertificate::issuerInfoAttributes() const

Возвращает список атрибутов, имеющих значения в информации об издателе этого сертификата. Информацию, связанную с заданным атрибутом, можно получить с помощью метода issuerInfo(). Обратите внимание, что этот список может содержать OID для любых элементов, которые не известны обратному вызову SSL.

Функция была добавлена в Qt 5.0.

См. также subjectInfo().

QSslKey QSslCertificate::publicKey() const

Возвращает открытый ключ субъекта сертификата.

QByteArray QSslCertificate::serialNumber() const

Возвращает строку серийного номера сертификата в шестнадцатеричном формате.

QMultiMap<QSsl::AlternativeNameEntryType, QString> QSslCertificate::subjectAlternativeNames() const

Возвращает список альтернативных имён субъекта для этого сертификата. Альтернативные имена обычно содержат имена хостов, необязательно с подстановкой, которые допустимы для этого сертификата.

Эти имена проверяются по имени хоста подключённого узла, если либо информация о субъекте для CommonName не определяет корректное имя хоста, либо имя информации о субъекте не совпадает с именем хоста узла.

См. также subjectInfo().

QString QSslCertificate::subjectDisplayName() const

Возвращает имя, описывающее субъекта. Возвращает QSslCertificate::CommonName, если доступно, в противном случае возвращает первое QSslCertificate::Organization или первое QSslCertificate::OrganizationalUnitName.

Функция была добавлена в Qt 5.12.

См. также subjectInfo().

QStringList QSslCertificate::subjectInfo(QSslCertificate::SubjectInfo subject) const

Возвращает информацию для subject или пустой список, если для subject нет информации в сертификате. Может быть несколько записей каждого типа.

См. также issuerInfo().

QStringList QSslCertificate::subjectInfo(const QByteArray &attribute) const

Возвращает информацию о субъекте для attribute, или пустой список, если для attribute нет информации в сертификате. Может быть несколько записей для атрибута.

См. также issuerInfo().

QList<QByteArray> QSslCertificate::subjectInfoAttributes() const

Возвращает список атрибутов, имеющих значения в информации о субъекте этого сертификата. Информацию, связанную с заданным атрибутом, можно получить с помощью метода subjectInfo(). Обратите внимание, что этот список может содержать OID для любых элементов, которые не известны обратному вызову SSL.

Функция была добавлена в Qt 5.0.

См. также subjectInfo().

void QSslCertificate::swap(QSslCertificate &other)

Меняет местами этот экземпляр сертификата с other. Эта функция очень быстрая и никогда не завершается с ошибкой.

Функция была добавлена в Qt 5.0.

QByteArray QSslCertificate::toDer() const

Возвращает этот сертификат, преобразованный в двоичное представление DER.

QByteArray QSslCertificate::toPem() const

Возвращает этот сертификат, преобразованный в представление PEM (Base64).

QString QSslCertificate::toText() const

Возвращает этот сертификат, преобразованный в удобочитаемое текстовое представление.

Функция была добавлена в Qt 5.0.

[static] QList<QSslError> QSslCertificate::verify(QList<QSslCertificate> certificateChain, const QString &hostName = QString())

Проверяет цепочку сертификатов. Цепочка для проверки передаётся в параметре certificateChain. Первый сертификат в списке должен быть лист-сертификатом цепочки, подлежащей проверке. Если hostName указана, то сертификат также проверяется на соответствие указанному имени хоста.

Обратите внимание, что корневой (CA) сертификат не должен включаться в список, подлежащий проверке; он будет автоматически получен из списка CA, заданного QSslSocket::defaultCaCertificates(), или, если это возможно, загружен по требованию в Unix.

Функция была добавлена в Qt 5.0.

QByteArray QSslCertificate::version() const

Возвращает строку версии сертификата.

bool QSslCertificate::operator!=(const QSslCertificate &other) const

Возвращает true , если этот сертификат не такой же, как other; в противном случае возвращает false.

bool QSslCertificate::operator==(const QSslCertificate &other) const

Возвращает true , если этот сертификат такой же, как other; в противном случае возвращает false.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qsslcertificate.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API