mlspp
mlspp copied to clipboard
Implementation of Messaging Layer Security
Newer runners will become available and the `-latest` runners might be updated with notice. Today, we are using `macOS-latest`, `ubuntu-latest`, and `windows-latest`. A newer macOS version is available (13), but...
Hello, We added a DER parsing function for private keys. Hope you find it useful. Best,
Hey, I'm trying to persist the latest state of the group. However `tls::marshal(state)` fails as `State` is not serializable. For our use case in memory caching cannot be relied on....
Currently, we can validate passive client tests, but not generate them. This PR adds logic to generate passive client tests for a few scenarios: * Join via Welcome * Join...
In interop testing, @mulmarta discovered that `State::handle_branch` will accept a Welcome containing a PSK with usage `reinit`. We should tighten up the validation rules to preclude this. And likely also...
As a result of #262, API changes made it difficult to support inline proposals in the interop harness. We should re-enable inline proposals, either by updating the gRPC interface to...
The `RatchetType` enum in `key_schedule.h` is unnecessary. Callers should switch on `ContentType`; storage should just directly have handshake and application ratchets instead of an `std::map`.
Signed objects, especially GroupInfo and KeyPackage, are used in basically two ways: 1. Instantiate => sign => serialize 2. Deserialize => verify => instantiate Given that, it seems like we...
As the MLS spec finalizes, we are about to be doing a bunch of interop testing with other implementations. To facilitate debugging inevitable interop problems, we should add logging of...
Two halves to this: * Send the supported_versions and supported_ciphersuites extensions * When initializing a group, verify that the chosen version/suite is the highest supported