Commit Graph

145 Commits

Author SHA1 Message Date
fdc3985a8d feat: Serialise the Double Ratchet 2022-08-05 18:14:10 +02:00
cd77996db4 feat: Allow serialising Device to Json 2022-08-05 17:32:59 +02:00
3a7489a9c3 feat: Make most methods of the SessionManager private 2022-08-05 16:53:31 +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
ff7cc8e95a fix: Migrate more from protobuf 2022-08-05 13:02:44 +02:00
9ed94c8f3a fix: Migrate to custom protobuf 2022-08-05 12:59:10 +02:00
5c3cc424de feat: Implement all protobuf messages 2022-08-05 12:28:46 +02:00
b8d70f1b88 feat: Add helper functions for field Ids 2022-08-04 23:08:02 +02:00
a82b5d0990 feat: Reimplement the OMEMOMessage protobuf schema 2022-08-04 22:55:47 +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
31d3897995 fix: Migrate Double Ratchet to the helper functions 2022-08-04 14:10:08 +02:00
4d6dbef549 feat: Add a untest decrypt function 2022-08-04 14:01:50 +02:00
e34e0cc7fb feat: Add managing our own keys 2022-08-04 13:19:27 +02:00
27b1931629 feat: Add a basic OMEMO session manager 2022-08-04 12:50:19 +02:00
713ea8e1b1 refactor: Rename key.dart to keys.dart 2022-08-03 17:18:14 +02:00
749e2e1a0a refactor: Move OmemoBundle into omemo/ 2022-08-03 17:16:40 +02:00
55979fcbbe refactor: Move the implementations into their own directory 2022-08-03 17:15:08 +02:00
1349df9274 refactor: Move the DH function into its own file 2022-08-03 16:55:56 +02:00
e11baabfa0 feat: Remove the identityKey == 3 case 2022-08-03 16:52:42 +02:00
f897431692 docs: Improve documentation 2022-08-03 16:50:27 +02:00
45d0c57305 fix: Throw a custom exception 2022-08-03 16:44:18 +02:00
8d222a160f feat: Check the HMAC during decryption 2022-08-03 16:41:33 +02:00
6d8238475c refactor: Remove pkcs7padding function 2022-08-03 16:38:04 +02:00
a95a1e3a8d style: Use .isEven instead of '% 2 == 0' 2022-08-03 16:33:22 +02:00
37155d2a87 test: Test 100 rounds of messages between the two ratchets 2022-08-03 16:32:39 +02:00
2fc2623092 docs: I meant 0.8.3, not 0.8.0 2022-08-03 16:32:22 +02:00
1a0f470ada feat: IMPLEMENT THE DOUBLE RATCHET WITH X3DH 2022-08-03 15:29:13 +02:00
4e3e20f08c ???: Move code around 2022-08-03 15:13:03 +02:00
d3c8d813a9 wip: Add the basics for the Double Ratchet 2022-08-02 18:13:14 +02:00
56ae882aa0 style: Fix linter warning 2022-08-02 15:44:31 +02:00
26019ac704 style: Move the X3DH info string into a constant 2022-08-02 15:43:39 +02:00
4211775c90 feat: Add signature validation 2022-08-02 15:40:26 +02:00
fc43655956 feat: Calculate the Appended Data 2022-08-02 15:26:00 +02:00
12e617ead9 docs: Update README 2022-08-02 15:20:23 +02:00
15df3b7f6b fix: Remove TODO
The X3DH spec says that salt (presumably the nonce) is supposed
to be [0, 0, ..., 0] with the length of the hash. I seem to have
skipped over that.

From Section 2.2:
"HKDF salt = A zero-filled byte sequence with length equal to the
hash output length."
2022-08-02 15:17:07 +02:00
566cb1b0ec style: Lint using very_good_analysis 2022-08-02 15:10:31 +02:00
d86e7f5963 refactor: Clean up the X3DH implementation 2022-08-02 15:03:58 +02:00
34df73c929 ENABLE X3DH WITH ED25519 KEYS 2022-08-01 23:20:31 +02:00
0565cdef81 IMPLEMENT X3DH (without OMEMO) 2022-08-01 22:08:38 +02:00
18c6fdb54e Initial commit 2022-06-30 14:00:18 +02:00