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§
- Compute a new
KeyPackageRef
value for avalue
. - Compute a new
ProposalRef
value for avalue
.
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.