make the sessionEstablishedMessage nullMessage have some random content

pull/1194/head
Audric Ackermann 5 years ago
parent d114b6c130
commit fea75de3fe
No known key found for this signature in database
GPG Key ID: 999F434D76324AD4

@ -1822,7 +1822,6 @@
{ timestamp: Date.now() }
);
await libsession.getMessageQueue().send(user, sessionEstablished);
}
await this.createAndStoreEndSessionMessage({
type: 'incoming',

@ -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);
},

@ -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,
});

@ -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;

Loading…
Cancel
Save