jiebi/CodeConvo huggingface dataset:
Change:
I'm approving these changes given the current state of the document, but I filed because the KDF stuff is broken. Please make HPKE a normative reference (since it's required to implement). Since it's an Internet-Draft, you don't need to add it to the references section, you can just reference it directly as and the Markdown processor will add the reference. (Change the to for an informative reference.)

Discussion:
A participant that is included in the shared state of a group, and has access to the group's secrets. <del> A short-lived Diffie-Hellman key pair used to introduce a new member to a group.  Initialization keys are published for individual participants (UserInitKey). </del> <ins> A short-lived HPKE key pair used to introduce a new member to a group.  Initialization keys are published for individual participants (UserInitKey). </ins> <del> A short-lived Diffie-Hellman key pair that represents a group member's contribution to the group secret, so called because the </del> <ins> A short-lived HPKE key pair that represents a group member's contribution to the group secret, so called because the </ins> participants leaf keys are the leaves in the group's ratchet tree. A long-lived signing key pair used to authenticate the sender of a

The "tree" field contains the public keys corresponding to the nodes of the ratchet tree for this group.  The length of this <del> vector MUST be "2*size + 1", where "size" is the length of the </del> <ins> vector MUST be "2*size - 1", where "size" is the length of the </ins> roster, since this is the number of nodes in a tree with "size" leaves, according to the structure described in ratchet-trees.

the resolution. The HPKECiphertext values are computed according to the Encrypt <del> function defined in HPKE. </del> <ins> function defined in I-D.barnes-cfrg-hpke. </ins> Decryption is performed in the corresponding way, using the private key of the resolution node and the ephemeral public key transmitted

The Hash function used by HKDF is the ciphersuite hash algorithm. Hash.length is its output length in bytes.  In the below diagram: <del> HKDF-Extract takes its Salt argument from the top and its IKM </del> <ins> HKDF-Extract takes its salt argument from the top and its IKM </ins> argument from the left Derive-Secret takes its Secret argument from the incoming arrow

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 <del> the DH group defined by the corresponding entry in the cipher_suites array. </del> <ins> the asymmetric encryption scheme defined in the cipher_suites array and used in the HPKE construction for TreeKEM. </ins> The whole structure is signed using the client's identity key.  A UserInitKey object with an invalid signature field MUST be considered
Change:
Clean up some OPEN ISSUES that aren't open any more Make the welcome/add diagram clearer
Here's the Weekly Digest for : - - Last week 4 issues were created. Of these, 1 issues have been closed and 3 issues are still open. :greenheart: , by :greenheart: , by :greenheart: , by :heart: , by :speaker: , by It received 4 comments. - - Last week, 9 pull requests were created, updated or merged. Last week, 8 pull requests were updated. :yellowheart: , by :yellowheart: , by :yellowheart: , by :yellowheart: , by :yellowheart: , by :yellowheart: , by :yellowheart: , by :yellowheart: , by Last week, 1 pull request was merged. :purpleheart: , by - - Last week there were 4 commits. :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 :eyes: Watch and :star: Star the repository to receive next weekly updates. :smiley: You can also .

Discussion:
transcript of group operations, using the transcript hash from the provisional GroupState object: <del> [[ OPEN ISSUE: The confirmation data and signature data should probably cover the same data as the one we cover with the GroupState. ]] </del> HMAC RFC2104 uses the Hash algorithm for the ciphersuite in use. Sign uses the signature algorithm indicated by the signer's credential in the roster. <del> [[ OPEN ISSUE: The Add and Remove operations create a "double-join" situation, where a member's leaf key is also known to another client. When a member A is double-joined to another B, deleting A will not remove them from the conversation, since they will still hold the leaf key for B.  These situations are resolved by updates, but since operations are asynchronous and members may be offline for a long time, the group will need to be able to maintain security in the presence of double-joins. ]] </del> [[ OPEN ISSUE: It is not possible for the recipient of an handshake message to verify that ratchet tree information in the message is accurate, because each node can only compute the secret and private

Application secret is used to bind the Application messages with the next key and add some freshness. <del> [[OPEN ISSUE: The HKDF context field is left empty for now.  A proper security study is needed to make sure that we do not need more </del> <ins> [[ OPEN ISSUE: The HKDF context field is left empty for now.  A proper security study is needed to make sure that we do not need more </ins> information in the context to achieve the security goals.]] [[ OPEN ISSUE: At the moment there is no contributivity of
Change:
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 :eyes: Watch and :star: Star the repository to receive next weekly updates. :smiley: You can also .

Discussion:
draft-06 <ins> Reorder blanking and update in the Remove operation (*) </ins> Rename the GroupState structure to GroupContext (*) draft-05

The sender of a Remove message generates it as as follows: <ins> Blank the path from the removed leaf to the root node for the time of the computation Truncate the tree such that the rightmost non-blank leaf is the last node of the tree, for the time of the computation </ins> Generate a fresh leaf key pair Compute its direct path in the current ratchet tree, starting from <del> the removed leaf </del> <ins> the sender's leaf </ins> A member receiving a Remove message first verifies the signature on the message.  The member then updates its state as follows: <del> Update the ratchet tree by replacing nodes in the direct path from the removed leaf using the information in the Remove message </del> Update the ratchet tree by setting to blank all nodes in the direct path of the removed leaf, and also setting the root node to blank

Truncate the tree such that the rightmost non-blank leaf is the last node of the tree <del> 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. </del> <ins> Update the ratchet tree by replacing nodes in the direct path from the sender's leaf using the information in the Remove message Note that 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 </ins> The "update_secret" resulting from this change is the "path_secret[i+1]" derived from the "path_secret[i]" associated to
Change:
"The update secret resulting from this change is the path secret for the root node of the ratchet tree." is suspicious because in the derivation, the index for both the and is the same as the level of the node. It should be the "above the root" and not "for the root" (which is the one used to derive the of the root)...
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 :eyes: Watch and :star: Star the repository to receive next weekly updates. :smiley: You can also .

Discussion:
corresponding to the ciphersuite in use, as well as the credential under which the UserInitKey was signed <del> The update secret resulting from this change is an all-zero octet </del> <ins> The "update_secret" resulting from this change is an all-zero octet </ins> string of length Hash.length. After processing an Add message, the new member SHOULD send an Update

path from the updated leaf using the information contained in the Update message <del> The update secret resulting from this change is the path secret for the root node of the ratchet tree. </del> <ins> The "update_secret" resulting from this change is the "path_secret[i+1]" derived from the "path_secret[i]" associated to the root node. </ins> 9.4.

justifies the existence of a non-blank leaf in the ratchet tree in step 5. <del> The update secret resulting from this change is the path secret computed for the root node of the ratchet tree in the first step. </del> <ins> The "update_secret" resulting from this change is the "path_secret[i+1]" derived from the "path_secret[i]" associated to the root node. </ins> 10.
Change:
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 :eyes: Watch and :star: Star the repository to receive next weekly updates. :smiley: You can also .

Discussion:
cryptographic keys it holds.  An application or user may use one client per device (keeping keys local to each device) or sync keys among a user's devices so that each user appears as a single <ins> client.  In the scenario where multiple devices share the cryptographic material the client is referred to as a "virtual" </ins> client. A collection of clients with shared cryptographic state.

negotiated MLS ciphersuite to AEAD encrypt and decrypt their Application messages according to the Message Framing section. <del> The group identifier and epoch allow a device to know which group </del> <ins> The group identifier and epoch allow a recipient to know which group </ins> secrets should be used and from which Epoch secret to start computing other secrets and keys.  The "sender" identifier is used to derive the member's Application secret chain from the initial group
Change:
The underscore character does not have to be escaped in code environments. This applies to the inline (backticks) as well as block (tildes) variants.
Here's the Weekly Digest for : - - Last week 2 issues were created. Of these, 2 issues have been closed and 0 issues are still open. :heart: , by :heart: , by - - Last week, 4 pull requests were created, updated or merged. Last week, 4 pull requests were merged. :purpleheart: , by :purpleheart: , by :purpleheart: , by :purpleheart: , by - - Last week there were 9 commits. :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by - - Last week there was 1 contributor. :bustinsilhouette: - - Last week there were no stargazers. - - Last week there were no releases. - - That's all for last week, please :eyes: Watch and :star: Star the repository to receive next weekly updates. :smiley: You can also .
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 :eyes: Watch and :star: Star the repository to receive next weekly updates. :smiley: You can also .

Discussion:
cases, the path is ordered from the leaf to the root; each node MUST be the parent of its predecessor. <del> The length of the "node_secrets" vector MUST be zero for the first </del> <ins> The length of the "node_secrets" vector MUST be zero for the first </ins> node in the path.  For the remaining elements in the vector, the <del> number of ciphertexts in the "node_secrets" vector MUST be equal to </del> <ins> number of ciphertexts in the "node_secrets" vector MUST be equal to </ins> the length of the resolution of the corresponding copath node.  Each ciphertext in the list is the encryption to the corresponding node in the resolution.
Change:
Race condition between and
Here's the Weekly Digest for : - - Last week 2 issues were created. Of these, 2 issues have been closed and 0 issues are still open. :heart: , by :heart: , by - - Last week, 4 pull requests were created, updated or merged. Last week, 4 pull requests were merged. :purpleheart: , by :purpleheart: , by :purpleheart: , by :purpleheart: , by - - Last week there were 9 commits. :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by - - Last week there was 1 contributor. :bustinsilhouette: - - Last week there were no stargazers. - - Last week there were no releases. - - That's all for last week, please :eyes: Watch and :star: Star the repository to receive next weekly updates. :smiley: You can also .

Discussion:
This structure incorporates everything in an MLSPlaintext up to the confirmation field in the transcript that is included in that <del> confirmation field (via the GroupState).  The confirmation and </del> <ins> confirmation field (via the GroupContext).  The confirmation and </ins> signature fields are then included in the transcript for the next operation.  The intermediate hash enables implementations to in corporate a plaintext into the transcript without having to store the
Change:
NAME pointed out this disconnect in , but the fix needs to be the other way around.
Here's the Weekly Digest for : - - Last week 2 issues were created. Of these, 2 issues have been closed and 0 issues are still open. :heart: , by :heart: , by - - Last week, 4 pull requests were created, updated or merged. Last week, 4 pull requests were merged. :purpleheart: , by :purpleheart: , by :purpleheart: , by :purpleheart: , by - - Last week there were 9 commits. :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by :hammerandwrench: by - - Last week there was 1 contributor. :bustinsilhouette: - - Last week there were no stargazers. - - Last week there were no releases. - - That's all for last week, please :eyes: Watch and :star: Star the repository to receive next weekly updates. :smiley: You can also .

Discussion:
cases, the path is ordered from the leaf to the root; each node MUST be the parent of its predecessor. <del> The length of the "node_secrets" vector MUST be zero for the first node in the path.  For the remaining elements in the vector, the number of ciphertexts in the "node_secrets" vector MUST be equal to the length of the resolution of the corresponding copath node.  Each ciphertext in the list is the encryption to the corresponding node in the resolution. </del> <ins> The length of the "encrypted_path_secret" vector MUST be zero for the first node in the path.  For the remaining elements in the vector, the number of ciphertexts in the "encrypted_path_secret" vector MUST be equal to the length of the resolution of the corresponding copath node.  Each ciphertext in the list is the encryption to the corresponding node in the resolution. </ins> The HPKECiphertext values are computed according to the Encrypt function defined in I-D.barnes-cfrg-hpke.
Change:
While trying to implement , I noticed that the confirmation and transcript hash calculations in draft-06 do not actually allow a new participant to join the transcript hash. Since the value is sent, and not the value, the new joiner is missing the auth data necessary to compute the next value. To fix this and clarify terminology, this PR makes the following changes: becomes , since this is what goes into the confirmation MAC becomes is updated to refer to the
Here's the Weekly Digest for : - - Last week 2 issues were created. Of these, 1 issues have been closed and 1 issues are still open. :greenheart: , by :heart: , by :speaker: , by It received 1 comments. - - Last week, 2 pull requests were created, updated or merged. Last week, 1 pull request was updated. :yellowheart: , by Last week, 1 pull request was merged. :purpleheart: , by - - Last week there were 2 commits. :hammerandwrench: by :hammerandwrench: by - - Last week there were 2 contributors. :bustinsilhouette: :bustin_silhouette: - - Last week there were no stargazers. - - Last week there were no releases. - - That's all for last week, please :eyes: Watch and :star: Star the repository to receive next weekly updates. :smiley: You can also .
This looks ok. If we want, merging and messages like in the TreeKEM paper would probably avoid some pain here. Merging.

Discussion:
group's rachet tree and the credentials for the members of the group, as described in tree-hashes. <del> The "transcript_hash" field contains the list of "GroupOperation" messages that led to this state. </del> <ins> The "confirmed_transcript_hash" field contains a running hash over the handshake messages that led to this state. </ins> 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

The "tree_hash" is updated to represent the current tree and credentials <del> The "transcript_hash" is updated with the data for an MLSPlaintext message encoding a group operation in two parts: </del> <ins> The "confirmed_transcript_hash" is updated with the data for an MLSPlaintext message encoding a group operation in two parts: </ins> This structure incorporates everything in an MLSPlaintext up to the confirmation field in the transcript that is included in that confirmation field (via the GroupContext).  The confirmation and signature fields are then included in the transcript for the next <del> operation.  The intermediate hash enables implementations to in corporate a plaintext into the transcript without having to store the </del> <ins> operation.  The interim transcript hash is passed to new members in the WelcomeInfo struct, and enables existing members to incorporate a handshake message into the transcript without having to store the </ins> whole MLSPlaintextOpAuthData structure. When a new one-member group is created (which requires no <del> GroupOperation), the "transcript_hash" field is set to an all-zero vector of length Hash.length, where the Hash algorithm is defined by the ciphersuite. </del> <ins> GroupOperation), the "interim_transcript_hash" field is set to the zero-length octet string. </ins> 6.5.