Commit Graph

396 Commits

Author SHA1 Message Date
Sorunome cd5131daa5
fix: Add locking to sending encrypted to_device messages to prevent potential race conditions
Due to chunked lazy sending of megolm sessions it was in theory that we encrypted two olm
messages to the same device in different futures out-of-order. Introducing locking here should
fix this (increadibly rare, so far only theoretical?) race-condition
2021-07-11 13:06:39 +02:00
Christian Pauly c0c7f68bf3 chore: Rename to matrix 2021-06-18 09:58:25 +02:00
Christian Pauly 73db010db4 fix: Make QueuedToDeviceEvent store content as String OR Map
Temporary fix to stay compatible to Moor AND a key value store
2021-06-01 12:56:43 +02:00
Christian Pauly c3d47b16c6 CI: Use correct image 2021-05-25 10:46:34 +02:00
Christian Pauly c66e35c16c refactor: Create a clean database API 2021-05-20 07:36:03 +00:00
Lukas Lihotzki c196610998 chore: operation names from OpenAPI spec 2021-05-12 13:56:16 +02:00
Christian Pauly ffef732103 refactor: enable more linter rules
enable prefer_final_locals and prefer_final_in_for_each linter rules
2021-04-14 10:29:29 +02:00
Lukas Lihotzki 545ce26e39 style: fix format and lint 2021-04-12 14:49:03 +02:00
Lukas Lihotzki d413f54f10 refactor: use OpenSSL for file e2ee 2021-04-12 14:49:03 +02:00
Lukas Lihotzki 761138a56d refactor: use OpenSSL for AES 2021-04-12 14:49:01 +02:00
Lukas Lihotzki 7faf05fe90 refactor: selectable hash for pbkdf2 2021-04-12 14:48:38 +02:00
Lukas Lihotzki a25d1932ee fix: fast pbkdf2 with OpenSSL 2021-04-12 14:48:38 +02:00
Lukas Lihotzki 4f32168017 chore: upgrade to markdown 4.0.0 2021-04-12 14:48:38 +02:00
Christian Pauly fb0177ac5f feat: Implement spaces 2021-04-12 09:24:20 +02:00
Lukas Lihotzki 2a2a170609 refactor: upgrade http package 2021-04-01 13:43:24 +02:00
Christian Pauly 0ceb2b26df refactor: Constants names 2021-03-30 12:43:50 +02:00
Lukas Lihotzki 3d55abdd11 chore: upgrade to ffi 1.0.0 2021-03-29 16:37:29 +02:00
Christian Pauly 9012ce6b2c fix: Display errors from isolates in the logs 2021-03-17 09:46:13 +01:00
Krille Fear 9bef8452d3 docs: Clean up dart documentations
Changing to `code` blocks where it cant be resolved to [stuff] things.
2021-03-16 12:32:21 +00:00
Krille Fear 9626c64993 docs: Fix deprecation warning 2021-03-16 09:23:44 +00:00
Christian Pauly 1f8285c3e7 refactor: Room states 2021-03-09 17:28:55 +00:00
Krille Fear 44ca96e544 refactor: Update pedantic
This enforces to NOT use curly braces in Strings where not needed
and not await non-future variables.
2021-03-09 17:28:04 +00:00
Christian Pauly c9d3c327f6 refactor: Deprecate eventType in EventUpdate 2021-02-26 13:06:02 +01:00
Sorunome e7c8e754a1
chore: Update matrix scheme parsing to match updated MSC 2021-02-23 16:34:43 +01:00
Nicolas Werner ac1ad1b897 fix: escape attributes in markdown less aggressively 2021-02-17 22:56:31 +01:00
Sorunome 681b27e269
fix: Don't allow transitive trust unless it is for ouself 2021-02-15 12:19:05 +01:00
Christian Pauly fd05f642d8 feat: Implement cancel uiarequest 2021-02-10 13:41:09 +01:00
Sorunome fcb8d48bd7
feat: Add command parser 2021-02-09 18:19:38 +01:00
Sorunome 44a1bcfd57
fix: Accidental pills in URLs 2021-01-20 12:02:40 +01:00
Christian Pauly 03e17f890e change: Deprecate senderName 2021-01-15 14:24:30 +01:00
Christian Pauly 39b776716c refactor: Olm Exceptions 2021-01-07 12:53:49 +01:00
Christian Pauly 9ffecd845a chore: Update license header 2021-01-04 10:34:50 +01:00
Christian Pauly e450a09fb5 refactor: External matrix api 2021-01-04 10:26:29 +01:00
Sorunome 19d96595cc
feat: Add identifier string parsing 2021-01-01 15:28:25 +01:00
Sorunome 6723c01a31
feat: Lazy-send room keys, chunked and sorted by importance 2020-12-29 14:46:36 +01:00
Sorunome 58044be1ba
feat: Add animated property to thumbnails 2020-12-29 10:32:18 +01:00
Sorunome 768baa7602
chore: Implement a proper deep-copy function for json maps 2020-12-28 14:35:21 +01:00
Sorunome 48904b3a1b
fix: Cache the result of the self-signature check 2020-12-23 10:52:39 +01:00
Sorunome 6f9deb5ae2
fix: Verify device signatures before storing devices and block those with invalid signatures 2020-12-22 10:22:42 +01:00
Sorunome b00a9e8834
feat: Better determine which devices to encrypt to 2020-12-21 15:26:46 +01:00
Christian Pauly 57286d4c28 feat: Use logger package 2020-12-19 12:04:25 +00:00
Sorunome 405306f84e
feat: Add == operator to the Receipt, User and Room objects 2020-12-19 12:15:50 +01:00
Christian Pauly d3c44687f6 fix: Missing null check which F*cks me up! 2020-12-14 13:24:39 +00:00
Christian Pauly 6657e073a0 refactor: Follow up clean up bootstrap 2020-12-11 09:57:45 +01:00
Christian Pauly b563aec7bb refactor: Add secretstoragekeycontent 2020-12-10 11:03:45 +01:00
Sorunome 49f0679fbf feat: Add bootstrapping 2020-12-10 08:13:24 +00:00
Christian Pauly bec1761172 refactor: content parsing 2020-11-30 15:34:46 +01:00
Christian Pauly 9181701df0 fix: Display stateKey when changing displayname 2020-11-23 17:35:50 +01:00
Christian Pauly 411d29cc89 feat: Implement room tombstones 2020-11-21 15:28:05 +01:00
Sorunome 66572bd032
feat: Check if event type is known 2020-11-08 13:52:10 +01:00
Sorunome 5924e57cf1
feat: Add broadcast to-device verification 2020-10-30 11:40:19 +01:00
Sorunome ad0192e8e1
fix: Greatly improve latex markdown 2020-10-24 12:08:23 +02:00
Christian Pauly 66e590073e refactor: Event Update Type 2020-10-22 13:01:35 +02:00
Sorunome be6824b746
feat: Add LaTeX markdown rendering as per MSC2191 2020-10-21 11:20:19 +02:00
Sorunome 01bb3f5b50
fix: Make key backup work in web 2020-10-14 12:18:20 +02:00
Christian Pauly 84cc925b08 fix: Mimetype null 2020-09-28 12:43:23 +02:00
Sorunome 86a4f90a5a
fix: Run automated key requests in root zone 2020-09-21 18:11:14 +02:00
Christian Pauly b05e4da34f fix: Last event calculation 2020-09-16 10:23:37 +02:00
Sorunome c90e18b55d
fix: Handle domains with port or ipv6 addresses correctly 2020-09-15 12:40:29 +02:00
Sorunome bbc1b63695
feat: Auto-verify own master key, if there is a valid signature chain within the same account 2020-09-10 13:04:24 +02:00
Sorunome 99d536b14f
feature: Upload to online key backup 2020-09-09 09:53:26 +02:00
Sorunome f7e63097b4 chore: Update emotes to match MSC 2020-09-07 09:34:14 +00:00
Christian Pauly a288216e03 Add call state localizations 2020-08-15 14:46:08 +02:00
Sorunome 3d2476cfdb fix: Have matrix id string extension obay the proper grammar 2020-08-13 09:03:44 +00:00
MTRNord 26586b6f02
style: Change package:famedlysdk imports to relative imports
Changing the imports from `package:famedlysdk` to relative imports allows us to easier move the files

Took 2 minutes
2020-08-13 10:40:39 +02:00
Christian Pauly fb9b505988 Krille/make client extend matrixapi 2020-08-11 16:11:51 +00:00
Christian Pauly 6170c79fe1 Improve logging 2020-08-06 09:35:02 +00:00
Christian Pauly 938540eca5 Detect the file message type 2020-08-01 13:04:03 +00:00
Sorunome 31614364d3 add update filters 2020-07-25 14:46:36 +00:00
Sorunome 6cd745bd1a
Add data-mx-emote to emotes 2020-07-24 17:59:39 +02:00
Lukas Lihotzki 842581699c MatrixFile refactoring for thumbnails 2020-06-29 12:00:26 +00:00
Sorunome dbcdb6883d
better set verified 2020-06-21 21:48:06 +02:00
Sorunome 18f8d0db63
add deviceDisplayName 2020-06-21 21:38:26 +02:00
Sorunome 0e0fd61c65
remove unneded print 2020-06-15 10:27:28 +02:00
Sorunome e874a5e00b
add signature verification tests 2020-06-15 10:26:50 +02:00
Sorunome 6a36bb2d01
fix pipeline 2020-06-12 16:25:26 +02:00
Sorunome 51584ad748
fix signature upload 2020-06-06 15:43:18 +02:00
Sorunome 45232be3a0
simplify key signing a tad 2020-06-06 15:19:44 +02:00
Sorunome b4e83caa89
requestify cross-signing endpoints 2020-06-06 15:17:05 +02:00
Sorunome e1679d59be
better smoothen out keys 2020-06-06 14:28:18 +02:00
Sorunome 4154c7d0eb
format and some analyze 2020-06-06 13:47:37 +02:00
Sorunome 4c60369b8d
migrate to new thingy! 2020-06-05 22:03:28 +02:00
Sorunome d29fb9abfe
Merge branch 'soru/modularize-e2ee' into soru/cross-signing 2020-06-05 18:59:58 +02:00
Sorunome fcde6a2459
split encryption stuff to other library 2020-06-04 13:39:51 +02:00
Christian Pauly c6bf098644 Init matrix_api library 2020-06-03 10:16:01 +00:00
Sorunome 9971e7377e
configurable verification methods 2020-05-30 13:55:09 +02:00
Sorunome d7f2bbe2f9
smoothen out some stuffs 2020-05-30 13:22:34 +02:00
Sorunome 15be6c5244
stuff and things 2020-05-29 09:06:36 +02:00
Sorunome c65b5948fc
Merge branch 'master' into soru/cross-signing 2020-05-29 08:54:33 +02:00
Sorunome d672edf394 Make room key sharing requests (hopefully) more robust and spec-compliant 2020-05-29 06:49:37 +00:00
Sorunome c779d39818
fix small stuffs 2020-05-27 21:40:58 +02:00
Sorunome dda0b17724
in-room verification to verify users instead of devices 2020-05-27 21:35:00 +02:00
Sorunome aefe029c0a
add ability to sign yourself based on ssss 2020-05-27 18:50:09 +02:00
Sorunome e4e4386178
signed vs verified logic 2020-05-27 17:37:14 +02:00
Sorunome 8d75c2a0af
format 2020-05-27 10:33:42 +02:00
Sorunome fabffea1cd
verification status by user, sign manually verified keys 2020-05-27 10:13:22 +02:00
Sorunome 1c9da050c0
smoothen out verification and signature uploading 2020-05-26 15:58:14 +02:00
Sorunome c23e38a9c9
Merge branch 'master' into soru/cross-signing 2020-05-26 10:00:59 +02:00
Sorunome 2ecf4151b9
also send master key on verification and stuffs 2020-05-26 09:54:46 +02:00
Sorunome 8a289941eb Fixes profile equality check 2020-05-26 06:40:13 +00:00
Sorunome c13f66c85f
in theory sign others keys 2020-05-25 15:30:53 +02:00
Sorunome 97a10c7de1
Merge branch 'master' into soru/cross-signing 2020-05-25 13:22:13 +02:00
Christian Pauly cbf5069e32 Add more tests 2020-05-25 09:34:43 +00:00
Christian Pauly f7b29f3703 Ignore key requests from unknown devices 2020-05-25 07:31:17 +00:00
Sorunome 280cd4fc16
first SSSS stuff 2020-05-23 17:04:27 +02:00
Christian Pauly c01f75bafa Add olm error stream 2020-05-22 15:51:45 +02:00
Sorunome 1a8ddb2750
fixes 2020-05-22 13:22:28 +02:00
Sorunome c9a0c5302a
format 2020-05-22 13:18:45 +02:00
Sorunome 29721f00a8
Merge branch 'master' into soru/cross-signing 2020-05-22 13:18:36 +02:00
Christian Pauly 27b4a620e5 Add code formatting CI job 2020-05-22 10:12:18 +00:00
Sorunome 74361fff0e
don't cache via db and properly handle invalid signatures 2020-05-22 11:04:27 +02:00
Sorunome 788353120b
accidental inifnite recursion 2020-05-21 16:55:30 +02:00
Sorunome 10372a9dbe
verified devices are not blocked 2020-05-21 16:52:25 +02:00
Sorunome eaefdb64ca
make that cleints can only use "verified" 2020-05-21 16:51:15 +02:00
Sorunome ead44e4014
fix tests and stuffs 2020-05-21 15:32:06 +02:00
Sorunome af961b99dc
get device verification status based on cross signing 2020-05-21 15:20:33 +02:00
Sorunome 0fabed9cc3
make sure keys are valid 2020-05-20 09:37:32 +02:00
Christian Pauly a6c7d88f00 Add profile cache 2020-05-18 11:45:49 +00:00
Sorunome 11a83725d1 Merge branch 'soru/emoji-verification' into 'master'
implement SAS, which is needed for emoji verification

See merge request famedly/famedlysdk!300
2020-05-18 10:57:54 +00:00
Sorunome 2b8f4b0d19
remove print statement for good 2020-05-18 12:39:03 +02:00
Sorunome 50889f9f30
flutter analyze 2020-05-18 11:45:51 +02:00
Sorunome a4c693558d
generalize verification methods 2020-05-18 11:44:23 +02:00
Sorunome e87053b4f1
forgot to add 1000 to the numbers 2020-05-17 15:32:06 +02:00
Sorunome 0219a42c07
implement SAS 2020-05-17 15:25:42 +02:00
Christian Pauly 81b9d79518 Merge branch 'soru/fix-lazy-session-keys' into 'master'
lazy-load group session keys

See merge request famedly/famedlysdk!293
2020-05-17 07:54:34 +00:00
Sorunome 06b601c41b lazy-load group session keys 2020-05-17 07:54:34 +00:00
Christian Pauly e66a904ee0 Add tombstone enum 2020-05-16 09:47:19 +02:00
Christian Pauly 1e4f356280 Krille/implement well known 2020-05-16 06:42:56 +00:00
Sorunome 9d1c7f16a5
add pill parsing to markdown 2020-05-15 21:00:10 +02:00
Sorunome f71826739c Switch to moor 2020-05-15 18:40:17 +00:00
Christian Pauly 7d0c45e3ae Update lib/src/utils/pusher.dart 2020-05-12 11:19:26 +00:00
Christian Pauly 4253f0ce9a Implement getPushers 2020-05-12 13:03:02 +02:00
Sorunome 2352eb406a add markdown parsing 2020-05-09 14:00:46 +00:00
Christian Pauly 9944844cc3 Implement localized String represantions 2020-05-06 10:13:30 +00:00
Christian Pauly c22090a68d Fix blurry thumbnails 2020-05-04 14:03:07 +00:00
Christian Pauly 2064f53c34 Fix thumbnail scaling 2020-05-04 09:22:44 +02:00
Christian Pauly 0e3fabcef3 Make thumbnail width height and quality configurable 2020-05-04 08:59:05 +02:00
Christian Pauly e3ced175de Fix profile uri parse 2020-04-28 11:36:20 +00:00
Christian Pauly 6f5ebe4681 [MxContent] Switch to Uri Extension 2020-04-24 09:24:06 +02:00
Christian Pauly 7ce5002237 [MatrixFile] Fix thumbnail encoding 2020-04-23 08:18:33 +00:00
Christian Pauly 81c12c81f2 [Client] Implement thumbnails 2020-04-17 14:11:13 +00:00
Christian Pauly 0dcc818365 [RoomKeyRequest] Fix forwardKey 2020-03-31 17:18:37 +02:00
Christian Pauly 5f140a62ad [RoomKeyRequest] Fix index 2020-03-31 16:30:00 +02:00
Christian Pauly a3c5add79e [SDK] Refactoring with new linter rules 2020-03-30 09:08:38 +00:00
Christian Pauly a2d9bbfc9e [MatrixIdStringExtension] Add null check 2020-03-25 13:56:49 +01:00
Christian Pauly 2c1caf9072 [Client] Enable file encryption 2020-03-23 09:37:51 +00:00
Christian Pauly 04eb904629 [TurnServerCredentials] Fix type 2020-03-19 14:39:18 +00:00
Christian Pauly bb44fa6ac0 [Event] Implement file encryption 2020-03-16 10:38:03 +00:00
Lukas Lihotzki 3c78f11f2c [MatrixFile] Use Uint8List instead of List<int> 2020-02-24 17:54:43 +01:00
Christian Pauly f4be2aa023 [PublicRoomEntry] Fix fromJson 2020-02-22 18:13:13 +00:00
Christian Pauly 3e6552dc7a [PublicRoomEntry] Fix join method 2020-02-22 17:59:50 +00:00
Christian Pauly 2738c5a49d [Client] List public rooms 2020-02-22 18:20:50 +01:00
Christian Pauly ac3a9a6b3a [Room] Implement key sharing 2020-02-21 15:05:19 +00:00
Christian Pauly 77b11d78db [Client] Implement device management 2020-02-19 14:26:38 +01:00
Christian Pauly 5d73f06cd3 [DevicekeysList] Clear outbound group session on blocking device 2020-02-19 10:54:08 +01:00
Christian Pauly 8bf7eacc46 [DeviceKeys] outdated by default not null 2020-02-15 14:21:27 +01:00
Christian Pauly f5b493f9bd [SDK] Add dart-olm library and update CI 2020-02-15 07:48:41 +00:00
Christian Pauly 8e0373cdb9 [States] Return null on null key 2020-02-14 13:16:26 +00:00
Christian Pauly 9395b8fcd3 [Identifier] Implement string extension 2020-02-10 12:33:18 +01:00
Christian Pauly edd8aa5c4c Client feature add device tracking 2020-02-04 13:41:13 +00:00
Christian Pauly 0c7efaff62 [OpenIdCredentials] Fix type 2020-02-03 09:45:33 +00:00
Christian Pauly f2c92aa9bb [MatrixException] Add nullchecker 2020-01-29 09:21:23 +00:00
Christian Pauly 4cc5d263ab [SDK] Implement more matrix methods 2020-01-18 15:49:15 +01:00
Christian Pauly 9bc94c8780 Merge branch 'exception-fix-list' into 'master'
[MatrixException] Fix list

See merge request famedly/famedlysdk!164
2020-01-14 15:19:41 +00:00
Christian Pauly 0b393497f8 [Client] Add register methods 2020-01-14 15:16:24 +00:00
Christian Pauly 2751015ab7 [MatrixException] Fix list 2020-01-14 15:15:59 +00:00
Christian Pauly 5fbeceb217 [SDK] Refactoring 2020-01-14 11:27:26 +00:00
Christian Pauly 0be548e4e9 [Client] Implement request openID 2020-01-12 11:30:05 +01:00
Christian Pauly 103949576f [Client] Add call methods 2020-01-04 19:36:17 +01:00
Christian Pauly de2872cfee Update lib/src/client.dart, lib/src/user.dart, lib/src/timeline.dart, lib/src/room.dart, lib/src/presence.dart, lib/src/event.dart, lib/src/utils/profile.dart, lib/src/utils/receipt.dart, test/client_test.dart, test/event_test.dart, test/presence_test.dart, test/room_test.dart, test/timeline_test.dart, test/user_test.dart files 2020-01-04 17:56:17 +00:00
Christian Pauly 7e71c5ad5f [SDK] Make analyzer much more happy 2020-01-02 15:33:26 +01:00
Christian Pauly 8e4a604f1f [SDK| Big refactoring 2020-01-02 14:09:49 +00:00
Christian Pauly 4c6c3715d9 [Connection] Throw MatrixErrors 2019-12-29 10:28:33 +00:00
Christian Pauly fd43196c9d [Room] New push rule methods 2019-12-04 09:58:47 +00:00
Christian Pauly 579570a19e Merge branch 'presence-enhance-features' into 'master'
[Presence] Enhance presences

See merge request famedly/famedlysdk!130
2019-12-04 09:39:07 +00:00
Christian Pauly c566948be5 [Client] Add profile getter 2019-11-30 10:36:30 +01:00
Christian Pauly 918bec4c09 [Presence] Enhance presences 2019-11-30 10:21:11 +01:00
Christian Pauly 930bc26be6 [Room] Add getter and setter for states 2019-11-20 13:42:08 +00:00
Christian Pauly 87ef1af3e4 [Room] fix states with statekeys 2019-11-20 13:02:23 +00:00
Christian Pauly 8b67d58ecc [MatrixFile] Path always lower case 2019-10-23 18:14:04 +00:00
Christian Pauly 32141618b6 [Ephemerals] Add new features 2019-10-20 09:44:14 +00:00
Christian Pauly 77f62f042d [Files] Use MatrixFile 2019-10-18 11:05:07 +00:00
Christian Pauly 89f58a272b [ChatTime] Fix time display 2019-10-16 13:59:16 +00:00
Christian Pauly 4ad22731a6 [Upload] Fix file type 2019-10-16 09:09:09 +00:00
Christian Pauly f8ed0384dd [Intl] Remove dependency 2019-10-02 12:40:16 +00:00
Christian Pauly 0a46ec9551 [Store] Make database private 2019-10-02 11:33:01 +00:00
Christian Pauly df0cc1d273 [Tests] Refactoring 2019-08-08 10:31:39 +02:00
Christian Pauly 740ac0dc9c [Classes] Non nullable id and mxcurl 2019-07-19 19:09:34 +02:00
Christian Pauly be2265f226 [Refactoring] Make analyzer happy. 2019-06-27 12:33:02 +02:00
Christian 68ab8b8c8c [License] Replace 'foobar' with 'famedlysdk' in all Files. 2019-06-21 12:38:07 +00:00
Christian Pauly c13b23dd0a Check if matrix homeserver is not null for MxContent 2019-06-14 07:45:48 +02:00
Christian 22231f87b7 Tests for ChatTime and MxContent including bug fixes 2019-06-10 06:28:21 +00:00
Christian Pauly 76649b852b Update docs 2019-06-09 14:33:25 +02:00
Christian Pauly 5ad2d4b7ce Hunt down dependencies 2019-06-09 14:08:41 +02:00
Christian Pauly f1b468e192 Add licence header 2019-06-09 13:57:33 +02:00
Christian Pauly 77be6102f6 Initial commit 2019-06-09 12:16:48 +02:00