=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/ssh-keygen.c,v retrieving revision 1.32.2.8 retrieving revision 1.85 diff -u -r1.32.2.8 -r1.85 --- src/usr.bin/ssh/ssh-keygen.c 2002/03/08 17:04:43 1.32.2.8 +++ src/usr.bin/ssh/ssh-keygen.c 2001/12/05 10:06:12 1.85 @@ -12,7 +12,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: ssh-keygen.c,v 1.32.2.8 2002/03/08 17:04:43 brad Exp $"); +RCSID("$OpenBSD: ssh-keygen.c,v 1.85 2001/12/05 10:06:12 deraadt Exp $"); #include #include @@ -73,7 +73,8 @@ int convert_from_ssh2 = 0; int print_public = 0; -char *key_type_name = NULL; +/* default to RSA for SSH-1 */ +char *key_type_name = "rsa1"; /* argv0 */ extern char *__progname; @@ -86,25 +87,21 @@ char buf[1024]; 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; - else - 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; - break; - default: - fprintf(stderr, "bad key type"); - exit(1); - break; - } - + break; + default: + fprintf(stderr, "bad key type"); + exit(1); + break; + } snprintf(identity_file, sizeof(identity_file), "%s/%s", pw->pw_dir, name); fprintf(stderr, "%s (%s): ", prompt, identity_file); fflush(stderr); @@ -146,7 +143,7 @@ do_convert_to_ssh2(struct passwd *pw) { Key *k; - u_int len; + int len; u_char *blob; struct stat st; @@ -187,12 +184,12 @@ if (buffer_len(b) < bytes) fatal("buffer_get_bignum_bits: input buffer too small: " "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); } 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; Key *key = NULL; @@ -332,7 +329,7 @@ *p = '\0'; strlcat(encoded, line, sizeof(encoded)); } - blen = uudecode(encoded, blob, sizeof(blob)); + blen = uudecode(encoded, (u_char *)blob, sizeof(blob)); if (blen < 0) { fprintf(stderr, "uudecode failed.\n"); exit(1); @@ -354,8 +351,7 @@ exit(1); } key_free(k); - if (!private) - fprintf(stdout, "\n"); + fprintf(stdout, "\n"); fclose(fp); exit(0); } @@ -670,7 +666,7 @@ read_passphrase("Enter new passphrase (empty for no " "passphrase): ", RP_ALLOW_STDIN); passphrase2 = read_passphrase("Enter same passphrase again: ", - RP_ALLOW_STDIN); + RP_ALLOW_STDIN); /* Verify that they are the same. */ if (strcmp(passphrase1, passphrase2) != 0) { @@ -748,7 +744,7 @@ fprintf(stderr, "Comments are only supported for RSA1 keys.\n"); key_free(private); exit(1); - } + } printf("Key now has comment '%s'\n", comment); if (identity_comment) { @@ -835,7 +831,7 @@ int main(int ac, char **av) { - char dotsshdir[MAXPATHLEN], comment[1024], *passphrase1, *passphrase2; + char dotsshdir[16 * 1024], comment[1024], *passphrase1, *passphrase2; char *reader_id = NULL; Key *private, *public; struct passwd *pw; @@ -962,10 +958,6 @@ 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); if (type == KEY_UNSPEC) { fprintf(stderr, "unknown key type %s\n", key_type_name);