You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
From my understanding, this translates to, "OpenMLS should make sure that any instance of LeafNode is guaranteed to have a correct signature."
This means that ...
1) LeafNodes can only be created with a correct signature.
Constructors (impls) can only create a LeafNode with a valid signature.
Due to From<OpenMlsLeafNode>, check OpenMlsLeafNode as well. OpenMlsLeafNode is a thin wrapper around LeafNode that (optionally) has the private_key and leaf_index .
OpenMlsLeafNode::update_encryption_key may break the signature. (Resign in place.)
OpenMlsLeafNode::rekey may break the signature. (Resign in place.)
OpenMlsLeafNode::update_parent_hash may break the signature. (Resign in place.)
OpenMlsLeafNode::set_public_key may break the signature. (Resign in place.)
Bad LeafNode can be constructed through SignedStruct::from_payload.
LeafNode implements TlsDeserialize (which is also used in KeyPackages deserialize implementation.).
2) LeafNodes can't be changed in a way that breaks the signature.
Currently, we only have the #[test]-gated capabilities_mut and set_credential methods that are &mut LeafNode to test for library erros, i.e., that a broken signature was used in LeafNode.
duesee
changed the title
[Validation] Each modification of LeafNode content MUST be reflected by a change in its signature.
[Annotation] Each modification of LeafNode content MUST be reflected by a change in its signature.
Jan 11, 2023
Annotation
The text was updated successfully, but these errors were encountered: