diff --git a/js/models/conversations.js b/js/models/conversations.js index 7f0cd973e..55645adb8 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -1822,7 +1822,6 @@ { timestamp: Date.now() } ); await libsession.getMessageQueue().send(user, sessionEstablished); - } await this.createAndStoreEndSessionMessage({ type: 'incoming', diff --git a/libtextsecure/sendmessage.js b/libtextsecure/sendmessage.js index 031b676fa..ceae67c30 100644 --- a/libtextsecure/sendmessage.js +++ b/libtextsecure/sendmessage.js @@ -407,39 +407,6 @@ MessageSender.prototype = { }); }, - sendIndividualProto(number, proto, timestamp, silent, options = {}) { - return new Promise((resolve, reject) => { - const callback = res => { - if (res && res.errors && res.errors.length > 0) { - reject(res); - } else { - resolve(res); - } - }; - this.sendMessageProto( - timestamp, - [number], - proto, - callback, - silent, - options - ); - }); - }, - - createSyncMessage() { - const syncMessage = new textsecure.protobuf.SyncMessage(); - - // Generate a random int from 1 and 512 - const buffer = libsignal.crypto.getRandomBytes(1); - const paddingLength = (new Uint8Array(buffer)[0] & 0x1ff) + 1; - - // Generate a random padding buffer of the chosen size - syncMessage.padding = libsignal.crypto.getRandomBytes(paddingLength); - - return syncMessage; - }, - uploadAvatar(attachment) { // isRaw is true since the data is already encrypted // and doesn't need to be encrypted again @@ -567,8 +534,9 @@ MessageSender.prototype = { { timestamp: Date.now() } ); const { padding } = sessionEstablished; - await libsession.getMessageQueue().send(destinationPubKey, sessionEstablished); - + await libsession + .getMessageQueue() + .send(destinationPubKey, sessionEstablished); const verifiedSyncParams = { state, @@ -576,8 +544,10 @@ MessageSender.prototype = { identityKey, padding, timestamp: Date.now(), - } - const verifiedSyncMessage = new window.libsession.Messages.Outgoing.VerifiedSyncMessage(verifiedSyncParams); + }; + const verifiedSyncMessage = new window.libsession.Messages.Outgoing.VerifiedSyncMessage( + verifiedSyncParams + ); return libsession.getMessageQueue().sendSyncMessage(verifiedSyncMessage); }, diff --git a/ts/session/messages/outgoing/content/SessionEstablishedMessage.ts b/ts/session/messages/outgoing/content/SessionEstablishedMessage.ts index aa95082a7..c5b19b66a 100644 --- a/ts/session/messages/outgoing/content/SessionEstablishedMessage.ts +++ b/ts/session/messages/outgoing/content/SessionEstablishedMessage.ts @@ -1,7 +1,22 @@ import { ContentMessage } from './ContentMessage'; import { SignalService } from '../../../../protobuf'; +import * as crypto from 'crypto'; +import { MessageParams } from '../Message'; export class SessionEstablishedMessage extends ContentMessage { + public readonly padding: Buffer; + + constructor(params: MessageParams) { + super({ timestamp: params.timestamp, identifier: params.identifier }); + // Generate a random int from 1 and 512 + const buffer = crypto.randomBytes(1); + + // tslint:disable-next-line: no-bitwise + const paddingLength = (new Uint8Array(buffer)[0] & 0x1ff) + 1; + + // Generate a random padding buffer of the chosen size + this.padding = crypto.randomBytes(paddingLength); + } public ttl(): number { return 5 * 60 * 1000; } @@ -9,6 +24,7 @@ export class SessionEstablishedMessage extends ContentMessage { protected contentProto(): SignalService.Content { const nullMessage = new SignalService.NullMessage({}); + nullMessage.padding = this.padding; return new SignalService.Content({ nullMessage, }); diff --git a/ts/session/messages/outgoing/content/sync/SyncReadMessage.ts b/ts/session/messages/outgoing/content/sync/SyncReadMessage.ts index 7d8fd3cca..9ef669188 100644 --- a/ts/session/messages/outgoing/content/sync/SyncReadMessage.ts +++ b/ts/session/messages/outgoing/content/sync/SyncReadMessage.ts @@ -9,7 +9,6 @@ interface SyncReadMessageParams extends MessageParams { export abstract class SyncReadMessage extends SyncMessage { public readonly readMessages: any; - constructor(params: SyncReadMessageParams) { super({ timestamp: params.timestamp, identifier: params.identifier }); this.readMessages = params.readMessages;