Draft: draft-ietf-mls-protocol

Commentary: Here 's the Weekly Digest for : - - Last week 3 issues were created . Of these , 1 issues have been closed and 2 issues are still open . : greenheart : , by : greenheart : , by : heart : , by : speaker : , by It received 1 comments . - - Last week , 6 pull requests were created , updated or merged . Last week , 1 pull request was opened . : greenheart : , by Last week , 1 pull request was updated . : yellowheart : , by Last week , 4 pull requests were merged . : purpleheart : , by : purpleheart : , by : purpleheart : , by : purpleheart : , by - - Last week there were 6 commits . : hammerandwrench : by : hammerandwrench : by : hammerandwrench : by : hammerandwrench : by : hammerandwrench : by : hammerandwrench : by - - Last week there was 1 contributor . : 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 . 
 Here 's the Weekly Digest for : - - Last week , no issues were created . - - Last week , 3 pull requests were created , updated or merged . Last week , 2 pull requests were updated . : yellowheart : , by : yellowheart : , by Last week , 1 pull request was merged . : purpleheart : , by - - Last week there was 1 commit . : hammerandwrench : by - - Last week there was 1 contributor . : bustin_silhouette : - - 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 . 
 Here 's the Weekly Digest for : - - Last week 2 issues were created . Of these , 0 issues have been closed and 2 issues are still open . : greenheart : , by : greenheart : , by - - Last week , 2 pull requests were created , updated or merged . Last week , 2 pull requests were opened . : greenheart : , by : greenheart : , by - - Last week there were no commits . - - Last week there were no contributors . - - Last week there were 2 stagazers . : star : : star : You all are the stars ! : 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 .
Paragraph (version A):
A ClientInitKey object specifies what ciphersuites a client supports,
as well as providing public keys that the client can use for key
derivation and signing.  The client's identity key is intended to be
stable throughout the lifetime of the group; there is no mechanism to
change it.  Init keys are intended to be used a very limited number
of times, potentially once. (see init-key-reuse).  ClientInitKeys
also contain an identifier chosen by the client, which the client
MUST assure uniquely identifies a given ClientInitKey object among
the set of ClientInitKeys created by this client.
Paragraph (version A):
The init_keys array MUST have the same length as the cipher_suites
array, and each entry in the init_keys array MUST be a public key for
the asymmetric encryption scheme defined in the cipher_suites array
and used in the HPKE construction for TreeKEM.
Paragraph (version A):
The whole structure is signed using the client's identity key.  A
ClientInitKey object with an invalid signature field MUST be
considered malformed.  The input to the signature computation
comprises all of the fields except for the signature field.
Paragraph (version B):
A ClientInitKey object specifies a ciphersuite that the client
supports, as well as providing a public key that others can use for
key agreement.  The client's identity key is intended to be stable
throughout the lifetime of the group; there is no mechanism to change
it.  Init keys are intended to be used a very limited number of
times, ideally only once.  (See init-key-reuse).  Clients MAY
generate and publish multiple ClientInitKey objects to support
multiple ciphersuites, or to reduce the likelihood of init key reuse.
ClientInitKeys contain an identifier chosen by the client, which the
client MUST assure uniquely identifies a given ClientInitKey object
among the set of ClientInitKeys created by this client.
Paragraph (version B):
The value for init_key MUST be a public key for the asymmetric
encryption scheme defined by cipher_suite.  The whole structure is
signed using the client's identity key.  A ClientInitKey object with
an invalid signature field MUST be considered malformed.  The input
to the signature computation comprises all of the fields except for
the signature field.
Paragraph (version A):
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 ClientInitKey,
corresponding to the indicated ciphersuite.  The "add_key_nonce"
field contains the key and nonce used to encrypt the corresponding
Add message; if it is not encrypted, then this field MUST be set to
the null optional value.
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 ClientInitKey.  The
"add_key_nonce" field contains the key and nonce used to encrypt the
corresponding Add message; if it is not encrypted, then this field
MUST be set to the null optional value.