{"action":"opened","issue":{"url":"https://api.github.com/repos/auditdrivencrypto/test-secret-handshake/issues/1","repository_url":"https://api.github.com/repos/auditdrivencrypto/test-secret-handshake","labels_url":"https://api.github.com/repos/auditdrivencrypto/test-secret-handshake/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/auditdrivencrypto/test-secret-handshake/issues/1/comments","events_url":"https://api.github.com/repos/auditdrivencrypto/test-secret-handshake/issues/1/events","html_url":"https://github.com/auditdrivencrypto/test-secret-handshake/issues/1","id":219252653,"number":1,"title":"input cleanup / only needed information","user":{"login":"cryptix","id":111202,"avatar_url":"https://avatars2.githubusercontent.com/u/111202?v=3","gravatar_id":"","url":"https://api.github.com/users/cryptix","html_url":"https://github.com/cryptix","followers_url":"https://api.github.com/users/cryptix/followers","following_url":"https://api.github.com/users/cryptix/following{/other_user}","gists_url":"https://api.github.com/users/cryptix/gists{/gist_id}","starred_url":"https://api.github.com/users/cryptix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cryptix/subscriptions","organizations_url":"https://api.github.com/users/cryptix/orgs","repos_url":"https://api.github.com/users/cryptix/repos","events_url":"https://api.github.com/users/cryptix/events{/privacy}","received_events_url":"https://api.github.com/users/cryptix/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-04-04T13:35:46Z","updated_at":"2017-04-04T13:35:46Z","closed_at":null,"body":"@dominictarr asked me to forward a suggestion I made on [ssb](http://viewer.scuttlebot.io/%25uIcpcXoQjmNR4UDZFAU8s+akFpSg9rxGfpSQqSQN/y0=.sha256).\r\n\r\n> on a tangential note: I must say (maybe i overlooked this in the docs of the vectors) that i was quite confused by the args having all the later to-be-derived info already in them. Like in init:0 args==result without any work.\r\n\r\n...\r\n\r\n> It's a bit nit-picky but a new user could be thrown off by all the extra info in the argument that is not needed to calculate the data to compare against. For example the local.kx_pk and local.kx_sk are derived from random and could be empty/not set on the argument.\r\n> I guess what I'm saying is that the vectors aren't usefull to understand the protocol and what data is caluclated in the different steps. Than again, that might not be their job but it could help a new implementress to understand what is required of her without needing to understand another implementation and/or the paper. Redundant info can't hurt here, I think.\r\n\r\nTo get a little more hands-on, my idea would be to change the first `initialize` vector to this:\r\n\r\n```\r\n{\r\n  \"name\": \"initialize\",\r\n  \"args\": [\r\n    {\r\n      \"app_key\": \"291356d28154da68e8a9ee4fed71497c0a67d121a41b544d7a6157e76e0df5bc\",\r\n      \"local\": {\r\n        \"publicKey\": \"d5bf4a3fcce717b0388bcc2749ebc148ad9969b23f45ee1b605fd58778576ac4\",\r\n        \"secretKey\": \"2bd806c97f0e00af1a1fc3328fa763a9269723c8db8fac4f93af71db186d6e90d5bf4a3fcce717b0388bcc2749ebc148ad9969b23f45ee1b605fd58778576ac4\",\r\n      },\r\n      \"remote\": {\r\n        \"publicKey\": \"ecc1b58727f3f12b3194881a9ecb9de0b28ce7b207230d8e930fe1bce75e256c\"\r\n      },\r\n      \"seed\": null,\r\n      \"random\": \"bd070d239f0690dda26d6a28b1a4b0fea0404848469507031ceeec31de559c8f\"\r\n    }\r\n  ],\r\n  \"result\": {\r\n    \"app_key\": \"291356d28154da68e8a9ee4fed71497c0a67d121a41b544d7a6157e76e0df5bc\",\r\n    \"local\": {\r\n      \"kx_pk\": \"0b6ea52868f0cbbac2deba8bb0fc1a1251d5aa80bc4fa85d8143571abc458752\",\r\n      \"kx_sk\": \"3886cd3e87ce98aa0e68da9ad04fb5b7b9089cc8a6705bc83cb507e69419a95b\",\r\n      \"publicKey\": \"d5bf4a3fcce717b0388bcc2749ebc148ad9969b23f45ee1b605fd58778576ac4\",\r\n      \"secretKey\": \"2bd806c97f0e00af1a1fc3328fa763a9269723c8db8fac4f93af71db186d6e90d5bf4a3fcce717b0388bcc2749ebc148ad9969b23f45ee1b605fd58778576ac4\",\r\n      \"app_mac\": \"9e0986a9df0d04dc9884a58aa9f68cbd1690d0140a602d1ad4ba5599c4205596\"\r\n    },\r\n    \"remote\": {\r\n      \"publicKey\": \"ecc1b58727f3f12b3194881a9ecb9de0b28ce7b207230d8e930fe1bce75e256c\"\r\n    },\r\n    \"seed\": null,\r\n    \"random\": \"bd070d239f0690dda26d6a28b1a4b0fea0404848469507031ceeec31de559c8f\"\r\n  }\r\n},\r\n```\r\n\r\nSince `local.kx_pk` and `local.kx_sk` are derived from `random` and `local.app_mac` is then derived from `local.kx_pk`, they shouldn't be part of the input state. One could argue that the long-term keypair and target remote pubkey also aren't used until the later stages but since they are required for normal operation I'd leave them in but I'm not sure about that."}}
{"actor":{"display_login":"cryptix"}}