You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
MLS: Commit cannot replace a member with Remove and Add when the KeyPackage keeps the signature key #2504
On main (c314b9cdffa3958a0eff5344f8fdcdb0181ed830) a Commit cannot replace a member with a new KeyPackage that has the same signature key and credential, even when the proposal list removes that member.
With three members, the committer removes the third and adds a signed KeyPackage with the same signature key and credential but new init and leaf encryption keys. Group.commit throws Invalid proposal list, with Add before Remove and with Remove before Add.
RFC 9420 section 12.2 allows an Add for a client that is already in the group when the proposal list removes that client. validateNormalCachedProposals validates each Add against the parent tree, where the removed leaf is still present, and validateLeafNode rejects the repeated signature key.
changed the title [-]MLS: Commit cannot replace a member with Remove and Add when the new KeyPackage keeps its signature key[/-][+]fix(mls): Commit cannot replace a member with Remove and Add when the new KeyPackage keeps its signature key[/+]on Oct 13, 2026
changed the title [-]fix(mls): Commit cannot replace a member with Remove and Add when the new KeyPackage keeps its signature key[/-][+]MLS: Commit cannot replace a member with Remove and Add when the new KeyPackage keeps its signature key[/+]on Oct 13, 2026
changed the title [-]MLS: Commit cannot replace a member with Remove and Add when the new KeyPackage keeps its signature key[/-][+]MLS: Commit cannot replace a member with Remove and Add when the KeyPackage keeps the signature key[/+]on Oct 13, 2026
Activity
[-]MLS: Commit cannot replace a member with Remove and Add when the new KeyPackage keeps its signature key[/-][+]fix(mls): Commit cannot replace a member with Remove and Add when the new KeyPackage keeps its signature key[/+][-]fix(mls): Commit cannot replace a member with Remove and Add when the new KeyPackage keeps its signature key[/-][+]MLS: Commit cannot replace a member with Remove and Add when the new KeyPackage keeps its signature key[/+]MLS: allow Remove and Add of a matching client in one Commit
MLS: test replacing a member with Remove and Add in one Commit
fix(mls): allow Remove and Add of a matching client in one Commit
test(mls): cover replacing a member with Remove and Add in one Commit
fix(mls): allow replacing a member with Remove and Add
test(mls): cover replacing a member with Remove and Add
[-]MLS: Commit cannot replace a member with Remove and Add when the new KeyPackage keeps its signature key[/-][+]MLS: Commit cannot replace a member with Remove and Add when the KeyPackage keeps the signature key[/+]fix(mls): allow replacing a member with Remove and Add
test(mls): cover replacing a member with Remove and Add
Allow an MLS Commit to replace a member with a Remove and an Add that…