Moxie Marlinspike
3999171377
Introduce registration-time ID for detecting stale sessions.
...
1) At registration time, a client generates a random ID and
transmits to the the server.
2) The server provides that registration ID to any client
that requests a prekey.
3) Clients include that registration ID in any
PreKeyWhisperMessage.
4) Clients include that registration ID in their sendMessage
API call to the server.
5) The server verifies that the registration ID included in
an API call is the same as the current registration ID
for the destination device. Otherwise, it notifies the
sender that their session is stale.
2014-02-18 12:51:23 -08:00
Moxie Marlinspike
9bb327db42
Handle SMS fallback preferences correctly, and fix directory sync.
2014-02-17 15:31:42 -08:00
Moxie Marlinspike
b9f4fba98a
Handle identity key mismatch on outgoing group messages.
...
Additionally, make the group creation process asynchronous.
2014-02-17 11:43:37 -08:00
Moxie Marlinspike
7d3a2acb29
Fix build
2014-02-14 16:41:06 -08:00
Moxie Marlinspike
9438973eac
Switch to protobuf enums for push signal type.
2014-02-14 16:20:47 -08:00
Jake McGinty
b4a4e629f1
alignment and string work
2014-02-12 12:05:18 -08:00
Jake McGinty
9cd5a67ec5
directory changes to use number instead of token, group ui progress
2014-02-12 11:35:04 -08:00
Moxie Marlinspike
0af473d880
Merge branch 'groups' of github.com:WhisperSystems/TextSecure into groups
2014-02-03 11:52:27 -08:00
Moxie Marlinspike
0ace469d74
Support for multi-device.
...
1) In addition to the Recipient interface, there is now
RecipientDevice. A Recipient can have multiple corresponding
RecipientDevices. All addressing is done to a Recipient, but
crypto sessions and transport delivery are done to
RecipientDevice.
2) The Push transport handles the discovery and session setup
of additional Recipient devices.
3) Some internal rejiggering of Groups.
2014-02-02 19:38:06 -08:00
Jake McGinty
9fd2c4753e
ui wip
2014-01-25 23:39:56 -08:00
Moxie Marlinspike
49daa45dca
wip
2014-01-14 00:26:43 -08:00
Moxie Marlinspike
71664926e9
Better handling for unregistered users on outgoing message.
2014-01-06 14:38:41 -08:00
Moxie Marlinspike
3c3028c8e3
Typo
2014-01-06 14:38:15 -08:00
Moxie Marlinspike
842df1ac39
Remove receiver chains that are 5 old.
2014-01-06 14:38:15 -08:00
Moxie Marlinspike
ff0dff745c
Let's order 3DHE by Alice/Bob roles.
2014-01-06 14:38:15 -08:00
Moxie Marlinspike
d4188c4a1c
SHA256 attachment MACs.
2014-01-06 14:38:14 -08:00
Moxie Marlinspike
f002072f38
New attachment API
2014-01-06 14:38:14 -08:00
Moxie Marlinspike
72be77b47e
Catch bad prekeys
2014-01-06 14:38:14 -08:00
Moxie Marlinspike
327ee4ff62
Remove unnecessary classes, up prekey limit to 100
2014-01-06 14:38:14 -08:00
Moxie Marlinspike
1ab4e7e9de
Library accepts push connection certificate as argument.
2014-01-06 14:38:14 -08:00
Moxie Marlinspike
ce5f3c5157
Validate phone numbers when formatting.
2014-01-06 14:37:52 -08:00
Moxie Marlinspike
f7b71e5e28
Add info to MessageKey HKDF, change order of RootKey derivation.
2014-01-06 14:37:52 -08:00
Moxie Marlinspike
44092a3eff
Support for Axolotl protocol.
...
1) Split code into v1 and v2 message paths.
2) Do the Axolotl protocol for v2.
3) Switch all v2 entities to protobuf.
2014-01-06 14:37:52 -08:00
Moxie Marlinspike
dc73bc2a5c
Having calling code specify push URL to library.
2014-01-06 14:37:52 -08:00
Moxie Marlinspike
f8dda5afd6
Missing comma
2014-01-06 14:37:51 -08:00
Moxie Marlinspike
7e926d08ac
Better relay handling.
2014-01-06 14:37:51 -08:00
Moxie Marlinspike
f10d6a7b0b
Lets use strict wildcard matching.
2014-01-06 14:36:23 -08:00
Moxie Marlinspike
320cc84392
Update production endpoint.
2014-01-06 14:36:23 -08:00
Moxie Marlinspike
07b7696937
Update 'DJB' type not to conlict with NIST type 0x04.
2014-01-06 14:36:23 -08:00
Moxie Marlinspike
c38a8aa699
Migrate to Curve25519.
...
1) Generate a Curve25519 identity key.
2) Use Curve25519 ephemerals and identities for v2 3DHE agreements.
3) Initiate v2 key exchange messages.
4) Accept v1 key exchange messages.
5) TOFU Curve25519 identities.
2014-01-06 14:36:22 -08:00
Moxie Marlinspike
a03fff8b24
Add HKDF support for new sessions.
2014-01-06 14:36:22 -08:00
Moxie Marlinspike
dbc070cd65
Refactor the ciphertext message parsing and building.
2014-01-06 14:36:22 -08:00
Moxie Marlinspike
6e640db39c
204 is ok
2014-01-06 14:36:21 -08:00
Moxie Marlinspike
44d59d0fd1
Correctly store destination SMS state.
2014-01-06 14:36:21 -08:00
Moxie Marlinspike
51b9affe90
Add federation support for attachment retrieval.
2014-01-06 14:36:21 -08:00
Moxie Marlinspike
246cd10454
Bundle e164 and relay into PushDestination
2014-01-06 14:36:21 -08:00
Moxie Marlinspike
ca3c82f581
Simply PushServiceSocket constructor.
2014-01-06 14:36:21 -08:00
Moxie Marlinspike
5b2caa0074
Make relay arguments consistent.
2014-01-06 14:36:21 -08:00
Moxie Marlinspike
7fd9946275
Fix release push service url
2014-01-06 14:35:54 -08:00
Moxie Marlinspike
fa5ccc3f8a
Support for server federation.
2014-01-06 14:35:54 -08:00
Moxie Marlinspike
e7a21752d8
Switch code API to GET.
2014-01-06 14:35:54 -08:00
Moxie Marlinspike
2d083208cc
Handle negative directory case and unlisted contacts.
2014-01-06 14:35:54 -08:00
Moxie Marlinspike
75cca3add1
Resign ourselves to a less sophisticated contact intersection method.
2014-01-06 14:35:53 -08:00
Moxie Marlinspike
073b1f69e3
Rollbacks, v2 sms-transport key exchanges, push identity conflicts.
...
1) Stop protocol rollbacks.
2) Handle v2 version key exchange messages.
3) Handle identity key conflicts on prekeybundle messages.
2014-01-06 14:35:53 -08:00
Moxie Marlinspike
5e6d39beea
Move classes into library
2014-01-06 14:35:53 -08:00
Moxie Marlinspike
8f6590b738
Handle notifications and receiving push when locked.
2014-01-06 14:35:53 -08:00
Moxie Marlinspike
0dd36c64a4
Basic support for encrypted push-based attachments.
...
1) Move the attachment structures into the encrypted message body.
2) Encrypt attachments with symmetric keys transmitted in the
encryptd attachment pointer structure.
3) Correctly handle asynchronous decryption and categorization of
encrypted push messages.
TODO: Correct notification process and network/interruption
retries.
2014-01-06 14:35:53 -08:00
Moxie Marlinspike
cddba2738f
Make encoding/decoding more explicit.
2014-01-06 14:35:53 -08:00
Moxie Marlinspike
0cc5837d7f
Support encrypted transport, properly handle multiple recipients.
...
1) Add encryption support for the transport layer. This obscures
metadata from the push messaging provider.
2) Better support the direction multiple destination messages is
headed (one unique message per recipient).
2014-01-06 14:35:53 -08:00
Moxie Marlinspike
68ec0a3727
Add last resort key and signaling key.
2014-01-06 14:35:53 -08:00