diff options
author | Jakob Schlyter <jakob@cvs.openbsd.org> | 2001-03-11 15:04:17 +0000 |
---|---|---|
committer | Jakob Schlyter <jakob@cvs.openbsd.org> | 2001-03-11 15:04:17 +0000 |
commit | 076ed6569271018f457390ebda2c0be6cb0eb2d8 (patch) | |
tree | 4c16e1287d57ee45fb72f75ee6ab56a5b00e4e68 /usr.bin/ssh | |
parent | 74142b095c93133fbca8ab0b09aabe0c01902807 (diff) |
print both md5, sha1 and bubblebabble fingerprints when using
ssh-keygen -l -v. ok markus@.
Diffstat (limited to 'usr.bin/ssh')
-rw-r--r-- | usr.bin/ssh/ssh-keygen.1 | 5 | ||||
-rw-r--r-- | usr.bin/ssh/ssh-keygen.c | 30 |
2 files changed, 31 insertions, 4 deletions
diff --git a/usr.bin/ssh/ssh-keygen.1 b/usr.bin/ssh/ssh-keygen.1 index 70310ed30f9..d6ad33d6a9a 100644 --- a/usr.bin/ssh/ssh-keygen.1 +++ b/usr.bin/ssh/ssh-keygen.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keygen.1,v 1.33 2001/03/02 18:54:31 deraadt Exp $ +.\" $OpenBSD: ssh-keygen.1,v 1.34 2001/03/11 15:04:16 jakob Exp $ .\" .\" -*- nroff -*- .\" @@ -72,6 +72,7 @@ .Op Fl f Ar keyfile .Nm ssh-keygen .Fl l +.Op Fl v .Op Fl f Ar input_keyfile .Sh DESCRIPTION .Nm @@ -172,6 +173,8 @@ Provides the new comment. Provides the new passphrase. .It Fl P Ar passphrase Provides the (old) passphrase. +.It Fl v +Print verbose information. .It Fl x This option will read a private OpenSSH DSA format file and print a SSH2-compatible public key to stdout. diff --git a/usr.bin/ssh/ssh-keygen.c b/usr.bin/ssh/ssh-keygen.c index 065c752cd18..4196b938d76 100644 --- a/usr.bin/ssh/ssh-keygen.c +++ b/usr.bin/ssh/ssh-keygen.c @@ -12,7 +12,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: ssh-keygen.c,v 1.46 2001/03/09 03:14:39 deraadt Exp $"); +RCSID("$OpenBSD: ssh-keygen.c,v 1.47 2001/03/11 15:04:16 jakob Exp $"); #include <openssl/evp.h> #include <openssl/pem.h> @@ -64,6 +64,7 @@ char *identity_comment = NULL; int convert_to_ssh2 = 0; int convert_from_ssh2 = 0; int print_public = 0; +int print_verbose = 0; /* default to RSA for SSH-1 */ char *key_type_name = "rsa1"; @@ -346,9 +347,28 @@ do_fingerprint(struct passwd *pw) debug("try_load_public_key KEY_UNSPEC failed"); } if (success) { - printf("%d %s %s\n", key_size(public), key_fingerprint(public), comment); + char *digest_md5, *digest_sha1, *digest_bubblebabble; + + digest_md5 = key_fingerprint_ex(public, SSH_FP_MD5, SSH_FP_HEX); + digest_sha1 = key_fingerprint_ex(public, SSH_FP_SHA1, SSH_FP_HEX); + digest_bubblebabble = key_fingerprint_ex(public, SSH_FP_SHA1, SSH_FP_BUBBLEBABBLE); + + if(print_verbose) { + printf("comment: %s\n", comment); + printf("size: %d\n", key_size(public)); + printf("md5: %s\n", digest_md5); + printf("sha1: %s\n", digest_sha1); + printf("bubblebabble: %s\n", digest_bubblebabble); + } else { + printf("%d %s %s\n", key_size(public), digest_md5, comment); + } + key_free(public); xfree(comment); + xfree(digest_md5); + xfree(digest_sha1); + xfree(digest_bubblebabble); + exit(0); } @@ -639,7 +659,7 @@ main(int ac, char **av) exit(1); } - while ((opt = getopt(ac, av, "dqpclRxXyb:f:t:P:N:C:")) != -1) { + while ((opt = getopt(ac, av, "dqpclRxXyvb:f:t:P:N:C:")) != -1) { switch (opt) { case 'b': bits = atoi(optarg); @@ -699,6 +719,10 @@ main(int ac, char **av) print_public = 1; break; + case 'v': + print_verbose = 1; + break; + case 'd': key_type_name = "dsa"; break; |