version 1.8, 2014/01/03 15:42:22 |
version 1.9, 2014/01/03 17:10:27 |
|
|
static void |
static void |
usage(void) |
usage(void) |
{ |
{ |
fprintf(stderr, "usage: %s [-n] [-i input] [-o output] [-p pubkey] [-s seckey] " |
fprintf(stderr, "usage:" |
"-G | -S | -V\n", __progname); |
"\t%s [-n] -p pubkey -s seckey -G\n" |
|
"\t%s [-o output] -s seckey -S input\n" |
|
"\t%s [-o output] -p pubkey -V input\n", |
|
__progname, __progname, __progname); |
exit(1); |
exit(1); |
} |
} |
|
|
|
|
|
|
rounds = 42; |
rounds = 42; |
|
|
while ((ch = getopt(argc, argv, "GSVi:no:p:s:")) != -1) { |
while ((ch = getopt(argc, argv, "GSVno:p:s:")) != -1) { |
switch (ch) { |
switch (ch) { |
case 'G': |
case 'G': |
if (verb) |
if (verb) |
|
|
usage(); |
usage(); |
verb = VERIFY; |
verb = VERIFY; |
break; |
break; |
case 'i': |
|
inputfile = optarg; |
|
break; |
|
case 'n': |
case 'n': |
rounds = 0; |
rounds = 0; |
break; |
break; |
|
|
} |
} |
} |
} |
argc -= optind; |
argc -= optind; |
if (argc != 0) |
argv += optind; |
|
|
|
if (verb == NONE) |
usage(); |
usage(); |
|
|
if (inputfile && !sigfile) { |
|
if (snprintf(sigfilebuf, sizeof(sigfilebuf), "%s.sig", |
|
inputfile) >= sizeof(sigfilebuf)) |
|
errx(1, "path too long"); |
|
sigfile = sigfilebuf; |
|
} |
|
|
|
if (verb == GENERATE) { |
if (verb == GENERATE) { |
if (!pubkeyfile || !seckeyfile) |
if (!pubkeyfile || !seckeyfile || argc != 0) |
usage(); |
usage(); |
generate(pubkeyfile, seckeyfile, rounds); |
generate(pubkeyfile, seckeyfile, rounds); |
} else if (verb == SIGN) { |
|
if (!seckeyfile || !inputfile) |
|
usage(); |
|
sign(seckeyfile, inputfile, sigfile); |
|
} else if (verb == VERIFY) { |
|
if (!pubkeyfile || !inputfile) |
|
usage(); |
|
verify(pubkeyfile, inputfile, sigfile); |
|
} else { |
} else { |
usage(); |
if (argc != 1) |
|
usage(); |
|
|
|
inputfile = argv[0]; |
|
|
|
if (!sigfile) { |
|
if (snprintf(sigfilebuf, sizeof(sigfilebuf), "%s.sig", |
|
inputfile) >= sizeof(sigfilebuf)) |
|
errx(1, "path too long"); |
|
sigfile = sigfilebuf; |
|
} |
|
|
|
if (verb == SIGN) { |
|
if (!seckeyfile) |
|
usage(); |
|
sign(seckeyfile, inputfile, sigfile); |
|
} else if (verb == VERIFY) { |
|
if (!pubkeyfile) |
|
usage(); |
|
verify(pubkeyfile, inputfile, sigfile); |
|
} |
} |
} |
|
|
return 0; |
return 0; |
} |
} |