version 1.254, 2015/01/16 15:55:07 |
version 1.255, 2015/01/18 13:22:28 |
|
|
unsigned long); |
unsigned long); |
|
|
static void |
static void |
type_bits_valid(int type, u_int32_t *bitsp) |
type_bits_valid(int type, const char *name, u_int32_t *bitsp) |
{ |
{ |
u_int maxbits; |
u_int maxbits, nid; |
|
|
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); |
|
|
if (*bitsp == 0) { |
if (*bitsp == 0) { |
if (type == KEY_DSA) |
if (type == KEY_DSA) |
*bitsp = DEFAULT_BITS_DSA; |
*bitsp = DEFAULT_BITS_DSA; |
else if (type == KEY_ECDSA) |
else if (type == KEY_ECDSA) { |
*bitsp = DEFAULT_BITS_ECDSA; |
if (name != NULL && |
|
(nid = sshkey_ecdsa_nid_from_name(name)) > 0) |
|
*bitsp = sshkey_curve_nid_to_bits(nid); |
|
if (*bitsp == 0) |
|
*bitsp = DEFAULT_BITS_ECDSA; |
|
} |
else |
else |
*bitsp = DEFAULT_BITS; |
*bitsp = DEFAULT_BITS; |
} |
} |
|
|
type = sshkey_type_from_name(key_types[i].key_type); |
type = sshkey_type_from_name(key_types[i].key_type); |
strlcpy(identity_file, key_types[i].path, sizeof(identity_file)); |
strlcpy(identity_file, key_types[i].path, sizeof(identity_file)); |
bits = 0; |
bits = 0; |
type_bits_valid(type, &bits); |
type_bits_valid(type, NULL, &bits); |
if ((r = sshkey_generate(type, bits, &private)) != 0) { |
if ((r = sshkey_generate(type, bits, &private)) != 0) { |
fprintf(stderr, "key_generate failed: %s\n", |
fprintf(stderr, "key_generate failed: %s\n", |
ssh_err(r)); |
ssh_err(r)); |
|
|
key_type_name = "rsa"; |
key_type_name = "rsa"; |
|
|
type = sshkey_type_from_name(key_type_name); |
type = sshkey_type_from_name(key_type_name); |
type_bits_valid(type, &bits); |
type_bits_valid(type, key_type_name, &bits); |
|
|
if (!quiet) |
if (!quiet) |
printf("Generating public/private %s key pair.\n", |
printf("Generating public/private %s key pair.\n", |