Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

219 check-ins

2024-01-24
02:22
Start working on supporting PQXDH. Leaf check-in: 5aec184aa6 user: wesleyac tags: pqxdh
2024-01-23
20:31
Add accidentally-missed files. Leaf check-in: 27a5164ce5 user: wesleyac tags: flutter-testing-2
20:28
WIP work on Flutter/Rust FFI check-in: 443cc0d90d user: wesleyac tags: flutter-testing-2
2024-01-19
19:58
Merge trunk into flutter-testing-2. check-in: 75089c0dff user: wesleyac tags: flutter-testing-2
17:52
Add a couple more refs on groups. Leaf check-in: 671da1410c user: wesleyac tags: trunk
2024-01-18
22:32
Add "Briar Private Group Client" to refs. check-in: f9a45a6593 user: wesleyac tags: trunk
20:44
Add more refs for groups. check-in: b6bf332fce user: wesleyac tags: trunk
20:33
Add clarifying detail to groups doc. check-in: 3de54add4d user: wesleyac tags: trunk
20:23
Add TODO to add_user function to not allow duplicates. check-in: 5ebbc4cb71 user: wesleyac tags: trunk
20:13
Reorder some paragraphs in groups doc. check-in: a0964b38bb user: wesleyac tags: trunk
20:10
Make groups doc more readable. check-in: 91b7555a6e user: wesleyac tags: trunk
20:03
Add initial docs on groups. check-in: 88f2bc419f user: wesleyac tags: trunk
06:31
Remove unused bincode from Cargo.toml. check-in: 0e40182b06 user: wesleyac tags: trunk
05:05
Merge borsh into trunk. check-in: 2453fbecc8 user: wesleyac tags: trunk
05:01
Remove bincode. Closed-Leaf check-in: 5618273583 user: wesleyac tags: borsh
04:52
Use borsh for ToSql/FromSql and network transport. check-in: ce11f0ad84 user: wesleyac tags: borsh
04:03
Add borsh as option for serialization and deserialization.

This seems preferable to bincode for cryptographic applications (and
potentially for speed?), as well as being available in Dart, making it a
reasonable choice for the Rust/Flutter FFI. check-in: af6e2f0ac2 user: wesleyac tags: borsh

03:23
Second pass at Flutter for UI, with no FFI yet this time. check-in: 7972cfaed3 user: wesleyac tags: flutter-testing-2
2024-01-16
22:51
Broken implementation of Rust/Dart FFI. This method seemingly can't go as far
as I need without structural changes to the library I'm using.
Leaf check-in: bed0b6b322 user: wesleyac tags: broken
21:00
Add seemingly-working implementation of Rust/Dart FFI. Leaf check-in: 2d613c4afb user: wesleyac tags: flutter-testing
15:00
Start hacking together a UI of some kind. check-in: 9ee0a4617c user: wesleyac tags: flutter-testing
13:19
Remove verbose comments in pubspec. check-in: 31143833bf user: wesleyac tags: flutter-testing
13:16
Simplify demo app. check-in: 50c3c2739a user: wesleyac tags: flutter-testing
13:07
Simplify Flutter demo project. check-in: 3f2ad1bd1f user: wesleyac tags: flutter-testing
13:04
Add default Flutter sample project.

This is unmodified, for easy diffing later if needed. check-in: a9e1fa97c9 user: wesleyac tags: flutter-testing

12:24
Add Flutter starter project.

Committing this as-is so I can diff against it if needed. Closed-Leaf check-in: 532c710ea8 user: wesleyac tags: flutter-testing

12:11
Add more SQLite-related files to fossil ignore list. check-in: 87ed27afc5 user: wesleyac tags: trunk
11:16
Add note to change how server information is laid out in identity bundle. check-in: 063585b472 user: wesleyac tags: trunk
08:58
More janky work on a interactive TUI client.

This is good for testing and figuring out what a good API for lib::client is. check-in: 7254b55bd0 user: wesleyac tags: trunk

07:57
Add get_identities function to client code. check-in: 1277907b8b user: wesleyac tags: trunk
07:10
Add all SQLite DBs to fossil ignore. check-in: d1d68592f5 user: wesleyac tags: trunk
07:04
Remove explicit receive and flush commands from client. check-in: 6aa561dbf8 user: wesleyac tags: trunk
07:03
Clean up client code, delete used one-time prekeys. check-in: ba7d31076c user: wesleyac tags: trunk
06:07
Super hacky starting implementation of persistent + multithreaded client. check-in: 26ea7afc55 user: wesleyac tags: trunk
05:38
Add forbid(unsafe_code). check-in: c029cc5b9e user: wesleyac tags: trunk
05:27
Stop having the server depend directly on bincode. check-in: 8279bba17b user: wesleyac tags: trunk
05:26
Replace unwrap with question mark in client. check-in: 628e9c2ae7 user: wesleyac tags: trunk
05:07
Rename RatchetSessionID to SessionId. check-in: c3edb36261 user: wesleyac tags: trunk
04:32
Add some notes on protocol versioning. check-in: bc73b4e8cd user: wesleyac tags: trunk
04:23
Replace PublicKey.encode with explicit domain separation.

This is basically the exact same thing and isn't buying us security or
anything, but it feels nicer to do this more explicitly. check-in: ca37fddac1 user: wesleyac tags: trunk

04:12
Add helper functions for converting device and identity keys from private to public. check-in: 9b32011724 user: wesleyac tags: trunk
04:00
Add generate function to DeviceKeyPrivate and IdentityKeyPrivate. check-in: b628744a11 user: wesleyac tags: trunk
03:54
Move cryptography-related impls to lib::types::impl_crypto.

This should make it easier to review just the important impls, while skimming the rest. check-in: 0595475c17 user: wesleyac tags: trunk

03:41
Add device key newtypes and more thoroughly use them throughout the code. check-in: 81f2745b17 user: wesleyac tags: trunk
02:59
Add identity key newtypes.

These let us avoid confusion between the device and identity keys. check-in: f4b2ee30c8 user: wesleyac tags: trunk

02:45
Remove TODO about Zeroize, since it's correctly implemented by the underlying library. check-in: 32b7afb321 user: wesleyac tags: trunk
02:23
Fix up some remaining XEd25519 -> Ed25519 things and remove unused functions. check-in: 79bc884b58 user: wesleyac tags: trunk
01:39
Move ToSql/FromSql impls to separate file. check-in: 0713f8b76b user: wesleyac tags: trunk
01:35
Split out Encode/Decode impls into separate file. check-in: 0d5aef6629 user: wesleyac tags: trunk
01:16
Replace XEd25519 with Ed25519.

I'm not super confident in this, and it needs a lot of cleanup and making all
the types nicer. But it's a start. check-in: e2090134fd user: wesleyac tags: trunk

2024-01-15
23:12
Add "Is Signal still more secure than WhatsApp?" to refs. check-in: 017d2de7d9 user: wesleyac tags: trunk
23:11
Remove unused ed25519 crate. check-in: 5bec54afc7 user: wesleyac tags: trunk
23:09
Add docs on client architecture. Very WIP brainstorming. check-in: d283e8bc54 user: wesleyac tags: trunk
22:28
Remove unused message type. check-in: c3f11db57e user: wesleyac tags: trunk
22:05
Remove revoked_devices from identity bundle, add TODOs.

I'm waffling on whether we need this or not. On the one hand, it could probably
help avoid some attacks, on the other hand, I need to actually specify what it
means and how the client has to handle it. Probably something to come back to
later. check-in: fa24183916 user: wesleyac tags: trunk

21:52
Flesh out message types more. check-in: 027751fbb1 user: wesleyac tags: trunk
21:15
Remove fixed TODO. check-in: 13057a4ed7 user: wesleyac tags: trunk
21:14
Remove send_id and recv_id from DoubleRatchetState. check-in: 31ee911e3d user: wesleyac tags: trunk
21:07
Keep track of send/recv session IDs outside of double ratchet state.

This is more correct, as the same double ratchet session can go over multiple different transports. check-in: 4cfc62817d user: wesleyac tags: trunk

20:17
Store identity bundle instead of list of devices. check-in: b51b9c3b24 user: wesleyac tags: trunk
19:39
Remove identity_key_public from database.

We have this in the signed_identity_bundle now. check-in: 1deb0d95fd user: wesleyac tags: trunk

19:17
Switch from hex to base64 encoding for keys/identity bundles. check-in: efa5b4ab1d user: wesleyac tags: trunk
19:04
Move code to print identity bundle into client binary. check-in: 24a6c2a959 user: wesleyac tags: trunk
18:56
Start integrating identity bundles into code. check-in: 3fb9cea02e user: wesleyac tags: trunk
17:17
Add notes on device setup flow. check-in: c5a1c17f5d user: wesleyac tags: trunk
15:52
Add note about memfd_secure. check-in: 42b5b1b8f2 user: wesleyac tags: trunk
15:51
Move docs to separate directory. check-in: dd37d218d0 user: wesleyac tags: trunk
14:23
Add TODO to fix nonce generation. check-in: 918a95b533 user: wesleyac tags: trunk
14:08
Add "The X3DH Protocol: A Proof of Security" to refs. check-in: a711f1184a user: wesleyac tags: trunk
14:08
Fix use of device key instead of signed initial message key. check-in: 213888ba80 user: wesleyac tags: trunk
11:28
Add TODO about better scheme for initial message encryption. check-in: 06dd13f6ff user: wesleyac tags: trunk
11:21
Add TODO to fix problems with outer encrpytion of initial messages. check-in: db33cb2841 user: wesleyac tags: trunk
11:18
Remove unneeded public exports in lib. check-in: 80d962753c user: wesleyac tags: trunk
11:15
Clean up imports. check-in: 8de0fe5769 user: wesleyac tags: trunk
11:12
Move prekey_keygen to X3DH module. check-in: 646185899f user: wesleyac tags: trunk
11:09
Move signed prekey verification into X3DH module. check-in: a2dc215035 user: wesleyac tags: trunk
11:05
Remove unused import. check-in: a6f1403d24 user: wesleyac tags: trunk
11:04
Factor X3DH into separate module. check-in: 06e9270f64 user: wesleyac tags: trunk
09:48
Put identity code in separate module. check-in: 6eef9e8fcc user: wesleyac tags: trunk
2024-01-14
17:34
Remove unused crates from client binary.

This isn't really a win since we've just pushed these all into the lib binary,
but it's nice to know we have a better abstraction, I guess. check-in: ce2360a6c9 user: wesleyac tags: trunk

08:59
Add TODO about surveying literature better for auth protocol. check-in: c866861a5d user: wesleyac tags: trunk
08:57
Add TODO about detecting device clone attacks. check-in: 20eb12a587 user: wesleyac tags: trunk
08:15
Add TODO for more keybase-like identity proofs. check-in: 7db46f32fa user: wesleyac tags: trunk
08:13
Add some more papers to refs. check-in: 81c6653595 user: wesleyac tags: trunk
07:13
Add "An Analysis of Signal's PQXDH" to refs. check-in: 2927d06889 user: wesleyac tags: trunk
05:44
Add "X-Wing: The Hybrid KEM You’ve Been Looking For" to refs. check-in: cc915f1ef6 user: wesleyac tags: trunk
2024-01-13
22:34
Add TODO to add mitigation for X3DH replay attack. check-in: 2567417409 user: wesleyac tags: trunk
21:21
Reorganize refs. check-in: 396a9324e7 user: wesleyac tags: trunk
21:11
Add "On using the same key pair for Ed25519 and an X25519 based KEM" to refs. check-in: d451bb55af user: wesleyac tags: trunk
2024-01-12
23:12
Implement identity verification code in typestate style. check-in: 9d6b96eae5 user: wesleyac tags: trunk
21:23
Add TODO. check-in: a20fc988f2 user: wesleyac tags: trunk
21:02
Update identity docs. check-in: c078278334 user: wesleyac tags: trunk
21:00
Minor rewording. check-in: c9e8a48dd7 user: wesleyac tags: trunk
20:59
Add initial identity/nickname docs. check-in: 524b4a0ccd user: wesleyac tags: trunk
19:30
Add glossary. check-in: 459736f7d0 user: wesleyac tags: trunk
19:30
Add handle_domain to identity bundle. check-in: d322cdce7b user: wesleyac tags: trunk
19:05
Add types for user identity. check-in: 4354f617e2 user: wesleyac tags: trunk
18:05
Add more doc comments for types. check-in: 577f539135 user: wesleyac tags: trunk
17:57
Fix some function param names.

In a multidevice world, what we used to call a "identity key" is now a "device key" check-in: a4ce61df0f user: wesleyac tags: trunk

17:54
Move client/server auth code to separate module. check-in: eed8a5cf8f user: wesleyac tags: trunk
17:50
Rename lib/crypto to lib/doubleratchet.

This name isn't exactly right, as it contains the X3DH code as well, but those
are somewhat tightly integrated anyways. check-in: 329a5ae22a user: wesleyac tags: trunk

17:25
Remove outdated TODO. check-in: af8a1a79cc user: wesleyac tags: trunk
17:01
Error on header decryption failure instead of panicing. check-in: fab0c1f83e user: wesleyac tags: trunk
16:56
Remove outdated TODO. check-in: 1fb2df02b1 user: wesleyac tags: trunk
16:51
Implement Zeroize on more data. check-in: eac9bf1527 user: wesleyac tags: trunk
2024-01-10
08:07
Add more multi-server notes. check-in: 56937596b3 user: wesleyac tags: trunk
08:00
Fix outdated filename in docs. check-in: ce990e2558 user: wesleyac tags: trunk
05:38
Move hooks to hidden folder. check-in: 4ec2f95e59 user: wesleyac tags: trunk
05:33
bincode: Use fixint encoding, use wrapper everywhere. check-in: 6b53d4a079 user: wesleyac tags: trunk
04:43
ratchet_encrypt: take reference to state. check-in: c8a316422c user: wesleyac tags: trunk
04:42
Adjust ratchet_decrypt API, add broken message to smoke test. check-in: 3492a4425c user: wesleyac tags: trunk
04:29
Add lost messages to smoke test. check-in: b330b301bc user: wesleyac tags: trunk
04:21
Add test script to serve as fossil pre-commit hook. check-in: ae2fbd6868 user: wesleyac tags: trunk
04:18
Add some accidentally-forgotten files. check-in: 028432d4c4 user: wesleyac tags: trunk
04:08
Adjust lib::crypto::initial_message_parse API and add test. check-in: 8d87b6bab3 user: wesleyac tags: trunk
03:28
Stop reexporting from lib::crypto. check-in: a4618aff6c user: wesleyac tags: trunk
03:19
Use ToSql/FromSql everywhere. check-in: e94ed4f65b user: wesleyac tags: trunk
02:17
Remove noisy crate::types:: prefix. check-in: 61af6bbc3c user: wesleyac tags: trunk
02:12
Format code and add hook to do so. check-in: abeee43ff5 user: wesleyac tags: trunk
02:02
Move source files out of src directory.

Since we already have the top-level code directory, this is not really helpful
and just adds noise. check-in: a4df73eb81 user: wesleyac tags: trunk

01:55
Add bincode helper functions. check-in: 96cf8c3c43 user: wesleyac tags: trunk
01:10
Move keygen function into KeyPair impl. check-in: 04576b3410 user: wesleyac tags: trunk
01:05
Make encode attribut of PublicKey instead of standalone function. check-in: d3981d067c user: wesleyac tags: trunk
01:00
Improve X25519 key encoding.

This constant allows us to switch curves or representations later if we would like. check-in: c1335ac90b user: wesleyac tags: trunk

00:53
Use aead:: prefix for aead functions.

This seems to make the code clearer. check-in: cefeadbab1 user: wesleyac tags: trunk

00:49
Return errors form header_decrypt instead of Option. check-in: df8efcf5e1 user: wesleyac tags: trunk
00:45
Return errors from header_decrypt instead of panicing. check-in: 0ea4edaa1b user: wesleyac tags: trunk
00:35
Merge lib::crypto::types into lib::types.

No sense in differentiating these while things are still so in flux, and maybe ever. check-in: 62f81dd96d user: wesleyac tags: trunk

00:29
Rename lib::wire to lib::types.

I'm not convinced that a separation between types used over the wire and
internally is useful at this point. If it becomes useful later we can bring it
back. In the next commit, the lib::crypto::types will be pulled into this
module. check-in: 36a16e4311 user: wesleyac tags: trunk

00:23
Remove outdated comments. check-in: 813fa2be38 user: wesleyac tags: trunk
00:21
Add SQL errors to error handling code. check-in: 32fcb44c86 user: wesleyac tags: trunk
00:04
Move error type out of crypto module.

It will be shared between all of the code, not just the X3DH/double ratchet. check-in: 03ea096214 user: wesleyac tags: trunk

2024-01-09
23:59
Clean up warnings and comments. check-in: f16933ea6c user: wesleyac tags: trunk
23:53
Reorder functions so public ones come first. check-in: 88602657c2 user: wesleyac tags: trunk
21:14
Add error handling to AEAD code.

This allows us to receive duplicate messages without panicing. check-in: 94a12e8c74 user: wesleyac tags: trunk

20:48
Improve error handling and other cleanups check-in: 2d35c24755 user: wesleyac tags: trunk
00:56
Remove dead code. check-in: 7d9ca90f2d user: wesleyac tags: trunk
00:41
Minor documentation updates. check-in: 4c5e3aa3c0 user: wesleyac tags: trunk
00:25
Lots of very messy work on multidevice and other things.

This is in a semi-working state (lots of things still broken, but more working
than it was before I started work on multidevice). Needs a huge amount of code
cleanup, error handling, and transaction handling code.

This also adds some docs and things that I've been noodling on while I was
working on this. check-in: 00769b39df user: wesleyac tags: trunk

2023-12-30
19:28
Begin work on multi-device + misc other changes. check-in: c12ce66011 user: wesleyac tags: trunk
17:53
Rename identity_key to device_key.

We will in the future have a higher-level identity key, but what we've
currently been calling a "Identity Key" we'll now call a "Device Key". check-in: 90796f4138 user: wesleyac tags: trunk

2023-12-14
19:08
Add and update notes check-in: f2e9d42371 user: wesleyac tags: trunk
04:20
Start implementing interactive client check-in: 9bbfa9ef2d user: wesleyac tags: trunk
03:27
Add untested code for generating rachet session IDs check-in: 7986da1ea1 user: wesleyac tags: trunk
03:21
Add notes on mlock and mprotect check-in: 0c1f72df11 user: wesleyac tags: trunk
03:01
Allow passing double ratchet session ID in initial message check-in: c21309f977 user: wesleyac tags: trunk
02:44
Stop reexporting in lib check-in: 8697eb9559 user: wesleyac tags: trunk
02:40
Remove unused test code in lib check-in: 349bed16cb user: wesleyac tags: trunk
02:39
Fix warnings in server crate check-in: f213d2dbfc user: wesleyac tags: trunk
02:29
Simplify conversion via FromSql check-in: 007b6ca3bf user: wesleyac tags: trunk
02:28
Pass SQL errors up instead of unwraping check-in: a885930369 user: wesleyac tags: trunk
02:21
Add error handling infrastructure in server code check-in: 88329197a5 user: wesleyac tags: trunk
01:57
Clean up code with impls of FromSql/ToSql for newtypes check-in: 1c7e60822a user: wesleyac tags: trunk
00:59
Run cargo fmt on server code check-in: 87c3f55eec user: wesleyac tags: trunk
2023-12-13
21:56
Implement DownloadInitialMessages RPC check-in: 270bb4df36 user: wesleyac tags: trunk
21:09
Implement UploadInitialMessage RPC check-in: 981cf0e185 user: wesleyac tags: trunk
18:33
Implement GetPrekeyBundle RPC check-in: c4f4c2838a user: wesleyac tags: trunk
18:01
Add notes on HSM and platform-specific security features check-in: d81baf43ba user: wesleyac tags: trunk
18:00
Add more notes check-in: 123203bbea user: wesleyac tags: trunk
06:25
Start on server implementation.

This code is very messy right now. It will get cleaned up soon :) check-in: e2c37874ac user: wesleyac tags: trunk

2023-12-12
19:54
Split code into library and client binary check-in: dd1e33cca8 user: wesleyac tags: trunk
19:42
Add initial pass at client/server wire protocol check-in: daf58d0623 user: wesleyac tags: trunk
17:50
Add DoS mitigation notes check-in: a721f85d5e user: wesleyac tags: trunk
2023-12-11
20:04
Implement encrypted initial messages check-in: 6c97b744c6 user: wesleyac tags: trunk
17:08
Add "Olm: A Cryptographic Ratchet" to references check-in: 43d79b5291 user: wesleyac tags: trunk
17:03
Add "Signature keys and user identity in libolm" to references check-in: f99d5fdb1e user: wesleyac tags: trunk
16:35
Add "A More Complete Analysis of the Signal Double Ratchet Algorithm" to references check-in: 393c96fe65 user: wesleyac tags: trunk
16:18
Add "The Double Ratchet: Security Notions, Proofs, and Modularization for the Signal Protocol" to references check-in: ec50f75172 user: wesleyac tags: trunk
06:30
Add "A Formal Security Analysis of the Signal Messaging Protocol" to references check-in: 30264f8bf0 user: wesleyac tags: trunk
06:09
Rename `spk` to `signed_prekey` check-in: 728877b6cf user: wesleyac tags: trunk
06:03
Remove command line testing code check-in: 8b57a64d2e user: wesleyac tags: trunk
05:50
Use bincode for encoding and decoding check-in: d655e07d80 user: wesleyac tags: trunk
04:18
Break out crypto types into submodule check-in: ae741d837d user: wesleyac tags: trunk
02:11
Remove unused function check-in: 6207a6aa0e user: wesleyac tags: trunk
02:07
encrypt/decrypt: pass by reference check-in: 97444cf3b2 user: wesleyac tags: trunk
02:02
header encrypt/decrypt: pass keys be reference check-in: 2c5ed1e74a user: wesleyac tags: trunk
01:59
header_encrypt: pass by reference check-in: 3aea8f713e user: wesleyac tags: trunk
01:56
Add more references check-in: 8cadc0d706 user: wesleyac tags: trunk
01:03
Fix typos check-in: 9cac8ac5d4 user: wesleyac tags: trunk
00:59
Fix typo check-in: 0d2bf04d11 user: wesleyac tags: trunk
00:59
Add more references check-in: f43d43c4e7 user: wesleyac tags: trunk
2023-12-10
19:32
Update docs. check-in: ff2bab0c25 user: wesleyac tags: trunk
06:56
Describe sealed sender strategy in more detail check-in: 004549830e user: wesleyac tags: trunk
05:47
Generate header keys from initial X3DH shared secret check-in: 4aa07e89e6 user: wesleyac tags: trunk
04:38
Initial pass at header encryption.

This implements header encryption as described in the Double Rachet Protocol
paper. It currently uses static (insecure!) header encryption keys, but in the
future I intend to derive these keys from the X3DH shared secret. check-in: ba398229ae user: wesleyac tags: trunk

03:46
Add header encryption/decryption functions check-in: bba18a8b40 user: wesleyac tags: trunk
03:23
Start using cargo-vet check-in: 9de94dbaf6 user: wesleyac tags: trunk
02:50
Switch to XChaCha20-Poly1305 as AEAD check-in: 8c54016de1 user: wesleyac tags: trunk
00:57
Switch to AES-256-GCM-SIV as AEAD instead of AES-256-CBC + HMAC check-in: bc599d5bef user: wesleyac tags: trunk
00:16
WIP work on header encryption

I believe that the AES-256-CBC + HMAC construction isn't easily suitable for
implementing the header encryption variation of the protocol, so I plan to move
to AES-GCM-SIV first. Leaf check-in: 1ce23ac30b user: wesleyac tags: start-header-encryption

2023-12-09
21:56
Update README check-in: 6347505eb6 user: wesleyac tags: trunk
04:53
Use HashMap to store one-time prekeys check-in: 9c29aafe03 user: wesleyac tags: trunk
04:37
Fix comment check-in: 9c15fde841 user: wesleyac tags: trunk
04:36
Use newtype for message keys check-in: f564987c51 user: wesleyac tags: trunk
04:33
Use newtype for chain keys check-in: aac8529f31 user: wesleyac tags: trunk
04:28
Use newtype for root key check-in: 19ebef5986 user: wesleyac tags: trunk
04:22
Use newtype for one-time prekey IDs check-in: c535dabbb3 user: wesleyac tags: trunk
04:16
Use ed25519::Signature type instead of byte array check-in: 991f2aa84f user: wesleyac tags: trunk
04:07
Use different HMAC inputs for generating chain keys and message keys check-in: cf151a23b2 user: wesleyac tags: trunk
03:48
Add doccomments check-in: b2530207d1 user: wesleyac tags: trunk
02:38
Extract initial message handling to function check-in: 65a5869c38 user: wesleyac tags: trunk
02:11
Update README check-in: 64b6f5f7f5 user: wesleyac tags: trunk
02:10
Update README check-in: 9f7680208f user: wesleyac tags: trunk
02:10
Update README check-in: ab36ecca0d user: wesleyac tags: trunk
01:58
Add support for out-of-order messages check-in: fcc5d498b3 user: wesleyac tags: trunk
01:33
Add error type check-in: a8af08f008 user: wesleyac tags: trunk
01:23
Add TODO about adding receiver server address to X3DH AD check-in: 9074bbf1f2 user: wesleyac tags: trunk
01:17
Don't include public keys in AEAD associated data after first message.

public keys in the AD are only used to prevent a identity binding attack, which
is irrelevant after the key negotiation is complete. check-in: 12ff92110b user: wesleyac tags: trunk

01:01
Fix README markdown check-in: f98fbca56f user: wesleyac tags: trunk
01:00
Take explicit parameter for initial message plaintext check-in: e458f07195 user: wesleyac tags: trunk
00:56
Explicitly clone state variable instead of mutating

This makes error handling significantly easier. check-in: 25fd474774 user: wesleyac tags: trunk

00:38
Break out crypto::aead module check-in: 7954781c5a user: wesleyac tags: trunk
00:36
Make crypto module a directory check-in: 0d1f7b2e98 user: wesleyac tags: trunk
00:31
Get rid of unused imports check-in: 1e874d6952 user: wesleyac tags: trunk
00:30
Make Header type check-in: 4b85338660 user: wesleyac tags: trunk
00:20
Move crypto code to separate module check-in: 6f43da3e55 user: wesleyac tags: trunk
2023-12-08
22:36
Implement double-rachet decrypt in test function check-in: 08c74a5c87 user: wesleyac tags: trunk
19:21
Initial code + notes checkin check-in: bbfc165260 user: wesleyac tags: trunk
2023-12-06
03:00
initial empty check-in check-in: efe6589546 user: wesleyac tags: trunk