QOpcUaX509CertificateSigningRequest Class

QOpcUaX509인증서 서명 요청 인증서 서명 요청을 만듭니다. 더 보기...

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

공용 타입

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

공용 함수

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

상세 설명

이 클래스는 현재 기술 미리보기로 제공되고 있으며, 따라서 이 클래스에서 제공하는 API와 기능은 사전 통지 없이 언제든지 변경될 수 있습니다.

실제로 싱잉 요청 데이터를 생성하기 전에 해당 특정 요청에 필요한 확장을 추가해야 합니다. 현재 지원되는 확장은 SubjectAlternativeName, BasicConstrains, KeyUsage 및 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);

QOpcUaX509ExtensionSubjectAlternativeName, QOpcUaX509ExtensionBasicConstraints, QOpcUaX509ExtensionKeyUsage, QOpcUaX509ExtensionKeyUsage참조하세요 .

멤버 유형 문서

enum class QOpcUaX509CertificateSigningRequest::Encoding

이 열거형 유형은 생성된 인증서 서명 요청의 인코딩을 지정합니다.

상수설명
QOpcUaX509CertificateSigningRequest::Encoding::PEM0PEM 인코딩 사용
QOpcUaX509CertificateSigningRequest::Encoding::DER1DER 인코딩 사용

enum class QOpcUaX509CertificateSigningRequest::MessageDigest

이 열거형 유형은 사용할 메시지 다이제스트를 지정합니다.

Constant설명
QOpcUaX509CertificateSigningRequest::MessageDigest::SHA2560SHA256 메시지 다이제스트 사용

멤버 함수 문서

QOpcUaX509CertificateSigningRequest::QOpcUaX509CertificateSigningRequest()

빈 인증서 서명 요청을 만듭니다.

[noexcept] QOpcUaX509CertificateSigningRequest::~QOpcUaX509CertificateSigningRequest()

요청을 삭제하고 모든 확장 프로그램을 해제합니다.

void QOpcUaX509CertificateSigningRequest::addExtension(QOpcUaX509Extension *extension)

요청에 인증서 확장을 추가합니다.

extension 개체의 소유권이 이 클래스로 이전됩니다.

QOpcUaX509ExtensionSubjectAlternativeName, QOpcUaX509ExtensionBasicConstraints, QOpcUaX509ExtensionKeyUsage, QOpcUaX509ExtensionKeyUsage도 참조하세요 .

QByteArray QOpcUaX509CertificateSigningRequest::createRequest(const QOpcUaKeyPair &privateKey)

서명을 위해 CA에 인증서 서명 요청을 생성합니다. privateKey 의 개인 키는 요청을 서명하는 데 사용됩니다. 요청 데이터는 setEncoding()에서 설정한 인코딩의 바이트 배열로 반환됩니다.

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

즉시 사용할 수 있도록 이 요청에서 자체 서명된 인증서를 만듭니다. privateKey 의 개인 키는 요청에 서명하는 데 사용됩니다. 유효기간은 validityInDays 에서 일 단위로 지정할 수 있습니다. 요청 데이터는 setEncoding()에서 설정한 인코딩으로 바이트 배열로 반환됩니다.

QOpcUaX509CertificateSigningRequest::Encoding QOpcUaX509CertificateSigningRequest::encoding() const

사용된 요청 인코딩을 반환합니다.

setEncoding()도 참조하세요 .

QOpcUaX509CertificateSigningRequest::MessageDigest QOpcUaX509CertificateSigningRequest::messageDigest() const

사용된 메시지 다이제스트를 반환합니다.

setMessageDigest()도 참조하세요 .

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

사용되는 요청 인코딩을 encoding 으로 설정합니다. 기본 요청 인코딩은 PEM입니다.

encoding()도 참조하세요 .

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

사용되는 메시지 다이제스트를 digest 로 설정합니다. 기본 메시지 다이제스트는 SHA256입니다.

messageDigest()도 참조하세요 .

void QOpcUaX509CertificateSigningRequest::setSubject(const QOpcUaX509DistinguishedName &subject)

이 요청에 대해 subject 을 설정합니다. 제목이 없으면 요청을 생성할 수 없습니다.

subject()도 참조하세요 .

const QOpcUaX509DistinguishedName &QOpcUaX509CertificateSigningRequest::subject() const

이 요청의 주제를 반환합니다.

setSubject()도 참조하세요 .

© 2025 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.