Randomly pad all sync messages
WhisperSystems/libsignal-service-java@c46cdc0aa5 // FREEBIE
This commit is contained in:
parent
7bfb66b13b
commit
6e758fc1ea
2 changed files with 36 additions and 10 deletions
|
@ -39192,6 +39192,19 @@ MessageSender.prototype = {
|
|||
}.bind(this));
|
||||
},
|
||||
|
||||
createSyncMessage: function() {
|
||||
var syncMessage = new textsecure.protobuf.SyncMessage();
|
||||
|
||||
// Generate a random int from 1 and 512
|
||||
var buffer = libsignal.crypto.getRandomBytes(1);
|
||||
var paddingLength = (new Uint8Array(buffer)[0] & 0x1ff) + 1;
|
||||
|
||||
// Generate a random padding buffer of the chosen size
|
||||
syncMessage.padding = libsignal.crypto.getRandomBytes(paddingLength);
|
||||
|
||||
return syncMessage;
|
||||
},
|
||||
|
||||
sendSyncMessage: function(encodedDataMessage, timestamp, destination, expirationStartTimestamp) {
|
||||
var myNumber = textsecure.storage.user.getNumber();
|
||||
var myDevice = textsecure.storage.user.getDeviceId();
|
||||
|
@ -39209,7 +39222,7 @@ MessageSender.prototype = {
|
|||
if (expirationStartTimestamp) {
|
||||
sentMessage.expirationStartTimestamp = expirationStartTimestamp;
|
||||
}
|
||||
var syncMessage = new textsecure.protobuf.SyncMessage();
|
||||
var syncMessage = this.createSyncMessage();
|
||||
syncMessage.sent = sentMessage;
|
||||
var contentMessage = new textsecure.protobuf.Content();
|
||||
contentMessage.syncMessage = syncMessage;
|
||||
|
@ -39226,7 +39239,7 @@ MessageSender.prototype = {
|
|||
if (myDevice != 1) {
|
||||
var request = new textsecure.protobuf.SyncMessage.Request();
|
||||
request.type = textsecure.protobuf.SyncMessage.Request.Type.GROUPS;
|
||||
var syncMessage = new textsecure.protobuf.SyncMessage();
|
||||
var syncMessage = this.createSyncMessage();
|
||||
syncMessage.request = request;
|
||||
var contentMessage = new textsecure.protobuf.Content();
|
||||
contentMessage.syncMessage = syncMessage;
|
||||
|
@ -39241,7 +39254,7 @@ MessageSender.prototype = {
|
|||
if (myDevice != 1) {
|
||||
var request = new textsecure.protobuf.SyncMessage.Request();
|
||||
request.type = textsecure.protobuf.SyncMessage.Request.Type.CONTACTS;
|
||||
var syncMessage = new textsecure.protobuf.SyncMessage();
|
||||
var syncMessage = this.createSyncMessage();
|
||||
syncMessage.request = request;
|
||||
var contentMessage = new textsecure.protobuf.Content();
|
||||
contentMessage.syncMessage = syncMessage;
|
||||
|
@ -39253,7 +39266,7 @@ MessageSender.prototype = {
|
|||
var myNumber = textsecure.storage.user.getNumber();
|
||||
var myDevice = textsecure.storage.user.getDeviceId();
|
||||
if (myDevice != 1) {
|
||||
var syncMessage = new textsecure.protobuf.SyncMessage();
|
||||
var syncMessage = this.createSyncMessage();
|
||||
syncMessage.read = [];
|
||||
for (var i = 0; i < reads.length; ++i) {
|
||||
var read = new textsecure.protobuf.SyncMessage.Read();
|
||||
|
@ -39276,7 +39289,7 @@ MessageSender.prototype = {
|
|||
verified.destination = destination;
|
||||
verified.identityKey = identityKey;
|
||||
|
||||
var syncMessage = new textsecure.protobuf.SyncMessage();
|
||||
var syncMessage = this.createSyncMessage();
|
||||
syncMessage.verified = verified;
|
||||
|
||||
var contentMessage = new textsecure.protobuf.Content();
|
||||
|
|
|
@ -230,6 +230,19 @@ MessageSender.prototype = {
|
|||
}.bind(this));
|
||||
},
|
||||
|
||||
createSyncMessage: function() {
|
||||
var syncMessage = new textsecure.protobuf.SyncMessage();
|
||||
|
||||
// Generate a random int from 1 and 512
|
||||
var buffer = libsignal.crypto.getRandomBytes(1);
|
||||
var paddingLength = (new Uint8Array(buffer)[0] & 0x1ff) + 1;
|
||||
|
||||
// Generate a random padding buffer of the chosen size
|
||||
syncMessage.padding = libsignal.crypto.getRandomBytes(paddingLength);
|
||||
|
||||
return syncMessage;
|
||||
},
|
||||
|
||||
sendSyncMessage: function(encodedDataMessage, timestamp, destination, expirationStartTimestamp) {
|
||||
var myNumber = textsecure.storage.user.getNumber();
|
||||
var myDevice = textsecure.storage.user.getDeviceId();
|
||||
|
@ -247,7 +260,7 @@ MessageSender.prototype = {
|
|||
if (expirationStartTimestamp) {
|
||||
sentMessage.expirationStartTimestamp = expirationStartTimestamp;
|
||||
}
|
||||
var syncMessage = new textsecure.protobuf.SyncMessage();
|
||||
var syncMessage = this.createSyncMessage();
|
||||
syncMessage.sent = sentMessage;
|
||||
var contentMessage = new textsecure.protobuf.Content();
|
||||
contentMessage.syncMessage = syncMessage;
|
||||
|
@ -264,7 +277,7 @@ MessageSender.prototype = {
|
|||
if (myDevice != 1) {
|
||||
var request = new textsecure.protobuf.SyncMessage.Request();
|
||||
request.type = textsecure.protobuf.SyncMessage.Request.Type.GROUPS;
|
||||
var syncMessage = new textsecure.protobuf.SyncMessage();
|
||||
var syncMessage = this.createSyncMessage();
|
||||
syncMessage.request = request;
|
||||
var contentMessage = new textsecure.protobuf.Content();
|
||||
contentMessage.syncMessage = syncMessage;
|
||||
|
@ -279,7 +292,7 @@ MessageSender.prototype = {
|
|||
if (myDevice != 1) {
|
||||
var request = new textsecure.protobuf.SyncMessage.Request();
|
||||
request.type = textsecure.protobuf.SyncMessage.Request.Type.CONTACTS;
|
||||
var syncMessage = new textsecure.protobuf.SyncMessage();
|
||||
var syncMessage = this.createSyncMessage();
|
||||
syncMessage.request = request;
|
||||
var contentMessage = new textsecure.protobuf.Content();
|
||||
contentMessage.syncMessage = syncMessage;
|
||||
|
@ -291,7 +304,7 @@ MessageSender.prototype = {
|
|||
var myNumber = textsecure.storage.user.getNumber();
|
||||
var myDevice = textsecure.storage.user.getDeviceId();
|
||||
if (myDevice != 1) {
|
||||
var syncMessage = new textsecure.protobuf.SyncMessage();
|
||||
var syncMessage = this.createSyncMessage();
|
||||
syncMessage.read = [];
|
||||
for (var i = 0; i < reads.length; ++i) {
|
||||
var read = new textsecure.protobuf.SyncMessage.Read();
|
||||
|
@ -314,7 +327,7 @@ MessageSender.prototype = {
|
|||
verified.destination = destination;
|
||||
verified.identityKey = identityKey;
|
||||
|
||||
var syncMessage = new textsecure.protobuf.SyncMessage();
|
||||
var syncMessage = this.createSyncMessage();
|
||||
syncMessage.verified = verified;
|
||||
|
||||
var contentMessage = new textsecure.protobuf.Content();
|
||||
|
|
Loading…
Add table
Reference in a new issue