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);
QOpcUaX509ExtensionSubjectAlternativeName 、QOpcUaX509ExtensionBasicConstraints 、QOpcUaX509ExtensionKeyUsage 、QOpcUaX509ExtensionKeyUsageも参照のこと 。
メンバー・タイプのドキュメント
enum class QOpcUaX509CertificateSigningRequest::Encoding
この列挙型は、生成される証明書署名要求のエンコーディングを指定する。
| 定数 | 値 | 説明 |
|---|---|---|
QOpcUaX509CertificateSigningRequest::Encoding::PEM | 0 | PEM エンコーディングを使用する |
QOpcUaX509CertificateSigningRequest::Encoding::DER | 1 | DER エンコーディングを使用する |
enum class QOpcUaX509CertificateSigningRequest::MessageDigest
この列挙型は、使用するメッセージダイジェストを指定する。
| 定数 | 値 | 説明 |
|---|---|---|
QOpcUaX509CertificateSigningRequest::MessageDigest::SHA256 | 0 | SHA256 メッセージダイジェストを使用する |
メンバ関数のドキュメント
QOpcUaX509CertificateSigningRequest::QOpcUaX509CertificateSigningRequest()
空の証明書署名要求を作成する。
[noexcept] QOpcUaX509CertificateSigningRequest::~QOpcUaX509CertificateSigningRequest()
リクエストを破棄し、すべてのエクステンションを解放する。
void QOpcUaX509CertificateSigningRequest::addExtension(QOpcUaX509Extension *extension)
証明書エクステンションをリクエストに追加する。
extension オブジェクトの所有権はこのクラスに移譲される。
QOpcUaX509ExtensionSubjectAlternativeName 、QOpcUaX509ExtensionBasicConstraints 、QOpcUaX509ExtensionKeyUsage 、および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.