signal-desktop/js
Lilia ae190fed44
Profiles (#1453)
* Add AES-GCM encryption for profiles

With tests.

* Add profileKey to DataMessage protobuf

// FREEBIE

* Decrypt and save profile names

// FREEBIE

* Save incoming profile keys

* Move pad/unpad to crypto module

// FREEBIE

* Support fetching avatars from the cdn

// FREEBIE

* Translate failed authentication errors

When AES-GCM authentication fails, webcrypto returns a very generic error. The
same error is thrown for invalid length inputs, but our earlier checks in
decryptProfile should rule out those failure modes and leave us safe to assume
that we either had bad ciphertext or the wrong key.

// FREEBIE

* Handle profile avatars (wip) and log decrypt errors

// FREEBIE

* Display profile avatars

Synced contact avatars will still override profile avatars.

* Display profile names in convo list

Only if we don't have a synced contact name.

// FREEBIE

* Make cdn url an environment config

Use different ones for staging and production

// FREEBIE

* Display profile name in conversation header

* Display profile name in group messages

* Update conversation header if profile avatar changes

// FREEBIE

* Style profile names small with ~

* Save profileKeys from contact sync messages

// FREEBIE

* Save profile keys from provisioning messages

For standalone accounts, generate a random profile key.

// FREEBIE

* Special case for one-time sync of our profile key

Android will use a contact sync message to sync a profile key from Android
clients who have just upgraded and generated their profile key. Normally we
should receive this data in a provisioning message.

// FREEBIE

* Infer profile sharing from synced data messages

* Populate profile keys on outgoing messages

Requires that `profileSharing` be set on the conversation.

// FREEBIE

* Support for the profile key update flag

When receiving a message with this flag, don't init a message record, just
process the profile key and move on.

// FREEBIE

* Display profile names in group member list

* Refresh contact's profile on profile key changes

// FREEBIE

* Catch errors on profile save

// FREEBIE

* Save our own synced contact info

Don't return early if we get a contact sync for our own number

// FREEBIE
2017-09-14 17:04:00 -07:00
..
models Profiles (#1453) 2017-09-14 17:04:00 -07:00
views Profiles (#1453) 2017-09-14 17:04:00 -07:00
background.js Profiles (#1453) 2017-09-14 17:04:00 -07:00
backup.js Separate dir selection from import, better import button text 2017-09-14 17:02:46 -07:00
chromium.js Remove extension.notification 2017-09-14 16:53:45 -07:00
components.js Introduce new filesize dependency 2017-05-09 15:14:20 -07:00
conversation_controller.js Remove dead code 2017-09-14 16:53:45 -07:00
database.js Flatten database migrations 2017-09-14 16:53:39 -07:00
debugLog.js Note how many debug logs we have after we load them from DB 2017-09-14 16:53:52 -07:00
delivery_receipts.js Additional logging when we get delivery receipt for unknown msg 2017-08-23 13:39:29 -07:00
emoji_util.js Use relative paths 2017-09-14 16:53:34 -07:00
expire.js Build expiration date 2017-09-14 16:53:38 -07:00
expiring_messages.js Fetch all conversations on startup of app, not on inbox load (#1437) 2017-09-06 18:18:46 -07:00
focus_listener.js Move focus listeners to their own file 2017-09-14 16:53:37 -07:00
i18n.js Use correct locale, fall back to en if we don't have translations 2017-09-14 16:53:47 -07:00
keychange_listener.js Fetch conversations once, clean up ConversationController API (#1420) 2017-09-01 09:10:41 -07:00
libphonenumber-util.js Refactor number parsing and validation 2015-12-09 18:58:51 -08:00
libsignal-protocol-worker.js Update libsignal-protocol v1.0.0 2016-06-14 16:27:34 -07:00
libtextsecure.js Profiles (#1453) 2017-09-14 17:04:00 -07:00
Mp3LameEncoder.min.js Copy audio-related files into js/ instead of symlinking them (#1456) 2017-09-14 17:03:18 -07:00
notifications.js Make os notifications respect our sound setting (#1445) 2017-09-14 17:03:18 -07:00
read_receipts.js Read/Delivery Receipts: Wait for resolution in main queue 2017-08-04 12:03:25 -07:00
registration.js Refactor registration event 2016-09-20 13:42:33 -07:00
reliable_trigger.js Apply reliable trigger to Backbone.Collection as well 2017-08-04 12:03:25 -07:00
rotate_signed_prekey_listener.js Reschedule all timers on time travel, set interval back to 1000ms 2017-09-14 16:53:53 -07:00
signal_protocol_store.js isUntrusted: Return false if firstUse is true 2017-08-04 12:03:25 -07:00
spell_check.js Merge locale-provided strings into english for failover support 2017-09-14 17:03:17 -07:00
storage.js Import: Wait until db writes resolve before saying we're done (#1401) 2017-09-14 17:03:17 -07:00
wall_clock_listener.js Reschedule all timers on time travel, set interval back to 1000ms 2017-09-14 16:53:53 -07:00
WebAudioRecorderMp3.js Copy audio-related files into js/ instead of symlinking them (#1456) 2017-09-14 17:03:18 -07:00
XMLHttpRequest.js Certificate pinning via node XMLHttpRequest implementation (#1394) 2017-09-14 17:03:17 -07:00