version 1.111, 2003/11/21 11:57:03 |
version 1.115, 2004/05/09 00:06:47 |
|
|
#include "bufaux.h" |
#include "bufaux.h" |
#include "pathnames.h" |
#include "pathnames.h" |
#include "log.h" |
#include "log.h" |
#include "readpass.h" |
#include "misc.h" |
#include "moduli.h" |
|
|
|
#ifdef SMARTCARD |
#ifdef SMARTCARD |
#include "scard.h" |
#include "scard.h" |
|
|
|
|
char hostname[MAXHOSTNAMELEN]; |
char hostname[MAXHOSTNAMELEN]; |
|
|
|
/* moduli.c */ |
|
int gen_candidates(FILE *, int, int, BIGNUM *); |
|
int prime_test(FILE *, FILE *, u_int32_t, u_int32_t); |
|
|
static void |
static void |
ask_filename(struct passwd *pw, const char *prompt) |
ask_filename(struct passwd *pw, const char *prompt) |
{ |
{ |
|
|
main(int ac, char **av) |
main(int ac, char **av) |
{ |
{ |
char dotsshdir[MAXPATHLEN], comment[1024], *passphrase1, *passphrase2; |
char dotsshdir[MAXPATHLEN], comment[1024], *passphrase1, *passphrase2; |
char out_file[PATH_MAX], *reader_id = NULL; |
char out_file[MAXPATHLEN], *reader_id = NULL; |
char *resource_record_hostname = NULL; |
char *resource_record_hostname = NULL; |
Key *private, *public; |
Key *private, *public; |
struct passwd *pw; |
struct passwd *pw; |
|
|
int opt, type, fd, download = 0, memory = 0; |
int opt, type, fd, download = 0, memory = 0; |
int generator_wanted = 0, trials = 100; |
int generator_wanted = 0, trials = 100; |
int do_gen_candidates = 0, do_screen_candidates = 0; |
int do_gen_candidates = 0, do_screen_candidates = 0; |
|
int log_level = SYSLOG_LEVEL_INFO; |
BIGNUM *start = NULL; |
BIGNUM *start = NULL; |
FILE *f; |
FILE *f; |
|
|
|
|
} |
} |
|
|
while ((opt = getopt(ac, av, |
while ((opt = getopt(ac, av, |
"degiqpclBRxXyb:f:t:U:D:P:N:C:r:g:T:G:M:S:a:W:")) != -1) { |
"degiqpclBRvxXyb:f:t:U:D:P:N:C:r:g:T:G:M:S:a:W:")) != -1) { |
switch (opt) { |
switch (opt) { |
case 'b': |
case 'b': |
bits = atoi(optarg); |
bits = atoi(optarg); |
|
|
case 'U': |
case 'U': |
reader_id = optarg; |
reader_id = optarg; |
break; |
break; |
|
case 'v': |
|
if (log_level == SYSLOG_LEVEL_INFO) |
|
log_level = SYSLOG_LEVEL_DEBUG1; |
|
else { |
|
if (log_level >= SYSLOG_LEVEL_DEBUG1 && |
|
log_level < SYSLOG_LEVEL_DEBUG3) |
|
log_level++; |
|
} |
|
break; |
case 'r': |
case 'r': |
resource_record_hostname = optarg; |
resource_record_hostname = optarg; |
break; |
break; |
|
|
break; |
break; |
case 'a': |
case 'a': |
trials = atoi(optarg); |
trials = atoi(optarg); |
if (trials < TRIAL_MINIMUM) { |
|
fatal("Minimum primality trials is %d", |
|
TRIAL_MINIMUM); |
|
} |
|
break; |
break; |
case 'M': |
case 'M': |
memory = atoi(optarg); |
memory = atoi(optarg); |
if (memory != 0 && |
|
(memory < LARGE_MINIMUM || memory > LARGE_MAXIMUM)) { |
|
fatal("Invalid memory amount (min %ld, max %ld)", |
|
LARGE_MINIMUM, LARGE_MAXIMUM); |
|
} |
|
break; |
break; |
case 'G': |
case 'G': |
do_gen_candidates = 1; |
do_gen_candidates = 1; |
|
|
usage(); |
usage(); |
} |
} |
} |
} |
|
|
|
/* reinit */ |
|
log_init(av[0], log_level, SYSLOG_FACILITY_USER, 1); |
|
|
if (optind < ac) { |
if (optind < ac) { |
printf("Too many arguments.\n"); |
printf("Too many arguments.\n"); |
usage(); |
usage(); |