From 9a77f4b6452a042ac880e677deef7618594aefa2 Mon Sep 17 00:00:00 2001 From: adityapk00 Date: Tue, 29 Jan 2019 17:39:14 -0800 Subject: [PATCH] Update remote nonce only if decryption succeeds --- src/websockets.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/websockets.cpp b/src/websockets.cpp index 20a075d..8647529 100644 --- a/src/websockets.cpp +++ b/src/websockets.cpp @@ -234,10 +234,7 @@ QString AppDataServer::decryptMessage(QJsonDocument msg, QString secretHex, bool return "error"; } } - - // Update the last seem remote hex - saveNonceHex(NonceType::REMOTE, noncehex); - + unsigned char* secret = new unsigned char[crypto_secretbox_KEYBYTES]; sodium_hex2bin(secret, crypto_secretbox_KEYBYTES, secretHex.toStdString().c_str(), crypto_secretbox_KEYBYTES*2, NULL, NULL, NULL); @@ -254,6 +251,9 @@ QString AppDataServer::decryptMessage(QJsonDocument msg, QString secretHex, bool if (result == -1) { payload = "error"; } else { + // Update the last seen remote hex + saveNonceHex(NonceType::REMOTE, noncehex); + char* decryptedStr = new char[decryptedLen + 1]; sodium_memzero(decryptedStr, decryptedLen + 1); memcpy(decryptedStr, decrypted, decryptedLen);