Moxie Marlinspike
fd2fe9ebd7
Fix for plaintext SMS import NPE.
...
// FREEBIE
2015-06-22 18:03:58 -07:00
Moxie Marlinspike
ed0e1c07b9
Fix some memory leaks.
...
Fixes #3224
Closes #3228
// FREEBIE
2015-06-18 10:03:10 -07:00
Moxie Marlinspike
d0008b57b5
Fix for NPE on null PDUs
...
// FREEBIE
2015-04-24 17:33:17 -07:00
Rhodey Orbits
790c6980fe
improved challenge sms verification in SmsListener
...
some carriers prepend or append arbitrary text to sms messages
enroute, SmsListener failed to handle the append case.
Fixes #2919
Closes #3032
// FREEBIE
2015-04-23 10:17:08 -07:00
Moxie Marlinspike
7ba75c3291
Use REST interface instead of WebSockets on GCM events.
...
Closes #2994
// FREEBIE
2015-04-16 11:50:40 -07:00
Moxie Marlinspike
b77afa8903
Upgrade to libtextsecure 1.2.5
...
Fixes #2703
// FREEBIE
2015-04-05 15:44:56 -07:00
Jake McGinty
0ff99258ac
move routing logic to all activities
...
Fixes #2239
Closes #27923
// FREEBIE
2015-04-01 10:23:05 -07:00
Moxie Marlinspike
472179b550
Ignores MMS WAP_PUSH_DELIVER_ACTION if we're not the default app.
...
Apparently some ROMs have a bug where they broadcast
WAP_PUSH_DELIVER_ACTION even when you're not the system's default
SMS/MMS app.
Fixes #2777
2015-03-25 08:57:08 -07:00
Moxie Marlinspike
7a023b9fdc
Acquire wakelocks for incoming messages.
...
Closes #2717
// FREEBIE
2015-03-19 11:19:53 -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
41fadc3437
Use libtextsecure 1.2.2
...
// FREEBIE
2015-03-10 18:59:12 -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
299dd86c77
Support matching to account for telcos inserting SMS prefixes.
...
// FREEBIE
Fixes #1944
2015-02-16 20:25:19 -08:00
Moxie Marlinspike
0c32001fe4
Support for multi-device provisioning flow.
...
// FREEBIE
2015-01-24 10:15:47 -08:00
Moxie Marlinspike
6b05f7905b
Use betterpicker for HMS timeout.
...
// FREEBIE
Closes #1890
2014-12-12 16:07:02 -08:00
Moxie Marlinspike
4e98c350a5
Support localization in passphrase activity and lock notification.
...
// FREEBIE
Closes #1328
2014-12-11 15:04:32 -08:00
Moxie Marlinspike
a1da22cee9
Use constant.
...
// FREEBIE
Closes #1988
2014-11-29 13:12:53 -08:00
Moxie Marlinspike
0d01feebc3
Move directory refresh from a service over to a job.
...
// FREEBIE
2014-11-27 15:24:26 -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
cafe03a70a
Transition the outbound pipeline to JobManager jobs.
2014-11-12 15:26:25 -08:00
Moxie Marlinspike
99f42e2ee1
Move API around.
2014-11-12 15:21:32 -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
819982af7b
Rearrange decrypt API.
...
1) Change SessionBuilder to only establish sessions via
KeyExchangeMessage and PreKeyBundles.
2) Change SessionCipher to decrypt either WhisperMessage
or PreKeyWhisperMessage items, automatically building
a session for the latter.
3) Change SessionCipher to tear down new sessions built
with PreKeyWhisperMessages if the embedded WhsiperMessage
fails to decrypt.
2014-10-20 12:25:38 -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
931605a1c4
Move identity key verification into libaxolotol. With tests.
2014-10-20 12:14:18 -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
a1db221caf
Collapse KeyExchangeMessage and KeyExchangeProcessor interfaces.
2014-10-20 12:14:17 -07:00
Moxie Marlinspike
14b8f97de2
Reorganize session store load/store operations.
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
Jake McGinty
89fb80fcc5
MmsConnection refactor
...
- Use Apache HttpClient v4.x, only library that seems to like HTTP proxies
- Remove custom redirect logic in favor of library's
Fixes #1904
// FREEBIE
2014-10-13 12:26:38 -07:00
rymdhund
feabbb33d2
MMS Fixes
...
1) Respect proxyIfPossible flag and make sure to try all mms APNs
2) Reorder mmsc connection process
2014-08-12 17:30:19 -07:00
Jake McGinty
b61e7839f4
prevent MMS notification NPE
...
// FREEBIE
2014-08-10 21:15:55 -07:00
Moxie Marlinspike
8726dd51be
Can't toast on this thread.
...
// FREEBIE
2014-08-02 23:15:57 -07:00
Moxie Marlinspike
9ef14a0f64
Upgrade to new GCM API.
2014-07-23 15:40:45 -07:00
Jake McGinty
34e147838a
use apply for preferences instead of commit
...
// FREEBIE
2014-06-12 14:45:51 -07:00
agrajaghh
8713a85beb
Add notification for key change event.
...
Fixes #1460
2014-06-12 10:40:46 -07:00
McLoo
023d776e96
Reactivate a group if a contact gets readded
...
Fixes #723 //FREEBIE
Removes the own number from group on leaving, to receive a proper
re-added message
2014-05-19 13:18:28 -07:00
Moxie Marlinspike
cebad39422
Collapse some v2 interfaces now that there's no v1.
2014-04-16 11:47:51 -07:00
Moxie Marlinspike
1d07ca3e6f
Remove V1 code.
2014-04-16 11:47:51 -07:00
Moxie Marlinspike
33ecc4d690
Add null check. // FREEBIE
2014-04-03 14:01:15 -07:00
Jake McGinty
832763f695
UX for unencrypted fallback case
2014-04-02 22:10:51 -07:00
Moxie Marlinspike
40629a3bcf
Fix decryption corner case when passphrase is disabled.
2014-04-02 22:10:51 -07:00
Moxie Marlinspike
fd1a18d2d0
Don't display duplicate push messages.
2014-04-02 22:10:50 -07:00
Moxie Marlinspike
ad5d6d5bb7
Add refresh path for PreKey queue.
2014-04-02 22:10:50 -07:00
Jake McGinty
d827ab1b36
more precise sms controls
...
// FREEBIE
2014-03-13 20:59:20 -07:00
Moxie Marlinspike
0b4fe84a41
Format-neutral compare numbers in MMS group with local device.
...
Closes #1018
2014-03-07 13:05:35 -08:00
Manuel
b6a9eb5bf2
Closes #913 : Message ID is -1 when called in aggregate
2014-03-07 11:59:53 -08:00
Moxie Marlinspike
dc77c43435
Merge pull request #796 from mcginty/pending_messages
...
pending messages more accurately conveyed to user
2014-03-03 18:49:48 -08:00
Jake McGinty
90169e9468
pending messages more accurately conveyed to user
2014-03-03 11:56:54 -08:00
Moxie Marlinspike
b5fe378bc9
Workaround for Android bug when swiped from recent tasks list.
...
Closes #168
https://code.google.com/p/android/issues/detail?id=53313
2014-03-03 11:45:05 -08:00
Moxie Marlinspike
2dc893730a
Auto-update every 12 hours instead.
...
// FREEBIE
2014-03-02 16:19:05 -08:00
Moxie Marlinspike
8ea4db03db
Better support for local storage with passphrase disabled.
...
1) Never get into a state where messages aren't displayed
unencrypted.
2) Fix bug where locked DB required launching twice.
2014-02-28 15:58:30 -08:00
Moxie Marlinspike
81ee9e31c5
Update behavior for incoming SMS path.
...
1) On KitKat, unencrypted SMS messages are never stored in
TextSecure unless it is set as the system-wide default.
2) On KitKat, if TextSecure is set as the system-wide default,
provide an option to change the default to a different app.
3) Don't store the TextSecure challenge on KitKat+ devices.
2014-02-28 13:40:35 -08:00
Moxie Marlinspike
ce710b378f
Fix for stalled retries.
2014-02-25 17:15:30 -08:00
Moxie Marlinspike
20fd881613
Display error code from server when already registered elsewhere.
2014-02-25 17:00:31 -08:00
Moxie Marlinspike
5a525a2e58
Switch KCS priority to MIN on JB+. Eliminates icon in status bar!
2014-02-25 10:33:11 -08:00
Moxie Marlinspike
5000957b99
Listen for group updates, fix group updates, and Recipient marshing
2014-02-24 00:19:54 -08:00
Jake McGinty
86b3de2a93
group updates do things
...
// FREEBIE
2014-02-23 21:18:08 -08:00
Moxie Marlinspike
125a60290f
Correctly handle key conflict resolution for incoming push.
2014-02-22 14:22:12 -08:00
Moxie Marlinspike
315cf2d8e4
Eliminate concept of group 'owner'.
2014-02-22 11:29:28 -08:00
Moxie Marlinspike
a6e1d56cde
Refactor group messaging protocol.
...
// FREEBIE
2014-02-21 17:51:52 -08:00
Moxie Marlinspike
ccd1691b22
Make 'push' status a type bit on both incoming and outgoing msgs.
2014-02-20 23:00:38 -08:00
Moxie Marlinspike
ff238a1ce9
Indicate a message was delivered via push in its delivery status.
2014-02-20 16:14:58 -08:00
Moxie Marlinspike
918f223149
Add preference to disable the SMS channel all together.
...
1) If the SMS fallback preference is disabled, no outgoing
messages will succeed via the SMS transport.
2) If the SMS fallback preference is disabled, "mirroring" the
SMS db state when not the default system SMS app is disabled.
2014-02-20 14:49:31 -08:00
Moxie Marlinspike
9614dc9055
Refactor group database model and flow.
...
1) Use existing DB types instead of adding new columns.
2) Store group attributes in message body, like everything else.
2014-02-19 21:07:47 -08:00
Moxie Marlinspike
19dddd7adf
Support for an 'end session' protocol message.
...
1) On the push side, this message is a flag in PushMessageContent.
Any secure message with that flag will terminate the current
sessin.
2) On the SMS side, there is an "end session" wire type and
the convention that a message with this wire type must be
secure and contain the string "TERMINATE."
2014-02-19 13:50:32 -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
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
e7e5bc0884
Verify identity keys on outgoing messages.
...
If PreKeyEntity identity key doesn't match local DB, fail
outgoing message and queue "incoming" identity key update
message for manual user approval.
2014-02-16 15:23:49 -08:00
Moxie Marlinspike
4e703d5a00
Correct retry logic for SMS JB+ and for push groups.
2014-02-15 18:31:25 -08:00
Moxie Marlinspike
b79bc4c234
Fix for non-group threading issue.
2014-02-15 11:44:47 -08:00
Moxie Marlinspike
067799be06
Display group actions and correctly handle group delivery.
2014-02-14 15:59:57 -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
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
Moxie Marlinspike
49daa45dca
wip
2014-01-14 00:26:43 -08:00
Moxie Marlinspike
dde2d2564a
Fix rebase errors
2014-01-06 19:49:35 -08:00
Moxie Marlinspike
d4188c4a1c
SHA256 attachment MACs.
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
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
4380b46a35
Correctly update MMS security status.
2014-01-06 14:37:51 -08:00
Moxie Marlinspike
fde8d32848
Subtle rebase conflicts...
2014-01-06 14:37:51 -08:00
Moxie Marlinspike
dadabdfaa8
Make UI responsive to UniversalTransport upgrades.
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
dbc070cd65
Refactor the ciphertext message parsing and building.
2014-01-06 14:36:22 -08:00
Moxie Marlinspike
51b9affe90
Add federation support for attachment retrieval.
2014-01-06 14:36:21 -08:00
Moxie Marlinspike
ca3c82f581
Simply PushServiceSocket constructor.
2014-01-06 14:36:21 -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