diff --git a/js/libtextsecure.js b/js/libtextsecure.js index f41c009a1..d28cfced5 100644 --- a/js/libtextsecure.js +++ b/js/libtextsecure.js @@ -38354,6 +38354,16 @@ MessageReceiver.prototype.extend({ promise = Promise.reject(new Error("Unknown message type")); } return promise.catch(function(error) { + if (error.message === 'Unknown identity key') { + // create an error that the UI will pick up and ask the + // user if they want to re-negotiate + var buffer = dcodeIO.ByteBuffer.wrap(ciphertext); + error = new textsecure.IncomingIdentityKeyError( + address.toString(), + buffer.toArrayBuffer(), + error.identityKey + ); + } var ev = new Event('error'); ev.error = error; ev.proto = envelope; diff --git a/libtextsecure/message_receiver.js b/libtextsecure/message_receiver.js index 771ca9b9a..7134f1e34 100644 --- a/libtextsecure/message_receiver.js +++ b/libtextsecure/message_receiver.js @@ -149,6 +149,16 @@ MessageReceiver.prototype.extend({ promise = Promise.reject(new Error("Unknown message type")); } return promise.catch(function(error) { + if (error.message === 'Unknown identity key') { + // create an error that the UI will pick up and ask the + // user if they want to re-negotiate + var buffer = dcodeIO.ByteBuffer.wrap(ciphertext); + error = new textsecure.IncomingIdentityKeyError( + address.toString(), + buffer.toArrayBuffer(), + error.identityKey + ); + } var ev = new Event('error'); ev.error = error; ev.proto = envelope;