From 84dc166b63c49850dfe0797c836e4445a3d56515 Mon Sep 17 00:00:00 2001 From: Jack Lloyd Date: Tue, 23 Feb 2021 14:36:07 -0500 Subject: [PATCH] Bump to using 0.3.0 release of the libsignal-client library Co-authored-by: Scott Nonnenberg --- libtextsecure/libsignal-protocol.js | 8 -------- package.json | 2 +- preload.js | 12 ++++++++++++ yarn.lock | 6 +++--- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/libtextsecure/libsignal-protocol.js b/libtextsecure/libsignal-protocol.js index 28831add4..b7e8fc14f 100644 --- a/libtextsecure/libsignal-protocol.js +++ b/libtextsecure/libsignal-protocol.js @@ -23918,8 +23918,6 @@ var Internal = Internal || {}; }, HKDF: function(input, salt, info) { - // Specific implementation of RFC 5869 that only returns the first 3 32-byte chunks - // TODO: We dont always need the third chunk, we might skip it return Internal.crypto.sign(salt, input).then(function(PRK) { var infoBuffer = new ArrayBuffer(info.byteLength + 1 + 32); var infoArray = new Uint8Array(infoBuffer); @@ -23980,12 +23978,6 @@ var Internal = Internal || {}; }); }; - libsignal.HKDF = { - deriveSecrets: function(input, salt, info) { - return Internal.HKDF(input, salt, info); - } - }; - libsignal.crypto = { encrypt: function(key, data, iv) { return Internal.crypto.encrypt(key, data, iv); diff --git a/package.json b/package.json index 6c6fa61f8..9f87c11ed 100644 --- a/package.json +++ b/package.json @@ -148,7 +148,7 @@ "uuid": "3.3.2", "websocket": "1.0.28", "zkgroup": "https://github.com/signalapp/signal-zkgroup-node.git#2d7db946cc88492b65cc66e9aa9de0c9e664fd8d", - "libsignal-client": "https://github.com/signalapp/libsignal-client-node.git#23edaad30ddec4d52a5634b30090563df1351337" + "libsignal-client": "https://github.com/signalapp/libsignal-client-node.git#f10fbd04eb6efb396eb12c25429761e8785dc9d0" }, "devDependencies": { "@babel/core": "7.7.7", diff --git a/preload.js b/preload.js index dadfe1d4f..fa1b31111 100644 --- a/preload.js +++ b/preload.js @@ -627,6 +627,18 @@ try { window.libsignal.externalCurve = externalCurve; window.libsignal.externalCurveAsync = externalCurveAsync; + window.libsignal.HKDF = {}; + window.libsignal.HKDF.deriveSecrets = (input, salt, info) => { + const hkdf = client.HKDF.new(3); + const output = hkdf.deriveSecrets( + 3 * 32, + Buffer.from(input), + Buffer.from(info), + Buffer.from(salt) + ); + return [output.slice(0, 32), output.slice(32, 64), output.slice(64, 96)]; + }; + // Pulling these in separately since they access filesystem, electron window.Signal.Backup = require('./js/modules/backup'); window.Signal.Debug = require('./js/modules/debug'); diff --git a/yarn.lock b/yarn.lock index ecfb1419d..0bf7904af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10268,9 +10268,9 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -"libsignal-client@https://github.com/signalapp/libsignal-client-node.git#23edaad30ddec4d52a5634b30090563df1351337": - version "0.2.0" - resolved "https://github.com/signalapp/libsignal-client-node.git#23edaad30ddec4d52a5634b30090563df1351337" +"libsignal-client@https://github.com/signalapp/libsignal-client-node.git#f10fbd04eb6efb396eb12c25429761e8785dc9d0": + version "0.3.0" + resolved "https://github.com/signalapp/libsignal-client-node.git#f10fbd04eb6efb396eb12c25429761e8785dc9d0" dependencies: bindings "^1.5.0"