X-Git-Url: http://andersk.mit.edu/gitweb/openssh.git/blobdiff_plain/2a7d529ac6114b115d79be6dd5bb99882791b1be..b5c334cca53c7bd1dfa559da8208bacb9c476cd0:/ssh-add.c diff --git a/ssh-add.c b/ssh-add.c index efbf771d..c3b3ab4a 100644 --- a/ssh-add.c +++ b/ssh-add.c @@ -35,7 +35,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: ssh-add.c,v 1.22 2000/09/07 20:27:54 deraadt Exp $"); +RCSID("$OpenBSD: ssh-add.c,v 1.24 2001/01/13 18:14:13 markus Exp $"); #include #include @@ -50,9 +50,9 @@ RCSID("$OpenBSD: ssh-add.c,v 1.22 2000/09/07 20:27:54 deraadt Exp $"); #ifdef HAVE___PROGNAME extern char *__progname; -#else /* HAVE___PROGNAME */ -static const char *__progname = "ssh-add"; -#endif /* HAVE___PROGNAME */ +#else +char *__progname; +#endif void delete_file(AuthenticationConnection *ac, const char *filename) @@ -60,10 +60,10 @@ delete_file(AuthenticationConnection *ac, const char *filename) Key *public; char *comment; - public = key_new(KEY_RSA); + public = key_new(KEY_RSA1); if (!load_public_key(filename, public, &comment)) { key_free(public); - public = key_new(KEY_DSA); + public = key_new(KEY_UNSPEC); if (!try_load_public_key(filename, public, &comment)) { printf("Bad key file %s\n", filename); return; @@ -91,7 +91,7 @@ delete_all(AuthenticationConnection *ac) if (success) fprintf(stderr, "All identities removed.\n"); else - fprintf(stderr, "Failed to remove all identitities.\n"); + fprintf(stderr, "Failed to remove all identities.\n"); } char * @@ -117,7 +117,9 @@ ssh_askpass(char *askpass, char *msg) fatal("ssh_askpass: exec(%s): %s", askpass, strerror(errno)); } close(p[1]); - len = atomicio(read, p[0], buf, sizeof buf); + buf[0] = '\0'; + atomicio(read, p[0], buf, sizeof buf); + len = strlen(buf); close(p[0]); while (waitpid(pid, &status, 0) < 0) if (errno != EINTR) @@ -142,7 +144,7 @@ add_file(AuthenticationConnection *ac, const char *filename) char buf[1024], msg[1024]; int success; int interactive = isatty(STDIN_FILENO); - int type = KEY_RSA; + int type = KEY_RSA1; if (stat(filename, &st) < 0) { perror(filename); @@ -152,10 +154,10 @@ add_file(AuthenticationConnection *ac, const char *filename) * try to load the public key. right now this only works for RSA, * since DSA keys are fully encrypted */ - public = key_new(KEY_RSA); + public = key_new(KEY_RSA1); if (!load_public_key(filename, public, &saved_comment)) { - /* ok, so we will asume this is a DSA key */ - type = KEY_DSA; + /* ok, so we will assume this is 'some' key */ + type = KEY_UNSPEC; saved_comment = xstrdup(filename); } key_free(public); @@ -221,8 +223,9 @@ list_identities(AuthenticationConnection *ac, int fp) key = ssh_get_next_identity(ac, &comment, version)) { had_identities = 1; if (fp) { - printf("%d %s %s\n", - key_size(key), key_fingerprint(key), comment); + printf("%d %s %s (%s)\n", + key_size(key), key_fingerprint(key), + comment, key_type(key)); } else { if (!key_write(key, stdout)) fprintf(stderr, "key_write failed"); @@ -246,15 +249,9 @@ main(int argc, char **argv) int i; int deleting = 0; + __progname = get_progname(argv[0]); init_rng(); - /* check if RSA support exists */ - if (rsa_alive() == 0) { - fprintf(stderr, - "%s: no RSA support in libssl and libcrypto. See ssl(8).\n", - __progname); - exit(1); - } SSLeay_add_all_algorithms(); /* At first, get a connection to the authentication agent. */