From 96ce1b0945a0c24f3c263d33f48e39ed22753767 Mon Sep 17 00:00:00 2001 From: Amish Shah Date: Sun, 22 Oct 2017 21:59:30 +0100 Subject: [PATCH] Update libsodium-wrappers peer dep and fix support for the newest version --- package.json | 2 +- .../voice/dispatcher/StreamDispatcher.js | 2 +- src/client/voice/receiver/VoiceReceiver.js | 2 +- src/client/voice/util/Secretbox.js | 19 ++++++++++++------- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index bce05f1e2..053f5726c 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "node-opus": "^0.2.0", "opusscript": "^0.0.3", "sodium": "^2.0.0", - "libsodium-wrappers": "^0.5.0", + "libsodium-wrappers": "^0.7.0", "uws": "^8.14.0" }, "devDependencies": { diff --git a/src/client/voice/dispatcher/StreamDispatcher.js b/src/client/voice/dispatcher/StreamDispatcher.js index 83e1fa12e..d128039eb 100644 --- a/src/client/voice/dispatcher/StreamDispatcher.js +++ b/src/client/voice/dispatcher/StreamDispatcher.js @@ -163,7 +163,7 @@ class StreamDispatcher extends VolumeInterface { packetBuffer.writeUIntBE(this.player.voiceConnection.authentication.ssrc, 8, 4); packetBuffer.copy(nonce, 0, 0, 12); - buffer = secretbox.close(buffer, nonce, this.player.voiceConnection.authentication.secretKey.key); + buffer = secretbox.methods.close(buffer, nonce, this.player.voiceConnection.authentication.secretKey.key); for (let i = 0; i < buffer.length; i++) packetBuffer[i + 12] = buffer[i]; return packetBuffer; diff --git a/src/client/voice/receiver/VoiceReceiver.js b/src/client/voice/receiver/VoiceReceiver.js index f619873a3..4c889865c 100644 --- a/src/client/voice/receiver/VoiceReceiver.js +++ b/src/client/voice/receiver/VoiceReceiver.js @@ -148,7 +148,7 @@ class VoiceReceiver extends EventEmitter { handlePacket(msg, user) { msg.copy(nonce, 0, 0, 12); - let data = secretbox.open(msg.slice(12), nonce, this.voiceConnection.authentication.secretKey.key); + let data = secretbox.methods.open(msg.slice(12), nonce, this.voiceConnection.authentication.secretKey.key); if (!data) { /** * Emitted whenever a voice packet experiences a problem. diff --git a/src/client/voice/util/Secretbox.js b/src/client/voice/util/Secretbox.js index f1c8f03a8..1a325cf51 100644 --- a/src/client/voice/util/Secretbox.js +++ b/src/client/voice/util/Secretbox.js @@ -13,10 +13,15 @@ const libs = { }), }; -for (const libName of Object.keys(libs)) { - try { - const lib = require(libName); - module.exports = libs[libName](lib); - break; - } catch (err) {} // eslint-disable-line no-empty -} +exports.methods = {}; + +(async() => { + for (const libName of Object.keys(libs)) { + try { + const lib = require(libName); + if (libName === 'libsodium-wrappers' && lib.ready) await lib.ready; + exports.methods = libs[libName](lib); + break; + } catch (err) {} // eslint-disable-line no-empty + } +})();