Merge pull request #435 from shocknet/bug/exchange-fix

Key exchange improvements and more logging
This commit is contained in:
CapDog 2021-07-23 13:55:14 -04:00 committed by GitHub
commit c58ff86a21

View file

@ -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!',