Use odd nonces
This commit is contained in:
@@ -43,10 +43,9 @@ void WSServer::processTextMessage(QString message)
|
|||||||
QWebSocket *pClient = qobject_cast<QWebSocket *>(sender());
|
QWebSocket *pClient = qobject_cast<QWebSocket *>(sender());
|
||||||
if (m_debug)
|
if (m_debug)
|
||||||
qDebug() << "Message received:" << message;
|
qDebug() << "Message received:" << message;
|
||||||
|
|
||||||
if (pClient) {
|
if (pClient) {
|
||||||
AppDataServer::processMessage(message, m_mainWindow, pClient);
|
AppDataServer::processMessage(message, m_mainWindow, pClient);
|
||||||
|
|
||||||
// pClient->sendTextMessage(AppDataServer::encryptOutgoing(json.toJson()));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,11 +128,6 @@ void AppDataServer::connectAppDialog(QWidget* parent) {
|
|||||||
con.lblRemoteNonce->setText(AppDataServer::getNonceHex(NonceType::REMOTE));
|
con.lblRemoteNonce->setText(AppDataServer::getNonceHex(NonceType::REMOTE));
|
||||||
con.lblLocalNonce->setText(AppDataServer::getNonceHex(NonceType::LOCAL));
|
con.lblLocalNonce->setText(AppDataServer::getNonceHex(NonceType::LOCAL));
|
||||||
|
|
||||||
QObject::connect(con.btnDisconnect, &QPushButton::clicked, [=]() {
|
|
||||||
AppDataServer::saveNonceHex(NonceType::REMOTE, QString("00").repeated(24));
|
|
||||||
AppDataServer::saveNonceHex(NonceType::LOCAL, QString("00").repeated(24));
|
|
||||||
});
|
|
||||||
|
|
||||||
d.exec();
|
d.exec();
|
||||||
tempSecret = "";
|
tempSecret = "";
|
||||||
}
|
}
|
||||||
@@ -142,7 +136,9 @@ QString AppDataServer::getNonceHex(NonceType nt) {
|
|||||||
QSettings s;
|
QSettings s;
|
||||||
QString hex;
|
QString hex;
|
||||||
if (nt == NonceType::LOCAL) {
|
if (nt == NonceType::LOCAL) {
|
||||||
hex = s.value("mobileapp/localnonce", QString("00").repeated(crypto_secretbox_NONCEBYTES)).toString();
|
// The default local nonce starts from 1, to always keep it odd
|
||||||
|
auto defaultLocalNonce = "01" + QString("00").repeated(crypto_secretbox_NONCEBYTES-1);
|
||||||
|
hex = s.value("mobileapp/localnonce", defaultLocalNonce).toString();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
hex = s.value("mobileapp/remotenonce", QString("00").repeated(crypto_secretbox_NONCEBYTES)).toString();
|
hex = s.value("mobileapp/remotenonce", QString("00").repeated(crypto_secretbox_NONCEBYTES)).toString();
|
||||||
@@ -311,10 +307,9 @@ void AppDataServer::processMessage(QString message, MainWindow* mainWindow, QWeb
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// This is a new connection. So, update the nonces and the secret
|
// This is a new connection. So, update the remote nonce (to accept any nonce) and the secret
|
||||||
saveNewSecret(tempSecret);
|
saveNewSecret(tempSecret);
|
||||||
AppDataServer::saveNonceHex(NonceType::REMOTE, QString("00").repeated(24));
|
AppDataServer::saveNonceHex(NonceType::REMOTE, QString("00").repeated(24));
|
||||||
AppDataServer::saveNonceHex(NonceType::LOCAL, QString("00").repeated(24));
|
|
||||||
|
|
||||||
// Fall through to processDecryptedMessage
|
// Fall through to processDecryptedMessage
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user