Subject: [MLS] Last (?) batch of pre-WGLC changes

From: Richard Barnes <[email-masked]>
Date: Tue, 7 Dec 2021 10:18:55 -0500

Hey MLS folks,

There's been a fair bit of GitHub activity recently getting things tuned up
for WGLC.  (Thanks to Konrad, Théophile, Franziskus, Raphael, Britta, et
al. for some good discussions!)  There are a few remaining PRs with
significant changes that I wanted to raise for feedback before we merge and
ship.

I have listed the PRs below with links and short summaries.  If folks could
please post feedback on the PRs by the end of this week, it would be
appreciated.

Thanks,
--Richard

#518 - Consolidate resumption PSK cases
https://github.com/mlswg/mls-protocol/pull/518
Currently, when resumption PSKs are used, they are tagged as "reinit" or
"branch" PSKs.  This PR removes that distinction, on the premise that (a)
we don't have a good taxonomy of use cases for resumption PSKs (in
particular, "branch" and "reinit" are not the only cases), and (b)
use-case-specific PSKs can be added back in an extension.

#509 - Be explicit that Credentials can attest to multiple identities
https://github.com/mlswg/mls-protocol/pull/509
Earlier versions of the spec had a notion that a credential provides a
single identity, which is clearly wrong for things like X.509 certificates,
which can associate several identities to a public key.  This PR makes the
identity provisions more flexible, while maintaining the `endpoint_id`
field as a persistent identifier for a client in the scope of a group.

#522 - Generalize tree extend/truncate algorithms
https://github.com/mlswg/mls-protocol/pull/522
This PR started from a desire to make clear that the array-based tree
representation is not mandatory.  The main dependency on the array
representation was in describing how to add and remove leaves, so this PR
adds an abstract description of adding and removing leaves, and appendices
describing how to do it in "array-based" and "link-based" tree
representations.

#520 - Revamp overview sections
https://github.com/mlswg/mls-protocol/pull/520
This PR provides a new, more detailed overview section, to help give
readers a better framework for understanding the details in the rest of the
document.  In addition to this PR, I plan to re-order some sections before
the next draft, so that the flow is a little more logical (
https://github.com/mlswg/mls-protocol/issues/409#issuecomment-983853380).
But that will just be moving text, not changing anything, and will come
after all the substantive PRs are landed.