Sur cette page

QOpcUaX509CertificateSigningRequest Class

QOpcUaX509CertificateSigningRequest : créer une demande de signature de certificat. En savoir plus...

En-tête : #include <QOpcUaX509CertificateSigningRequest>
CMake : find_package(Qt6 REQUIRED COMPONENTS OpcUa)
target_link_libraries(mytarget PRIVATE Qt6::OpcUa)
qmake : QT += opcua

Types publics

enum class Encoding { PEM, DER }
enum class MessageDigest { SHA256 }

Fonctions publiques

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

Description détaillée

Cette classe est actuellement disponible en avant-première technologique ; par conséquent, l’API et les fonctionnalités fournies par cette classe sont susceptibles d’être modifiées à tout moment sans préavis.

Avant de créer les données de la requête de signature, toute extension nécessaire à cette requête spécifique doit être ajoutée. Les extensions actuellement prises en charge sont SubjectAlternativeName, BasicConstrains, KeyUsage et 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);

Voir également QOpcUaX509ExtensionSubjectAlternativeName, QOpcUaX509ExtensionBasicConstraints et QOpcUaX509ExtensionKeyUsage.

Documentation sur les types de membres

enum class QOpcUaX509CertificateSigningRequest::Encoding

Ce type d'énumération spécifie l'encodage de la demande de signature de certificat générée.

ConstanteValeurDescription
QOpcUaX509CertificateSigningRequest::Encoding::PEM0Utilisation du codage PEM
QOpcUaX509CertificateSigningRequest::Encoding::DER1Utilisation du codage DER

enum class QOpcUaX509CertificateSigningRequest::MessageDigest

Ce type d'énumération spécifie le condensé de message à utiliser.

ConstanteValeurDescription
QOpcUaX509CertificateSigningRequest::MessageDigest::SHA2560Utilisation du condensé de message SHA256

Documentation des fonctions membres

QOpcUaX509CertificateSigningRequest::QOpcUaX509CertificateSigningRequest()

Crée une demande de signature de certificat vide.

[noexcept] QOpcUaX509CertificateSigningRequest::~QOpcUaX509CertificateSigningRequest()

Supprime la requête et libère toutes les extensions.

void QOpcUaX509CertificateSigningRequest::addExtension(QOpcUaX509Extension *extension)

Ajoute une extension de certificat à la requête.

La propriété de l'objet ` extension ` sera transférée à cette classe.

Voir également QOpcUaX509ExtensionSubjectAlternativeName, QOpcUaX509ExtensionBasicConstraints et QOpcUaX509ExtensionKeyUsage.

QByteArray QOpcUaX509CertificateSigningRequest::createRequest(const QOpcUaKeyPair &privateKey)

Crée une demande de signature de certificat destinée à être envoyée à une autorité de certification (CA) pour signature. La clé privée contenue dans ` privateKey ` est utilisée pour signer la demande. Les données de la demande sont renvoyées sous forme de tableau d'octets, dans le format défini par la fonction ` setEncoding()`.

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

Crée un certificat auto-signé à partir de cette requête, prêt à l'emploi. La clé privée contenue dans ` privateKey ` est utilisée pour signer la requête. La durée de validité, exprimée en jours, peut être spécifiée dans ` validityInDays`. Les données de la requête sont renvoyées sous forme de tableau d'octets, selon le codage défini par la fonction ` setEncoding()`.

QOpcUaX509CertificateSigningRequest::Encoding QOpcUaX509CertificateSigningRequest::encoding() const

Renvoie le format d'encodage utilisé pour la requête.

Voir également setEncoding().

QOpcUaX509CertificateSigningRequest::MessageDigest QOpcUaX509CertificateSigningRequest::messageDigest() const

Renvoie le résumé du message utilisé.

Voir également setMessageDigest().

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

Définit le format d'encodage de la requête utilisé sur « encoding ». Le format d'encodage par défaut est PEM.

Voir également encoding().

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

Définit le résumé de message utilisé sur « digest ». Le résumé de message par défaut est SHA256.

Voir également messageDigest().

void QOpcUaX509CertificateSigningRequest::setSubject(const QOpcUaX509DistinguishedName &subject)

Définit l'subject de cette requête. Sans sujet, il n'est pas possible de générer la requête.

Voir également subject().

const QOpcUaX509DistinguishedName &QOpcUaX509CertificateSigningRequest::subject() const

Renvoie l'objet de cette requête.

Voir également 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.