From 1a2e7b235a4e6fa95ccdda057cf65723b67490ab Mon Sep 17 00:00:00 2001 From: JC Brand Date: Sat, 30 Mar 2019 15:57:36 +0100 Subject: [PATCH] OMEMO bugfix. Store prekey as boolean and handle '1' and 'true' --- dev.html | 2 +- dist/converse.js | 4 ++-- src/converse-omemo.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dev.html b/dev.html index c2685792c..bc640aaf7 100644 --- a/dev.html +++ b/dev.html @@ -10,7 +10,7 @@ - + diff --git a/dist/converse.js b/dist/converse.js index 76657b961..b2c114c91 100644 --- a/dist/converse.js +++ b/dist/converse.js @@ -56280,7 +56280,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins const _converse = this.__super__._converse, session_cipher = this.getSessionCipher(attrs.from, parseInt(attrs.encrypted.device_id, 10)); // https://xmpp.org/extensions/xep-0384.html#usecases-receiving - if (attrs.encrypted.prekey === 'true') { + if (attrs.encrypted.prekey === true) { let plaintext; return session_cipher.decryptPreKeyWhisperMessage(u.base64ToArrayBuffer(attrs.encrypted.key), 'binary').then(key_and_tag => { if (attrs.encrypted.payload) { @@ -56340,7 +56340,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins 'iv': header.querySelector('iv').textContent, 'key': key.textContent, 'payload': _.get(encrypted.querySelector('payload'), 'textContent', null), - 'prekey': key.getAttribute('prekey') + 'prekey': _.includes(['true', '1'], key.getAttribute('prekey')) }; return this.decrypt(attrs); } else { diff --git a/src/converse-omemo.js b/src/converse-omemo.js index 91037614d..62b2c9799 100644 --- a/src/converse-omemo.js +++ b/src/converse-omemo.js @@ -234,7 +234,7 @@ converse.plugins.add('converse-omemo', { session_cipher = this.getSessionCipher(attrs.from, parseInt(attrs.encrypted.device_id, 10)); // https://xmpp.org/extensions/xep-0384.html#usecases-receiving - if (attrs.encrypted.prekey === 'true') { + if (attrs.encrypted.prekey === true) { let plaintext; return session_cipher.decryptPreKeyWhisperMessage(u.base64ToArrayBuffer(attrs.encrypted.key), 'binary') .then(key_and_tag => { @@ -284,7 +284,7 @@ converse.plugins.add('converse-omemo', { 'iv': header.querySelector('iv').textContent, 'key': key.textContent, 'payload': _.get(encrypted.querySelector('payload'), 'textContent', null), - 'prekey': key.getAttribute('prekey') + 'prekey': _.includes(['true', '1'], key.getAttribute('prekey')) } return this.decrypt(attrs); } else {