From c536e89cd22f9923c8ebf23e5328b3289ee2aa9a Mon Sep 17 00:00:00 2001 From: emad-salah Date: Fri, 21 May 2021 12:07:30 +0100 Subject: [PATCH] Catch and emit Bad mac error on decryption --- utils/ECC/socket.js | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/utils/ECC/socket.js b/utils/ECC/socket.js index 0feed62d..2f25e568 100644 --- a/utils/ECC/socket.js +++ b/utils/ECC/socket.js @@ -114,29 +114,33 @@ const encryptedOn = socket => (eventName, callback) => { } socket.on(eventName, async (data, response) => { - if (isNonEncrypted(eventName)) { + try { + if (isNonEncrypted(eventName)) { + callback(data, response) + return + } + + if (data) { + const decryptedMessage = await ECC.decryptMessage({ + deviceId, + encryptedMessage: data + }) + + callback(safeParseJSON(decryptedMessage), response) + return + } + callback(data, response) - return + } catch (err) { + logger.error( + `[SOCKET] An error has occurred while decrypting an event (${eventName}):`, + err + ) + + socket.emit('encryption:error', err) } - - if (data) { - const decryptedMessage = await ECC.decryptMessage({ - deviceId, - encryptedMessage: data - }) - - callback(safeParseJSON(decryptedMessage), response) - return - } - - callback(data, response) }) } catch (err) { - logger.error( - `[SOCKET] An error has occurred while decrypting an event (${eventName}):`, - err - ) - socket.emit('encryption:error', err) } }