012f036
Optimize imports
Andreas Straub created
012f036
Optimize imports
Andreas Straub created
9c91b90
don't show 'show contact details' context menu item when contact isn not in roster
Daniel Gultsch created
576330f
Use MD style for key trust toggle switch
Andreas Straub created
e9d7d7e
Fix set/remove OnUpdateBlocklistListener
Andreas Straub created
2d2da11
Merge pull request #1289 from kriztan/patch-2
show contact details in conference details ...
Daniel Gultsch created
dd96407
Fix axolotl database migration
Can't call getWritableDatabase in recreateAxolotlDb()
Andreas Straub created
8571610
Merge pull request #1290 from SamWhited/accent_cab
Change CAB to accent color in v21
Daniel Gultsch created
2240066
Remove device list from EditAccount
Andreas Straub created
eea8c28
Change CAB to accent color in v21
Sam Whited created
480b1cd
Add clear devices to overflow menu in EditAccount
Andreas Straub created
14010bf
Ask for key trust when sending messages
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.
Andreas Straub created
ec0aff4
Encrypt files for HTTP upload in encrypted chats
Andreas Straub created
6f67469
Refactor trust key ui and show in account details
Refactored the trust key row UI element so it can be used in multiple places. It now also uses a slider to toggle the trust state, and the redundant trust state description was removed. EditAccountActivity now shows the keys of other devices associated with that account.
Andreas Straub created
9c4d55f
Send correct body for HTTP files
When using HTTP upload to send files, take care to transmit only the URL rather than the entire body, which contains metadata.
Andreas Straub created
2045a71
Handle file transmission properly in axolotl
Andreas Straub created
4370387
Remove unneccessary code
Andreas Straub created
4038af2
Fix trust status for outgoing messages
Tag sent messages with own fingerprint, set own fingerprint as always trusted, include own fingerprint in database trust search, explicitly reset trust colorfilter
Andreas Straub created
e8ec2ee
Don't merge messages with different trust statuses
Andreas Straub created
fca0c36
Fix copying of axolotl keys to clipboard
Sam Whited created
3ab59c9
Add refresh icon to v21 theme
Sam Whited created
6c38e53
Disable Axolotl option if not usable
In MUCs or if contact is not axolotl capable, disable axolotl menu option
Andreas Straub created
9e8d9a6
Show trust status of messages' originating session
Shade lock icon red if message was received in a session that has not been marked trusted by the user or fingerprint is unknown
Andreas Straub created
3d33946
Add key trust toggle to ContactDetailsActivity
Can now toggle IdentityKey trust
Andreas Straub created
35714d3
Ensure that available sessions are always used
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).
Andreas Straub created
31d375c
Fix setIdentityKeyTrust update statement
Andreas Straub created
160e401
Fix IdentityKey storage model
Added proper UNIQUE statement
Andreas Straub created
461d044
Fix and expand key regeneration function
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.
Andreas Straub created
23a4e1e
Display trust status in ContactDetailsActivity
Andreas Straub created
d173913
Overhauled Message tagging
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.
Andreas Straub created
7f91854
Postpone initAccountService until roster loaded
The AxolotlService depends on the roster being loaded when it is initialized so that it can fill its in-memory SessionMap.
Andreas Straub created
03614a0
Fix getSubDeviceSessions SQL query
Andreas Straub created
2628662
Display axolotl chat message hint
Andreas Straub created
f1d73b9
Use full int range for device IDs
Andreas Straub created
540faeb
Clean up unused constant
Andreas Straub created
bd29653
Make some fields final
Andreas Straub created
3458f5b
Clean up logging
Add a fixed prefix to axolotl-related log messages, set log levels sensibly.
Andreas Straub created
7049904
Add basic PEP managemend UI to EditAccountActivity
EditAccountActivity now show own fingerprint, and gives an option to regenerate local keying material (and wipe all sessions associated with the old keys in the process). It also now displays a list of other own devices, and gives an option to remove all but the current device.
Andreas Straub created
37b214a
show contact details in conference details ...
Christian S created
968410a
Fix devicelist update handling
No longer store own device ID (so that we don't encrypt messages for ourselves), verify that own device ID is present in update list (otherwise republish), reflect update in UI.
Andreas Straub created
7a962e5
Refactor axolotl database recreation
Andreas Straub created
8fd46d4
Adapt prettifyFingerprint() to axolotl FP sizes
Andreas Straub created
491f623
Fix displaying Contact IdentityKeys
Migrate ContactDetailsActivity to use new SQL IdentityKeys storage, remove dead code from Contact class.
Andreas Straub created
0cf6485
Only cache session if successfully established
When receiving a message, only remember the XmppAxolotlSession wrapper if the prospective session was actually established. This prevents us from erroneously adding empty sessions that are never established using received PreKeyWhisperMessages, which would lead to errors if we try to use them for sending.
Andreas Straub created
6867b5c
Return empty set on invalid PEP devicelist
Andreas Straub created
25450bf
Trust all IdentityKeys
The trust-on-first-use policy leads to problems when receiving messages from two different devices of a contact before sending a message to them (as their IdentityKeys will not have been added yet). Since session trust will be managed externally anyway, this change is not a security problem, and will allow us to decrypt messages from yet-untrusted sessions.
Andreas Straub created
bf4185a
Refresh PEP on session establish
We now track preKeys used to establish incoming sessions with us. On each new established session, we remove the used prekey from PEP. We have to do this because libaxolotl-java internally clears the used preKey from its storage, so we will not be able to establish any future sessions using that key.
Andreas Straub created
6960050
Fix asynchronous axolotl message sending
XmppConnectionService.sendMessage() now dispatches messages to the AxolotlService, where they only are prepared for sending and cached. AxolotlService now triggers a XmppConnectionService.resendMessage(), which then handles sending the cached message packet. This transparently fixes, e.g., handling of messages sent while we are offline.
Andreas Straub created
ec68703
Properly track message sender
Previously, the sender was assumed to be the conversation counterpart. This broke carboned own-device messages. We now track the sender properly, and also set the status (sent by one of the own devices vs received from the counterpart) accordingly.
Andreas Straub created
18c1e15
Rework PEP content verification
Now checks which part(s) are out of sync w/ local storage, and updates only those, rather than assuming the entire node corrupt and overwriting it all (especially relevant for preKey list)
Andreas Straub created
9a0232f
Formatting fixes
Andreas Straub created