Commit Graph

34 Commits

Author SHA1 Message Date
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
b69acdd936 fix: Fix replaceOnetimePrekey mutating the device's id 2022-09-15 23:31:56 +02:00
cf5331a026 feat: Introduce logging for logging purposes 2022-09-15 13:17:30 +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
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
80e1b20f27 fix: Fix crash when calling getUnacknowledgedRatchets for a new Jid 2022-08-18 16:21:53 +02:00
d5d4aa9014 feat: Add getDeviceId and getDeviceBundle 2022-08-18 15:30:31 +02:00
ee7b09bdb0 feat: Ratchets should overwrite each other 2022-08-18 15:20:32 +02:00
fda06cef55 feat: Implement acknowledging ratchet sessions 2022-08-16 14:02:04 +02:00
800b53b11f style: Fix linter warnings 2022-08-16 13:46:08 +02:00
5a097e4d2a feat: Allow removing a ratchet session 2022-08-16 13:27:21 +02:00
7600804aa1 test: Uncomment those tests 2022-08-11 12:02:33 +02:00
d0986a4608 fix: Fix ratchet only working for one message 2022-08-11 11:57:33 +02:00
683a76cc80 test: Add test for sending multiple OMEMO messages 2022-08-10 17:24:35 +02:00
cb43bbb112 fix: Allow empty OMEMO messages to bypass trust 2022-08-09 14:45:04 +02:00
dafd0af1e5 feat: Add a base trust manager class 2022-08-08 18:03:05 +02:00
5b739aaf1a fix: Do not keep the old SPK signature 2022-08-08 15:50:00 +02:00
1bcbf27c83 feat: Make any SPK survive exactly one rotation 2022-08-08 15:48:12 +02:00
b8b6bbf800 feat: Track the old Signed Prekey after rotation 2022-08-08 15:32:08 +02:00
43080d2ba0 feat: Expose rotating our own bundle's SPK 2022-08-08 15:09:44 +02:00
9f986c3369 feat: Handle empty OMEMO messages 2022-08-08 14:59:46 +02:00
8c1a78e360 feat: Allow encrypting to multiple Jids 2022-08-08 14:44:05 +02:00
dd96e840d4 feat: Allow calculating fingerprints 2022-08-08 14:26:25 +02:00
be239fdb43 feat: Add events for commiting the device map and ratchet 2022-08-06 13:51:07 +02:00
62fdf568aa feat: Notify the user of a modified device 2022-08-05 16:52:02 +02:00
30e3bd78cd feat: Allow initiating multiple sessions for a message 2022-08-05 16:05:05 +02:00
399f8033a3 test: Test the response to the new session 2022-08-05 15:53:16 +02:00
b5d39339d1 feat: Allow building a session when receiving 2022-08-05 13:34:42 +02:00
08ec093675 fix: Track device Ids as integers 2022-08-04 16:57:12 +02:00
31ee61a5cd feat: Add convenience functions 2022-08-04 16:42:12 +02:00
b745973188 fix: Make decryption work 2022-08-04 16:30:09 +02:00