Commit graph

1059 commits

Author SHA1 Message Date
Daniel Gultsch 88851ea12a
bundle letsencrypt root certificates
as per https://letsencrypt.org/2023/07/10/cross-sign-expiration.html
Letsencrypt is dropping support for Android <= 7 by removing cross signing.

to keep supporting older Android versions we need to bundle the root cert
ourselves. (Firefox for example does this too)

The KeyStore file is in BKS-V1 format. A good tools to edit the file is

https://keystore-explorer.org/

To keep the attack and bug surface as low as possible we only run the check
against the bundled keystore on Android <= 7
2024-01-15 10:57:07 +01:00
Daniel Gultsch d3b38a5273
refactor Jingle File Transfer. add WebRTCDatachannel transport 2023-12-19 17:26:11 +01:00
Daniel Gultsch 1a83c290a2
UnifiedPush: send unregistered to apps when 'none' account is selected 2023-12-05 10:59:50 +01:00
Daniel Gultsch 20c179c1a1
ensure will tell 'messenger' when UP registration fails or is delayed 2023-12-02 12:20:19 +01:00
Daniel Gultsch eb5994f80f
add quick log functionality to debug UP 2023-12-01 13:22:10 +01:00
Daniel Gultsch 38ca53fcac
bump reporting xep and add ability to report messages 2023-11-12 19:29:15 +01:00
Daniel Gultsch e73fbac56f
enable 'PEP Native Bookmarks' 2023-11-10 15:29:26 +01:00
Daniel Gultsch ea5ffe92ea
improve logging when PGP decryption fails 2023-10-29 08:54:19 +01:00
Daniel Gultsch 48ffde9656
toggle foreground service to set correct type when gaining permissions 2023-10-29 08:54:18 +01:00
Daniel Gultsch e83a0af277
ignore false positive warning wrt foreground service 2023-10-29 08:54:17 +01:00
Daniel Gultsch 35c8d31d42
update gradle and gradle plugin 2023-10-29 08:54:17 +01:00
Daniel Gultsch e422b89df5
use aggressive reconnects for see-other-host 2023-10-29 08:54:17 +01:00
Daniel Gultsch 1732ab5cc7
add internal ping timer in case alarm manager fails 2023-10-29 08:54:17 +01:00
Daniel Gultsch a162d72c2a
code clean up in processAccountState() 2023-10-29 08:54:17 +01:00
Daniel Gultsch 928db01ae8
do not init connection for disabled accounts 2023-10-29 08:54:16 +01:00
Daniel Gultsch 2dd8896dc2
stop service on log out when UI is not active 2023-10-29 08:54:16 +01:00
Daniel Gultsch d1f648f2e3
code clean up in onStartCommand 2023-10-29 08:54:16 +01:00
Daniel Gultsch f042efd550
add 'log out' button to foreground notifcation
this temporarily disconnects all accounts until the user opens the app again.

essentially this akin to an 'Exit' button

Users previously had the option to 'disable' accounts but this provides a
faster way to "free up resources" until the next time the app is opened.
2023-10-29 08:54:16 +01:00
Daniel Gultsch 418d6b09a0
explicitly declare foreground service type 2023-10-29 08:54:16 +01:00
Daniel Gultsch 68eb17d400
create missed call notification when device is busy 2023-10-23 11:22:00 +02:00
Daniel Gultsch 1aeae9c7f6
set local-only flag on ongoing call notification 2023-10-03 14:16:48 +02:00
Daniel Gultsch 8570c9f912
use more aggressive reconnect intervals during rtp session 2023-10-03 12:56:10 +02:00
Daniel Gultsch 3e9c08a4aa
include date in backup file name
since `account.ceb` might have previously been created by a different application
(for example f-droid and user is on play now) or copied over via the file
manager Conversations might not have permission to write over an existing file.

we include the date so we always get a new file

fixes #105
2023-09-25 10:56:24 +02:00
Daniel Gultsch 2adff4a92c
catch rare instances of foreground service not allowed to start 2023-09-25 09:22:29 +02:00
Daniel Gultsch 00ae1ca762
fix group chat shortcuts 2023-09-11 16:38:57 +02:00
Stephen Paul Weber 11e6cb9693
Use conversation notifications
Allows for per-conversation priority and sound
2023-09-07 13:08:23 +02:00
Daniel Gultsch 09f6343ced
Security: Introduce backup file format v2
This switches the SQL based backup format to something JSON based.

The SQL based format has always been prone to SQL injections that, for example, could delete other messages or preexisting accounts in the app. This hasn’t been a concern this far because why would anyone purposely try to restore a faulty backup? However the argument has been made that a user can be socially engineered to restore an exploited backup file.
Before version 2.12.8 a third party app could even trigger the restore process, leaving the backup password entry dialog the only hurdle.
On top of that it has been demonstrated that a backup file can be crafted in a way that puts preexisting credentials into a 'pending' message to an attacker ultimately leading to that information being leaked.

While destorying information has always been deemed an acceptable risk, leaking information is one step too far.

Starting with Conversations 2.12.9 Conversations will no longer be able to read v1 backup files. This means if you are restoring on a new device and you have a v1 backup file you must first install Conversations <= 2.12.8, restore the backup, and then upgrade to Conversations >= 2.12.9.

ceb2txt¹ has support for v2 backup files. Conceivably ceb2txt could be extended to convert between v1 and v2 file formats. (ceb2txt already recreates the database from v1 files; It is relatively straight forward to create v2 files from that database. Pull requests welcome.)

¹: https://github.com/iNPUTmice/ceb2txt/
2023-08-17 12:07:51 +02:00
Daniel Gultsch b4a07d0093
remove channel discovery from Google Play build flavor 2023-08-08 10:39:36 +02:00
Stephen Paul Weber 4c38c480fa
Use libidn for stringprep
Which actually validates according to spec instead of just being lazy.
2023-06-27 16:31:01 +02:00
Daniel Gultsch e3a121121b
UP: add custom extensions for app<->distributor interaction
On registration the app can pass in a 'Messenger' to get a direct response
instead of having to somehow wait for the broadcast receiver to fire.

The app name can be passed as a pending intent which allows the distributor
to validate the sender.
2023-06-26 16:09:01 +02:00
Daniel Gultsch 1fff1a0649
add ability to remove account from server 2023-04-08 09:31:17 +02:00
Daniel Gultsch 41cd96e37b
UP: null check transport verification 2023-01-10 17:22:48 +01:00
Daniel Gultsch b7c7c40b94
send directed presence to transport if endpoints are configured 2023-01-06 17:04:15 +01:00
Daniel Gultsch 0e10ae387a
periodically renew endpoints 2023-01-06 15:44:39 +01:00
Daniel Gultsch 4ee5c167be
do not attempt endpoint renewal when account is disabled. renew on bind 2023-01-04 20:59:08 +01:00
Daniel Gultsch b1f95d2e39
integrate UnifiedPush distributor 2023-01-04 10:23:20 +01:00
Daniel Gultsch 97d9cb7dd5
remove work arounds for slack 2023-01-01 12:05:49 +01:00
Daniel Gultsch 2093aa76ad code clean up in ContactChooserTargetService 2022-12-11 20:13:09 +01:00
Daniel Gultsch 4e8ceadfbf prepare JingleRtpConnection for content-adds 2022-11-28 08:59:23 +01:00
Daniel Gultsch 8fb2c11771 use plurals for missed call strings 2022-11-19 08:14:50 +01:00
Daniel Gultsch ab0ea7096e make it easier to disable muclumbus in Config 2022-10-12 14:47:02 +02:00
Daniel Gultsch 716c804353 only run account options through int conversion. fixes #4390 2022-10-12 11:53:57 +02:00
Daniel Gultsch cb775ece99 wait for DB restore before bind 2022-09-26 09:47:53 +02:00
Daniel Gultsch c1abca35da copy bookmarks before passing them to other parts of the app for read
closes #4381
2022-09-14 12:49:18 +02:00
Daniel Gultsch a210568a9c refactor SASL choice into factory; remove unused TagWriter 2022-09-06 09:25:23 +02:00
Daniel Gultsch eb49a7f5e5 fix crash in buggy connection manager. fixes #4368 2022-09-03 12:33:27 +02:00
Daniel Gultsch cb1d7c69a1 remove comment 2022-09-03 11:05:27 +02:00
Daniel Gultsch b792563fad use non-custom missed called 2022-08-29 14:04:33 +02:00
Daniel Gultsch f8b9e15634 fixups for missed call notifications 2022-08-29 13:01:20 +02:00
Dmitry Markin a6b88ba9e9
Add missed call notifications
Co-authored-by: Daniel Gultsch <daniel@gultsch.de>
2022-08-29 12:41:35 +02:00