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§
- Hash
Reference - A reference to an MLS object computed as a hash of the value.
Functions§
- make_
key_ package_ ref - Compute a new
KeyPackageRef
value for avalue
. - make_
proposal_ ref - Compute a new
ProposalRef
value for avalue
.
Type Aliases§
- KeyPackage
Ref - A reference to a key package. This value uniquely identifies a key package.
- Proposal
Ref - A reference to a proposal. This value uniquely identifies a proposal.