version 1.32.2.8, 2002/03/08 17:04:43 |
version 1.87, 2001/12/21 08:52:22 |
|
|
char buf[1024]; |
char buf[1024]; |
char *name = NULL; |
char *name = NULL; |
|
|
if (key_type_name == NULL) |
switch (key_type_from_name(key_type_name)) { |
|
case KEY_RSA1: |
|
name = _PATH_SSH_CLIENT_IDENTITY; |
|
break; |
|
case KEY_DSA: |
|
name = _PATH_SSH_CLIENT_ID_DSA; |
|
break; |
|
case KEY_RSA: |
name = _PATH_SSH_CLIENT_ID_RSA; |
name = _PATH_SSH_CLIENT_ID_RSA; |
else |
break; |
switch (key_type_from_name(key_type_name)) { |
default: |
case KEY_RSA1: |
fprintf(stderr, "bad key type"); |
name = _PATH_SSH_CLIENT_IDENTITY; |
exit(1); |
break; |
break; |
case KEY_DSA: |
} |
name = _PATH_SSH_CLIENT_ID_DSA; |
|
break; |
|
case KEY_RSA: |
|
name = _PATH_SSH_CLIENT_ID_RSA; |
|
break; |
|
default: |
|
fprintf(stderr, "bad key type"); |
|
exit(1); |
|
break; |
|
} |
|
|
|
snprintf(identity_file, sizeof(identity_file), "%s/%s", pw->pw_dir, name); |
snprintf(identity_file, sizeof(identity_file), "%s/%s", pw->pw_dir, name); |
fprintf(stderr, "%s (%s): ", prompt, identity_file); |
fprintf(stderr, "%s (%s): ", prompt, identity_file); |
fflush(stderr); |
fflush(stderr); |
|
|
do_convert_to_ssh2(struct passwd *pw) |
do_convert_to_ssh2(struct passwd *pw) |
{ |
{ |
Key *k; |
Key *k; |
u_int len; |
int len; |
u_char *blob; |
u_char *blob; |
struct stat st; |
struct stat st; |
|
|
|
|
if (buffer_len(b) < bytes) |
if (buffer_len(b) < bytes) |
fatal("buffer_get_bignum_bits: input buffer too small: " |
fatal("buffer_get_bignum_bits: input buffer too small: " |
"need %d have %d", bytes, buffer_len(b)); |
"need %d have %d", bytes, buffer_len(b)); |
BN_bin2bn(buffer_ptr(b), bytes, value); |
BN_bin2bn((u_char *)buffer_ptr(b), bytes, value); |
buffer_consume(b, bytes); |
buffer_consume(b, bytes); |
} |
} |
|
|
static Key * |
static Key * |
do_convert_private_ssh2_from_blob(u_char *blob, u_int blen) |
do_convert_private_ssh2_from_blob(u_char *blob, int blen) |
{ |
{ |
Buffer b; |
Buffer b; |
Key *key = NULL; |
Key *key = NULL; |
|
|
*p = '\0'; |
*p = '\0'; |
strlcat(encoded, line, sizeof(encoded)); |
strlcat(encoded, line, sizeof(encoded)); |
} |
} |
blen = uudecode(encoded, blob, sizeof(blob)); |
blen = uudecode(encoded, (u_char *)blob, sizeof(blob)); |
if (blen < 0) { |
if (blen < 0) { |
fprintf(stderr, "uudecode failed.\n"); |
fprintf(stderr, "uudecode failed.\n"); |
exit(1); |
exit(1); |
|
|
exit(1); |
exit(1); |
} |
} |
key_free(k); |
key_free(k); |
if (!private) |
fprintf(stdout, "\n"); |
fprintf(stdout, "\n"); |
|
fclose(fp); |
fclose(fp); |
exit(0); |
exit(0); |
} |
} |
|
|
printf("Too many arguments.\n"); |
printf("Too many arguments.\n"); |
usage(); |
usage(); |
} |
} |
|
if (key_type_name == NULL) { |
|
printf("You must specify a key type (-t).\n"); |
|
usage(); |
|
} |
if (change_passphrase && change_comment) { |
if (change_passphrase && change_comment) { |
printf("Can only have one of -p and -c.\n"); |
printf("Can only have one of -p and -c.\n"); |
usage(); |
usage(); |
|
|
|
|
arc4random_stir(); |
arc4random_stir(); |
|
|
if (key_type_name == NULL) { |
|
printf("You must specify a key type (-t).\n"); |
|
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); |