From e3097746c0a77cad54037dcf3d0d3c8d3df38245 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Wed, 14 May 2014 18:15:46 -0400 Subject: [PATCH] Check registration ID on prekeymsg --- js/crypto.js | 3 +++ js/options.js | 1 + 2 files changed, 4 insertions(+) diff --git a/js/crypto.js b/js/crypto.js index d2341eda63b..6f94bc1faaf 100644 --- a/js/crypto.js +++ b/js/crypto.js @@ -359,6 +359,9 @@ window.crypto = (function() { var initSessionFromPreKeyWhisperMessage = function(encodedNumber, message) { var preKeyPair = crypto_storage.getAndRemovePreKeyPair(message.preKeyId); + if (message.registrationId != storage.getUnencrypted("registrationId)) + throw new Error("Got a message encrypted for a different registration"); + var session = crypto_storage.getSessionOrIdentityKeyByBaseKey(encodedNumber, toArrayBuffer(message.baseKey)); var open_session = crypto_storage.getOpenSession(encodedNumber); if (preKeyPair === undefined) { diff --git a/js/options.js b/js/options.js index 9b8106ed938..2a3520c77f0 100644 --- a/js/options.js +++ b/js/options.js @@ -84,6 +84,7 @@ $('#init-go').click(function() { storage.putEncrypted("password", password); storage.putEncrypted('signaling_key', signaling_key); storage.putUnencrypted("number_id", number_id); + storage.putUnencrypted("registrationId", registrationId); $('#verify1done').html('done'); var register_keys_func = function() {