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.
| Constante | Valor | Descripción |
|---|---|---|
QOpcUaX509CertificateSigningRequest::Encoding::PEM | 0 | Utilizar codificación PEM |
QOpcUaX509CertificateSigningRequest::Encoding::DER | 1 | Utilizar codificación DER |
enum class QOpcUaX509CertificateSigningRequest::MessageDigest
Este tipo enum especifica el resumen de mensajes que se utilizará.
| Constante | Valor | Descripción |
|---|---|---|
QOpcUaX509CertificateSigningRequest::MessageDigest::SHA256 | 0 | Utiliza 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.