aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/crypto (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-09-17be more careful when publishing device bundleDaniel Gultsch1-0/+14
2015-09-06indicate broken pep in server infoDaniel Gultsch1-0/+4
2015-09-06Only show that have sessions in fingerprint listAndreas Straub2-5/+21
Doesn't access database directly anymore but goes through AxolotlService now to obtain list of fingerprints associated with an Account/Contact. This should prevent orphaned keys littering the UI which previously couldn't be removed through the Clear Devices function. Together with 1c79982da84964c1d81179a0927d9cd1eadf53de this fixes #1393
2015-09-06Don't manually add keys to the storeAndreas Straub1-2/+0
There is no need to preemptively add the keys to the store oneself. SessionBuilder will take care of this for us. What's more, this will prevent IdentityKeys from otherwise invalid bundles to show up in our UI.
2015-09-05Never build a session with oneselfAndreas Straub2-9/+12
If we detect our own ID is not in our own devicelist on receiving an update, we reannounce ourselves. This used to have the side effect of modifying the list of devices we thought were in the update set, causing us to accidentally build a session with ourselves. This lead to our own key being set to TRUSTED_INACTIVE, resulting in red lock icons on messages sent by the own device. We fix this by having publishOwnDeviceId() operate on a copy of the original set. This commit also includes a db migration which deletes sessions with oneself and sets own keys back to TRUSTED.
2015-09-01use same method to add message hints to otr message everywhere it is neededDaniel Gultsch1-4/+2
2015-08-26Fix error handling for announce check retrievalAndreas Straub1-3/+3
Only aborts when a timeout was received. Error conditions (most notably item-not-found) are interpreted as no other devices existing.
2015-08-26Only announce device after publishing bundleAndreas Straub1-6/+18
2015-08-26Fix key publishingAndreas Straub1-72/+68
Remove invalid check for result code, which prevented publishing if the node was empty to begin with. Fix pepBroken check
2015-08-25Add more logging to pep attemp counter logicAndreas Straub1-0/+1
2015-08-25Limit number of PEP publish triesAndreas Straub1-9/+42
If PEP publish tries are repeatedly triggered by empty PEP updates, stop attempting to publish after 3 tries. This should work around broken PEP implementations in older ejabberd and OpenFire versions.
2015-08-25Pass through device IDs when updating own listAndreas Straub1-17/+17
2015-08-25cleared up some error messages in axolotl service and execute ↵Daniel Gultsch1-3/+7
publishOwnDevicesWhenNeeded() only if processing our own jid
2015-08-23Add error handling to OMEMO PEP codeAndreas Straub1-116/+131
Log received errors and abort processing
2015-08-16catch null pointer in ScramSHA1 saslDaniel Gultsch1-0/+3
2015-08-07Increase number of published prekeys for releaseAndreas Straub1-1/+1
2015-08-01Let UNTRUSTED/UNDECIDED keys become INACTIVEAndreas Straub3-79/+94
2015-07-31Provide process function for key transport messageAndreas Straub3-18/+83
2015-07-31Refactor axolotl message processing workflowAndreas Straub3-152/+116
XmppAxolotlMessage is now entirely responsible for handling encryption and decryption of messages, only leveraging XmppAxolotlSession as a packing/unpacking primitive for payload keys. Removed pseudo-dead session generation code step from prepareMessage function, as sessions have been created by invoking the TrustKeysActivity for a while now. Added prepareKeyTransportMessage function, which creates a message with no payload. The key that is packed into the header keyElements can then be used for other purposes (e.g. encrypted file transfer).
2015-07-31Reformat codeAndreas Straub3-86/+87
2015-07-31Change to new wire protocol versionAndreas Straub4-72/+111
2015-07-29Fix NPE: consider unknown keys UNDECIDEDAndreas Straub1-1/+2
2015-07-29Refactor out inner classes, cache trust storeAndreas Straub4-563/+613
Moves SQLiteAxolotlStore and XmppAxolotlSession into proper classes. IdentityKeys trust statuses are now cached in an LruCache to prevent hammering the database when rendering the UI.
2015-07-22Always build own device session automaticallyAndreas Straub1-6/+13
2015-07-21Add INACTIVE state for removed keysAndreas Straub1-11/+43
We introduce a new trust state: INACTIVE. This state is intended for old keys that have been removed. When a TRUSTED device is removed from the PEP devicelist, it's status will be set to INACTIVE. INACTIVE keys are shown in the UI as greyed out, non-interactible key rows. Messages are not encrypted for INACTIVE devices. When an INACTIVE device reappears in PEP, or a message is received from an INACTIVE device, it is set back to trusted.
2015-07-21Fill own device sessions into SessionMapAndreas Straub1-7/+14
2015-07-21and now do that properlyDaniel Gultsch1-1/+1
2015-07-21and now do that properlyDaniel Gultsch1-1/+1
2015-07-21bugfix: also add no-permanent-storage to message hintsDaniel Gultsch1-1/+1
2015-07-21bugfix: also add no-permanent-storage to message hintsDaniel Gultsch1-1/+1
2015-07-21Use properly fixed numeral values in Trust enumAndreas Straub1-4/+26
Why, oh God, why?! #thanksjamesgosling
2015-07-21Remove unused importAndreas Straub1-1/+0
2015-07-21Switch payload encryption to AES-GCMAndreas Straub3-17/+46
This also ensures that the IV is generated with proper randomness.
2015-07-20Also decrypt messages from UNTRUSTED sessionsAndreas Straub1-1/+1
2015-07-20Refactor axolotl send processing/caching flowAndreas Straub1-9/+8
2015-07-20Start TrustKeysActivity if no keys are TRUSTEDAndreas Straub1-6/+6
If there are no UNDECIDED keys, but none of the contact's keys are trusted, redirect the user to the TrustKeysActivity
2015-07-20Add purge axolotl key optionAndreas Straub2-30/+61
Can now long-press a key to permanently purge it.
2015-07-20attempt to fix the delay problemDaniel Gultsch1-5/+5
2015-07-20Lock TrustKeys if no trusted keys are availableAndreas Straub1-0/+8
2015-07-20Optimize importsAndreas Straub4-27/+24
2015-07-19Ask for key trust when sending messagesAndreas Straub1-37/+88
If the contact (or the own account) has keys that have UNDECIDED trust, we now drop the user into the new TrustKeysActivity, where they have to decide for each new key whether it should be TRUSTED or UNTRUSTED.
2015-07-19Send correct body for HTTP filesAndreas Straub1-1/+7
When using HTTP upload to send files, take care to transmit only the URL rather than the entire body, which contains metadata.
2015-07-19Fix trust status for outgoing messagesAndreas Straub1-8/+8
Tag sent messages with own fingerprint, set own fingerprint as always trusted, include own fingerprint in database trust search, explicitly reset trust colorfilter
2015-07-19Ensure that available sessions are always usedAndreas Straub1-9/+30
Any time a new session is established, call syncRosterToDisk() to ensure that on subsequent restoreFromDatabase() calls, the roster is actually available. This is important so that initAccountServices() can properly initialize the SessionMap. This prevents a race condition where after adding a new account and initiating sessions with it, if the app is killed (e.g. by reinstall) before triggering a syncRosterToDisk(), subsequent restores will not have the roster available, leading to missing XmppAxolotlSessions in the SessionMap cache. As a result of this, a new session was initiated when sending a new message, and received messages could not be tagged with the originating session's fingerprint. As an added sanity check, go to the database to confirm no records are present before creating fresh XmppAxolotlSession objects (both in the sending and receiving case).
2015-07-19Fix and expand key regeneration functionAndreas Straub1-9/+18
Wipe session cache to prevent stale sessions being used. Wipe fetch status cache to enable recreation of sessions. Regenerate deviceId, so that foreign devices will talk to us again.
2015-07-19Overhauled Message taggingAndreas Straub2-43/+68
Messages are now tagged with the IdentityKey fingerprint of the originating session. IdentityKeys have one of three trust states: undecided (default), trusted, and untrusted/not yet trusted.
2015-07-19Use full int range for device IDsAndreas Straub1-1/+1
2015-07-19Clean up unused constantAndreas Straub1-1/+0
2015-07-19Make some fields finalAndreas Straub1-3/+3
2015-07-19Clean up loggingAndreas Straub1-54/+61
Add a fixed prefix to axolotl-related log messages, set log levels sensibly.