X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fgenauth.c;h=7e154e35c1a1228dde6ed69c46c200547ff2eecc;hp=0d47d510422deab5cb05faa3b09d5ff3638f0518;hb=d878230ebef5f1a14a23c266dc425666d9e805eb;hpb=1243156a5e03a666b36bc4400f1402243a85c9a7 diff --git a/src/genauth.c b/src/genauth.c index 0d47d510..7e154e35 100644 --- a/src/genauth.c +++ b/src/genauth.c @@ -35,12 +35,15 @@ int main(int argc, char **argv) int bits, c, i, bytes; unsigned char *p; - if(argc != 2) + if(argc > 2 || (argc == 2 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")))) { fprintf(stderr, "Usage: %s bits\n", argv[0]); return 1; } + if(!argv[1]) + argv[1] = "1024"; + if(!(bits = atol(argv[1]))) { fprintf(stderr, "Illegal number: %s\n", argv[1]); @@ -60,7 +63,7 @@ int main(int argc, char **argv) p = xmalloc(bytes); setbuf(stdout, NULL); - for(i = 0; i < 128; i++) + for(i = 0; i < bytes; i++) { c = fgetc(fp); if(feof(fp)) @@ -70,23 +73,24 @@ int main(int argc, char **argv) } p[i] = c; } + fclose(fp); - for(i = 0; i < (bytes); i++) + if(isatty(1)) { - c = fgetc(fp); - if(feof(fp)) - { - puts(""); - fprintf(stderr, "File was empty!\n"); - } - p[i] = c; + fprintf(stderr, ": done.\nThe following line should be ENTIRELY copied into a passphrase file:\n"); + printf("%d ", bits); + for(i = 0; i < bytes; i++) + printf("%02x", p[i]); + puts(""); + } + else + { + printf("%d ", bits); + for(i = 0; i < bytes; i++) + printf("%02x", p[i]); + puts(""); + fprintf(stderr, ": done.\n"); } - fclose(fp); - - printf("%d ", bits); - for(i = 0; i < bytes; i++) - printf("%02x", p[i]); - puts(""); return 0; }