Commit Graph

126 Commits

Author SHA1 Message Date
87a985fee0 fix: Fix ratchets going out of sync 2023-06-15 01:26:49 +02:00
c483585d0b fix: Get basic tests working 2023-06-14 21:59:59 +02:00
f6f0e145cc feat: Rework the double ratchet 2023-06-14 19:55:47 +02:00
50f6513c6f feat: Remove custom protobuf parsing 2023-06-12 23:39:08 +02:00
3376929c24 style: Formattiing issues 2023-06-12 19:37:45 +02:00
3783ec6f13 feat: Remove OmemoSessionManager 2023-06-12 19:21:07 +02:00
65f1daff55 style: Format using dart format 2023-06-12 19:20:43 +02:00
f2ec7bd759 fix: Initial receiving ratchet has no trust data 2023-06-12 19:13:38 +02:00
3fb5fd7eb8 style: Cleanup 2023-01-22 19:08:06 +01:00
a97f8bc372 fix: Fix ratchet null issue
Fixes #26.
2023-01-22 19:07:29 +01:00
cc31475671 fix: Ratchets are not removed when using removeAllRatchets
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2023-01-07 22:14:10 +01:00
a08c654295 feat: Do not fetch bundles for our own device 2023-01-02 13:56:22 +01:00
092ce36410 feat: Add last features for use in moxxmpp 2023-01-01 16:49:19 +01:00
4085631804 fix: Make logging less verbose 2022-12-27 12:49:11 +01:00
6a9e98665d fix: Track new KEX entries using a ratchet key 2022-12-27 12:47:45 +01:00
5f844dafda feat: Add getDeviceId 2022-12-27 12:43:50 +01:00
5e6b54aab5 feat: Better guard against failed lookups 2022-12-27 12:43:50 +01:00
6c4dd62c5a feat: _decryptMessage explicitly tells us that a ratchet was created 2022-12-27 12:43:50 +01:00
54eeb816eb feat: Export OmemoManager 2022-12-27 12:43:50 +01:00
e35f65aff9 style: Fix style issues 2022-12-27 12:43:50 +01:00
4dc3cfb2b1 feat: Deprecate OmemoSessionManager 2022-12-27 12:43:50 +01:00
caf841c53e feat: Add more documentation 2022-12-27 12:43:50 +01:00
5bc1136ec0 feat: Implement getting fingerprints 2022-12-27 12:43:50 +01:00
b48665c357 feat: Begin work on the OmemoManager interface 2022-12-27 12:43:50 +01:00
06707d1a34 feat: Compute the fingerprint of a bundle 2022-12-27 12:43:18 +01:00
fe1ba99b14 feat: Indicate whether a ratchet has been created or not
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2022-12-09 20:41:53 +01:00
797bf69856 fix: Crash when calling getDevicesTrust for unknown Jid
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2022-12-09 18:42:23 +01:00
c68471349a fix: Reuse old key exchange when the ratchet is unacked
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2022-10-22 12:41:41 +02:00
1472624b1d fix: Use stanza receival timestamps to guard against stale kex messages
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2022-10-02 19:23:58 +02:00
0826d043d5 feat: Attempt to detect already decrypted messages 2022-10-02 17:03:39 +02:00
2aa3674c4b fix: Fix receiving an old key exchange breaking decryption
This was mostly caused by Dart not copying values but referencing
them. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.

We know make some assumptions about received key exchanges, so this
needs some field testing.
2022-10-02 14:56:20 +02:00
96771cf317 feat: Allow getting the device's fingerprint 2022-09-25 12:50:59 +02:00
bea433e377 fix: React to all decryption errors with ratchet restoration 2022-09-25 11:35:12 +02:00
a23dd30eee chore: Commit the protobuf artifacts 2022-09-18 15:56:09 +02:00
b4c14a9769 fix: Guard against a crash in the critical section 2022-09-15 23:33:07 +02:00
b69acdd936 fix: Fix replaceOnetimePrekey mutating the device's id 2022-09-15 23:31:56 +02:00
0480e9156f fix: Fix occurence of not using synchronized's return 2022-09-15 13:46:52 +02:00
96d9c55c87 fix: Make fromJson* functions work when reading JSON from a String 2022-09-15 13:41:33 +02:00
49c847a96b feat: Remove toJson and fromJson from OmemoSessionManager 2022-09-15 13:22:50 +02:00
cf5331a026 feat: Introduce logging for logging purposes 2022-09-15 13:17:30 +02:00
c1d8073af0 refactor: Remove BTBV's loadState method 2022-09-15 13:06:14 +02:00
438012d8f8 fix: Hopefully fix all tests being flaky
It seems that the varint encoding function would not work for
some integers as input. This should in theory fix this issue. Since
the SPK IDs are randomly between 0 and 2**32 - 1, it makes sense that
the tests fail only sometimes.
2022-09-14 23:50:54 +02:00
79704da99c fix: Fix issues with the maps being unmodifiable 2022-09-14 22:02:50 +02:00
4341797f14 fix: Commit the restored ratchet 2022-09-14 22:02:35 +02:00
c5c579810e fix: Restore the ratchets in case of an error
This means that if the ratchet fails to decrypt a message, from the
outside it will be as if that one message had never been received.
Thus, the ratchet can be used normally. This is to guard against
messages that are received again.
2022-09-14 21:58:41 +02:00
8991599a0b feat: Allow removing all ratchets for a given Jid 2022-09-11 17:26:54 +02:00
dad938b0e1 feat: Allow initializing the BTBV trust manager in the constructor 2022-09-11 13:43:07 +02:00
ff52c82039 feat: Help with serializing and deserializing the BTVT manager 2022-09-11 13:33:45 +02:00
12e09947f6 feat: Implement enabling and disabling devices 2022-09-11 12:34:31 +02:00
0e370a8e19 refactor: Use synchronized's return 2022-09-09 17:39:28 +02:00