| #include "test-tool.h" |
| #include "git-compat-util.h" |
| |
| |
| int cmd__csprng(int argc, const char **argv) |
| { |
| unsigned long count; |
| unsigned char buf[1024]; |
| |
| if (argc > 2) { |
| fprintf(stderr, "usage: %s [<size>]\n", argv[0]); |
| return 2; |
| } |
| |
| count = (argc == 2) ? strtoul(argv[1], NULL, 0) : -1L; |
| |
| while (count) { |
| unsigned long chunk = count < sizeof(buf) ? count : sizeof(buf); |
| if (csprng_bytes(buf, chunk) < 0) { |
| perror("failed to read"); |
| return 5; |
| } |
| if (fwrite(buf, chunk, 1, stdout) != chunk) |
| return 1; |
| count -= chunk; |
| } |
| |
| return 0; |
| } |