Skip to content

Require mls_proposals tag in key package validation #242

@jgmontoya

Description

@jgmontoya

PR #236 added the mls_proposals tag to key package events (per MIP-00), signaling supported proposal types like SelfRemove (0x000a). During the transition period, we intentionally made this tag optional in validation, older key packages published before #236 don't include it, and requiring it would make them invalid.

Currently:

  • Emitting: All new key packages include mls_proposals with ["0x000a"]
  • Validation: Format is checked when the tag is present, but presence is not required

After a sufficient transition period, make mls_proposals a required tag in validate_key_package_tags. This ensures all key packages in circulation advertise their proposal type support, enabling clients to check compatibility before adding a member to a group.

Acceptance criteria

  • validate_key_package_tags requires mls_proposals tag (move from optional if let to require())
  • Validation confirms 0x000a (SelfRemove) is present in the tag values
  • Existing tests updated for the new requirement
  • Consider adding a test that verifies key packages without mls_proposals are rejected

When to do this
Once we're confident that the vast majority of published key packages in the wild include the tag.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions