Commit Graph

2765 Commits (6b7edc2df3bd8f9992cb9cd7e837331be82a81e9)
 

Author SHA1 Message Date
lilia e5e4eab9c5 Add archiveSiblingSessions
// FREEBIE
8 years ago
lilia 982e7f962c Update libsignal-protocol
// FREEBIE
8 years ago
Scott Nonnenberg e2ee63efaa m.get('sender') -> m.isIncoming(), filter in getLoadedUnreadCount
FREEBIE
8 years ago
Scott Nonnenberg 5b46ef3562 Show last seen indicator for keychange/verification notifications
FREEBIE
8 years ago
Scott Nonnenberg 1fedc75e5d Handle unverified length of zero
This can happen with unknown groups, where we don't know the list of
members but we're receiving messages. It's generally not a good
experience, but we shouldn't crash.

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 f414c13220 Protos: Update to optional verified in sync (was: repeated)
This means that we no longer need to iterate.

FREEBIE
8 years ago
lilia fdce4cfc7c Fix failed identity key sync from contact sync
These were failing because ByteBuffers from the protobufs need to be converted
to ArrayBuffers. Fixed by useing the existing handler in MessageReceiver to
process verified messages from contact sync messages and dispatch them as their
own events, reducing some complexity on the application side.

// FREEBIE
8 years ago
Scott Nonnenberg 78094102bd Message.send: Add promise to array for consistency
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
Scott Nonnenberg 30bc3fca3a MessageView: Be resilient to multiple renders of a network error
FREEBIE
8 years ago
Scott Nonnenberg 5e62d0cfd8 Update identity key after a send error tells us it has changed
FREEBIE
8 years ago
Scott Nonnenberg 22208ec3f8 Fix: Conversation.updateVerified fails when convo not yet in db
FREEBIE
8 years ago
lilia 9f4fcc5afa Send null messages to mask verified syncs
First construct a null message of random size and contents and send it to the
destination. Then include that same padding in the verification sync.

Note that the sync message is additionally randomly padded like all other sync
messages.

This lets Verified sync messages appear the same as normal sync message traffic.

// FREEBIE
8 years ago
lilia bb9c97b960 Support for receiving null messages
Just log em for debugging. Also update the error messge thrown when we get a
content message with no supported properties. It may be empty or may just have
an unrecognized field.

// FREEBIE
8 years ago
lilia 243fd68904 Handle verified state from contact syncs
Treat it just like an isolated verified state sync

// FREEBIE
8 years ago
lilia 1e93b12b90 Update protos with support for null messages
// FREEBIE
8 years ago
lilia 6e758fc1ea Randomly pad all sync messages
WhisperSystems/libsignal-service-java@c46cdc0aa5

// FREEBIE
8 years ago
Scott Nonnenberg 7bfb66b13b processVerifiedMessage: Archive all sessions when key changes
FREEBIE
8 years ago
Scott Nonnenberg 827addf628 Log on receipt of verified sync after we've processed the state
FREEBIE
8 years ago
lilia d7054f4b63 Archive sessions whenever an identity key changes
Sessions established with the previous identity should no longer be used for
sending, so we should close them.

Since we've added this call to saveIdentity, we can omit the call to it after
profile fetches.

// FREEBIE
8 years ago
Scott Nonnenberg 0056cbefc1 processVerifiedMessage: Trigger keychange event when key differs
FREEBIE
8 years ago
Scott Nonnenberg 0db2ef9e7f Refactor: combine Conversation.setVerified/setVerifiedDefault
FREEBIE
8 years ago
Scott Nonnenberg d1fa28b706 Object.assign -> _.extend(), for to make Chrome 45 and below work
FREEBIE
8 years ago
Scott Nonnenberg 1e8ae774a2 Differentiate between local and remote trust decisions
FREEBIE
8 years ago
Scott Nonnenberg 20f4d48991 Protos: Move to latest iteration of verification protos
FREEBIE
8 years ago
Scott Nonnenberg 3360f65fac Protos: Update spacing to match libsignal-service-java
FREEBIE
8 years ago
lilia 3acfda3a56 Archive sessions on key changes after profile fetch
// 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 5d5805526a Fix a test
Set the timestamp on the record to current time to ensure that
nonblockingApproval will be required.

// FREEBIE
8 years ago
lilia f15fadbb4d Test processVerifiedMessage 8 years ago
lilia 044e1560e0 Test new setVerified behavior
// FREEBIE
8 years ago
lilia 4f2f622598 Apply special handling to verification sync messages
// FREEBIE
8 years ago
lilia 1614a6f1b8 Add special handling for verification sync
processVerifiedMessage checks the current state of the database against the
identity key from an incoming verification sync message to determine whether or
how to update our local record.

When syncing a DEFAULT status and we have no local record, it's a no-op, but
we'll log it.

When syncing a DEFAULT status and we have non-default record with the same key,
mark it as default.

When syncing a VERIFIED status and either:
  1. we have no key on record,
  2. we have have a different key on record, or
  3. we have the same key on record, but not verified
mark it as verified.

Otherwise do nothing.

References: https://github.com/WhisperSystems/Signal-Android/blob/master/src/org/thoughtcrime/securesms/util/IdentityUtil.java#L129

// FREEBIE

Ensure processVerified resolves
8 years ago
lilia c60919ca0e Update setVerified to take an optional key argument
If specified, the existing local key must match the given one or we will not
update the record.

// FREEBIE
8 years ago
lilia 33b4d398d6 Fix indentation 8 years ago
lilia 1e594e79c1 Fix test page template
// FREEBIE
8 years ago
Scott Nonnenberg 2778148179 Move unverified banner text to match Android
Longer, so it will wrap more often. We have the right alignment and
padding in place, though, so it looks pretty reasonable.

FREEBIE
8 years ago
Scott Nonnenberg 12d7fb3b74 Left-align confirmation dialog text, explain more on 'send anyway'
FREEBIE
8 years ago
Scott Nonnenberg 16433d661a Show call to action on group member list when verifying
FREEBIE
8 years ago
Scott Nonnenberg 31bf05e14a Add verified state summary to top of safety number screen
FREEBIE
8 years ago
Scott Nonnenberg d462108e83 Replace warning icon with a smaller file so it scales down better
FREEBIE
8 years ago
Scott Nonnenberg 11372b4e00 Add icons for keychange and expiration timer in-conversation items
The shield matches the Android app's key change notification, and the
clock icon was easy to do and makes it easier to visually distinguish
those items in the conversation history.

FREEBIE
8 years ago
Scott Nonnenberg c714fb6dbf Shadow/icon/blue for banner, better verify advisories in dark theme
FREEBIE
8 years ago
Scott Nonnenberg 1d7cbc14fd Fix a couple bind()) issues when getting verified state
FREEBIE
8 years ago
Scott Nonnenberg b0dbecb4e2 Check trust store for identity key information on every new message
It's debounced so it doesn't go too crazy.

FREEBIE
8 years ago
Scott Nonnenberg 782c484680 Check trust store for latest identity key info before sending
We definitely want the latest information from our local database before
attempting to send.

FREEBIE
8 years ago