|
|
@ -14,8 +14,6 @@ const NUM_SEND_CONNECTIONS = 3;
|
|
|
|
|
|
|
|
|
|
|
|
const getTTLForType = type => {
|
|
|
|
const getTTLForType = type => {
|
|
|
|
switch (type) {
|
|
|
|
switch (type) {
|
|
|
|
case 'session-request':
|
|
|
|
|
|
|
|
return 4 * 24 * 60 * 60 * 1000; // 4 days for session request message
|
|
|
|
|
|
|
|
case 'device-unpairing':
|
|
|
|
case 'device-unpairing':
|
|
|
|
return 4 * 24 * 60 * 60 * 1000; // 4 days for device unpairing
|
|
|
|
return 4 * 24 * 60 * 60 * 1000; // 4 days for device unpairing
|
|
|
|
case 'onlineBroadcast':
|
|
|
|
case 'onlineBroadcast':
|
|
|
@ -106,15 +104,9 @@ function getStaleDeviceIdsForNumber(number) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const DebugMessageType = {
|
|
|
|
const DebugMessageType = {
|
|
|
|
SESSION_REQUEST: 'session-request',
|
|
|
|
|
|
|
|
SESSION_REQUEST_ACCEPT: 'session-request-accepted',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SESSION_RESET: 'session-reset',
|
|
|
|
SESSION_RESET: 'session-reset',
|
|
|
|
SESSION_RESET_RECV: 'session-reset-received',
|
|
|
|
SESSION_RESET_RECV: 'session-reset-received',
|
|
|
|
|
|
|
|
|
|
|
|
OUTGOING_FR_ACCEPTED: 'outgoing-friend-request-accepted',
|
|
|
|
|
|
|
|
INCOMING_FR_ACCEPTED: 'incoming-friend-request-accept',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REQUEST_SYNC_SEND: 'request-sync-send',
|
|
|
|
REQUEST_SYNC_SEND: 'request-sync-send',
|
|
|
|
CONTACT_SYNC_SEND: 'contact-sync-send',
|
|
|
|
CONTACT_SYNC_SEND: 'contact-sync-send',
|
|
|
|
CLOSED_GROUP_SYNC_SEND: 'closed-group-sync-send',
|
|
|
|
CLOSED_GROUP_SYNC_SEND: 'closed-group-sync-send',
|
|
|
@ -355,8 +347,7 @@ OutgoingMessage.prototype = {
|
|
|
|
const keysFound = await this.getKeysForNumber(devicePubKey, updatedDevices);
|
|
|
|
const keysFound = await this.getKeysForNumber(devicePubKey, updatedDevices);
|
|
|
|
|
|
|
|
|
|
|
|
// Check if we need to attach the preKeys
|
|
|
|
// Check if we need to attach the preKeys
|
|
|
|
const enableFallBackEncryption =
|
|
|
|
const enableFallBackEncryption = !keysFound;
|
|
|
|
!keysFound || this.messageType === 'session-request';
|
|
|
|
|
|
|
|
const flags = this.message.dataMessage
|
|
|
|
const flags = this.message.dataMessage
|
|
|
|
? this.message.dataMessage.get_flags()
|
|
|
|
? this.message.dataMessage.get_flags()
|
|
|
|
: null;
|
|
|
|
: null;
|
|
|
@ -414,7 +405,6 @@ OutgoingMessage.prototype = {
|
|
|
|
sourceDevice: 1,
|
|
|
|
sourceDevice: 1,
|
|
|
|
plaintext,
|
|
|
|
plaintext,
|
|
|
|
pubKey: devicePubKey,
|
|
|
|
pubKey: devicePubKey,
|
|
|
|
isFriendRequest: enableFallBackEncryption,
|
|
|
|
|
|
|
|
isSessionRequest,
|
|
|
|
isSessionRequest,
|
|
|
|
enableFallBackEncryption,
|
|
|
|
enableFallBackEncryption,
|
|
|
|
};
|
|
|
|
};
|
|
|
@ -434,7 +424,6 @@ OutgoingMessage.prototype = {
|
|
|
|
plaintext,
|
|
|
|
plaintext,
|
|
|
|
pubKey,
|
|
|
|
pubKey,
|
|
|
|
isSessionRequest,
|
|
|
|
isSessionRequest,
|
|
|
|
isFriendRequest,
|
|
|
|
|
|
|
|
enableFallBackEncryption,
|
|
|
|
enableFallBackEncryption,
|
|
|
|
} = clearMessage;
|
|
|
|
} = clearMessage;
|
|
|
|
// Session doesn't use the deviceId scheme, it's always 1.
|
|
|
|
// Session doesn't use the deviceId scheme, it's always 1.
|
|
|
@ -480,7 +469,6 @@ OutgoingMessage.prototype = {
|
|
|
|
sourceDevice,
|
|
|
|
sourceDevice,
|
|
|
|
content,
|
|
|
|
content,
|
|
|
|
pubKey,
|
|
|
|
pubKey,
|
|
|
|
isFriendRequest,
|
|
|
|
|
|
|
|
isSessionRequest,
|
|
|
|
isSessionRequest,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
},
|
|
|
|
},
|
|
|
@ -551,8 +539,6 @@ OutgoingMessage.prototype = {
|
|
|
|
ourKey: ourIdentity,
|
|
|
|
ourKey: ourIdentity,
|
|
|
|
sourceDevice: 1,
|
|
|
|
sourceDevice: 1,
|
|
|
|
content: contentOuter.encode().toArrayBuffer(),
|
|
|
|
content: contentOuter.encode().toArrayBuffer(),
|
|
|
|
isFriendRequest: false,
|
|
|
|
|
|
|
|
isSessionRequest: false,
|
|
|
|
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// TODO: Rather than using sealed sender, we just generate a key pair, perform an ECDH against
|
|
|
|
// TODO: Rather than using sealed sender, we just generate a key pair, perform an ECDH against
|
|
|
@ -672,10 +658,7 @@ OutgoingMessage.buildSessionRequestMessage = function buildSessionRequestMessage
|
|
|
|
dataMessage,
|
|
|
|
dataMessage,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const options = {
|
|
|
|
const options = {};
|
|
|
|
messageType: 'session-request',
|
|
|
|
|
|
|
|
debugMessageType: DebugMessageType.SESSION_REQUEST,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
// Send a empty message with information about how to contact us directly
|
|
|
|
// Send a empty message with information about how to contact us directly
|
|
|
|
return new OutgoingMessage(
|
|
|
|
return new OutgoingMessage(
|
|
|
|
null, // server
|
|
|
|
null, // server
|
|
|
|