Commit Graph

135 Commits

Author SHA1 Message Date
Michael Kirk
bdb75fa596 infer when group has been whitelisted on linked device
// FREEBIE
2017-08-29 17:09:28 -04:00
Matthew Chen
b00db33d12 Don't ignore attachments.
// FREEBIE
2017-08-29 16:35:52 -04:00
Michael Kirk
3ffb321e2a fix assert
// FREEBIE
2017-08-29 12:02:24 -04:00
Michael Kirk
d71b7684a6 cleanup logging
// FREEBIE
2017-08-29 10:46:10 -04:00
Michael Kirk
ec0cf36abb Don't print empty bubbles.
e.g. if we add another "invisible" flag message in the future we want to
be able to roll it out immediately.

// FREEBIE
2017-08-29 10:39:36 -04:00
Michael Kirk
69e8ca8eac Handle receiving profile key messages
(don't print empty bubble)

// FREEBIE
2017-08-29 10:35:54 -04:00
Michael Kirk
9c56660618 profile key flag and debug action
// FREEBIE
2017-08-29 10:35:54 -04:00
Michael Kirk
0feb966a1c comment cleanup / code formatting
// FREEBIE
2017-08-29 10:35:18 -04:00
Michael Kirk
6cde79c568 Assert profile key length on sending/receiving
// FREEBIE
2017-08-29 10:35:18 -04:00
Michael Kirk
6235e7fe5c Don't send profile key with every sync message since we explicitly sync
upon update/create.

Following Signal-Android's lead here.

// FREEBIE
2017-08-29 10:35:18 -04:00
Michael Kirk
526d5e33b9 Sync profile key to sibling devices when updating contact
// FREEBIE
2017-08-29 10:35:18 -04:00
Michael Kirk
46919e4702 Add own profile key to multidevice provisioning message
// FREEBIE
2017-08-29 10:35:18 -04:00
Michael Kirk
1f3d2d1ed6 Send any profile key in contact sync
// FREEBIE
2017-08-29 10:35:18 -04:00
Michael Kirk
f0a57edde0 proto update: multiDevice profileKey sync
Also:

- minimize diff between Signal-Android's protos
- comment whereever we diverge from Signal-Android

// FREEBIE
2017-08-29 10:35:18 -04:00
Michael Kirk
1e51bf4899 extract event names
// FREEBIE
2017-08-25 17:19:31 -04:00
Michael Kirk
251e206b6d profiles vs. censorship circumvention
// FREEBIE
2017-08-25 17:17:43 -04:00
Michael Kirk
bde40a1f9c Ensure avatar upates right after profile change.
// FREEBIE
2017-08-25 12:40:19 -04:00
Matthew Chen
703b348091 Respond to CR.
// FREEBIE
2017-08-23 09:55:53 -04:00
Matthew Chen
a9b55675cd Add assert to ensure that we don't use write transactions before sync database view registration is complete.
// FREEBIE
2017-08-23 09:46:26 -04:00
Matthew Chen
97f74ca5b4 Only use staging service in debug builds.
// FREEBIE
2017-08-22 17:19:44 -04:00
Matthew Chen
a825fad47b Start reworking the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
98eb4693c5 Rework the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Michael Kirk
0ab958f03a cleanup per codereview
- reference OWS OpenSSL
- clarify comments
- fix typo

// FREEBIE
2017-08-21 16:37:16 -04:00
Michael Kirk
0f9f26a577 handle remote user's profile key has changed
// FREEBIE
2017-08-21 16:37:16 -04:00
Michael Kirk
72fbb02028 aes-gcm via openssl
// FREEBIE
2017-08-21 16:37:16 -04:00
Matthew Chen
164bf19b47 Respond to CR.
// FREEBIE
2017-08-17 11:22:25 -04:00
Matthew Chen
622c0c3f5f * Add debug UI tools for clearing and logging the profile whitelist.
* Auto-add new contact threads to profile whitelist when local user sends first message to that thread.
* Ensure dynamic interactions have a non-negative timestamp even if the conversation was empty.
* Only call updateMessageMappingRangeOptions _after_ beginLongLivedReadTransaction and updating messageMappings.
* Improve documentation around how to avoid corrupt mappings in conversation view.
* Fix edge cases around large initial range sizes.
* Always treat dynamic interactions as read.
* Rebuild the “unseen” database views to remove dynamic interactions (see above).

// FREEBIE
2017-08-17 11:22:25 -04:00
Matthew Chen
d476bc286d * Add debug UI tools for clearing and logging the profile whitelist.
* Auto-add new contact threads to profile whitelist when local user sends first message to that thread.
* Ensure dynamic interactions have a non-negative timestamp even if the conversation was empty.
* Only call updateMessageMappingRangeOptions _after_ beginLongLivedReadTransaction and updating messageMappings.
* Improve documentation around how to avoid corrupt mappings in conversation view.
* Fix edge cases around large initial range sizes.
* Always treat dynamic interactions as read.
* Rebuild the “unseen” database views to remove dynamic interactions (see above).

// FREEBIE
2017-08-17 11:22:25 -04:00
Michael Kirk
97afa4d48a verification on decrypt
// FREEBIE
2017-08-15 15:19:40 -04:00
Michael Kirk
135243e383 CR: variable rename, better comments, fix up tests
// FREEBIE
2017-08-14 15:18:12 -04:00
Michael Kirk
7499b3aaf0 Avatar API integration / WIP crypto scheme
Crypto Scheme:

- Name (un)padding
- WIP AES-GCM (funtioning, but need to verify against android
  implementation, and tag functionality)

Changes to avatar API:

- hard code avatar domain (cdn.signal.org)
- avatar form hands out new avatar key, invalidating old avatar
- preliminary aes-gcm integration

Also:

- New type to represent AES128 keys, rather than passing around opaque
  data blobs everywhere, we can use the compiler to help us make sure
  we're passing compliant keying material.

- Started using factory pattern for API requests. This is intended to be
  a lighter weight way to implement new API requests, rather than the
  current 1-method class ceremony.

// FREEBIE
2017-08-14 12:45:37 -04:00
Michael Kirk
fc3f9ae396 Replace server sent avatar URL with hardcoded
// FREEBIE
2017-08-11 11:19:05 -04:00
Michael Kirk
9fdc3202af White listing must happen on main thread
followup to: ee613e4889

Again, this solves a crash, but we'll want to revisit the perf
implications.

// FREEBIE
2017-08-11 09:11:55 -04:00
Michael Kirk
40b99a15ed Fix up some tests
Included plausible test implementation for an in-memory profile manager.

Note two tests remain failing (they've been failing for a while)

// FREEBIE
2017-08-09 12:17:03 -04:00
Michael Kirk
a3ae22c84f Upload profile avatar to service
WIP, this currently lacks crypto pending further discussion.

// FREEBIE
2017-08-09 11:44:34 -04:00
Michael Kirk
45a1f534ba Rename method to make way for new method.
No behavioral changes.

// FREEBIE
2017-08-08 15:03:48 -04:00
Michael Kirk
72b3f3779b Discard GroupInfoRequest from unknown group
// FREEBIE
2017-08-08 12:17:26 -04:00
Michael Kirk
ee613e4889 Can only set whitelist on main thread
As written solves a crash, but we'll probalby want to revisit the perf
implications.

// FREEBIE
2017-08-07 16:48:12 -04:00
Michael Kirk
e07ed50170 define avatar form URL
// FREEBIE
2017-08-07 15:17:34 -04:00
Matthew Chen
e01fbc247e Refine profile logic.
// FREEBIE
2017-08-04 17:35:22 -04:00
Matthew Chen
21304c18a6 Once we've shared our profile key with a user (perhaps due to being a member of a whitelisted group), make sure they're whitelisted.
// FREEBIE
2017-08-04 17:34:27 -04:00
Matthew Chen
98def41782 Respond to CR.
// FREEBIE
2017-08-04 17:33:16 -04:00
Matthew Chen
823927685d Update profile on service.
// FREEBIE
2017-08-04 15:25:17 -04:00
Matthew Chen
83e2fbe28c Rework where profile key is attached in photos.
// FREEBIE
2017-08-04 15:23:17 -04:00
Matthew Chen
b5fdc05b91 Move profile key to data, call, sync and null protos.
// FREEBIE
2017-08-04 15:23:02 -04:00
Matthew Chen
37ce388eb6 Add “add to profile whitelist” offer.
// FREEBIE
2017-08-04 15:23:02 -04:00
Michael Kirk
ed4de7e8af Simplify code / pre-cache localNumber
Now that localNumber is read from a dedicated dbConnection we don't have
to worry about it blocking.

// FREEBIE
2017-08-04 15:19:26 -04:00
Michael Kirk
f99d4e9df9 Merge branch 'hotfix/2.15.2' 2017-08-04 13:11:53 -04:00
Michael Kirk
3856f3dfb1 Improve asserts/logging
// FREEBIE
2017-08-04 12:14:43 -04:00
Michael Kirk
52bd682565 fix some recently broken tests
// FREEBIE
2017-08-04 11:33:51 -04:00