Expand description

§Hash References

Some MLS messages refer to other MLS objects by hash. For example, Welcome messages refer to KeyPackages for the members being welcomed, and Commits refer to Proposals they cover. These identifiers are computed as follows:

opaque HashReference<V>;

MakeKeyPackageRef(value) = RefHash("MLS 1.0 KeyPackage Reference", value)
MakeProposalRef(value)   = RefHash("MLS 1.0 Proposal Reference", value)

RefHash(label, value) = Hash(RefHashInput)

Where RefHashInput is defined as:

struct {
 opaque label<V> = label;
 opaque value<V> = value;
} RefHashInput;

For a KeyPackageRef, the value input is the encoded KeyPackage, and the ciphersuite specified in the KeyPackage determines the hash function used. For a ProposalRef, the value input is the PublicMessage carrying the proposal, and the hash function is determined by the group’s ciphersuite.

Structs§

  • A reference to an MLS object computed as a hash of the value.

Functions§

Type Aliases§

  • A reference to a key package. This value uniquely identifies a key package.
  • A reference to a proposal. This value uniquely identifies a proposal.