{"action":"created","issue":{"url":"https://api.github.com/repos/randombit/botan/issues/481","repository_url":"https://api.github.com/repos/randombit/botan","labels_url":"https://api.github.com/repos/randombit/botan/issues/481/labels{/name}","comments_url":"https://api.github.com/repos/randombit/botan/issues/481/comments","events_url":"https://api.github.com/repos/randombit/botan/issues/481/events","html_url":"https://github.com/randombit/botan/pull/481","id":149738173,"number":481,"title":"NIST SP800-108 & 56c","user":{"login":"flanfly","id":5614769,"avatar_url":"https://avatars.githubusercontent.com/u/5614769?v=3","gravatar_id":"","url":"https://api.github.com/users/flanfly","html_url":"https://github.com/flanfly","followers_url":"https://api.github.com/users/flanfly/followers","following_url":"https://api.github.com/users/flanfly/following{/other_user}","gists_url":"https://api.github.com/users/flanfly/gists{/gist_id}","starred_url":"https://api.github.com/users/flanfly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flanfly/subscriptions","organizations_url":"https://api.github.com/users/flanfly/orgs","repos_url":"https://api.github.com/users/flanfly/repos","events_url":"https://api.github.com/users/flanfly/events{/privacy}","received_events_url":"https://api.github.com/users/flanfly/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-04-20T11:13:07Z","updated_at":"2016-04-21T13:47:43Z","closed_at":"2016-04-21T13:21:22Z","pull_request":{"url":"https://api.github.com/repos/randombit/botan/pulls/481","html_url":"https://github.com/randombit/botan/pull/481","diff_url":"https://github.com/randombit/botan/pull/481.diff","patch_url":"https://github.com/randombit/botan/pull/481.patch"},"body":"This commit implements the KDFs defined in NIST SP800-56c and 108. The KDF API in Botan has not way to set the context and label parameters so they're both hard coded to the empty string. I'll will fix this in a subsequent PR.\r\n\r\nThe SP800-108 test vectors come from NIST's CAVP, those for SP800-56c were generated using a sightly modified version of PyCryptodome."},"comment":{"url":"https://api.github.com/repos/randombit/botan/issues/comments/212927364","html_url":"https://github.com/randombit/botan/pull/481#issuecomment-212927364","issue_url":"https://api.github.com/repos/randombit/botan/issues/481","id":212927364,"user":{"login":"randombit","id":469092,"avatar_url":"https://avatars.githubusercontent.com/u/469092?v=3","gravatar_id":"","url":"https://api.github.com/users/randombit","html_url":"https://github.com/randombit","followers_url":"https://api.github.com/users/randombit/followers","following_url":"https://api.github.com/users/randombit/following{/other_user}","gists_url":"https://api.github.com/users/randombit/gists{/gist_id}","starred_url":"https://api.github.com/users/randombit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/randombit/subscriptions","organizations_url":"https://api.github.com/users/randombit/orgs","repos_url":"https://api.github.com/users/randombit/repos","events_url":"https://api.github.com/users/randombit/events{/privacy}","received_events_url":"https://api.github.com/users/randombit/received_events","type":"User","site_admin":false},"created_at":"2016-04-21T13:47:43Z","updated_at":"2016-04-21T13:47:43Z","body":"One thing I notice comparing to SP 800-108 is the KDFs all use `Label || 0x00 || Context || [L])` as the static input but here the `[L]` (encoding of the length of L) is omitted. I thought perhaps the Salt in the vector files was actually just this entire block pre-formatted to work around the lack of distinct Label/Context inputs, but that doesn't seem to be the case since some of the Salt values in the vector file lack a 0x00 byte entirely, and the final bytes don't seem to be length fields. From my read of 800-108 it does not look like this `[L]` is optional. What's the deal here?"}}