Sur cette page

QOpcUaX509CertificateSigningRequest Class

QOpcUaX509CertificateSigningRequest crée une demande de signature de certificat. Plus d'informations...

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 tant qu'aperçu technologique et, par conséquent, l'API et les fonctionnalités fournies par la classe peuvent être modifiées à tout moment sans préavis.

Avant de créer les données de la demande de chant, toute extension nécessaire pour cette demande 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 de la constante
QOpcUaX509CertificateSigningRequest::Encoding::PEM0Utilisation de l'encodage PEM
QOpcUaX509CertificateSigningRequest::Encoding::DER1Utilisation de l'encodage DER

enum class QOpcUaX509CertificateSigningRequest::MessageDigest

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

ConstanteValeurDescription de la constante
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()

Détruit la demande et libère toutes les extensions.

void QOpcUaX509CertificateSigningRequest::addExtension(QOpcUaX509Extension *extension)

Ajoute une extension de certificat à la demande.

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

Voir aussi QOpcUaX509ExtensionSubjectAlternativeName, QOpcUaX509ExtensionBasicConstraints, et QOpcUaX509ExtensionKeyUsage.

QByteArray QOpcUaX509CertificateSigningRequest::createRequest(const QOpcUaKeyPair &privateKey)

Crée une demande de signature de certificat à envoyer à une autorité de certification pour signature. La clé privée de privateKey est utilisée pour signer la demande. Les données de la demande sont renvoyées sous la forme d'un tableau d'octets dans le codage défini par setEncoding().

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

Crée un certificat auto-signé à partir de cette demande pour une utilisation immédiate. La clé privée de privateKey est utilisée pour signer la demande. Une validité en jours peut être spécifiée dans validityInDays. Les données de la demande sont renvoyées sous la forme d'un tableau d'octets dans le codage défini par setEncoding().

QOpcUaX509CertificateSigningRequest::Encoding QOpcUaX509CertificateSigningRequest::encoding() const

Renvoie l'encodage de la requête utilisé.

Voir aussi setEncoding().

QOpcUaX509CertificateSigningRequest::MessageDigest QOpcUaX509CertificateSigningRequest::messageDigest() const

Renvoie le condensé de message utilisé.

Voir aussi setMessageDigest().

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

Définit l'encodage de requête utilisé à encoding. L'encodage de requête par défaut est PEM.

Voir aussi encoding().

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

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

Voir aussi messageDigest().

void QOpcUaX509CertificateSigningRequest::setSubject(const QOpcUaX509DistinguishedName &subject)

Définit l'adresse subject pour cette demande. Sans sujet, il n'est pas possible de générer la demande.

Voir aussi subject().

const QOpcUaX509DistinguishedName &QOpcUaX509CertificateSigningRequest::subject() const

Renvoie le sujet de cette demande.

Voir aussi 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.