Commit Graph

126 Commits (601e233d47acca056c05eca8205ffc2bf10eebc1)

Author SHA1 Message Date
Moxie Marlinspike 601e233d47 Add account management interface to libtextsecure api 10 years ago
Moxie Marlinspike ae178fc4ec Move API around a little, eliminate TransportDetails interface. 10 years ago
Moxie Marlinspike 99f42e2ee1 Move API around. 10 years ago
Moxie Marlinspike a3f1d9cdfd Beginning of libtextsecure refactor.
1) Break out appropriate components.

2) Switch the incoming pipeline from SendReceiveService to
   the JobManager.
10 years ago
Jake McGinty ff2ac8a66e refactor ListenableFutureTask and make saves async
// FREEBIE
10 years ago
Moxie Marlinspike 18b0601990 Dependency updates and gradle housekeeping. 10 years ago
Moxie Marlinspike b308996885 Switch to using our own JobManager.
// FREEBIE
10 years ago
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.
10 years ago
Moxie Marlinspike 355d0be78a Introduce new simultaneous initiate strategy.
1) Fix bugs that prevented decrypt() from being non-transactional
   in some cases.

2) Introduce a new unified storage interface.

3) Transition simultaneous initiate from the "needs refresh"
   strategy to one that uses session state resurrection and
   promotion.
10 years ago
Moxie Marlinspike 741171c49f Switch to CBC mode with a derived IV.
1) Since we're not CPU or space constrained (and are in fact
   padding), and since keystream reuse would be more catastrophic
   than IV reuse without chosen plaintext.
10 years ago
Moxie Marlinspike 27b5bf54cc Remove 1 mod 8. 10 years ago
Moxie Marlinspike 82bd75fb75 Fix padding problem. 10 years ago
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.
10 years ago
Moxie Marlinspike 5f5ddd7c26 Generate SignedPreKey records, improve SignedPreKey cleanup. 10 years ago
Moxie Marlinspike 0d532afd8e Rename 'device key' to 'signed prekey'. 10 years ago
Moxie Marlinspike 07fd17ccda Add padding for push messages.
1) Use 'bit padding.'

1) By default, pad at 160 byte increments.
10 years ago
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.
10 years ago
Moxie Marlinspike 79020cd33c Better FS Locking. 10 years ago
Moxie Marlinspike 2a65257182 Add serialization helpers for IdentityKeyPair. 10 years ago
Moxie Marlinspike a601c56af1 Collapse SessionRecord, SessionState, and PreKeyRecord interfaces. 10 years ago
Moxie Marlinspike 5a3c19fe3e Javadocs, and some minor refactoring. 10 years ago
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.
10 years ago
Moxie Marlinspike 14b8f97de2 Reorganize session store load/store operations. 10 years ago
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.
10 years ago
Moxie Marlinspike d979593cbb Bump version to 2.1.7 10 years ago
Jake McGinty 23a1c1c8fa Upgrade to latest Android gradle plugin
// FREEBIE
Closes #1660
10 years ago
Jake McGinty f6e04d0f89 use latest android number as recipient number
Fixes #791
// FREEBIE
10 years ago
Jake McGinty de90222c95 Upgrade android plugin to stay compatible with latest Android Studio
// FREEBIE
10 years ago
Jake McGinty ce7b8ab75a new passphrase prompt activity
// FREEBIE
10 years ago
Moxie Marlinspike 0574ec170a Display legacy message error when V1 message is received. 10 years ago
Moxie Marlinspike cebad39422 Collapse some v2 interfaces now that there's no v1. 10 years ago
Moxie Marlinspike 1d07ca3e6f Remove V1 code. 10 years ago
Moxie Marlinspike 4438b4ae69 Add a TrustManager that blacklists via serial numbers. 10 years ago
Jake McGinty 832763f695 UX for unencrypted fallback case 10 years ago
Moxie Marlinspike 5a3daf4846 Curve25519 keys to 1 mod 8 for ephemerals. 10 years ago
Moxie Marlinspike fd1a18d2d0 Don't display duplicate push messages. 10 years ago
Moxie Marlinspike ad5d6d5bb7 Add refresh path for PreKey queue. 10 years ago
Moxie Marlinspike 926d3c929f Handle simultaneous initiate protocol case.
1) Modify SessionRecord to store a list of "previous" sessions
   in addition to the current active session.  Previous sessions
   can be used for receiving messages, but not for sending
   messages.

2) When a possible "simultaneous initiate" is detected, push the
   current session onto the "previous session" stack instead of
   clearing it and starting over.

3) Additionally, mark the new session created on a received
   possible "simultaneous initiate" as stale for sending.  The
   next outgoing message would trigger a full prekey refresh.

4) Work to do: outgoing messages on the SMS transport should
   probably not use the existing session if it's marked stale
   for sending.  These messages need to fail and notify the user,
   similar to how we'll handle SMS fallback to push users before
   a prekey session is created.
10 years ago
Jake McGinty 11cfc4f1a1 upgrade gradle version
// FREEBIE
11 years ago
Moxie Marlinspike 0850f1b0f1 Add libcurve25519 bins.
// FREEBIE
11 years ago
Florian Walch 1ddc45fd9c Build native code for multiple architectures.
* Include native libs without requiring intermediate .jar.
 * Fix build warnings; use latest build tools.
11 years ago
Benjamin Albrecht 0f6c7660cb Use modern icons in info and alert dialogs for ICS+ 11 years ago
Moxie Marlinspike 20fd881613 Display error code from server when already registered elsewhere. 11 years ago
Moxie Marlinspike 559228af5b Fix for bug modifying immutable list. 11 years ago
Moxie Marlinspike e8a0fac05b Fix for identity key mismatch on devices with V1 identities. 11 years ago
Moxie Marlinspike ca2eecaedf Add advanced preference for refreshing push directory. 11 years ago
Moxie Marlinspike a6e1d56cde Refactor group messaging protocol.
// FREEBIE
11 years ago
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."
11 years ago
Jake McGinty 649f037ed8 apply same fix used on DecryptingPartInputStream to AttachmentCipherInputStream // FREEBIE 11 years ago
Jake McGinty d19ab04bdd gradle wrapper 1.10, android plugin 0.8, android support 19.0.1 //
FREEBIE
11 years ago