Commit graph

3333 commits

Author SHA1 Message Date
Daniel Gultsch 14d008d89d turn screen off during call 2020-04-20 15:57:30 +02:00
Daniel Gultsch 0302eacac1 back button rejects or ends call 2020-04-20 15:57:30 +02:00
Daniel Gultsch f5c4de8770 make retry work 2020-04-20 15:57:30 +02:00
Daniel Gultsch 2ba84bd32e no need to be careful about Int parsing in session description; just fail 2020-04-20 15:57:30 +02:00
Daniel Gultsch 6884e427ef require dtls and ensure procceds get tracked 2020-04-20 15:57:30 +02:00
Daniel Gultsch 0661c1bd37 add state transitions for iq service-unavailable errors and timeouts 2020-04-20 15:57:30 +02:00
Daniel Gultsch 39e3791345 incude human readable text in some session-terminates 2020-04-20 15:57:30 +02:00
Daniel Gultsch 6a1df0538e request recording permission when making or accepting audio calls 2020-04-20 15:57:30 +02:00
Daniel Gultsch 7749a7ce22 fixed rotation issues in RtpSessionActivity 2020-04-20 15:57:30 +02:00
Daniel Gultsch 268eedad89 proper iq tracing (handling of errors); responding to all iqs 2020-04-20 15:57:30 +02:00
Daniel Gultsch 15a2491d7b correctly parse turn server 2020-04-20 15:57:30 +02:00
Daniel Gultsch 845b3d8a0e properly parse transport info and apply ice candidates after direct init 2020-04-20 15:57:30 +02:00
Daniel Gultsch 3e5e4e813b reject call from proceed state; and deal with direct inits 2020-04-20 15:57:30 +02:00
Daniel Gultsch 0bf991d95c make jingle->sdp parsing fail on some obvious errors 2020-04-20 15:57:30 +02:00
Daniel Gultsch ca9b95fc9c discover stun server 2020-04-20 15:57:30 +02:00
Daniel Gultsch 859bc0bef3 send and receive session terminates 2020-04-20 15:57:30 +02:00
Daniel Gultsch 00f273b0c0 show retry button after failed call 2020-04-20 15:57:30 +02:00
Daniel Gultsch f7d1e02d4b parse 'accept' messages 2020-04-20 15:57:30 +02:00
Daniel Gultsch 9edadc9835 process retract jingle messages 2020-04-20 15:57:30 +02:00
Daniel Gultsch a11d506bf0 support reject 2020-04-20 15:57:30 +02:00
Daniel Gultsch 7909a72d43 make retract jingle messages work 2020-04-20 15:57:30 +02:00
Daniel Gultsch e2f1cec2e5 prepare more state transitions 2020-04-20 15:57:30 +02:00
Daniel Gultsch ccfc55e9b6 show proper notification on incoming call 2020-04-20 15:57:30 +02:00
Daniel Gultsch 4c6ee9693a use appbarlayout in RtpSessionActivity 2020-04-20 15:57:30 +02:00
Daniel Gultsch 0e88b56eb4 display status information in ui 2020-04-20 15:57:30 +02:00
Daniel Gultsch a9a35fb74b show status in RtpSessionActivity 2020-04-20 15:57:30 +02:00
Daniel Gultsch f8c0328416 dummy Jingle activity 2020-04-20 15:57:30 +02:00
Daniel Gultsch 22c755c5ce implement session accept 2020-04-20 15:57:30 +02:00
Daniel Gultsch 9dfa9df790 implement sending of session-accept 2020-04-20 15:57:30 +02:00
Daniel Gultsch ac9a1a773e receive candidates/transport-info 2020-04-20 15:57:30 +02:00
Daniel Gultsch 885ec0febe a couple of bug fixes for SessionDescription.toString() 2020-04-20 15:57:30 +02:00
Daniel Gultsch f264ef9f8b create sdp string and set on peer connection 2020-04-20 15:57:30 +02:00
Daniel Gultsch b1c0e93b34 rudimentary rtpmap to session converter 2020-04-20 15:57:30 +02:00
Daniel Gultsch 2591a96945 sdp candidate to transport-info 2020-04-20 15:57:30 +02:00
Daniel Gultsch 4d70855b4c sdp to ice transport conversion 2020-04-20 15:57:30 +02:00
Daniel Gultsch b44a3aeac6 parse sdp to jingle (yet w/o transport) 2020-04-20 15:57:30 +02:00
Daniel Gultsch ef51ec2c1d create objects for ssma (xep-0339) 2020-04-20 15:57:30 +02:00
Daniel Gultsch 28ead10ca4 sdp media to description parsing 2020-04-20 15:57:30 +02:00
Daniel Gultsch 18059345c8 payload-type and rtp-hdrext sdp parsing 2020-04-20 15:57:30 +02:00
Daniel Gultsch 5b1d86d67e dummy code to get sdp out of (non-working) libwebrtc 2020-04-20 15:57:30 +02:00
Daniel Gultsch 3b857e6894 create temporary RtpSessionPropsoal as placeholder before we can create actual session 2020-04-20 15:57:30 +02:00
Daniel Gultsch e2e4390d51 untested sdp parser 2020-04-20 15:57:30 +02:00
Daniel Gultsch 766d1d603e show preliminary call button if contact supports it 2020-04-20 15:57:30 +02:00
Daniel Gultsch 4e13893662 create stub objects for most of what’s in description and transport 2020-04-20 15:57:30 +02:00
Daniel Gultsch 43cf1783a4 support multiple jingle contents 2020-04-20 15:57:30 +02:00
Daniel Gultsch b2aa0e3352 use final varible to mark initiator once connection object has been created 2020-04-20 15:57:30 +02:00
Daniel Gultsch 5b15348f13 process message inits 2020-04-20 15:57:30 +02:00
Daniel Gultsch 385692ea28 route jingle message inits 2020-04-20 15:57:30 +02:00
Daniel Gultsch a4acfb2a19 clean iq callback code in XmppConnection 2020-04-20 15:57:30 +02:00
Daniel Gultsch f9650b95d8 create stub JingleRTPConnection 2020-04-20 15:57:30 +02:00
Daniel Gultsch 963ddd11c2 refactor jingle code to use objects for TransportInfo 2020-04-20 15:57:29 +02:00
Daniel Gultsch eb22bd0499 create 'Description' object 2020-04-20 15:57:29 +02:00
Daniel Gultsch 7538e387ec fixed bug in ibb delivery introduced in earlier refactoring 2020-04-20 15:57:29 +02:00
Daniel Gultsch 34f42c73bc cleaned JinglePacket and Content element 2020-04-20 15:57:29 +02:00
Daniel Gultsch 23ebb6ae80 rename JingleConnection to JingleFileTransferConnection; use ID tuple to identify sessions 2020-04-20 15:57:29 +02:00
Daniel Gultsch b40a65652f disable HTTP upload during jingle development
we are going to refactor jingle a lot. in order to better spot potential
bugs in the Jingle File Transfer implementation we are going to disable
HTTP upload during development.
2020-04-20 15:57:29 +02:00
Daniel Gultsch 1d62cb0024 pdf renderer might throw security exception on password protected pdf 2020-04-20 15:57:06 +02:00
Daniel Gultsch c5da699afe dont crash when fields names in caps are null 2020-04-20 15:53:52 +02:00
Daniel Gultsch 62934e6487 change wording of previous commit 2020-03-31 19:49:08 +02:00
Daniel Gultsch ff18ea452d display toast when trying to join channel with no enabled accounts 2020-03-31 19:46:05 +02:00
Daniel Gultsch 3d0138506d fixed typo. closes #3667 2020-03-31 11:18:16 +02:00
Daniel Gultsch 4e33ebb308 close FileInputStream in MTM. fixes #1150 2020-03-26 08:25:22 +01:00
Daniel Gultsch 41ada3480c add jfif and jif as jpeg mime types 2020-03-12 21:28:54 +01:00
Daniel Gultsch 00191e2b60 explicitly use BouncyCastle for file crypto 2020-03-09 19:12:30 +01:00
Daniel Gultsch 257de4b51e fixed typo 2020-03-09 15:06:21 +01:00
Daniel Gultsch aecb771ab5 use 16 byte IVs for http upload files larger than 768KiB
Ever since Android 9+ switched to Conscrypt we can no longer efficiently
encrypt (and decrypt) large files with AES-GCM. We did’t notice this before
because when using 16 byte IVs even modern Androids will fall back to bouncy
castle. However the 'bug'/'feature' in Conscrypt surfaced when we switched over
to 12 byte IVs (which uses Conscrypt on Android 9+)
Switching back entirely to 16 byte IVs is undesirable as this would break
compatibility with Monal. So we end up with a weird compromise where we use
12 byte for normale plain text OMEMO messages and 'small' files where the
inefficiencies aren’t a problem.

The result of this commit is that Monal won’t be able to receive our files
larger than 768KiB. However the alternative is that Conversations would always
OOM when attempting to send larger files (where large depends on the available
RAM.)

fixes #3653
2020-03-08 13:13:19 +01:00
Daniel Gultsch 788b0f7f2d momentarily go back to 16 byte IVs
The Crypto provider used from Android P onwards (conscrypt) has a weird bug
that when 12 bytes IVs are used it will decrypt or encrypt the entire file
in RAM instead of streaming it. That will cause OOM for 'larger' files on http
upload. (both downloads and uploads are effected)

It is currently unclear why this is happening and why Conscrypt is put into a
different mode.
We are only observing that Android versions below P are fine and using 16 bytes
is fine on all Android versions.
2020-03-07 18:33:29 +01:00
Daniel Gultsch b2e9a954ab avoid bundled source selection that comes with ImageCropper on Android 10 2020-03-05 13:17:18 +01:00
Daniel Gultsch 7b5d0e034e when setting moderated also set non standard field to not make users participants by default 2020-03-02 11:11:23 +01:00
Daniel Gultsch 08bc3ca0d5 do not merge oob messages 2020-03-02 11:10:38 +01:00
genofire d353372768
fix typo (#3646)
sorry, this makes me crazy
2020-02-29 15:02:36 +01:00
Daniel Gultsch 0f40e7e73b fixed typo in resolver that cause hostnames not to be marked as authenticated (with DNSSec)
usually this wasn’t a problem as this is only the fallback after no IPs
have been discovered.

this also isn‘t a security issue as worst case is the hostname doesn’t get
accepeted as fallback in cert validation.

thanks @genofire for spotting this
2020-02-29 12:55:54 +01:00
genofire 5dd666257d
[BUGFIX] crash on resolve.toString if hostname is null (#3635) 2020-02-29 10:14:52 +01:00
Daniel Gultsch d6ae9d8d14 switch to sending 12 byte IVs 2020-02-17 11:13:38 +01:00
Daniel Gultsch e4685ad47a hide local part of group chat xmpp address 2020-02-17 11:10:41 +01:00
Daniel Gultsch d37aeef182 prevent sharing of xmpp uri for group chat bookmarks 2020-02-16 17:30:54 +01:00
Daniel Gultsch 9b55d90705 do not warn user if bookmark already exists
fixes #3631
2020-02-16 16:04:45 +01:00
Daniel Gultsch d64bc1776b show pdf previews in media browser
fixes #3639
2020-02-14 16:02:15 +01:00
Daniel Gultsch c34d40ebff fix user adapter view recycling bug 2020-02-14 12:04:11 +01:00
Daniel Gultsch a06eb10ed8 fixed rendering of transparent pdfs; white overlay for very dark pdf 2020-02-12 09:09:34 +01:00
Daniel Gultsch fc2b27c3b4 create pdf overlay for pdf thumbs 2020-02-11 19:55:31 +01:00
Daniel Gultsch 2aee26c49a display PDF previews 2020-02-11 17:41:54 +01:00
Daniel Gultsch 09dff6310d fix button alignment on Andrid <4.4
fixes #3625
2020-01-24 10:38:54 +01:00
Daniel Gultsch 843d7fe12d evict cached previews when file gets deleted 2020-01-20 10:54:55 +01:00
Daniel Gultsch 66da5ffb6c fixed download of previously deleted omemo files 2020-01-20 10:43:17 +01:00
Daniel Gultsch 9af056bb16 temporarily go back to 16 byte iv for imminent bug fix release 2020-01-19 13:40:48 +01:00
Daniel Gultsch c62d5ebcb3 added failure logging to http download 2020-01-19 11:36:26 +01:00
Daniel Gultsch c502503994 pass omemo decrypt up to higher layers to count as download error. decrypt all encrypted files 2020-01-19 10:01:43 +01:00
Daniel Gultsch 581eb5556f make theme depend on dark/night mode on android 10+
closes #3611
2020-01-18 14:14:43 +01:00
Daniel Gultsch e38a9cd729 omemo changes: use 12 byte IV, no longer accept auth tag appended to payload 2020-01-18 12:08:03 +01:00
Daniel Gultsch b56f6fbf4c updated screenshots 2020-01-18 09:12:50 +01:00
Daniel Gultsch 0fe47e5e4f removed logging that accidentally got commited earlier 2020-01-16 20:46:45 +01:00
Daniel Gultsch c8b5b96af9 support xmpp uris with single 'omemo' parameter for fingerprint (w/o sid) 2020-01-16 18:54:56 +01:00
Daniel Gultsch 724f30bcc5 fixed adding omemo encrypted images to gallery 2020-01-15 14:19:17 +01:00
ChaosKid42 f1d4127ace simplify osm attribution (#3613) 2020-01-11 15:25:58 +01:00
Daniel Gultsch f57a28ca32 add scan qr button to welcome screen
closes #2920
2020-01-11 14:06:35 +01:00
Daniel Gultsch 9653d68bdd parse install referrer from gplay 2020-01-10 12:51:04 +01:00
Daniel Gultsch 6025e5de28 make registration uris work with fixed usernames 2020-01-09 20:10:19 +01:00
Daniel Gultsch e57bd477a9 preselect proper account in create contact dialog after following invite 2020-01-09 17:42:02 +01:00
Daniel Gultsch 6205574bcb support ?roster;ibr=y xmpp uris 2020-01-09 17:42:02 +01:00