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
2017-09-14 09:45:34 -07:00
2017-09-14 16:53:42 -07:00
2017-09-14 17:04:00 -07:00
2017-09-14 17:04:00 -07:00
2017-09-14 17:04:00 -07:00
2017-09-14 17:04:00 -07:00
2017-09-14 17:04:00 -07:00
2017-09-14 16:53:36 -07:00
2014-10-30 16:53:08 -07:00
2017-09-14 16:53:50 -07:00
2016-02-18 13:45:22 -08:00
2017-09-14 16:53:44 -07:00
2017-09-14 17:04:00 -07:00
2017-05-09 15:14:20 -07:00
2017-09-14 17:04:00 -07:00
2017-09-14 16:41:17 -07:00
2017-09-14 17:03:18 -07:00
2017-06-01 16:34:23 -07:00

Build Status Signal Desktop

Get Signal Private Messenger on the Chrome Web Store!

Signal Desktop is a chrome packaged app that links with your Signal Android or Signal iOS app.

Got a question?

The best place to ask questions is http://support.whispersystems.org.

Found a Bug?

Please search the existing issues for your bug and create a new one if the issue is not yet tracked!

https://github.com/WhisperSystems/Signal-Desktop/issues

Contributing Translations

Interested in helping to translate Signal? Contribute here:

https://www.transifex.com/projects/p/signal-desktop

Contributing Code

Please see CONTRIBUTING.md for setup instructions and contributor guidelines. And don't forget to sign the CLA.

This repository is set up with BitHub, so you can make money for committing to Signal. The current BitHub price for an accepted pull request is:

Current BitHub Price

Contributing Ideas

Have something you want to say about Open Whisper Systems projects or want to be part of the conversation? Get involved in the community forum!

Contributing Funds

Donate

You can add funds to BitHub to directly help further development efforts.

Cryptography Notice

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

License

Copyright 2014-2017 Open Whisper Systems

Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html

Languages
TypeScript 80.3%
JavaScript 14.5%
SCSS 4.7%
Nix 0.3%