Spec-Zone.ru › Qt 5.12

Класс QSslCertificate

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

Заголовок: #include <QSslCertificate>
qmake: QT += network
С момента: Qt 4.3
  • Список всех членов, включая унаследованные
  • Устаревшие члены

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

Типы Public

перечисление SubjectInfo { Organization, CommonName, LocalityName, OrganizationalUnitName, ..., EmailAddress }

Функции Public

QSslCertificate(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)
QSslCertificate(const QByteArray &data = QByteArray(), QSsl::EncodingFormat format = QSsl::Pem)
QSslCertificate(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
QSslCertificate & operator=(QSslCertificate &&other)
QSslCertificate & operator=(const QSslCertificate &other)
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 предоставляет удобный API для работы с сертификатом X509.

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

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

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

END_OF_DOCUMENT_MARKER ```

После загрузки сертификата вы можете получить информацию о сертификате, его владельце и выдавшем его, вызвав одну из многочисленных функций-акссесоров, включая 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(QIODevice *device, QSsl::EncodingFormat format = QSsl::Pem)

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

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

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

QSslCertificate::QSslCertificate(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

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

Вы можете использовать этот дескриптор вместе с родным 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 указано, то сертификат также проверяется на соответствие указанному имени хоста.

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

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

QByteArray QSslCertificate::version() const

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

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

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

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

Оператор присваивания перемещения.

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

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

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.12/qsslcertificate.html

Spec-Zone.ru

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