Commit Graph

164 Commits (1abf032418a00f296f9c4a74c0faea385300d553)

Author SHA1 Message Date
Beaudan a40a3d164f Lots of logic for establishing a p2p connection, managing when the other user is online vs offline etc. Will always try to use P2P messaging when it can and fall back to storage server otherwise 6 years ago
Mikunj efe95a70bc Fix review issues. 6 years ago
Mikunj 3c07d99a89 Fix variable names.
Fix module export to be more consistent.
6 years ago
Beaudan 2bae6b5eed Removed online broadcast message type, changed ttl logic a little, add p2p address and port to the window object when recieve message 6 years ago
Beaudan b417edfc9b Added new protos for online broadcast messages, added db hits for getting friends, local server now instantiated on the window, now sending online broadcast messages when the local server starts 6 years ago
Beaudan 561d60cfd5 Sending messages now in a while loop like retrieving messages, added a failureCount and only delete node urls if they fail 3 times 6 years ago
Mikunj 1a15ec9c15 Merge commit signal/master into signal-1.20 6 years ago
Mikunj e08a63d078 Merge development into lint 6 years ago
Beaudan 7b1799c418 Big ol' hunk o' chunk. Now using random.snode to populate swarm lists, now making multiple requests from said lists and they are processed as they complete rather than waiting for all to resolve 6 years ago
Mikunj 6bd2d3962e Linted files 6 years ago
Mikunj 8f1650443f Set custom TTL in outgoing message. 6 years ago
Mikunj 070d18b514 Updated function calls. 6 years ago
Scott Nonnenberg 985b1d6aa6 New staged attachments UI, multiple image attachments per message 6 years ago
Mikunj 6bcb259919 Added PoW error. 6 years ago
Mikunj 654b0dac84 Merge signal-master. 6 years ago
Mikunj 2715e79268 Fix conversation status not being reset upon conversation messages deletion.
Fix incoming friend request not replacing old friend requests.
Fixed incorrect function name.
6 years ago
sachaaaaa 05c18d42db
Merge pull request #66 from sachaaaaa/session_reset
Handle session reset, Loki style
6 years ago
Beaudan 1e3886cca8 More consistent naming of key storage functions, moved some loki messenger only functions into new file 6 years ago
sachaaaaa 7e612700f7 Handle session reset, Loki style 6 years ago
Beaudan 28fc5793a7 More explicit function names, shifted friend request sent logic to more sensible place 6 years ago
Beaudan 91a8a82e39 More PR suggestions, now recover from early exit before friend request is sent 6 years ago
Beaudan 051e4dd22c XAnother big refactor to tie conversation UI logic to the friendRequestStatus variable 6 years ago
Beaudan 35c89ea4d9 Big refactor, prekeybundle moved back to a content message 7 years ago
Scott Nonnenberg 79a861a870 Typing Indicators 7 years ago
sachaaaaa b03548637c Fix getKeysForNumber when staleDevices is not empty 7 years ago
Beaudan b65d6a6d2c Refactor friend request status to use a state enum variable 7 years ago
sachaaaaa 7e783639fd Fix inexistent enum value for Prekey Type 7 years ago
Mikunj bd15f426f9 Attack a type to preKeyBundleMessage. 7 years ago
Mikunj 484efd34a3 Added friend request message expiration. 7 years ago
Mikunj b21a7197f7 Fix preKeyBundle not sending. 7 years ago
Mikunj 1264630649 Attach preKeyBundle outside of the message content. 7 years ago
Mikunj cf3e9716ed Update new conditions for friend accepted and key exchange complete in conversations model. 7 years ago
Beaudan 489ec8fc65 Heap of linting, eslint warning/error removal, and fixed a couple small bugs found along the way
Created new table to store the received message hashes. Checking this table when receiving messages to look for duplicates. Should be cleared of expired messages on app start and every hour after

Removed id which was not needed for seen messages. Refactored filter logic into function and found function name error

create unique index for contact prekeys (to allow using REPLACE)

Fixed lint stuff that merge brought back
7 years ago
sachaaaaa 82a09d46d7
Merge pull request #42 from sachaaaaa/restore_padding
restore ciphertext padding
7 years ago
Mikunj ece266fffd Added showing pow icon. 7 years ago
sachaaaaa 847401e49a restore ciphertext padding 7 years ago
Beaudan 9731c9e086 Comment out some signal server based code causing errors. Return before trying to unpad message because they aren't being padded in the first place 7 years ago
sachaaaaa ad1cf94526 ES2015 classes for LokiServer and FallBackSessionCipher 7 years ago
BeaudanBrown 9ceb3c8ac0
Merge branch 'development' into message-polling 7 years ago
Beaudan c59b196487 Now reading messages and adding them to conversations. Some cleaning of unreachable code. Modified the message data to be encoded as base64 string before sending to server
Sending our public key in header of message

Now attaching our key to the source field when sending messages, allows messages to be decrypted with the fallback cypher

Now polling the server for messages every 5 seconds

Sending the source device with messages

Added mock respond function to request to leave it that same as the websocket stuff. RetrieveMessages now just returns the result

Polling now continues if the server responds with an error. Returning only the result from sendMessage and retrieveMessages

Revert commenting of unreachable code

Refactored http logic into own file

Revert a change to websocket-resources
7 years ago
Mikunj 2fabd93fd6 Fix message sending 7 years ago
Mikunj 77602e3dbb Moved contactPreKey and contactSignedPreKey to sql. 7 years ago
Mikunj f589fdac5c Merge signal changes into branch. 7 years ago
Scott Nonnenberg e2e0e4c96b Refine sealed sender logic 7 years ago
sachaaaaa dda71cbea1 always lock editor after sending friend request. unlock if error. 7 years ago
sachaaaaa 4b9fcb98d4 Linting and other housekeeping stuff 7 years ago
Scott Nonnenberg a7d78c0e9b Sealed Sender support
https://signal.org/blog/sealed-sender/
7 years ago
sachaaaaa 13858dfa66 yarn.lock and fix missing variable in transmission error handling 7 years ago
sachaaaaa 143b1e883d
Merge pull request #17 from sachaaaaa/lock_input_friend_request
Lock input after friend request is sent
7 years ago
sachaaaaa 1cf8710127
Merge pull request #16 from sachaaaaa/friend_response
Handle prekeys in incoming friend request
7 years ago
Beaudan d9c89376cb Added logic to pass tll into transmitMessage function, with default value of 24 hours.
TODO: ensure that the target calculation for the PoW is adjusting appropriately for the different ttl values.
7 years ago
sachaaaaa fb020f88ea call 'onFriendRequestSent' only after the message was successfully sent 7 years ago
sachaaaaa 93f1534512 Save prekeys upon reception of friend request. Add function to send an empty message as friend request acceptance 7 years ago
sachaaaaa b9dbf11ebc Fix various things from previous commits 7 years ago
sachaaaaa 5602f4bfff Change placeholder in discussion 7 years ago
sachaaaaa d4d0d05adf Lock text input while waiting for friend request reply 7 years ago
sachaaaaa 886f47b8e7
Prekeys sending: first pass (#12)
* add 'recipient' attribute in prekey database to allow binding a prekey to a recipient pub key

* Attach a PreKeyBundleMessage to the ContentMessage in fallback encryption mode

* Skip generating 100 prekeys upon registration

* Store the signed key signature in database
7 years ago
sachaaaaa 9677f8b648
Merge branch 'development' into send_as_bytes 7 years ago
sachaaaaa be29ea725a revert libsignal-protocol and convert binary-encoded string to Uint8Array later down the line 7 years ago
sachaaaaa 6fe70b9b85 Send outgoing messages as raw bytes (Uint8Array) and moved recipient & ttl to header 7 years ago
sachaaaaa 9da4e94276 print outgoing messages as bytes, that can be injected in the mock socket server for debugging 7 years ago
sachaaaaa 04b45f6aa1 Decrypt friend-request messages (the ones using fallback encryption). Moved logic into a new file libloki-protocol.js and concat loki code into js/libloki.js 7 years ago
sachaaaaa 5e9f4177ff style nits 7 years ago
sachaaaaa d6954aa91c Wrap outgoing message in a WebSocketMessage proto object to match incoming format 7 years ago
sachaaaaa 42e941531f Add fallback encryption (FallBackSessionCipher. simple DH) for when key bundle hasn't been received yet. Skip padding of bytes. 7 years ago
sachaaaaa b7ca5562b2 remove debugging code that skips encryption 7 years ago
sachaaaaa fbf13e1873 make transmitMessage call loki_message_api.sendMessage instead of webapi::sendMessage 7 years ago
sachaaaaa 0832806bd9 wip: added helper to create mock contacts, almost got a session working 7 years ago
sachaaaaa b84ff76faf Fix error handling when sending message + clean up in loki_message_api 7 years ago
sachaaaaa 8ada6ce8ad serialize message as base64 7 years ago
sachaaaaa 1e14022e2f Add skeleton for Loki Message API. Wrap data in json (for now?) 7 years ago
Scott Nonnenberg 0774ba2903 Eslintify all of libtextsecure 7 years ago
Scott Nonnenberg 5933a34a18 Use window.log in browser context, turn on console eslint rule 7 years ago
Scott Nonnenberg a0ed993b42 Now we've got everything prettified! 7 years ago
Daniel Gasienica 95321e5d3e Remove Vim mode lines 7 years ago
Lilia 52cc8355a6 Feature: Blue check marks for read messages if opted in (#1489)
* Refactor delivery receipt event handler

* Rename the delivery receipt event

For less ambiguity with read receipts.

* Rename synced read event

For less ambiguity with read receipts from other Signal users.

* Add support for incoming receipt messages

Handle ReceiptMessages, which may include encrypted delivery receipts or read
receipts from recipients of our sent messages.

// FREEBIE

* Rename ReadReceipts to ReadSyncs

* Render read messages with blue double checks

* Send read receipts to senders of incoming messages

// FREEBIE

* Move ReadSyncs to their own file

// FREEBIE

* Fixup old comments on read receipts (now read syncs)

And some variable renaming for extra clarity.

// FREEBIE

* Add global setting for read receipts

Don't send read receipt messages unless the setting is enabled.
Don't process read receipts if the setting is disabled.

// FREEBIE

* Sync read receipt setting from mobile

Toggling this setting on your mobile device should sync it to Desktop. When
linking, use the setting in the provisioning message.

// FREEBIE

* Send receipt messages silently

Avoid generating phantom messages on ios

// FREEBIE

* Save recipients on the outgoing message models

For accurate tracking and display of sent/delivered/read state, even if group
membership changes later.

// FREEBIE

* Fix conversation type in profile key update handling

// FREEBIE

* Set recipients on synced sent messages

* Render saved recipients in message detail if available

For older messages, where we did not save the intended set of recipients at the
time of sending, fall back to the current group membership.

// FREEBIE

* Record who has been successfully sent to

// FREEBIE

* Record who a message has been delivered to

* Invert the not-clickable class

* Fix readReceipt setting sync when linking

* Render per recipient sent/delivered/read status

In the message detail view for outgoing messages, render each recipient's
individual sent/delivered/read status with respect to this message, as long as
there are no errors associated with the recipient (ie, safety number changes,
user not registered, etc...) since the error icon is displayed in that case.

*Messages sent before this change may not have per-recipient status lists
and will simply show no status icon.

// FREEBIE

* Add configuration sync request

Send these requests in a one-off fashion when:
  1. We have just setup from a chrome app import
  2. We have just upgraded to read-receipt support

// FREEBIE

* Expose sendRequestConfigurationSyncMessage

// FREEBIE

* Fix handling of incoming delivery receipts - union with array

FREEBIE
8 years ago
Scott Nonnenberg 7e8f3ab5e7
Fix for "Can't find record for undefined.1"
Also, we didn't need to recalculate the number here anyway!

FREEBIE
8 years ago
Scott Nonnenberg e223db56d9 Set messageKeysLimit to unlimited if communicating with our devices (#1348)
Set messageKeysLimit to unlimited if communicating with our devices

FREEBIE
8 years ago
Scott Nonnenberg 224140c911 OutgoingMessage: Provide proper timestamp for replayability
FREEBIE
8 years ago
Scott Nonnenberg 5d1150e5bc Fix call to reloadDevicesAndSend - it returns a function
FREEBIE
8 years ago
Scott Nonnenberg 4ee4ad80c3 Message.send - check for missing identityKey, also add logging
FREEBIE
8 years ago
Scott Nonnenberg 551aa24e9a OutgoingMessage: A few code style tweaks to make things readable
FREEBIE
8 years ago
Scott Nonnenberg 116e4d2eeb OutgoingMessage: Reduce the calls to registerError
In some cases, due to promise chaining and error propagation, we were
calling registerError more than once for a given error. This would then
cause the overall callback for the send operation to be called with a
partial set of errors, as well as duplicates.

Note: we do need to find a way to attach identityKey to the
OutgoingIdentityKeyError in the case where it comes directly from the
encrypt() instead of our pre-key operations.

FREEBIE
8 years ago
lilia 4232f5711c Handle identity key change errors on encrypt
We need to capture key change errors from the protocol library when we call
encrypt. Previously we would only see these on session init.

// FREEBIE
8 years ago
lilia 3afe378063 Remove legacy property from OutgoingMessage 8 years ago
lilia d47ced1199 Don't recompute outgoing message padding
We can use the same padded plaintext across multiple numbers or attempts rather
than re-creating it every time we encrypt to a particular number.

// FREEBIE
8 years ago
lilia 30201969be Inline some functions in OutgoingMessage
Since we no longer have legacy messages to send, we can simplify things a bit
here.

// FREEBIE
8 years ago
lilia e8548879db Stop sending legacy DataMessages 8 years ago
lilia 0fac2e1d68 Log when we see a 0 registrationId
Most likely an indicator that the device we're dealing with is a 3rd
party client.

// FREEBIE
8 years ago
haffenloher d2ddfc72e4 Throw UnregisteredUserErrors in getKeysForNumber() 8 years ago
lilia 7c81e4ed2e Delete extra space 9 years ago
lilia d11f9fd538 Update libsignal-protocol v1.1.4
// FREEBIE
9 years ago
lilia 167f19153c Update libsignal-protocol v1.1.0
Moves padding operations to the service library.

// FREEBIE
9 years ago
lilia d89c3e8e86 Remove devices with no keys
// FREEBIE
9 years ago
lilia 89d3b772d5 Define UnregisteredUserError class
// FREEBIE
9 years ago
lilia 81dfdd959f Don't allow retry on unregistered user errors
// FREEBIE
9 years ago
lilia 055c0c323e Remove unneeded property from device object
// FREEBIE
9 years ago
lilia 58452066aa Move device storage methods to outgoing message
This is the only place they are called.

// FREEBIE
9 years ago
lilia d32a352d8a Use deviceIds/addresses instead of encodedNumbers
The getDeviceObjectsForNumber method returns device objects that contain
nothing but the encodedNumber property. Instead, just deal in deviceIds
until a SignalProtocolAddress is constructed to manage both the number
and deviceId.

// FREEBIE
9 years ago
lilia 95935f70ee Remove relay check from sendmessage
We don't currently store any relay information about devices,
and

// FREEBIE
9 years ago