Moxie Marlinspike
8d9ae731ef
Only use MasterSecret for local message encryption.
...
Not for the axolotl store.
// FREEBIE
2015-07-16 11:15:56 -07:00
Moxie Marlinspike
ed0e1c07b9
Fix some memory leaks.
...
Fixes #3224
Closes #3228
// FREEBIE
2015-06-18 10:03:10 -07:00
Moxie Marlinspike
e142cb6d26
Prompt for registration on install until successful.
...
Closes #2657
// FREEBIE
2015-03-12 18:36:34 -07:00
Moxie Marlinspike
5602a3dfc0
Update to latest version of libtextsecure for simplified interface.
...
1) Switch to new TextSecureAddress addressing, rather than mixing
long-based recipient IDs into libtextsecure.
2) Get rid of RecipientFormattingException throws in calls to
RecipientFactory.
Closes #2570
2015-03-03 12:25:09 -08:00
Moxie Marlinspike
d3271f548c
Support for retrieving stored messages via websocket.
...
1) When registering with server, indicate that the server should
store messages and send notifications.
2) Process notification GCM messages, and connect to the server
to retrieve actual message content.
2015-02-18 11:09:01 -08:00
Moxie Marlinspike
0c32001fe4
Support for multi-device provisioning flow.
...
// FREEBIE
2015-01-24 10:15:47 -08:00
Moxie Marlinspike
a1da22cee9
Use constant.
...
// FREEBIE
Closes #1988
2014-11-29 13:12:53 -08:00
Moxie Marlinspike
fb31319e52
Put everything under either internal or api.
2014-11-12 15:42:43 -08:00
Moxie Marlinspike
08ed90c5ec
Split out Util functions.
2014-11-12 15:42:43 -08:00
Moxie Marlinspike
601e233d47
Add account management interface to libtextsecure api
2014-11-12 15:28:08 -08:00
Moxie Marlinspike
a3f1d9cdfd
Beginning of libtextsecure refactor.
...
1) Break out appropriate components.
2) Switch the incoming pipeline from SendReceiveService to
the JobManager.
2014-11-12 15:21:32 -08:00
Moxie Marlinspike
36ec1d84a1
Implement delivery receipts.
...
1) Support a "receipt" push message type.
2) Identify messages by timestamp.
3) Introduce a JobManager to handle the queue for network
dependent jobs.
2014-10-20 19:02:42 -07:00
Moxie Marlinspike
73b75a4a27
Fix build.
2014-10-20 12:25:40 -07:00
Moxie Marlinspike
5f5ddd7c26
Generate SignedPreKey records, improve SignedPreKey cleanup.
2014-10-20 12:23:08 -07:00
Moxie Marlinspike
0d532afd8e
Rename 'device key' to 'signed prekey'.
2014-10-20 12:17:24 -07:00
Moxie Marlinspike
811479d168
Add first cut of protocol v3 support.
...
1) Use the new /v2/keys API for storing/retrieving prekey bundles.
2) For sessions built with PreKeyBundle and PreKeyWhisperMessage,
use a v3 ratcheting session when available.
2014-10-20 12:17:23 -07:00
Moxie Marlinspike
a601c56af1
Collapse SessionRecord, SessionState, and PreKeyRecord interfaces.
2014-10-20 12:14:17 -07:00
Moxie Marlinspike
72af8b11c2
Move session construction and KeyExchangeMessage into libaxolotl.
...
1) Add plain two-way key exchange support libaxolotl by moving
all the KeyExchangeMessage code there.
2) Move the bulk of KeyExchangeProcessor code to libaxolotl
for setting up sessions based on retrieved prekeys, received
prekeybundles, or exchanged key exchange messages.
2014-10-20 12:14:17 -07:00
Moxie Marlinspike
d902c12941
Break core ratchet out into libaxolotol.
...
1) Break the core cryptography functions out into libaxolotol.
2) The objective for this code is a Java library that isn't
dependent on any Android functions. However, while the
code has been separated from any Android functionality,
it is still an 'android library project' because of the
JNI.
2014-10-20 12:10:02 -07:00
Moxie Marlinspike
9ef14a0f64
Upgrade to new GCM API.
2014-07-23 15:40:45 -07:00
Moxie Marlinspike
1d07ca3e6f
Remove V1 code.
2014-04-16 11:47:51 -07:00
Moxie Marlinspike
ad5d6d5bb7
Add refresh path for PreKey queue.
2014-04-02 22:10:50 -07:00
Moxie Marlinspike
20fd881613
Display error code from server when already registered elsewhere.
2014-02-25 17:00:31 -08:00
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
Jake McGinty
9cd5a67ec5
directory changes to use number instead of token, group ui progress
2014-02-12 11:35:04 -08:00
Moxie Marlinspike
1ab4e7e9de
Library accepts push connection certificate as argument.
2014-01-06 14:38:14 -08:00
Moxie Marlinspike
dc73bc2a5c
Having calling code specify push URL to library.
2014-01-06 14:37:52 -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
fa5ccc3f8a
Support for server federation.
2014-01-06 14:35:54 -08:00
Moxie Marlinspike
25a2ad7289
Add directory refreshing at 24hr intervals.
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
68ec0a3727
Add last resort key and signaling key.
2014-01-06 14:35:53 -08:00
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.
2014-01-06 14:35:51 -08:00
Moxie Marlinspike
499de2d2bf
Move prekey jsonifcation into the push code, add identity key.
2014-01-06 14:35:51 -08:00
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.
2014-01-06 14:35:51 -08:00
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.
2014-01-06 14:34:47 -08:00
Moxie Marlinspike
9287d413ac
Support for incoming attachments.
...
1) Refactored MMS layer to use abstracted types.
2) Added support for retrieving attachment IDs.
2014-01-06 14:33:52 -08:00
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.
2014-01-06 14:30:03 -08:00
Moxie Marlinspike
0ed9da9a2c
Strings and slight cleanup
2014-01-06 14:21:50 -08:00
Moxie Marlinspike
26dadfcb7a
Move trust store to raw resource from asset.
2014-01-06 14:21:50 -08:00
Moxie Marlinspike
1ac06312a0
Move directory and push service socket into library.
2014-01-06 14:21:50 -08:00
Moxie Marlinspike
a200d29514
Move most of Util into library
2014-01-06 14:21:50 -08:00
Moxie Marlinspike
3634ba0b55
Registration with voice verification.
2014-01-06 14:18:30 -08:00
Moxie Marlinspike
303d1acd45
Initial client support for GCM message send/receive
2013-05-06 08:40:55 -07:00
Moxie Marlinspike
2f39283da3
Initial GCM registration
2013-05-06 08:40:55 -07:00