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