En esta página

QOpcUaX509CertificateSigningRequest Class

QOpcUaX509CertificateSigningRequest crea una solicitud de firma de certificado. Más...

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

Tipos Públicos

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

Funciones Públicas

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

Descripción detallada

Esta clase está actualmente disponible como Technology Preview, y por lo tanto la API y la funcionalidad proporcionada por la clase puede estar sujeta a cambios en cualquier momento sin previo aviso.

Antes de crear realmente los datos de la solicitud de canto, debe añadirse cualquier extensión necesaria para esa solicitud específica. Las extensiones admitidas actualmente son SubjectAlternativeName, BasicConstrains, KeyUsage y 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);

Véase también QOpcUaX509ExtensionSubjectAlternativeName, QOpcUaX509ExtensionBasicConstraints, y QOpcUaX509ExtensionKeyUsage.

Documentación de tipos de miembros

enum class QOpcUaX509CertificateSigningRequest::Encoding

Este tipo enum especifica la codificación de la solicitud de firma de certificado generada.

ConstanteValorDescripción
QOpcUaX509CertificateSigningRequest::Encoding::PEM0Utilizar codificación PEM
QOpcUaX509CertificateSigningRequest::Encoding::DER1Utilizar codificación DER

enum class QOpcUaX509CertificateSigningRequest::MessageDigest

Este tipo enum especifica el resumen de mensajes que se utilizará.

ConstanteValorDescripción
QOpcUaX509CertificateSigningRequest::MessageDigest::SHA2560Utiliza el resumen de mensajes SHA256

Documentación de la función miembro

QOpcUaX509CertificateSigningRequest::QOpcUaX509CertificateSigningRequest()

Crea una solicitud de firma de certificado vacía.

[noexcept] QOpcUaX509CertificateSigningRequest::~QOpcUaX509CertificateSigningRequest()

Destruye la petición y libera todas las extensiones.

void QOpcUaX509CertificateSigningRequest::addExtension(QOpcUaX509Extension *extension)

Añade una extensión de certificado a la solicitud.

La propiedad del objeto extension se transferirá a esta clase.

Véase también QOpcUaX509ExtensionSubjectAlternativeName, QOpcUaX509ExtensionBasicConstraints, y QOpcUaX509ExtensionKeyUsage.

QByteArray QOpcUaX509CertificateSigningRequest::createRequest(const QOpcUaKeyPair &privateKey)

Crea una solicitud de firma de certificado que se enviará a una CA para su firma. La clave privada de privateKey se utiliza para firmar la solicitud. Los datos de la solicitud se devuelven como una matriz de bytes en la codificación establecida por setEncoding().

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

Crea un certificado autofirmado a partir de esta solicitud para su uso inmediato. La clave privada en privateKey se utiliza para firmar la solicitud. Se puede especificar una validez en días en validityInDays. Los datos de la solicitud se devuelven como una matriz de bytes en la codificación establecida por setEncoding().

QOpcUaX509CertificateSigningRequest::Encoding QOpcUaX509CertificateSigningRequest::encoding() const

Devuelve la codificación utilizada en la petición.

Véase también setEncoding().

QOpcUaX509CertificateSigningRequest::MessageDigest QOpcUaX509CertificateSigningRequest::messageDigest() const

Devuelve el resumen de mensajes utilizado.

Véase también setMessageDigest().

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

Establece la codificación de petición utilizada en encoding. La codificación de petición por defecto es PEM.

Véase también encoding().

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

Establece el resumen de mensajes utilizado en digest. El resumen de mensajes por defecto es SHA256.

Véase también messageDigest().

void QOpcUaX509CertificateSigningRequest::setSubject(const QOpcUaX509DistinguishedName &subject)

Establece la dirección subject para esta solicitud. Sin asunto no es posible generar la petición.

Véase también subject().

const QOpcUaX509DistinguishedName &QOpcUaX509CertificateSigningRequest::subject() const

Devuelve el asunto de esta solicitud.

Véase también 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.