QOpcUaX509CertificateSigningRequest Class
QOpcUaX509CertificateSigningRequest – Erstellen einer Zertifikatssignierungsanforderung. Mehr...
| Kopfzeile: | #include <QOpcUaX509CertificateSigningRequest> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS OpcUa) target_link_libraries(mytarget PRIVATE Qt6::OpcUa) |
| qmake: | QT += opcua |
Öffentliche Typen
| enum class | Encoding { PEM, DER } |
| enum class | MessageDigest { SHA256 } |
Öffentliche Funktionen
| 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 |
Ausführliche Beschreibung
Diese Klasse ist derzeit als Technology Preview verfügbar, daher können sich die von der Klasse bereitgestellte API und Funktionalität jederzeit ohne vorherige Ankündigung ändern.
Bevor die Singing-Request-Daten tatsächlich erstellt werden, müssen alle für diesen spezifischen Request erforderlichen Erweiterungen hinzugefügt werden. Derzeit werden folgende Erweiterungen unterstützt: „SubjectAlternativeName“, „BasicConstraints“, „KeyUsage“ und „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);Siehe auch QOpcUaX509ExtensionSubjectAlternativeName, QOpcUaX509ExtensionBasicConstraints und QOpcUaX509ExtensionKeyUsage.
Dokumentation zu Mitgliedstypen
enum class QOpcUaX509CertificateSigningRequest::Encoding
Dieser Enum-Typ legt die Kodierung der generierten Zertifikatssignierungsanforderung fest.
| Konstante | Wert | Beschreibung |
|---|---|---|
QOpcUaX509CertificateSigningRequest::Encoding::PEM | 0 | Verwendung der PEM-Kodierung |
QOpcUaX509CertificateSigningRequest::Encoding::DER | 1 | Verwendung der DER-Kodierung |
enum class QOpcUaX509CertificateSigningRequest::MessageDigest
Dieser Enum-Typ gibt den zu verwendenden Nachrichten-Digest an.
| Konstante | Wert | Beschreibung |
|---|---|---|
QOpcUaX509CertificateSigningRequest::MessageDigest::SHA256 | 0 | Verwendung des SHA256-Nachrichten-Digests |
Dokumentation der Mitgliedsfunktionen
QOpcUaX509CertificateSigningRequest::QOpcUaX509CertificateSigningRequest()
Erstellt eine leere Zertifikatssignierungsanforderung.
[noexcept] QOpcUaX509CertificateSigningRequest::~QOpcUaX509CertificateSigningRequest()
Löscht die Anfrage und gibt alle Erweiterungen frei.
void QOpcUaX509CertificateSigningRequest::addExtension(QOpcUaX509Extension *extension)
Fügt der Anfrage eine Zertifikatserweiterung hinzu.
Die Eigentumsrechte am Objekt „ extension “ werden auf diese Klasse übertragen.
Siehe auch „ QOpcUaX509ExtensionSubjectAlternativeName “, „ QOpcUaX509ExtensionBasicConstraints “ und „ QOpcUaX509ExtensionKeyUsage “.
QByteArray QOpcUaX509CertificateSigningRequest::createRequest(const QOpcUaKeyPair &privateKey)
Erstellt eine Zertifikatssignierungsanforderung, die zur Signierung an eine Zertifizierungsstelle (CA) gesendet wird. Der private Schlüssel in „ privateKey “ wird zum Signieren der Anforderung verwendet. Die Anforderungsdaten werden als Byte-Array in der durch „ setEncoding()“ festgelegten Kodierung zurückgegeben.
QByteArray QOpcUaX509CertificateSigningRequest::createSelfSignedCertificate(const QOpcUaKeyPair &privateKey, int validityInDays = 365)
Erstellt aus dieser Anfrage ein selbstsigniertes Zertifikat zur sofortigen Verwendung. Zum Signieren der Anfrage wird der private Schlüssel aus ` privateKey ` verwendet. Die Gültigkeitsdauer in Tagen kann unter ` validityInDays` angegeben werden. Die Anfragedaten werden als Byte-Array in der durch ` setEncoding()` festgelegten Kodierung zurückgegeben.
QOpcUaX509CertificateSigningRequest::Encoding QOpcUaX509CertificateSigningRequest::encoding() const
Gibt die verwendete Anfragekodierung zurück.
Siehe auch ` setEncoding()`.
QOpcUaX509CertificateSigningRequest::MessageDigest QOpcUaX509CertificateSigningRequest::messageDigest() const
Gibt den verwendeten Nachrichten-Digest zurück.
Siehe auch „ setMessageDigest()“.
void QOpcUaX509CertificateSigningRequest::setEncoding(QOpcUaX509CertificateSigningRequest::Encoding encoding)
Legt die verwendete Anforderungskodierung auf „ encoding “ fest. Die Standard-Anforderungskodierung ist PEM.
Siehe auch encoding().
void QOpcUaX509CertificateSigningRequest::setMessageDigest(QOpcUaX509CertificateSigningRequest::MessageDigest digest)
Setzt den verwendeten Nachrichten-Digest auf „ digest “. Der Standard-Nachrichten-Digest ist SHA256.
Siehe auch messageDigest().
void QOpcUaX509CertificateSigningRequest::setSubject(const QOpcUaX509DistinguishedName &subject)
Legt den „ subject “ für diese Anfrage fest. Ohne einen Betreff kann die Anfrage nicht erstellt werden.
Siehe auch subject().
const QOpcUaX509DistinguishedName &QOpcUaX509CertificateSigningRequest::subject() const
Gibt das Objekt dieser Anfrage zurück.
Siehe auch setSubject().
© 2026 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.