1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4//
5// W A R N I N G
6// -------------
7//
8// This file is not part of the Qt API. It exists purely as an
9// implementation detail. This header file may change from version to
10// version without notice, or even be removed.
11//
12// We mean it.
13//
14
15#ifndef QOPCUAX509CERTIFICATESIGNINGREQUESTPRIVATE_H
16#define QOPCUAX509CERTIFICATESIGNINGREQUESTPRIVATE_H
17
18#include "QtOpcUa/qopcuax509extension.h"
19#include "QtOpcUa/qopcuax509distinguishedname.h"
20#include "QtOpcUa/qopcuakeypair.h"
21#include <QList>
22#include <QtOpcUa/qopcuaglobal.h>
23#include "qopcuax509certificatesigningrequest.h"
24#include "private/qglobal_p.h"
25
26QT_BEGIN_NAMESPACE
27
28class QOpcUaX509CertificateSigningRequestPrivate
29{
30public:
31 QOpcUaX509CertificateSigningRequestPrivate();
32 ~QOpcUaX509CertificateSigningRequestPrivate();
33
34 void setMessageDigest(QOpcUaX509CertificateSigningRequest::MessageDigest);
35 QOpcUaX509CertificateSigningRequest::MessageDigest messageDigest() const;
36
37 QOpcUaX509CertificateSigningRequest::Encoding encoding() const;
38 void setEncoding(QOpcUaX509CertificateSigningRequest::Encoding encoding);
39
40 const QOpcUaX509DistinguishedName& subject() const;
41 void setSubject(const QOpcUaX509DistinguishedName &subject);
42
43 void addExtension(QOpcUaX509Extension *extension);
44 QByteArray createRequest(const QOpcUaKeyPair &privateKey);
45 QByteArray createSelfSignedCertificate(const QOpcUaKeyPair &privateKey, int validityInDays);
46
47private:
48 QList<QOpcUaX509Extension *> m_extensions;
49 QOpcUaX509CertificateSigningRequest::MessageDigest m_messageDigest = QOpcUaX509CertificateSigningRequest::MessageDigest::SHA256;
50 QOpcUaX509DistinguishedName m_subject;
51 QOpcUaX509CertificateSigningRequest::Encoding m_encoding = QOpcUaX509CertificateSigningRequest::Encoding::PEM;
52
53 Q_DECLARE_PUBLIC(QOpcUaX509CertificateSigningRequest)
54 QOpcUaX509CertificateSigningRequest *q_ptr = nullptr;
55};
56
57QT_END_NAMESPACE
58
59#endif // QOPCUAX509CERTIFICATESIGNINGREQUESTPRIVATE_H
60

source code of qtopcua/src/opcua/x509/qopcuax509certificatesigningrequest_p.h