{"action":"created","issue":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2759","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2759/labels{/name}","comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2759/comments","events_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2759/events","html_url":"https://github.com/RIOT-OS/RIOT/pull/2759","id":66035681,"number":2759,"title":"Unified Cipher API and Block cipher operation modes: ECB, CBC, CTR and CCM","user":{"login":"x3ro","id":243719,"avatar_url":"https://avatars.githubusercontent.com/u/243719?v=3","gravatar_id":"","url":"https://api.github.com/users/x3ro","html_url":"https://github.com/x3ro","followers_url":"https://api.github.com/users/x3ro/followers","following_url":"https://api.github.com/users/x3ro/following{/other_user}","gists_url":"https://api.github.com/users/x3ro/gists{/gist_id}","starred_url":"https://api.github.com/users/x3ro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/x3ro/subscriptions","organizations_url":"https://api.github.com/users/x3ro/orgs","repos_url":"https://api.github.com/users/x3ro/repos","events_url":"https://api.github.com/users/x3ro/events{/privacy}","received_events_url":"https://api.github.com/users/x3ro/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/new%20feature","name":"new feature","color":"e11d21"},{"url":"https://api.github.com/repos/RIOT-OS/RIOT/labels/Ready%20for%20CI%20build","name":"Ready for CI build","color":"bfdadc"}],"state":"open","locked":false,"assignee":{"login":"Kijewski","id":136776,"avatar_url":"https://avatars.githubusercontent.com/u/136776?v=3","gravatar_id":"","url":"https://api.github.com/users/Kijewski","html_url":"https://github.com/Kijewski","followers_url":"https://api.github.com/users/Kijewski/followers","following_url":"https://api.github.com/users/Kijewski/following{/other_user}","gists_url":"https://api.github.com/users/Kijewski/gists{/gist_id}","starred_url":"https://api.github.com/users/Kijewski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kijewski/subscriptions","organizations_url":"https://api.github.com/users/Kijewski/orgs","repos_url":"https://api.github.com/users/Kijewski/repos","events_url":"https://api.github.com/users/Kijewski/events{/privacy}","received_events_url":"https://api.github.com/users/Kijewski/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones/12","html_url":"https://github.com/RIOT-OS/RIOT/milestones/Release%202015.06","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones/12/labels","id":1088995,"number":12,"title":"Release 2015.06","description":"This release aims mainly to include the brand new network stack.","creator":{"login":"OlegHahm","id":1590423,"avatar_url":"https://avatars.githubusercontent.com/u/1590423?v=3","gravatar_id":"","url":"https://api.github.com/users/OlegHahm","html_url":"https://github.com/OlegHahm","followers_url":"https://api.github.com/users/OlegHahm/followers","following_url":"https://api.github.com/users/OlegHahm/following{/other_user}","gists_url":"https://api.github.com/users/OlegHahm/gists{/gist_id}","starred_url":"https://api.github.com/users/OlegHahm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OlegHahm/subscriptions","organizations_url":"https://api.github.com/users/OlegHahm/orgs","repos_url":"https://api.github.com/users/OlegHahm/repos","events_url":"https://api.github.com/users/OlegHahm/events{/privacy}","received_events_url":"https://api.github.com/users/OlegHahm/received_events","type":"User","site_admin":false},"open_issues":67,"closed_issues":225,"state":"open","created_at":"2015-04-29T10:11:27Z","updated_at":"2015-07-22T18:36:03Z","due_on":"2015-06-29T22:00:00Z","closed_at":null},"comments":25,"created_at":"2015-04-02T23:56:44Z","updated_at":"2015-07-22T18:55:05Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/2759","html_url":"https://github.com/RIOT-OS/RIOT/pull/2759","diff_url":"https://github.com/RIOT-OS/RIOT/pull/2759.diff","patch_url":"https://github.com/RIOT-OS/RIOT/pull/2759.patch"},"body":"So I took #1342 and manually applied all changes made in it to the current master, without the restructuring into cipher modules and the style changes made in 41695d02c1b49d7b3cfb8a8a88b7fe6fb01b5799, in the hopes that this makes it easier to review and to get it merged :smile:\r\n\r\nThe only non-stylistic thing I dropped was the null-cipher, whose purpose remains hidden to me. If someone has a good reason that we should include that I'll add it again.\r\n\r\nAs soon as everyone at least agrees that all functionality introduced in #1342 is also contained here we should close the old PR, I think.\r\n\r\n\r\n## Follow up questions\r\n\r\nA list of questions in need of answers after this gets merged.\r\n\r\n* @Kijewski: \"Maybe adding the size of the initialization vector to cipher_interface_t and using variable length arrays in the code would be a better option [than having ifdef guards for every cipher]?\" [(link)](https://github.com/RIOT-OS/RIOT/pull/2759#issuecomment-89437534)\r\n* @gebart  \"Have you thought about how hardware crypto devices should be handled inside this API structure?\" [(link)](https://github.com/RIOT-OS/RIOT/pull/2759#issuecomment-89511132)"},"comment":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/comments/123826631","html_url":"https://github.com/RIOT-OS/RIOT/pull/2759#issuecomment-123826631","issue_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/2759","id":123826631,"user":{"login":"OlegHahm","id":1590423,"avatar_url":"https://avatars.githubusercontent.com/u/1590423?v=3","gravatar_id":"","url":"https://api.github.com/users/OlegHahm","html_url":"https://github.com/OlegHahm","followers_url":"https://api.github.com/users/OlegHahm/followers","following_url":"https://api.github.com/users/OlegHahm/following{/other_user}","gists_url":"https://api.github.com/users/OlegHahm/gists{/gist_id}","starred_url":"https://api.github.com/users/OlegHahm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OlegHahm/subscriptions","organizations_url":"https://api.github.com/users/OlegHahm/orgs","repos_url":"https://api.github.com/users/OlegHahm/repos","events_url":"https://api.github.com/users/OlegHahm/events{/privacy}","received_events_url":"https://api.github.com/users/OlegHahm/received_events","type":"User","site_admin":false},"created_at":"2015-07-22T18:55:05Z","updated_at":"2015-07-22T18:55:05Z","body":"ACK"}}