qTox
Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
src
core
toxpk.cpp
Go to the documentation of this file.
1
/*
2
Copyright © 2019 by The qTox Project Contributors
3
4
This file is part of qTox, a Qt-based graphical interface for Tox.
5
6
qTox is libre software: you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation, either version 3 of the License, or
9
(at your option) any later version.
10
11
qTox is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with qTox. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#include "
contactid.h
"
21
#include "
toxpk.h
"
22
23
#include <tox/tox.h>
24
25
#include <QByteArray>
26
#include <QString>
27
28
#include <cassert>
29
30
#define PUBLIC_KEY_HEX_CHARS (2 * TOX_PUBLIC_KEY_SIZE)
31
40
ToxPk::ToxPk
()
41
:
ContactId
()
42
{
43
}
44
49
ToxPk::ToxPk
(
const
ToxPk
& other)
50
:
ContactId
(other.id)
51
{
52
}
53
59
ToxPk::ToxPk
(
const
QByteArray& rawId)
60
:
ContactId
([&rawId](){
61
assert(rawId.length() == TOX_PUBLIC_KEY_SIZE);
62
return
rawId;}())
63
{
64
}
65
71
ToxPk::ToxPk
(
const
uint8_t* rawId)
72
:
ContactId
(QByteArray(reinterpret_cast<const char*>(rawId), TOX_PUBLIC_KEY_SIZE))
73
{
74
}
75
83
ToxPk::ToxPk
(
const
QString& pk)
84
:
ContactId
([&pk](){
85
if
(pk.length() ==
PUBLIC_KEY_HEX_CHARS
) {
86
return
QByteArray::fromHex(pk.toLatin1());
87
}
else
{
88
assert(!
"ToxPk constructed with invalid length string"
);
89
return
QByteArray();
// invalid pk string
90
}
91
}())
92
{
93
}
94
99
int
ToxPk::getSize
()
const
100
{
101
return
TOX_PUBLIC_KEY_SIZE;
102
}
ToxPk::ToxPk
ToxPk()
The default constructor. Creates an empty Tox key.
Definition:
toxpk.cpp:40
ToxPk::getSize
int getSize() const override
Get size of public key in bytes.
Definition:
toxpk.cpp:99
PUBLIC_KEY_HEX_CHARS
#define PUBLIC_KEY_HEX_CHARS
Definition:
toxpk.cpp:30
toxpk.h
contactid.h
ToxPk
This class represents a Tox Public Key, which is a part of Tox ID.
Definition:
toxpk.h:26
ContactId
Definition:
contactid.h:28
Generated by
1.8.17