{"action":"created","issue":{"url":"https://api.github.com/repos/otrv4/libotr-ng/issues/79","repository_url":"https://api.github.com/repos/otrv4/libotr-ng","labels_url":"https://api.github.com/repos/otrv4/libotr-ng/issues/79/labels{/name}","comments_url":"https://api.github.com/repos/otrv4/libotr-ng/issues/79/comments","events_url":"https://api.github.com/repos/otrv4/libotr-ng/issues/79/events","html_url":"https://github.com/otrv4/libotr-ng/issues/79","id":308326921,"node_id":"MDU6SXNzdWUzMDgzMjY5MjE=","number":79,"title":"Queue messages to be sent over an encrypted state","user":{"login":"claucece","id":8270508,"node_id":"MDQ6VXNlcjgyNzA1MDg=","avatar_url":"https://avatars0.githubusercontent.com/u/8270508?v=4","gravatar_id":"","url":"https://api.github.com/users/claucece","html_url":"https://github.com/claucece","followers_url":"https://api.github.com/users/claucece/followers","following_url":"https://api.github.com/users/claucece/following{/other_user}","gists_url":"https://api.github.com/users/claucece/gists{/gist_id}","starred_url":"https://api.github.com/users/claucece/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/claucece/subscriptions","organizations_url":"https://api.github.com/users/claucece/orgs","repos_url":"https://api.github.com/users/claucece/repos","events_url":"https://api.github.com/users/claucece/events{/privacy}","received_events_url":"https://api.github.com/users/claucece/received_events","type":"User","site_admin":false},"labels":[{"id":871303162,"node_id":"MDU6TGFiZWw4NzEzMDMxNjI=","url":"https://api.github.com/repos/otrv4/libotr-ng/labels/OTRv4-basics","name":"OTRv4-basics","color":"ba3b63","default":false},{"id":887053745,"node_id":"MDU6TGFiZWw4ODcwNTM3NDU=","url":"https://api.github.com/repos/otrv4/libotr-ng/labels/discuss","name":"discuss","color":"77f9e6","default":false},{"id":958821866,"node_id":"MDU6TGFiZWw5NTg4MjE4NjY=","url":"https://api.github.com/repos/otrv4/libotr-ng/labels/high-priority","name":"high-priority","color":"f4a5f7","default":false}],"state":"open","locked":false,"assignee":{"login":"juniorz","id":30809,"node_id":"MDQ6VXNlcjMwODA5","avatar_url":"https://avatars1.githubusercontent.com/u/30809?v=4","gravatar_id":"","url":"https://api.github.com/users/juniorz","html_url":"https://github.com/juniorz","followers_url":"https://api.github.com/users/juniorz/followers","following_url":"https://api.github.com/users/juniorz/following{/other_user}","gists_url":"https://api.github.com/users/juniorz/gists{/gist_id}","starred_url":"https://api.github.com/users/juniorz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juniorz/subscriptions","organizations_url":"https://api.github.com/users/juniorz/orgs","repos_url":"https://api.github.com/users/juniorz/repos","events_url":"https://api.github.com/users/juniorz/events{/privacy}","received_events_url":"https://api.github.com/users/juniorz/received_events","type":"User","site_admin":false},"assignees":[{"login":"juniorz","id":30809,"node_id":"MDQ6VXNlcjMwODA5","avatar_url":"https://avatars1.githubusercontent.com/u/30809?v=4","gravatar_id":"","url":"https://api.github.com/users/juniorz","html_url":"https://github.com/juniorz","followers_url":"https://api.github.com/users/juniorz/followers","following_url":"https://api.github.com/users/juniorz/following{/other_user}","gists_url":"https://api.github.com/users/juniorz/gists{/gist_id}","starred_url":"https://api.github.com/users/juniorz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juniorz/subscriptions","organizations_url":"https://api.github.com/users/juniorz/orgs","repos_url":"https://api.github.com/users/juniorz/repos","events_url":"https://api.github.com/users/juniorz/events{/privacy}","received_events_url":"https://api.github.com/users/juniorz/received_events","type":"User","site_admin":false}],"milestone":null,"comments":11,"created_at":"2018-03-25T06:44:34Z","updated_at":"2018-06-13T18:00:14Z","closed_at":null,"author_association":"MEMBER","body":"## Why\r\n\r\nAs we are currently implementing the revision number 2 of the OTRv4 specification, we need to include a consistent way of queueing plaintext messages to an encrypted state.\r\n\r\n## Reference\r\n\r\nPlease, refer to the \"Sending a Data Message\"  and \"Receiving plaintext with the whitespace tag\" section of the OTRv4 spec. Please, check some of the TODOs over the library that refer to \"queueing\". \r\n\r\n## Tasks\r\n- [ ] When \"Receiving plaintext with the whitespace tag\", if the client has some policy dictating that 'OTR is always required' or that 'encryption is always required' (like `REQUIRE_ENCRYPTION` in OTRv3), and the tag offers OTR version 4 and version 4 is allowed, queue the message for encrypting and sending it when the participant transitions to the `ENCRYPTED_MESSAGES` state.\r\n- [ ] When \"Sending a Data Message\", if the state is not `START` or it is not the message attached to the Non-Interactive-Auth, queue the message for encrypting and sending it when the participant transitions to the `ENCRYPTED_MESSAGES` state.\r\n\r\n## Open questions\r\n- Are policies allowed?"},"comment":{"url":"https://api.github.com/repos/otrv4/libotr-ng/issues/comments/397030233","html_url":"https://github.com/otrv4/libotr-ng/issues/79#issuecomment-397030233","issue_url":"https://api.github.com/repos/otrv4/libotr-ng/issues/79","id":397030233,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NzAzMDIzMw==","user":{"login":"juniorz","id":30809,"node_id":"MDQ6VXNlcjMwODA5","avatar_url":"https://avatars1.githubusercontent.com/u/30809?v=4","gravatar_id":"","url":"https://api.github.com/users/juniorz","html_url":"https://github.com/juniorz","followers_url":"https://api.github.com/users/juniorz/followers","following_url":"https://api.github.com/users/juniorz/following{/other_user}","gists_url":"https://api.github.com/users/juniorz/gists{/gist_id}","starred_url":"https://api.github.com/users/juniorz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/juniorz/subscriptions","organizations_url":"https://api.github.com/users/juniorz/orgs","repos_url":"https://api.github.com/users/juniorz/repos","events_url":"https://api.github.com/users/juniorz/events{/privacy}","received_events_url":"https://api.github.com/users/juniorz/received_events","type":"User","site_admin":false},"created_at":"2018-06-13T18:00:14Z","updated_at":"2018-06-13T18:00:14Z","author_association":"MEMBER","body":"Regarding otrv4/otrv4#69, I don't think I understand the goal. Why having the message resent if confidentiality is already lost for that message?\r\n\r\nRegardless of the goal, this specific task needs further investigation since it has nothing to do with the queuing itself. I don't know how this \"resend\" request could be done with what we currently have in the protocol.\r\n\r\nThe proposed alternative of using the received message (including the whitespace tag) in the `phi` parameter brings the challenge of letting the initial sender's protocol know what `phi` needs to be - unless we are talking about requiring every DAKE started from a whitespace tag to include the original message in `phi` (and not only those which the receiver has `REQUIRE_ENCRYPTION`.\r\n\r\nCan we remove \"queuing\" from this part of the spec, and discuss if this should be a feature in another issue? Even if this feature is already decided, I would prefer having this separate from queuing messages."}}
{"actor":{"display_login":"juniorz"}}