Coverage Report

Created: 2026-05-31 06:50

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/qtbase/src/network/ssl/qsslkey.h
Line
Count
Source
1
// Copyright (C) 2016 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
// Qt-Security score:significant reason:default
4
5
6
#ifndef QSSLKEY_H
7
#define QSSLKEY_H
8
9
#include <QtNetwork/qtnetworkglobal.h>
10
#include <QtCore/qnamespace.h>
11
#include <QtCore/qbytearray.h>
12
#include <QtCore/qshareddata.h>
13
#include <QtNetwork/qssl.h>
14
15
QT_BEGIN_NAMESPACE
16
17
18
#ifndef QT_NO_SSL
19
20
class QIODevice;
21
22
class QSslKeyPrivate;
23
class Q_NETWORK_EXPORT QSslKey
24
{
25
public:
26
    QSslKey();
27
    QSslKey(const QByteArray &encoded, QSsl::KeyAlgorithm algorithm,
28
            QSsl::EncodingFormat format = QSsl::Pem,
29
            QSsl::KeyType type = QSsl::PrivateKey,
30
            const QByteArray &passPhrase = QByteArray());
31
    QSslKey(QIODevice *device, QSsl::KeyAlgorithm algorithm,
32
            QSsl::EncodingFormat format = QSsl::Pem,
33
            QSsl::KeyType type = QSsl::PrivateKey,
34
            const QByteArray &passPhrase = QByteArray());
35
    explicit QSslKey(Qt::HANDLE handle, QSsl::KeyType type = QSsl::PrivateKey);
36
    QSslKey(const QSslKey &other);
37
    QSslKey(QSslKey &&other) noexcept;
38
    QSslKey &operator=(QSslKey &&other) noexcept;
39
    QSslKey &operator=(const QSslKey &other);
40
    ~QSslKey();
41
42
0
    void swap(QSslKey &other) noexcept { d.swap(other.d); }
43
44
    bool isNull() const;
45
    void clear();
46
47
    int length() const;
48
    QSsl::KeyType type() const;
49
    QSsl::KeyAlgorithm algorithm() const;
50
51
    QByteArray toPem(const QByteArray &passPhrase = QByteArray()) const;
52
    // ### Qt 7: drop passPhrase
53
    QByteArray toDer(const QByteArray &passPhrase = QByteArray()) const;
54
55
    Qt::HANDLE handle() const;
56
57
    bool operator==(const QSslKey &key) const;
58
0
    inline bool operator!=(const QSslKey &key) const { return !operator==(key); }
59
60
private:
61
    QExplicitlySharedDataPointer<QSslKeyPrivate> d;
62
    friend class QTlsBackend;
63
};
64
65
Q_DECLARE_SHARED(QSslKey)
66
67
#ifndef QT_NO_DEBUG_STREAM
68
class QDebug;
69
Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QSslKey &key);
70
#endif
71
72
#endif // QT_NO_SSL
73
74
QT_END_NAMESPACE
75
76
#endif