Commit Graph

118 Commits (544f06451fad9c4f2a711271949d917e51f9287f)

Author SHA1 Message Date
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.
11 years ago
Jake McGinty 9fd2c4753e ui wip 11 years ago
Moxie Marlinspike 49daa45dca wip 11 years ago
Moxie Marlinspike 71664926e9 Better handling for unregistered users on outgoing message. 11 years ago
Moxie Marlinspike 3c3028c8e3 Typo 11 years ago
Moxie Marlinspike 842df1ac39 Remove receiver chains that are 5 old. 11 years ago
Moxie Marlinspike ff0dff745c Let's order 3DHE by Alice/Bob roles. 11 years ago
Moxie Marlinspike d4188c4a1c SHA256 attachment MACs. 11 years ago
Moxie Marlinspike f002072f38 New attachment API 11 years ago
Moxie Marlinspike 72be77b47e Catch bad prekeys 11 years ago
Moxie Marlinspike 327ee4ff62 Remove unnecessary classes, up prekey limit to 100 11 years ago
Moxie Marlinspike 1ab4e7e9de Library accepts push connection certificate as argument. 11 years ago
Moxie Marlinspike ce5f3c5157 Validate phone numbers when formatting. 11 years ago
Moxie Marlinspike f7b71e5e28 Add info to MessageKey HKDF, change order of RootKey derivation. 11 years ago
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.
11 years ago
Moxie Marlinspike dc73bc2a5c Having calling code specify push URL to library. 11 years ago
Moxie Marlinspike f8dda5afd6 Missing comma 11 years ago
Moxie Marlinspike 7e926d08ac Better relay handling. 11 years ago
Moxie Marlinspike f10d6a7b0b Lets use strict wildcard matching. 11 years ago
Moxie Marlinspike 320cc84392 Update production endpoint. 11 years ago
Moxie Marlinspike 07b7696937 Update 'DJB' type not to conlict with NIST type 0x04. 11 years ago
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.
11 years ago
Moxie Marlinspike a03fff8b24 Add HKDF support for new sessions. 11 years ago
Moxie Marlinspike dbc070cd65 Refactor the ciphertext message parsing and building. 11 years ago
Moxie Marlinspike 6e640db39c 204 is ok 11 years ago
Moxie Marlinspike 44d59d0fd1 Correctly store destination SMS state. 11 years ago
Moxie Marlinspike 51b9affe90 Add federation support for attachment retrieval. 11 years ago
Moxie Marlinspike 246cd10454 Bundle e164 and relay into PushDestination 11 years ago
Moxie Marlinspike ca3c82f581 Simply PushServiceSocket constructor. 11 years ago
Moxie Marlinspike 5b2caa0074 Make relay arguments consistent. 11 years ago
Moxie Marlinspike fa073e0b46 Update gradle plugin version 11 years ago
Moxie Marlinspike 7fd9946275 Fix release push service url 11 years ago
Moxie Marlinspike fa5ccc3f8a Support for server federation. 11 years ago
Moxie Marlinspike e7a21752d8 Switch code API to GET. 11 years ago
Moxie Marlinspike b010c5194a Support publishing AARs to maven local 11 years ago
Moxie Marlinspike 1ac32346c1 Graduate to a rebased and gradle world. 11 years ago
Moxie Marlinspike 2d083208cc Handle negative directory case and unlisted contacts. 11 years ago
Moxie Marlinspike 75cca3add1 Resign ourselves to a less sophisticated contact intersection method. 11 years ago
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.
11 years ago
Moxie Marlinspike 5e6d39beea Move classes into library 11 years ago
Moxie Marlinspike 8f6590b738 Handle notifications and receiving push when locked. 11 years ago
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.
11 years ago
Moxie Marlinspike cddba2738f Make encoding/decoding more explicit. 11 years ago
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).
11 years ago
Moxie Marlinspike 68ec0a3727 Add last resort key and signaling key. 11 years ago
Moxie Marlinspike 45e380a5bb move constants into library 11 years ago
Moxie Marlinspike 1bbcedabd4 Added SMS transport support for PreKeyBundle messages.
1) Added SMS transport support.

2) Keep track of whether a PreKeyBundle message has gotten
   a response, and send them as subsequent messages until
   one has been received.
11 years ago
Moxie Marlinspike 43492b66c4 Rename EncryptedMessage 11 years ago
Moxie Marlinspike 90814be167 Fix up release parameters 11 years ago
Moxie Marlinspike 7f642666dd Basic support for prekeybundle message delivery and receipt. 11 years ago
Moxie Marlinspike 1cc2762656 Refactor relationship between SessionCipher and Message. 11 years ago
Moxie Marlinspike d1969412fb Move PreKey ids to be Mediums, generate in circular buffer. 11 years ago
Moxie Marlinspike edb89ee3e9 Encode prekey as full JSON rather than protobuf blobs.
1) Split prekey messages out into full JSON.

2) Add support for retrieving prekeys.
11 years ago
Moxie Marlinspike 499de2d2bf Move prekey jsonifcation into the push code, add identity key. 11 years ago
Moxie Marlinspike b8f663b69c Move common crypto classes into TextSecureLibrary.
1) Move all the crypto classes from securesms.crypto.

2) Move all the crypto storage from securesms.database.keys

3) Replace the old imported BC code with spongycastle.
11 years ago
Moxie Marlinspike 2042ca6cb7 Generate "prekeys" at push registration time.
This generates a large number of key exchange messages and
registers them with the server during signup.
11 years ago
Moxie Marlinspike cfb7b8fcba Consider unregistered if authorization fails.
This should only occur if another device has registered with the
same number, effectively making the current device unregistered.
11 years ago
Moxie Marlinspike 0e899b93d4 Reset Release 11 years ago
Moxie Marlinspike fb378a6e00 Change attachment retrieval interface 11 years ago
Moxie Marlinspike 9287d413ac Support for incoming attachments.
1) Refactored MMS layer to use abstracted types.

2) Added support for retrieving attachment IDs.
11 years ago
Moxie Marlinspike 4bb337a3a0 Revised support for outgoing attachments 11 years ago
Moxie Marlinspike 53803630d4 Enable TextSecure universal transport. 11 years ago
Moxie Marlinspike d7070e7ecf Inserted the Registration activity into initial setup flow.
1) Added push messaging toggle to preferences.

2) Added push messaging registration screen to setup flow.

3) Migrated rest of SharedPreferences accessors to
   TextSecurePreferences.
11 years ago
Moxie Marlinspike 1d1492b15c Remove from VCS 11 years ago
Moxie Marlinspike 26dadfcb7a Move trust store to raw resource from asset. 11 years ago
Moxie Marlinspike 1ac06312a0 Move directory and push service socket into library. 11 years ago
Moxie Marlinspike a200d29514 Move most of Util into library 11 years ago
Moxie Marlinspike 21eee19380 Split into library project and add shared preferences layer of indirection. 11 years ago