From 774bbcae5833ec4b08ae740588e1d386673ac682 Mon Sep 17 00:00:00 2001 From: emad-salah Date: Fri, 23 Jul 2021 18:08:52 +0100 Subject: [PATCH] Key exchange improvements and logging --- utils/ECC/index.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/utils/ECC/index.js b/utils/ECC/index.js index 1e926a66..4ddac5d4 100644 --- a/utils/ECC/index.js +++ b/utils/ECC/index.js @@ -41,6 +41,17 @@ const isEncryptedMessage = message => */ const generateKeyPair = deviceId => { try { + const existingKey = nodeKeyPairs.get(deviceId) + + if (existingKey) { + logger.warn('Device ID is already trusted') + return { + ...existingKey, + publicKeyBase64: convertBufferToBase64(existingKey.publicKey), + privateKeyBase64: convertBufferToBase64(existingKey.privateKey) + } + } + const privateKey = ECCrypto.generatePrivate() const publicKey = ECCrypto.getPublic(privateKey) const privateKeyBase64 = convertBufferToBase64(privateKey) @@ -149,8 +160,10 @@ const decryptMessage = async ({ encryptedMessage, deviceId }) => { convertToEncryptedMessage(encryptedMessage) ) const parsedMessage = decryptedMessage.toString('utf8') + return parsedMessage } catch (err) { + logger.error(err) if (err.message?.toLowerCase() === 'bad mac') { logger.error( 'Bad Mac!',