Subject: [MLS] Interop update

From: Richard Barnes <[email-masked]>
Date: Mon, 23 Aug 2021 10:52:28 -1000

Hi MLS folks,

We have Interop!

The MLSpp and OpenMLS teams have worked off and on over the summer on
getting to interoperability, and a couple of weeks ago, we had our first
successful protocol interactions!

* Each stack can verify test vectors [1] generated by the other stack
* We can establish 1:1 sessions between clients for all ciphersuites
* Some three-party mixed-stack cases are also working

So we’ve graduated from the basic, test-vector-based tests into actual
protocol operations. Next step is to work our way through the various
things the protocol can do (updates, removes, PSKs, external joins, etc.).

If other folks have been working on implementations, it would be great to
do some broader testing.  We have a gRPC-based test framework [2], so you
just need to build a small shim layer around your implementation in order
to be able to easily run interop tests.  The test framework repo has
example shim layers in C++, Go, and Rust.

Cheers,
—Richard

[1] https://github.com/mlswg/mls-implementations/blob/main/test-vectors.md
[2] https://github.com/mlswg/mls-implementations/blob/main/test-harness.md