Spec-Zone.ru › Qt

Класс QOpcUaX509CertificateSigningRequest

QOpcUaX509CertificateSigningRequest создает запрос на подпись сертификата. Подробнее...

Заголовок: #include <QOpcUaX509CertificateSigningRequest>
qmake: QT += opcua
С момента: Qt 5.14
  • Список всех членов, включая унаследованные

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

Перечисление Encoding { PEM, DER }
Перечисление MessageDigest { SHA256 }

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

QOpcUaX509CertificateSigningRequest()
~QOpcUaX509CertificateSigningRequest()
void addExtension(QOpcUaX509Extension *extension)
QByteArray createRequest(const QOpcUaKeyPair &privateKey)
QByteArray createSelfSignedCertificate(const QOpcUaKeyPair &privateKey, int validityInDays = 365)
QOpcUaX509CertificateSigningRequest::Encoding encoding() const
QOpcUaX509CertificateSigningRequest::MessageDigest messageDigest() const
void setEncoding(QOpcUaX509CertificateSigningRequest::Encoding encoding)
void setMessageDigest(QOpcUaX509CertificateSigningRequest::MessageDigest digest)
void setSubject(const QOpcUaX509DistinguishedName &subject)
const QOpcUaX509DistinguishedName & subject() const

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

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

Перед фактическим созданием данных запроса на подпись необходимо добавить любые необходимые для этого конкретного запроса расширения. В настоящее время поддерживаются расширения SubjectAlternativeName, BasicConstrains, KeyUsage и ExtendedKeyUsage.

// Generate key
QOpcUaKeyPair key;
key.generateRsaKey(QOpcUaKeyPair::RsaKeyStrength::Bits1024);

QOpcUaX509CertificateSigningRequest csr;

QOpcUaX509DistinguishedName dn;
dn.setEntry(QOpcUaX509DistinguishedName::Type::CommonName, "QtOpcUaViewer");
dn.setEntry(QOpcUaX509DistinguishedName::Type::CountryName, "DE");
dn.setEntry(QOpcUaX509DistinguishedName::Type::LocalityName, "Berlin");
dn.setEntry(QOpcUaX509DistinguishedName::Type::StateOrProvinceName, "Berlin");
dn.setEntry(QOpcUaX509DistinguishedName::Type::OrganizationName, "The Qt Company");
csr.setSubject(dn);

QOpcUaX509ExtensionSubjectAlternativeName *san = new QOpcUaX509ExtensionSubjectAlternativeName;
san->addData(QOpcUaX509ExtensionSubjectAlternativeName::Type::DNS, "foo.com");
san->addData(QOpcUaX509ExtensionSubjectAlternativeName::Type::DNS, "foo.com");
san->addData(QOpcUaX509ExtensionSubjectAlternativeName::Type::URI, "urn:foo.com:The%20Qt%20Company:QtOpcUaViewer");
san->setCritical(true);
csr.addExtension(san);

QOpcUaX509ExtensionBasicConstraints *bc = new QOpcUaX509ExtensionBasicConstraints;
bc->setCa(false);
bc->setCritical(true);
csr.addExtension(bc);

QOpcUaX509ExtensionKeyUsage *ku = new QOpcUaX509ExtensionKeyUsage;
ku->setCritical(true);
ku->setKeyUsage(QOpcUaX509ExtensionKeyUsage::KeyUsage::DigitalSignature);
ku->setKeyUsage(QOpcUaX509ExtensionKeyUsage::KeyUsage::NonRepudiation);
ku->setKeyUsage(QOpcUaX509ExtensionKeyUsage::KeyUsage::KeyEncipherment);
ku->setKeyUsage(QOpcUaX509ExtensionKeyUsage::KeyUsage::DataEncipherment);
ku->setKeyUsage(QOpcUaX509ExtensionKeyUsage::KeyUsage::CertificateSigning);
csr.addExtension(ku);

QOpcUaX509ExtensionExtendedKeyUsage *eku = new QOpcUaX509ExtensionExtendedKeyUsage;
eku->setCritical(true);
eku->setKeyUsage(QOpcUaX509ExtensionExtendedKeyUsage::KeyUsage::EmailProtection);
csr.addExtension(eku);

QByteArray csrData = csr.createRequest(key);

См. также QOpcUaX509ExtensionSubjectAlternativeName, QOpcUaX509ExtensionBasicConstraints, QOpcUaX509ExtensionKeyUsage и QOpcUaX509ExtensionKeyUsage.

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

Перечисление QOpcUaX509CertificateSigningRequest::Encoding

Этот тип перечисления задает кодировку сгенерированного запроса на подпись сертификата.

Константа Значение Описание
QOpcUaX509CertificateSigningRequest::Encoding::PEM 0 Использование кодировки PEM
QOpcUaX509CertificateSigningRequest::Encoding::DER 1 Использование кодировки DER

Перечисление QOpcUaX509CertificateSigningRequest::MessageDigest

Этот тип перечисления задает хеш-функцию, которая должна использоваться.

Константа Значение Описание
QOpcUaX509CertificateSigningRequest::MessageDigest::SHA256 0 Использование хеш-функции SHA256

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

QOpcUaX509CertificateSigningRequest::QOpcUaX509CertificateSigningRequest()

Создает пустой запрос на подпись сертификата.

QOpcUaX509CertificateSigningRequest::~QOpcUaX509CertificateSigningRequest()

Удаляет запрос и освобождает все расширения.

void QOpcUaX509CertificateSigningRequest::addExtension(QOpcUaX509Extension *extension)

Добавляет расширение сертификата в запрос.

Владение объектом extension будет передано этому классу.

См. также QOpcUaX509ExtensionSubjectAlternativeName, QOpcUaX509ExtensionBasicConstraints, QOpcUaX509ExtensionKeyUsage и QOpcUaX509ExtensionKeyUsage.

QByteArray QOpcUaX509CertificateSigningRequest::createRequest(const QOpcUaKeyPair &privateKey)

Создает запрос на подпись сертификата, который необходимо отправить центру сертификации. Закрытый ключ в privateKey используется для подписания запроса. Данные запроса возвращаются в виде массива байтов в кодировке, заданной setEncoding().

QByteArray QOpcUaX509CertificateSigningRequest::createSelfSignedCertificate(const QOpcUaKeyPair &privateKey, int validityInDays = 365)

Создает самоподписанный сертификат из этого запроса для немедленного использования. Закрытый ключ в privateKey используется для подписания запроса. Время действия в днях можно указать в validityInDays. Данные запроса возвращаются в виде массива байтов в кодировке, заданной setEncoding().

QOpcUaX509CertificateSigningRequest::Encoding QOpcUaX509CertificateSigningRequest::encoding() const

Возвращает используемую кодировку запроса.

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

QOpcUaX509CertificateSigningRequest::MessageDigest QOpcUaX509CertificateSigningRequest::messageDigest() const

Возвращает используемую хеш-функцию.

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

void QOpcUaX509CertificateSigningRequest::setEncoding(QOpcUaX509CertificateSigningRequest::Encoding encoding)

Устанавливает используемую кодировку запроса в encoding. По умолчанию используется кодировка PEM.

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

void QOpcUaX509CertificateSigningRequest::setMessageDigest(QOpcUaX509CertificateSigningRequest::MessageDigest digest)

Устанавливает используемую хеш-функцию в digest. По умолчанию используется SHA256.

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

void QOpcUaX509CertificateSigningRequest::setSubject(const QOpcUaX509DistinguishedName &subject)

Устанавливает subject для этого запроса. Без указания subject невозможно сгенерировать запрос.

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

const QOpcUaX509DistinguishedName &QOpcUaX509CertificateSigningRequest::subject() const

Возвращает subject этого запроса.

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

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

Spec-Zone.ru

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