{"action":"created","issue":{"url":"https://api.github.com/repos/NixOS/nixpkgs/issues/27258","repository_url":"https://api.github.com/repos/NixOS/nixpkgs","labels_url":"https://api.github.com/repos/NixOS/nixpkgs/issues/27258/labels{/name}","comments_url":"https://api.github.com/repos/NixOS/nixpkgs/issues/27258/comments","events_url":"https://api.github.com/repos/NixOS/nixpkgs/issues/27258/events","html_url":"https://github.com/NixOS/nixpkgs/issues/27258","id":241526242,"number":27258,"title":"pbkbfd: Don't use brittle C functions","user":{"login":"0xABAB","id":16732294,"avatar_url":"https://avatars3.githubusercontent.com/u/16732294?v=3","gravatar_id":"","url":"https://api.github.com/users/0xABAB","html_url":"https://github.com/0xABAB","followers_url":"https://api.github.com/users/0xABAB/followers","following_url":"https://api.github.com/users/0xABAB/following{/other_user}","gists_url":"https://api.github.com/users/0xABAB/gists{/gist_id}","starred_url":"https://api.github.com/users/0xABAB/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/0xABAB/subscriptions","organizations_url":"https://api.github.com/users/0xABAB/orgs","repos_url":"https://api.github.com/users/0xABAB/repos","events_url":"https://api.github.com/users/0xABAB/events{/privacy}","received_events_url":"https://api.github.com/users/0xABAB/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2017-07-09T13:53:04Z","updated_at":"2017-07-09T20:57:59Z","closed_at":null,"body":"https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/system/boot/pbkdf2-sha512.c#L28 should be using the POSIX 2008 http://pubs.opengroup.org/onlinepubs/9699919799/functions/getdelim.html instead of fgets.\r\n\r\nIf, for some reason there are targets that do not have POSIX 2008, add configuration flags to also accommodate for non-POSIX 2008 systems, develop a NixOS module to control this behavior with sane defaults set depending on the platform (which also should be integrated with the installer eventually). (Feel free to create other tickets for these tasks, if need arises.)\r\n\r\n@Calrama \r\n\r\nVersion: master"},"comment":{"url":"https://api.github.com/repos/NixOS/nixpkgs/issues/comments/313954390","html_url":"https://github.com/NixOS/nixpkgs/issues/27258#issuecomment-313954390","issue_url":"https://api.github.com/repos/NixOS/nixpkgs/issues/27258","id":313954390,"user":{"login":"0xABAB","id":16732294,"avatar_url":"https://avatars3.githubusercontent.com/u/16732294?v=3","gravatar_id":"","url":"https://api.github.com/users/0xABAB","html_url":"https://github.com/0xABAB","followers_url":"https://api.github.com/users/0xABAB/followers","following_url":"https://api.github.com/users/0xABAB/following{/other_user}","gists_url":"https://api.github.com/users/0xABAB/gists{/gist_id}","starred_url":"https://api.github.com/users/0xABAB/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/0xABAB/subscriptions","organizations_url":"https://api.github.com/users/0xABAB/orgs","repos_url":"https://api.github.com/users/0xABAB/repos","events_url":"https://api.github.com/users/0xABAB/events{/privacy}","received_events_url":"https://api.github.com/users/0xABAB/received_events","type":"User","site_admin":false},"created_at":"2017-07-09T20:57:59Z","updated_at":"2017-07-09T20:57:59Z","body":"@Calrama What is the issue at hand according to you? \r\n\r\nI can imagine that technically and even mathematically there is no problem, but the thing is, I don't even want to read an explanation of an analysis written by in this case the original author. Not because I don't believe it to be correct, but it's because I don't want someone else to also have to understand that analysis in order to believe the code works. It's simply more costly from a maintenance point of view to require such reasoning. \r\n\r\nConsider that someone wants to call this code from another context and then the whole analysis needs to be done again (and typically is never done and it results in a bug). Also note that you haven't even documented a valid input specification. \r\n\r\nReally, your code is just a disaster waiting to happen and you apparently need to have this explained multiple times before you get it, and perhaps you will never get it. \r\n\r\nThere are more issues with your code, btw. For example, you make implementation choices when applying an algorithm that are not referenced to scientific literature or with any other kind of justification. \r\n\r\nIn short, I would consider this code written by someone who can instruct a computer what to do, but just lacks the wisdom to tell the computer the right things to do. "}}
{"actor":{"display_login":"0xABAB"}}