#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; | |
} |