diff --git a/js/crypto.js b/js/crypto.js index d2341eda6..6f94bc1fa 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 9b8106ed9..2a3520c77 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() {