From 8ada6ce8adc9974095c43bf91daa17a37e67adb4 Mon Sep 17 00:00:00 2001 From: sachaaaaa Date: Wed, 22 Aug 2018 09:41:54 +1000 Subject: [PATCH] serialize message as base64 --- js/modules/loki_message_api.js | 2 +- libtextsecure/outgoing_message.js | 75 ++++++++++++++++--------------- main.js | 1 - 3 files changed, 41 insertions(+), 37 deletions(-) diff --git a/js/modules/loki_message_api.js b/js/modules/loki_message_api.js index 6f5e81995..1c8db662b 100644 --- a/js/modules/loki_message_api.js +++ b/js/modules/loki_message_api.js @@ -29,7 +29,7 @@ function initialize({ url }) { body = JSON.stringify({ pub_key: options.pub_key, - message: String.fromCharCode.apply(null, options.data), + message: options.data, ttl: options.ttl, }) diff --git a/libtextsecure/outgoing_message.js b/libtextsecure/outgoing_message.js index 3edb16074..71fa7236a 100644 --- a/libtextsecure/outgoing_message.js +++ b/libtextsecure/outgoing_message.js @@ -308,40 +308,45 @@ OutgoingMessage.prototype = { }, sendToNumber(number) { - const options = { - pub_key: number, - data: this.getPlaintext(), - ttl: 2 * 24 * 60 * 60 - }; - return this.lokiserver.sendMessage(options).then( - (result, status) => { - this.successfulNumbers[this.successfulNumbers.length] = number; - this.numberCompleted(); - }, - (error) => console.log('Loki sendMessage failed') - ); - /* - return this.getStaleDeviceIdsForNumber(number).then(updateDevices => - this.getKeysForNumber(number, updateDevices) - .then(this.reloadDevicesAndSend(number, true)) - .catch(error => { - if (error.message === 'Identity key changed') { - // eslint-disable-next-line no-param-reassign - error = new textsecure.OutgoingIdentityKeyError( - number, - error.originalMessage, - error.timestamp, - error.identityKey - ); - this.registerError(number, 'Identity key changed', error); - } else { - this.registerError( - number, - `Failed to retrieve new device keys for number ${number}`, - error - ); - } - }) - );*/ + if (true /* skipEncryption */) + { + const options = { + pub_key: number, + data: StringView.bytesToBase64(this.getPlaintext()), + ttl: 2 * 24 * 60 * 60 + }; + return this.lokiserver.sendMessage(options).then( + (result, status) => { + this.successfulNumbers[this.successfulNumbers.length] = number; + this.numberCompleted(); + }, + (error) => console.log('Loki sendMessage failed') + ); + } + else + { + return this.getStaleDeviceIdsForNumber(number).then(updateDevices => + this.getKeysForNumber(number, updateDevices) + .then(this.reloadDevicesAndSend(number, true)) + .catch(error => { + if (error.message === 'Identity key changed') { + // eslint-disable-next-line no-param-reassign + error = new textsecure.OutgoingIdentityKeyError( + number, + error.originalMessage, + error.timestamp, + error.identityKey + ); + this.registerError(number, 'Identity key changed', error); + } else { + this.registerError( + number, + `Failed to retrieve new device keys for number ${number}`, + error + ); + } + }) + ); + } }, }; diff --git a/main.js b/main.js index de517b440..b55266ea6 100644 --- a/main.js +++ b/main.js @@ -134,7 +134,6 @@ function prepareURL(pathSegments, moreKeys) { serverUrl: config.get('serverUrl'), cdnUrl: config.get('cdnUrl'), certificateAuthority: config.get('certificateAuthority'), - skipEncryption: config.get('skipEncryption'), environment: config.environment, node_version: process.versions.node, hostname: os.hostname(),