QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
MAVLinkSigningKeys.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <QtCore/QByteArray>
4
#include <QtCore/QObject>
5
#include <QtQmlIntegration/QtQmlIntegration>
6
7
class
QmlObjectListModel
;
8
class
Vehicle
;
9
11
class
MAVLinkSigningKey
:
public
QObject
12
{
13
Q_OBJECT
14
QML_ELEMENT
15
QML_UNCREATABLE(
""
)
16
17
Q_PROPERTY(QString name READ name CONSTANT)
18
19
public
:
20
explicit
MAVLinkSigningKey
(
const
QString& name,
const
QByteArray& keyBytes, QObject* parent =
nullptr
);
21
22
QString name()
const
{
return
_name; }
23
QByteArray keyBytes()
const
{
return
_keyBytes; }
24
25
private
:
26
QString _name;
27
QByteArray _keyBytes;
// 32-byte SHA-256 hash
28
};
29
33
class
MAVLinkSigningKeys
:
public
QObject
34
{
35
Q_OBJECT
36
QML_ANONYMOUS
37
38
Q_PROPERTY(
QmlObjectListModel
* keys READ keys CONSTANT)
39
40
public
:
41
static
MAVLinkSigningKeys
* instance();
42
43
explicit
MAVLinkSigningKeys
(QObject* parent =
nullptr
);
44
~MAVLinkSigningKeys
()
override
;
45
46
QmlObjectListModel
* keys()
const
{
return
_keys; }
47
49
Q_INVOKABLE
void
addKey(
const
QString& name,
const
QString& passphrase);
50
52
Q_INVOKABLE
void
removeKey(
int
index);
53
55
Q_INVOKABLE
bool
isKeyInUse(
const
QString& name)
const
;
56
58
QByteArray keyBytesAt(
int
index)
const
;
59
61
QByteArray keyBytesByName(
const
QString& name)
const
;
62
64
QString keyNameAt(
int
index)
const
;
65
66
signals:
67
void
keysChanged
();
68
void
keyUsageChanged
();
69
70
private
:
71
friend
class
SigningTest
;
72
73
void
_save();
74
void
_load();
75
bool
_keyExists(
const
QString& name)
const
;
76
void
_connectVehicle(
Vehicle
* vehicle);
77
void
_disconnectVehicle(
Vehicle
* vehicle);
78
79
QmlObjectListModel
* _keys =
nullptr
;
80
81
static
constexpr
const
char
* kSettingsGroup =
"MAVLinkSigningKeys"
;
82
static
constexpr
const
char
* kKeysArrayKey =
"keys"
;
83
static
constexpr
const
char
* kNameKey =
"name"
;
84
static
constexpr
const
char
* kKeyBytesKey =
"keyBytes"
;
85
86
// Old Fact-based signing key (pre-named-keys system)
87
static
constexpr
const
char
* kOldSigningKeySettingsKey =
"mavlink2SigningKey"
;
88
};
89
MAVLinkSigningKey
A single named signing key entry.
Definition
MAVLinkSigningKeys.h:12
MAVLinkSigningKeys
Definition
MAVLinkSigningKeys.h:34
MAVLinkSigningKeys::keyUsageChanged
void keyUsageChanged()
MAVLinkSigningKeys::SigningTest
friend class SigningTest
Definition
MAVLinkSigningKeys.h:71
MAVLinkSigningKeys::keysChanged
void keysChanged()
QmlObjectListModel
Definition
QmlObjectListModel.h:6
Vehicle
Definition
Vehicle.h:82
src
MAVLink
MAVLinkSigningKeys.h
Generated by
1.9.8