version 1.131, 2005/10/14 02:17:59 |
version 1.134, 2005/11/28 05:16:53 |
|
|
"degiqpclBHvxXyF:b:f:t:U:D:P:N:C:r:g:R:T:G:M:S:a:W:")) != -1) { |
"degiqpclBHvxXyF:b:f:t:U:D:P:N:C:r:g:R:T:G:M:S:a:W:")) != -1) { |
switch (opt) { |
switch (opt) { |
case 'b': |
case 'b': |
bits = strtonum(optarg, 512, 32768, &errstr); |
bits = strtonum(optarg, 768, 32768, &errstr); |
if (errstr) |
if (errstr) |
fatal("Bits has bad value %s (%s)", |
fatal("Bits has bad value %s (%s)", |
optarg, errstr); |
optarg, errstr); |
|
|
|
|
arc4random_stir(); |
arc4random_stir(); |
|
|
if (key_type_name == NULL) { |
if (key_type_name == NULL) |
printf("You must specify a key type (-t).\n"); |
key_type_name = "rsa"; |
usage(); |
|
} |
|
type = key_type_from_name(key_type_name); |
type = key_type_from_name(key_type_name); |
if (type == KEY_UNSPEC) { |
if (type == KEY_UNSPEC) { |
fprintf(stderr, "unknown key type %s\n", key_type_name); |
fprintf(stderr, "unknown key type %s\n", key_type_name); |
exit(1); |
exit(1); |
} |
} |
|
if (type == KEY_DSA && bits != 1024) |
|
fatal("DSA keys must be 1024 bits"); |
if (!quiet) |
if (!quiet) |
printf("Generating public/private %s key pair.\n", key_type_name); |
printf("Generating public/private %s key pair.\n", key_type_name); |
if (bits == 0) |
if (bits == 0) |
|
|
if (!have_identity) |
if (!have_identity) |
ask_filename(pw, "Enter file in which to save the key"); |
ask_filename(pw, "Enter file in which to save the key"); |
|
|
/* Create ~/.ssh directory if it doesn\'t already exist. */ |
/* Create ~/.ssh directory if it doesn't already exist. */ |
snprintf(dotsshdir, sizeof dotsshdir, "%s/%s", pw->pw_dir, _PATH_SSH_USER_DIR); |
snprintf(dotsshdir, sizeof dotsshdir, "%s/%s", pw->pw_dir, _PATH_SSH_USER_DIR); |
if (strstr(identity_file, dotsshdir) != NULL && |
if (strstr(identity_file, dotsshdir) != NULL && |
stat(dotsshdir, &st) < 0) { |
stat(dotsshdir, &st) < 0) { |