Module openmls::treesync

source ·
Expand description

This module implements the ratchet tree component of MLS.

It exposes the Node enum that can contain either a LeafNode or a ParentNode.



  • EncryptionKey contains an HPKE public key that allows the encryption of path secrets in MLS commits.
  • This struct implements the MLS leaf node.
  • This struct implements the MLS parent node. It contains its public key, parent hash and unmerged leaves. Additionally, it may contain the private key corresponding to the public key.
  • An exported ratchet tree as used in, e.g., GroupInfo.
  • A ratchet tree made of unverified nodes. This is used for deserialization and verification.


  • Container enum for leaf and parent nodes.
  • An error during processing of an incoming ratchet tree.