Draft: draft-ietf-mls-protocol

Commentary: Fix for 
 Here 's the Weekly Digest for : - - Last week 5 issues were created . Of these , 1 issues have been closed and 4 issues are still open . : greenheart : , by : greenheart : , by : greenheart : , by : greenheart : , by : heart : , by - - Last week , 9 pull requests were created , updated or merged . Last week , 3 pull requests were opened . : greenheart : , by : greenheart : , by : greenheart : , by Last week , 1 pull request was updated . : yellowheart : , by Last week , 5 pull requests were merged . : purpleheart : , by : purpleheart : , by : purpleheart : , by : purpleheart : , by : purpleheart : , by - - Last week there were 8 commits . : hammerandwrench : by : hammerandwrench : by : hammerandwrench : by : hammerandwrench : by : hammerandwrench : by : hammerandwrench : by : hammerandwrench : by : hammerandwrench : by - - Last week there were 2 contributors . : bustinsilhouette : : bustinsilhouette : - - Last week there was 1 stargazer . : star : You are the star ! : star2 : - - Last week there were no releases . - - That 's all for last week , please < kbd : eyes : Watch</kbdand < kbd : star : Star</kbdthe repository to receive next weekly updates . : smiley : You can also . 
 We should change the name of this struct as it does n't even contain the tree . 
 Fixed by 
 Approved with the one comment fixed .
Paragraph (version A):
When a new member is added to the group, an existing member of the
group provides the new member with a Welcome message.  The Welcome
message provides the information the new member needs to initialize
its GroupState.
Paragraph (version B):
When a new member is added to the group, an existing member of the
group provides the new member with a Welcome message.  The Welcome
message provides the information the new member needs to initialize
its GroupContext.
Paragraph (version A):
Verify that the "epoch" field of enclosing MLSPlaintext message is
equal the "epoch" field of the current GroupState object.
Paragraph (version A):
Use the "operation" message to produce an updated, provisional
GroupState object incorporating the proposed changes.
Paragraph (version B):
Verify that the "epoch" field of enclosing MLSPlaintext message is
equal the "epoch" field of the current GroupContext object.
Paragraph (version B):
Use the "operation" message to produce an updated, provisional
GroupContext object incorporating the proposed changes.
Paragraph (version A):
If the the above checks are successful, consider the updated
GroupState object as the current state of the group.
Paragraph (version B):
If the the above checks are successful, consider the updated
GroupContext object as the current state of the group.
Paragraph (version A):
The Welcome message contains the information that the new member
needs to initialize a GroupState object that can be updated to the
current state using the Add message.  This information is encrypted
for the new member using HPKE.  The recipient key pair for the HPKE
encryption is the one included in the indicated UserInitKey,
corresponding to the indicated ciphersuite.
Paragraph (version B):
The Welcome message contains the information that the new member
needs to initialize a GroupContext object that can be updated to the
current state using the Add message.  This information is encrypted
for the new member using HPKE.  The recipient key pair for the HPKE
encryption is the one included in the indicated UserInitKey,
corresponding to the indicated ciphersuite.
Paragraph (version A):
Since the new member is expected to process the Add message for
itself, the Welcome message should reflect the state of the group
before the new user is added.  The sender of the Welcome message can
simply copy all fields from their GroupState object.
Paragraph (version B):
Since the new member is expected to process the Add message for
itself, the Welcome message should reflect the state of the group
before the new user is added.  The sender of the Welcome message can
simply copy all fields from their GroupContext object.
Paragraph (version A):
Note that, in step 4, there must be at least one non-null element in
the tree, since any valid GroupState must have the current member in
the tree and self-removal is prohibited.  The same reasoning
justifies the existence of a non-blank leaf in the ratchet tree in
step 5.
Paragraph (version B):
Note that, in step 4, there must be at least one non-null element in
the tree, since any valid GroupContext must have the current member
in the tree and self-removal is prohibited.  The same reasoning
justifies the existence of a non-blank leaf in the ratchet tree in
step 5.