QOpcUaX509CertificateSigningRequest Class

QOpcUaX509CertificateSigningRequest 証明書署名要求を作成します。詳細...

ヘッダ #include <QOpcUaX509CertificateSigningRequest>
CMake: find_package(Qt6 REQUIRED COMPONENTS OpcUa)
target_link_libraries(mytarget PRIVATE Qt6::OpcUa)
qmake: QT += opcua

パブリックな型

enum class Encoding { PEM, DER }
enum class 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);

QOpcUaX509ExtensionSubjectAlternativeNameQOpcUaX509ExtensionBasicConstraintsQOpcUaX509ExtensionKeyUsageQOpcUaX509ExtensionKeyUsageも参照のこと

メンバー・タイプのドキュメント

enum class QOpcUaX509CertificateSigningRequest::Encoding

この列挙型は、生成される証明書署名要求のエンコーディングを指定する。

定数説明
QOpcUaX509CertificateSigningRequest::Encoding::PEM0PEM エンコーディングを使用する
QOpcUaX509CertificateSigningRequest::Encoding::DER1DER エンコーディングを使用する

enum class QOpcUaX509CertificateSigningRequest::MessageDigest

この列挙型は、使用するメッセージダイジェストを指定する。

定数説明
QOpcUaX509CertificateSigningRequest::MessageDigest::SHA2560SHA256 メッセージダイジェストを使用する

メンバ関数のドキュメント

QOpcUaX509CertificateSigningRequest::QOpcUaX509CertificateSigningRequest()

空の証明書署名要求を作成する。

[noexcept] QOpcUaX509CertificateSigningRequest::~QOpcUaX509CertificateSigningRequest()

リクエストを破棄し、すべてのエクステンションを解放する。

void QOpcUaX509CertificateSigningRequest::addExtension(QOpcUaX509Extension *extension)

証明書エクステンションをリクエストに追加する。

extension オブジェクトの所有権はこのクラスに移譲される。

QOpcUaX509ExtensionSubjectAlternativeNameQOpcUaX509ExtensionBasicConstraintsQOpcUaX509ExtensionKeyUsage 、およびQOpcUaX509ExtensionKeyUsageも参照

QByteArray QOpcUaX509CertificateSigningRequest::createRequest(const QOpcUaKeyPair &privateKey)

署名のためにCAに送る証明書署名要求を作成する。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

このリクエストのサブジェクトを返します。

setSubject()も参照

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.